Uutiset:

Bored?  Looking to kill some time?  Want to chat with other SMF users?  Join us in IRC chat or Discord

Main Menu
Advertisement:

More than one board per category causing a mess

Aloittaja samborabora, kesäkuu 17, 2014, 05:20:06 IP

« edellinen - seuraava »

samborabora

I've been helping someone with a board, and about a year ago, I helped out with putting the childboards in as a hover element on the board index (so when you hover your mouse over the board row, the childboards appear) but I've not tried adding a second board to each of the categories so far. I tried it today for the first time, and it breaks all of the existing rows in the board index. Here's the code:

boardindex.template.php
<?php
/**
 * Simple Machines Forum (SMF)
 *
 * @package SMF
 * @author Simple Machines
 * @copyright 2011 Simple Machines
 * @license http://www.simplemachines.org/about/smf/license.php BSD
 *
 * @version 2.0
 */

function template_main()
{
global $context$settings$options$txt$scripturl$modSettings;

// Show some statistics if stat info is off.
if (!$settings['show_stats_index'])
echo '
<div id="index_common_stats">
'
$txt['members'], ': '$context['common_stats']['total_members'], ' &nbsp;&#38;#8226;&nbsp; '$txt['posts_made'], ': '$context['common_stats']['total_posts'], ' &nbsp;&#38;#8226;&nbsp; '$txt['topics'], ': '$context['common_stats']['total_topics'], '
'
, ($settings['show_latest_member'] ? ' ' $txt['welcome_member'] . ' <strong>' $context['common_stats']['latest_member']['link'] . '</strong>' $txt['newest_member'] : '') , '
</div>'
;

// Show the news fader?  (assuming there are things to show...)
if ($settings['show_newsfader'] && !empty($context['fader_news_lines']))
{
echo '
<div id="newsfader">
<div class="cat_bar">
<h3 class="catbg">
<img id="newsupshrink" src="'
$settings['images_url'], '/collapse.gif" alt="*" title="'$txt['upshrink_description'], '" align="bottom" style="display: none;" />
'
$txt['news'], '
</h3>
</div>
<ul class="reset" id="smfFadeScroller"'
, empty($options['collapse_news_fader']) ? '' ' style="display: none;"''>';

foreach ($context['news_lines'] as $news)
echo '
<li>'
$news'</li>';

echo '
</ul>
</div>
<script type="text/javascript" src="'
$settings['default_theme_url'], '/scripts/fader.js"></script>
<script type="text/javascript"><!-- // --><![CDATA[

// Create a news fader object.
var oNewsFader = new smf_NewsFader({
sSelf: \'oNewsFader\',
sFaderControlId: \'smfFadeScroller\',
sItemTemplate: '
JavaScriptEscape('<strong>%1$s</strong>'), ',
iFadeDelay: '
, empty($settings['newsfader_time']) ? 5000 $settings['newsfader_time'], '
});

// Create the news fader toggle.
var smfNewsFadeToggle = new smc_Toggle({
bToggleEnabled: true,
bCurrentlyCollapsed: '
, empty($options['collapse_news_fader']) ? 'false' 'true'',
aSwappableContainers: [
\'smfFadeScroller\'
],
aSwapImages: [
{
sId: \'newsupshrink\',
srcExpanded: smf_images_url + \'/collapse.gif\',
altExpanded: '
JavaScriptEscape($txt['upshrink_description']), ',
srcCollapsed: smf_images_url + \'/expand.gif\',
altCollapsed: '
JavaScriptEscape($txt['upshrink_description']), '
}
],
oThemeOptions: {
bUseThemeSettings: '
$context['user']['is_guest'] ? 'false' 'true'',
sOptionName: \'collapse_news_fader\',
sSessionVar: '
JavaScriptEscape($context['session_var']), ',
sSessionId: '
JavaScriptEscape($context['session_id']), '
},
oCookieOptions: {
bUseCookie: '
$context['user']['is_guest'] ? 'true' 'false'',
sCookieName: \'newsupshrink\'
}
});
// ]]></script>'
;
}

echo '
<div id="boardindex_table">
<table class="table_list">'
;

/* Each category in categories is made up of:
id, href, link, name, is_collapsed (is it collapsed?), can_collapse (is it okay if it is?),
new (is it new?), collapse_href (href to collapse/expand), collapse_image (up/down image),
and boards. (see below.) */
foreach ($context['categories'] as $category)
{
// If theres no parent boards we can see, avoid showing an empty category (unless its collapsed)
if (empty($category['boards']) && !$category['is_collapsed'])
continue;

echo '
<tbody class="header" id="category_'
$category['id'], '">
<tr>
<td colspan="4">
<div class="cat_bar">
<h3 class="catbg">'
;
echo '
'
$category['name'], '
</h3>
</div>
</td>
</tr>
</tbody>'
;

// Assuming the category hasn't been collapsed...
if (!$category['is_collapsed'])
{

echo '
<tbody class="content" id="category_'
$category['id'], '_boards">';
/* Each board in each category's boards has:
new (is it new?), id, name, description, moderators (see below), link_moderators (just a list.),
children (see below.), link_children (easier to use.), children_new (are they new?),
topics (# of), posts (# of), link, href, and last_post. (see below.) */
foreach ($category['boards'] as $board)
{
if(!empty($board['children']) && !empty($modSettings['tidy_child_boards']) && $modSettings['tidy_child_boards'] > 1)
tidyBoards($board);
echo '
<tr id="board_'
$board['id'], '" class="windowbg2">
<td class="icon windowbg"'
, !empty($board['children']) ? ' rowspan="2"' '''>
<a href="'
, ($board['is_redirect'] || $context['user']['is_guest'] ? $board['href'] : $scripturl '=;board=' $board['id'] . '.0;'), '">';

// If the board or children is new, show an indicator.
if ($board['new'] || $board['children_new'])
{
if ($board['new_img'] !== '')
echo '
<img src="'
$board['new_img'], '" alt="'$txt['new_posts'], '" title="'$txt['new_posts'], '" />';
else
echo '
<img src="'
$settings['images_url'], '/'$context['theme_variant_url'], 'on'$board['new'] ? '' '2''.png" alt="'$txt['new_posts'], '" title="'$txt['new_posts'], '" />';
}
// Is it a redirection board?
elseif ($board['is_redirect'])
{
if ($board['redirect_img'] !== '')
echo '
<img src="'
$board['redirect_img'], '" alt="*" title="*" />';
else
echo '
<img src="'
$settings['images_url'], '/'$context['theme_variant_url'], 'redirect.png" alt="*" title="*" />';
}
// No new posts at all! The agony!!
else
{
if ($board['no_new_img'] !== '')
echo '
<img src="'
$board['no_new_img'], '" alt="'$txt['old_posts'], '" title="'$txt['old_posts'], '" />';
else
echo '
<img src="'
$settings['images_url'], '/'$context['theme_variant_url'], 'off.png" alt="'$txt['old_posts'], '" title="'$txt['old_posts'], '" />';
}
// TITLEY
echo '
</a>
</td>
<td class="info">
<a class="subject" href="'
$board['href'], '" name="b'$board['id'], '">'$board['name'], '</a>';
// Show the "Child Boards: ". (there's a link_children but we're going to bold the new ones...)
if (!empty($board['children']))
{
// Sort the links into an array with new boards bold so it can be imploded.
$children = array();
/* Each child in each board's children has:
id, name, description, new (is it new?), topics (#), posts (#), href, link, and last_post. */
foreach ($board['children'] as $child)
{
if (!$child['is_redirect'])
$child['link'] = '<a href="' $child['href'] . '" ' . ($child['new'] ? 'class="new_posts" ' '') . 'title="' . ($child['new'] ? $txt['new_posts'] : $txt['old_posts']) . ' (' $txt['board_topics'] . ': ' comma_format($child['topics']) . ', ' $txt['posts'] . ': ' comma_format($child['posts']) . ')">' $child['name'] . ($child['new'] ? '</a> <a href="' $scripturl '?action=unread;board=' $child['id'] . '" title="' $txt['new_posts'] . ' (' $txt['board_topics'] . ': ' comma_format($child['topics']) . ', ' $txt['posts'] . ': ' comma_format($child['posts']) . ')"><img src="' $settings['lang_images_url'] . '/new.gif" class="new_posts" alt="" />' '') . '</a>';
else
$child['link'] = '<a href="' $child['href'] . '" title="' comma_format($child['posts']) . ' ' $txt['redirects'] . '">' $child['name'] . '</a>';

// Has it posts awaiting approval?
if ($child['can_approve_posts'] && ($child['unapproved_posts'] || $child['unapproved_topics']))
$child['link'] .= ' <a href="' $scripturl '?action=moderate;area=postmod;sa=' . ($child['unapproved_topics'] > 'topics' 'posts') . ';brd=' $child['id'] . ';' $context['session_var'] . '=' $context['session_id'] . '" title="' sprintf($txt['unapproved_posts'], $child['unapproved_topics'], $child['unapproved_posts']) . '" class="moderation_link">(!)</a>';

$children[] = $child['new'] ? '<strong>' $child['link'] . '</strong>' $child['link'];
}
// CHILDY
echo '

 <span class="childroll">'
implode(', '$children), '</span>
'
;

// Has it outstanding posts for approval?
if ($board['can_approve_posts'] && ($board['unapproved_posts'] || $board['unapproved_topics']))
echo '
<a href="'
$scripturl'?action=moderate;area=postmod;sa=', ($board['unapproved_topics'] > 'topics' 'posts'), ';brd='$board['id'], ';'$context['session_var'], '='$context['session_id'], '" title="'sprintf($txt['unapproved_posts'], $board['unapproved_topics'], $board['unapproved_posts']), '" class="moderation_link">(!)</a>';

echo '

<p>'
$board['description'] , '</p>';

// Show the "Moderators: ". Each has name, href, link, and id. (but we're gonna use link_moderators.)
if (!empty($board['moderators']))
echo '
<p class="moderators">'
count($board['moderators']) == $txt['moderator'] : $txt['moderators'], ': 'implode(', '$board['link_moderators']), '</p>';

if(!empty($board['tidy_children'])) {
$context['tidy_board'] = $board;
template_tidy_children();
}

// Show some basic information about the number of posts, etc.
echo '
</td>
<td class="lastpost">'


/* The board's and children's 'last_post's have:
time, timestamp (a number that represents the time.), id (of the post), topic (topic id.),
link, href, subject, start (where they should go for the first unread post.),
and member. (which has id, name, link, href, username in it.) */
if (!empty($board['last_post']['id']))
echo '
<p><strong>'
$board['last_post']['link'], '</strong><br />
'
$board['last_post']['time'],' '$txt['by'], ' '$board['last_post']['member']['link'] , '
</p>'
;
echo '
</td>
</tr>'
;

}
}
echo '
</tbody>'
;
}
echo '
<tbody class="divider">
<tr>
<td colspan="4"></td>
</tr>
</tbody>'
;
}
echo '
</table>
</div>'
;

if ($context['user']['is_logged'])
{
echo '
'
;
}

template_info_center();
}

function 
template_info_center()
{
global $context$settings$options$txt$scripturl$modSettings;

// Here's where the "Info Center" starts...
echo '
<span class="clear upperframe"></span>
<div class="cat_bar">
<h3 class="catbg">
'
sprintf($context['num_users_online'],  $context['forum_name_html_safe']), '
'
$txt['online_users'], '
</h3>
</div>
<div id="upshrinkHeaderIC"'
, empty($options['collapse_header_ic']) ? '' ' style="display: none;"''>';


// Assuming there ARE users online... each user in users_online has an id, username, name, group, href, and link.
if (!empty($context['users_online']))
{
echo '
'
implode(', '$context['list_users_online']);

// Showing membergroups?
if (!empty($settings['show_group_key']) && !empty($context['membergroups']))
echo '
<br />[' 
implode(']&nbsp;&nbsp;['$context['membergroups']) . ']';
}

echo '
</p>
'
;

// If they are logged in, but statistical information is off... show a personal message bar.
if ($context['user']['is_logged'] && !$settings['show_stats_index'])
{
echo '
<div class="title_barIC">
<h4 class="titlebg">
<span class="ie6_header floatleft">
'
$context['allow_pm'] ? '<a href="' $scripturl '?action=pm">' '''<img class="icon" src="'$settings['images_url'], '/message_sm.gif" alt="'$txt['personal_message'], '" />'$context['allow_pm'] ? '</a>' '''
<span>'
$txt['personal_message'], '</span>
</span>
</h4>
</div>
<p class="pminfo">
<strong><a href="'
$scripturl'?action=pm">'$txt['personal_message'], '</a></strong>
<span class="smalltext">
'
$txt['you_have'], ' 'comma_format($context['user']['messages']), ' '$context['user']['messages'] == $txt['message_lowercase'] : $txt['msg_alert_messages'], '.... '$txt['click'], ' <a href="'$scripturl'?action=pm">'$txt['here'], '</a> '$txt['to_view'], '
</span>
</p>'
;
}

echo '
</div>
</div>
<span class="lowerframe"></span>'
;

// Info center collapse object.
echo '
<script type="text/javascript"><!-- // --><![CDATA[
var oInfoCenterToggle = new smc_Toggle({
bToggleEnabled: true,
bCurrentlyCollapsed: '
, empty($options['collapse_header_ic']) ? 'false' 'true'',
aSwappableContainers: [
\'upshrinkHeaderIC\'
],
aSwapImages: [
{
sId: \'upshrink_ic\',
srcExpanded: smf_images_url + \'/collapse.gif\',
altExpanded: '
JavaScriptEscape($txt['upshrink_description']), ',
srcCollapsed: smf_images_url + \'/expand.gif\',
altCollapsed: '
JavaScriptEscape($txt['upshrink_description']), '
}
],
oThemeOptions: {
bUseThemeSettings: '
$context['user']['is_guest'] ? 'false' 'true'',
sOptionName: \'collapse_header_ic\',
sSessionVar: '
JavaScriptEscape($context['session_var']), ',
sSessionId: '
JavaScriptEscape($context['session_id']), '
},
oCookieOptions: {
bUseCookie: '
$context['user']['is_guest'] ? 'true' 'false'',
sCookieName: \'upshrinkIC\'
}
});
// ]]></script>'
;
}
function 
template_tidy_children() {
global $context$settings$txt$modSettings$scripturl;
echo '
<div class="board_children">'
;
foreach($context['tidy_board']['tidy_children'] as $key => $child_block) {
echo '
<div class="tidy_child">
<ul>'
;
foreach($child_block as $child) {
echo '
<li>'
;

if(!empty($modSettings['tidy_child_boards_icon']))
echo '<img src="'$settings['images_url'], '/', ($child['new'] ? 'on' 'off'), '.png" width="12" height="12" alt=""> ';

if (!$child['is_redirect'])
$child['link'] = '<a href="' $child['href'] . '" ' . ($child['new'] ? 'class="new_posts" ' '') . 'title="' . ($child['new'] ? $txt['new_posts'] : $txt['old_posts']) . ' (' $txt['board_topics'] . ': ' comma_format($child['topics']) . ', ' $txt['posts'] . ': ' comma_format($child['posts']) . ')">' $child['name'] . '</a>';
else
$child['link'] = '<a href="' $child['href'] . '" title="' comma_format($child['posts']) . ' ' $txt['redirects'] . '">' $child['name'] . '</a>';

if (!empty($modSettings['tidy_child_boards_new']) && $child['new'])
$child['link'] .= ' <a href="' $child['href'] . '" title="' $txt['new_posts'] . ' (' $txt['board_topics'] . ': ' comma_format($child['topics']) . ', ' $txt['posts'] . ': ' comma_format($child['posts']) . ')"><img src="' $settings['lang_images_url'] . '/new.gif" class="new_posts" alt="" /></a>';

// Has it posts awaiting approval?
if ($child['can_approve_posts'] && ($child['unapproved_posts'] | $child['unapproved_topics']))
$child['link'] .= ' <a href="' $scripturl '?action=moderate;area=postmod;sa=' . ($child['unapproved_topics'] > $child['unapproved_posts'] ? 'topics' 'posts') . ';brd=' $child['id'] . ';' $context['session_var'] . '=' $context['session_id'] . '" title="' sprintf($txt['unapproved_posts'], $child['unapproved_topics'], $child['unapproved_posts']) . '" class="moderation_link">(!)</a>';

if(!empty($modSettings['tidy_child_boards_bold']) && $child['new'])
$child['link'] = '<strong>' $child['link'] . '</strong>';

echo $child['link'], '</li>';
}
echo '
</ul>
</div>'
;
}
echo '
</div>'
;
}
?>



And here's what it looks like, currently broken: http://jovistyle.com
If I take that second test forum out of the bottom category, all of the board rows look correct, but with a second one it seems to cause some sort of amazing mess, any ideas?

سعید

Could you please take a screenshot that compares the differences of the board view before and after the problem to determine where the problem exactly is?
then show how you expect to be?

samborabora

Lainaus käyttäjältä: سعید - kesäkuu 18, 2014, 01:37:46 IP
Could you please take a screenshot that compares the differences of the board view before and after the problem to determine where the problem exactly is?
then show how you expect to be?

This is incorrect:

This is correct:


Notice the rollover, when revealed, is also algined wrong, and the board titles are all messed too, and pushed to the left? All I did was remove that second board from the category.

margarett

First things first: PLEASE update your forum. You have security fixes to deploy!

Now for that issue... I'm sorry, no idea. It seems that the boards list get a bit messed up.
I would advise you to run W3C validator on your Board Index with that issue occurring. It might help you figure out what's wrong.
Se forem conduzir, não bebam. Se forem beber... CHAMEM-ME!!!! :D

LainaaOver 90% of all computer problems can be traced back to the interface between the keyboard and the chair


samborabora

Lainaus käyttäjältä: margarett - kesäkuu 18, 2014, 06:32:29 IP
First things first: PLEASE update your forum. You have security fixes to deploy!

Now for that issue... I'm sorry, no idea. It seems that the boards list get a bit messed up.
I would advise you to run W3C validator on your Board Index with that issue occurring. It might help you figure out what's wrong.
I know, I need to, I need to get my server sorted to the auto-update works, but at the moment it gives me an error, but I'll do it as soon as I have this and a couple of other mods sorted. Either way, it doesn't have anything to do with this topic in particular, as it's a styling error caused by my not-quite-perfect editing of the template ;)

Lainaus käyttäjältä: سعید - kesäkuu 19, 2014, 08:25:17 AP
Please add the second board so I can investigate the problem.

I've just added it, thanks!

margarett

You should remove this:
', !empty($board['children']) ? ' rowspan="2"' : '', '
from:
<td class="icon windowbg"', !empty($board['children']) ? ' rowspan="2"' : '', '>
That's why the second board goes out of place ;) You don't have 2 rows, just one.
Se forem conduzir, não bebam. Se forem beber... CHAMEM-ME!!!! :D

LainaaOver 90% of all computer problems can be traced back to the interface between the keyboard and the chair

سعید

Lainaus käyttäjältä: margarett - kesäkuu 19, 2014, 11:06:46 AP
You should remove this:
', !empty($board['children']) ? ' rowspan="2"' : '', '
from:
<td class="icon windowbg"', !empty($board['children']) ? ' rowspan="2"' : '', '>
That's why the second board goes out of place ;) You don't have 2 rows, just one.

Also, you didn't close <td> and <tr> and lastpost td is missed too.

You must close those tags and take the <td class="lastpost"> outside of the condition block.

I've corrected the code for you. Just replace this code and check if it works properly.


<?php
/**
 * Simple Machines Forum (SMF)
 *
 * @package SMF
 * @author Simple Machines
 * @copyright 2011 Simple Machines
 * @license http://www.simplemachines.org/about/smf/license.php BSD
 *
 * @version 2.0
 */

function template_main()
{
global $context$settings$options$txt$scripturl$modSettings;

// Show some statistics if stat info is off.
if (!$settings['show_stats_index'])
echo '
<div id="index_common_stats">
'
$txt['members'], ': '$context['common_stats']['total_members'], ' &nbsp;&#38;#38;#8226;&nbsp; '$txt['posts_made'], ': '$context['common_stats']['total_posts'], ' &nbsp;&#38;#38;#8226;&nbsp; '$txt['topics'], ': '$context['common_stats']['total_topics'], '
'
, ($settings['show_latest_member'] ? ' ' $txt['welcome_member'] . ' <strong>' $context['common_stats']['latest_member']['link'] . '</strong>' $txt['newest_member'] : '') , '
</div>'
;

// Show the news fader?  (assuming there are things to show...)
if ($settings['show_newsfader'] && !empty($context['fader_news_lines']))
{
echo '
<div id="newsfader">
<div class="cat_bar">
<h3 class="catbg">
<img id="newsupshrink" src="'
$settings['images_url'], '/collapse.gif" alt="*" title="'$txt['upshrink_description'], '" align="bottom" style="display: none;" />
'
$txt['news'], '
</h3>
</div>
<ul class="reset" id="smfFadeScroller"'
, empty($options['collapse_news_fader']) ? '' ' style="display: none;"''>';

foreach ($context['news_lines'] as $news)
echo '
<li>'
$news'</li>';

echo '
</ul>
</div>
<script type="text/javascript" src="'
$settings['default_theme_url'], '/scripts/fader.js"></script>
<script type="text/javascript"><!-- // --><![CDATA[

// Create a news fader object.
var oNewsFader = new smf_NewsFader({
sSelf: \'oNewsFader\',
sFaderControlId: \'smfFadeScroller\',
sItemTemplate: '
JavaScriptEscape('<strong>%1$s</strong>'), ',
iFadeDelay: '
, empty($settings['newsfader_time']) ? 5000 $settings['newsfader_time'], '
});

// Create the news fader toggle.
var smfNewsFadeToggle = new smc_Toggle({
bToggleEnabled: true,
bCurrentlyCollapsed: '
, empty($options['collapse_news_fader']) ? 'false' 'true'',
aSwappableContainers: [
\'smfFadeScroller\'
],
aSwapImages: [
{
sId: \'newsupshrink\',
srcExpanded: smf_images_url + \'/collapse.gif\',
altExpanded: '
JavaScriptEscape($txt['upshrink_description']), ',
srcCollapsed: smf_images_url + \'/expand.gif\',
altCollapsed: '
JavaScriptEscape($txt['upshrink_description']), '
}
],
oThemeOptions: {
bUseThemeSettings: '
$context['user']['is_guest'] ? 'false' 'true'',
sOptionName: \'collapse_news_fader\',
sSessionVar: '
JavaScriptEscape($context['session_var']), ',
sSessionId: '
JavaScriptEscape($context['session_id']), '
},
oCookieOptions: {
bUseCookie: '
$context['user']['is_guest'] ? 'true' 'false'',
sCookieName: \'newsupshrink\'
}
});
// ]]></script>'
;
}

echo '
<div id="boardindex_table">
<table class="table_list">'
;

/* Each category in categories is made up of:
id, href, link, name, is_collapsed (is it collapsed?), can_collapse (is it okay if it is?),
new (is it new?), collapse_href (href to collapse/expand), collapse_image (up/down image),
and boards. (see below.) */
foreach ($context['categories'] as $category)
{
// If theres no parent boards we can see, avoid showing an empty category (unless its collapsed)
if (empty($category['boards']) && !$category['is_collapsed'])
continue;

echo '
<tbody class="header" id="category_'
$category['id'], '">
<tr>
<td colspan="4">
<div class="cat_bar">
<h3 class="catbg">'
;
echo '
'
$category['name'], '
</h3>
</div>
</td>
</tr>
</tbody>'
;

// Assuming the category hasn't been collapsed...
if (!$category['is_collapsed'])
{

echo '
<tbody class="content" id="category_'
$category['id'], '_boards">';
/* Each board in each category's boards has:
new (is it new?), id, name, description, moderators (see below), link_moderators (just a list.),
children (see below.), link_children (easier to use.), children_new (are they new?),
topics (# of), posts (# of), link, href, and last_post. (see below.) */
foreach ($category['boards'] as $board)
{
if(!empty($board['children']) && !empty($modSettings['tidy_child_boards']) && $modSettings['tidy_child_boards'] > 1)
tidyBoards($board);
echo '
<tr id="board_'
$board['id'], '" class="windowbg2">
<td class="icon windowbg">
<a href="'
, ($board['is_redirect'] || $context['user']['is_guest'] ? $board['href'] : $scripturl '=;board=' $board['id'] . '.0;'), '">';

// If the board or children is new, show an indicator.
if ($board['new'] || $board['children_new'])
{
if ($board['new_img'] !== '')
echo '
<img src="'
$board['new_img'], '" alt="'$txt['new_posts'], '" title="'$txt['new_posts'], '" />';
else
echo '
<img src="'
$settings['images_url'], '/'$context['theme_variant_url'], 'on'$board['new'] ? '' '2''.png" alt="'$txt['new_posts'], '" title="'$txt['new_posts'], '" />';
}
// Is it a redirection board?
elseif ($board['is_redirect'])
{
if ($board['redirect_img'] !== '')
echo '
<img src="'
$board['redirect_img'], '" alt="*" title="*" />';
else
echo '
<img src="'
$settings['images_url'], '/'$context['theme_variant_url'], 'redirect.png" alt="*" title="*" />';
}
// No new posts at all! The agony!!
else
{
if ($board['no_new_img'] !== '')
echo '
<img src="'
$board['no_new_img'], '" alt="'$txt['old_posts'], '" title="'$txt['old_posts'], '" />';
else
echo '
<img src="'
$settings['images_url'], '/'$context['theme_variant_url'], 'off.png" alt="'$txt['old_posts'], '" title="'$txt['old_posts'], '" />';
}
// TITLEY
echo '
</a>
</td>
<td class="info">
<a class="subject" href="'
$board['href'], '" name="b'$board['id'], '">'$board['name'], '</a>';
// Show the "Child Boards: ". (there's a link_children but we're going to bold the new ones...)
if (!empty($board['children']))
{
// Sort the links into an array with new boards bold so it can be imploded.
$children = array();
/* Each child in each board's children has:
id, name, description, new (is it new?), topics (#), posts (#), href, link, and last_post. */
foreach ($board['children'] as $child)
{
if (!$child['is_redirect'])
$child['link'] = '<a href="' $child['href'] . '" ' . ($child['new'] ? 'class="new_posts" ' '') . 'title="' . ($child['new'] ? $txt['new_posts'] : $txt['old_posts']) . ' (' $txt['board_topics'] . ': ' comma_format($child['topics']) . ', ' $txt['posts'] . ': ' comma_format($child['posts']) . ')">' $child['name'] . ($child['new'] ? '</a> <a href="' $scripturl '?action=unread;board=' $child['id'] . '" title="' $txt['new_posts'] . ' (' $txt['board_topics'] . ': ' comma_format($child['topics']) . ', ' $txt['posts'] . ': ' comma_format($child['posts']) . ')"><img src="' $settings['lang_images_url'] . '/new.gif" class="new_posts" alt="" />' '') . '</a>';
else
$child['link'] = '<a href="' $child['href'] . '" title="' comma_format($child['posts']) . ' ' $txt['redirects'] . '">' $child['name'] . '</a>';

// Has it posts awaiting approval?
if ($child['can_approve_posts'] && ($child['unapproved_posts'] || $child['unapproved_topics']))
$child['link'] .= ' <a href="' $scripturl '?action=moderate;area=postmod;sa=' . ($child['unapproved_topics'] > 'topics' 'posts') . ';brd=' $child['id'] . ';' $context['session_var'] . '=' $context['session_id'] . '" title="' sprintf($txt['unapproved_posts'], $child['unapproved_topics'], $child['unapproved_posts']) . '" class="moderation_link">(!)</a>';

$children[] = $child['new'] ? '<strong>' $child['link'] . '</strong>' $child['link'];
}
// CHILDY
echo '

 <span class="childroll">'
implode(', '$children), '</span>
'
; }

// Has it outstanding posts for approval?
if ($board['can_approve_posts'] && ($board['unapproved_posts'] || $board['unapproved_topics']))
echo '
<a href="'
$scripturl'?action=moderate;area=postmod;sa=', ($board['unapproved_topics'] > 'topics' 'posts'), ';brd='$board['id'], ';'$context['session_var'], '='$context['session_id'], '" title="'sprintf($txt['unapproved_posts'], $board['unapproved_topics'], $board['unapproved_posts']), '" class="moderation_link">(!)</a>';

echo '

<p>'
$board['description'] , '</p>';

// Show the "Moderators: ". Each has name, href, link, and id. (but we're gonna use link_moderators.)
if (!empty($board['moderators']))
echo '
<p class="moderators">'
count($board['moderators']) == $txt['moderator'] : $txt['moderators'], ': 'implode(', '$board['link_moderators']), '</p>';

if(!empty($board['tidy_children'])) {
$context['tidy_board'] = $board;
template_tidy_children();
}

// Show some basic information about the number of posts, etc.
echo '
</td>
<td class="lastpost">'


/* The board's and children's 'last_post's have:
time, timestamp (a number that represents the time.), id (of the post), topic (topic id.),
link, href, subject, start (where they should go for the first unread post.),
and member. (which has id, name, link, href, username in it.) */
if (!empty($board['last_post']['id']))
echo '
<p><strong>'
$board['last_post']['link'], '</strong><br />
'
$board['last_post']['time'],' '$txt['by'], ' '$board['last_post']['member']['link'] , '
</p>'
;
echo '
</td>
</tr>'
;


}
echo '
</tbody>'
;
}
echo '
<tbody class="divider">
<tr>
<td colspan="4"></td>
</tr>
</tbody>'
;
}
echo '
</table>
</div>'
;

if ($context['user']['is_logged'])
{
echo '
'
;
}

template_info_center();
}

function 
template_info_center()
{
global $context$settings$options$txt$scripturl$modSettings;

// Here's where the "Info Center" starts...
echo '
<span class="clear upperframe"></span>
<div class="cat_bar">
<h3 class="catbg">
'
sprintf($context['num_users_online'],  $context['forum_name_html_safe']), '
'
$txt['online_users'], '
</h3>
</div>
<div id="upshrinkHeaderIC"'
, empty($options['collapse_header_ic']) ? '' ' style="display: none;"''>';


// Assuming there ARE users online... each user in users_online has an id, username, name, group, href, and link.
if (!empty($context['users_online']))
{
echo '
'
implode(', '$context['list_users_online']);

// Showing membergroups?
if (!empty($settings['show_group_key']) && !empty($context['membergroups']))
echo '
<br />[' 
implode(']&nbsp;&nbsp;['$context['membergroups']) . ']';
}

echo '
</p>
'
;

// If they are logged in, but statistical information is off... show a personal message bar.
if ($context['user']['is_logged'] && !$settings['show_stats_index'])
{
echo '
<div class="title_barIC">
<h4 class="titlebg">
<span class="ie6_header floatleft">
'
$context['allow_pm'] ? '<a href="' $scripturl '?action=pm">' '''<img class="icon" src="'$settings['images_url'], '/message_sm.gif" alt="'$txt['personal_message'], '" />'$context['allow_pm'] ? '</a>' '''
<span>'
$txt['personal_message'], '</span>
</span>
</h4>
</div>
<p class="pminfo">
<strong><a href="'
$scripturl'?action=pm">'$txt['personal_message'], '</a></strong>
<span class="smalltext">
'
$txt['you_have'], ' 'comma_format($context['user']['messages']), ' '$context['user']['messages'] == $txt['message_lowercase'] : $txt['msg_alert_messages'], '.... '$txt['click'], ' <a href="'$scripturl'?action=pm">'$txt['here'], '</a> '$txt['to_view'], '
</span>
</p>'
;
}

echo '
</div>
</div>
<span class="lowerframe"></span>'
;

// Info center collapse object.
echo '
<script type="text/javascript"><!-- // --><![CDATA[
var oInfoCenterToggle = new smc_Toggle({
bToggleEnabled: true,
bCurrentlyCollapsed: '
, empty($options['collapse_header_ic']) ? 'false' 'true'',
aSwappableContainers: [
\'upshrinkHeaderIC\'
],
aSwapImages: [
{
sId: \'upshrink_ic\',
srcExpanded: smf_images_url + \'/collapse.gif\',
altExpanded: '
JavaScriptEscape($txt['upshrink_description']), ',
srcCollapsed: smf_images_url + \'/expand.gif\',
altCollapsed: '
JavaScriptEscape($txt['upshrink_description']), '
}
],
oThemeOptions: {
bUseThemeSettings: '
$context['user']['is_guest'] ? 'false' 'true'',
sOptionName: \'collapse_header_ic\',
sSessionVar: '
JavaScriptEscape($context['session_var']), ',
sSessionId: '
JavaScriptEscape($context['session_id']), '
},
oCookieOptions: {
bUseCookie: '
$context['user']['is_guest'] ? 'true' 'false'',
sCookieName: \'upshrinkIC\'
}
});
// ]]></script>'
;
}
function 
template_tidy_children() {
global $context$settings$txt$modSettings$scripturl;
echo '
<div class="board_children">'
;
foreach($context['tidy_board']['tidy_children'] as $key => $child_block) {
echo '
<div class="tidy_child">
<ul>'
;
foreach($child_block as $child) {
echo '
<li>'
;

if(!empty($modSettings['tidy_child_boards_icon']))
echo '<img src="'$settings['images_url'], '/', ($child['new'] ? 'on' 'off'), '.png" width="12" height="12" alt=""> ';

if (!$child['is_redirect'])
$child['link'] = '<a href="' $child['href'] . '" ' . ($child['new'] ? 'class="new_posts" ' '') . 'title="' . ($child['new'] ? $txt['new_posts'] : $txt['old_posts']) . ' (' $txt['board_topics'] . ': ' comma_format($child['topics']) . ', ' $txt['posts'] . ': ' comma_format($child['posts']) . ')">' $child['name'] . '</a>';
else
$child['link'] = '<a href="' $child['href'] . '" title="' comma_format($child['posts']) . ' ' $txt['redirects'] . '">' $child['name'] . '</a>';

if (!empty($modSettings['tidy_child_boards_new']) && $child['new'])
$child['link'] .= ' <a href="' $child['href'] . '" title="' $txt['new_posts'] . ' (' $txt['board_topics'] . ': ' comma_format($child['topics']) . ', ' $txt['posts'] . ': ' comma_format($child['posts']) . ')"><img src="' $settings['lang_images_url'] . '/new.gif" class="new_posts" alt="" /></a>';

// Has it posts awaiting approval?
if ($child['can_approve_posts'] && ($child['unapproved_posts'] | $child['unapproved_topics']))
$child['link'] .= ' <a href="' $scripturl '?action=moderate;area=postmod;sa=' . ($child['unapproved_topics'] > $child['unapproved_posts'] ? 'topics' 'posts') . ';brd=' $child['id'] . ';' $context['session_var'] . '=' $context['session_id'] . '" title="' sprintf($txt['unapproved_posts'], $child['unapproved_topics'], $child['unapproved_posts']) . '" class="moderation_link">(!)</a>';

if(!empty($modSettings['tidy_child_boards_bold']) && $child['new'])
$child['link'] = '<strong>' $child['link'] . '</strong>';

echo $child['link'], '</li>';
}
echo '
</ul>
</div>'
;
}
echo '
</div>'
;
}
?>



samborabora


Lainaus käyttäjältä: سعید - kesäkuu 19, 2014, 02:02:26 IP
Lainaus käyttäjältä: margarett - kesäkuu 19, 2014, 11:06:46 AP
You should remove this:
', !empty($board['children']) ? ' rowspan="2"' : '', '
from:
<td class="icon windowbg"', !empty($board['children']) ? ' rowspan="2"' : '', '>
That's why the second board goes out of place ;) You don't have 2 rows, just one.

Also, you didn't close <td> and <tr> and lastpost td is missed too.

You must close those tags and take the <td class="lastpost"> outside of the condition block.

I've corrected the code for you. Just replace this code and check if it works properly.


<?php
/**
 * Simple Machines Forum (SMF)
 *
 * @package SMF
 * @author Simple Machines
 * @copyright 2011 Simple Machines
 * @license http://www.simplemachines.org/about/smf/license.php BSD
 *
 * @version 2.0
 */

function template_main()
{
global $context$settings$options$txt$scripturl$modSettings;

// Show some statistics if stat info is off.
if (!$settings['show_stats_index'])
echo '
<div id="index_common_stats">
'
$txt['members'], ': '$context['common_stats']['total_members'], ' &nbsp;&#38;#38;#8226;&nbsp; '$txt['posts_made'], ': '$context['common_stats']['total_posts'], ' &nbsp;&#38;#38;#8226;&nbsp; '$txt['topics'], ': '$context['common_stats']['total_topics'], '
'
, ($settings['show_latest_member'] ? ' ' $txt['welcome_member'] . ' <strong>' $context['common_stats']['latest_member']['link'] . '</strong>' $txt['newest_member'] : '') , '
</div>'
;

// Show the news fader?  (assuming there are things to show...)
if ($settings['show_newsfader'] && !empty($context['fader_news_lines']))
{
echo '
<div id="newsfader">
<div class="cat_bar">
<h3 class="catbg">
<img id="newsupshrink" src="'
$settings['images_url'], '/collapse.gif" alt="*" title="'$txt['upshrink_description'], '" align="bottom" style="display: none;" />
'
$txt['news'], '
</h3>
</div>
<ul class="reset" id="smfFadeScroller"'
, empty($options['collapse_news_fader']) ? '' ' style="display: none;"''>';

foreach ($context['news_lines'] as $news)
echo '
<li>'
$news'</li>';

echo '
</ul>
</div>
<script type="text/javascript" src="'
$settings['default_theme_url'], '/scripts/fader.js"></script>
<script type="text/javascript"><!-- // --><![CDATA[

// Create a news fader object.
var oNewsFader = new smf_NewsFader({
sSelf: \'oNewsFader\',
sFaderControlId: \'smfFadeScroller\',
sItemTemplate: '
JavaScriptEscape('<strong>%1$s</strong>'), ',
iFadeDelay: '
, empty($settings['newsfader_time']) ? 5000 $settings['newsfader_time'], '
});

// Create the news fader toggle.
var smfNewsFadeToggle = new smc_Toggle({
bToggleEnabled: true,
bCurrentlyCollapsed: '
, empty($options['collapse_news_fader']) ? 'false' 'true'',
aSwappableContainers: [
\'smfFadeScroller\'
],
aSwapImages: [
{
sId: \'newsupshrink\',
srcExpanded: smf_images_url + \'/collapse.gif\',
altExpanded: '
JavaScriptEscape($txt['upshrink_description']), ',
srcCollapsed: smf_images_url + \'/expand.gif\',
altCollapsed: '
JavaScriptEscape($txt['upshrink_description']), '
}
],
oThemeOptions: {
bUseThemeSettings: '
$context['user']['is_guest'] ? 'false' 'true'',
sOptionName: \'collapse_news_fader\',
sSessionVar: '
JavaScriptEscape($context['session_var']), ',
sSessionId: '
JavaScriptEscape($context['session_id']), '
},
oCookieOptions: {
bUseCookie: '
$context['user']['is_guest'] ? 'true' 'false'',
sCookieName: \'newsupshrink\'
}
});
// ]]></script>'
;
}

echo '
<div id="boardindex_table">
<table class="table_list">'
;

/* Each category in categories is made up of:
id, href, link, name, is_collapsed (is it collapsed?), can_collapse (is it okay if it is?),
new (is it new?), collapse_href (href to collapse/expand), collapse_image (up/down image),
and boards. (see below.) */
foreach ($context['categories'] as $category)
{
// If theres no parent boards we can see, avoid showing an empty category (unless its collapsed)
if (empty($category['boards']) && !$category['is_collapsed'])
continue;

echo '
<tbody class="header" id="category_'
$category['id'], '">
<tr>
<td colspan="4">
<div class="cat_bar">
<h3 class="catbg">'
;
echo '
'
$category['name'], '
</h3>
</div>
</td>
</tr>
</tbody>'
;

// Assuming the category hasn't been collapsed...
if (!$category['is_collapsed'])
{

echo '
<tbody class="content" id="category_'
$category['id'], '_boards">';
/* Each board in each category's boards has:
new (is it new?), id, name, description, moderators (see below), link_moderators (just a list.),
children (see below.), link_children (easier to use.), children_new (are they new?),
topics (# of), posts (# of), link, href, and last_post. (see below.) */
foreach ($category['boards'] as $board)
{
if(!empty($board['children']) && !empty($modSettings['tidy_child_boards']) && $modSettings['tidy_child_boards'] > 1)
tidyBoards($board);
echo '
<tr id="board_'
$board['id'], '" class="windowbg2">
<td class="icon windowbg">
<a href="'
, ($board['is_redirect'] || $context['user']['is_guest'] ? $board['href'] : $scripturl '=;board=' $board['id'] . '.0;'), '">';

// If the board or children is new, show an indicator.
if ($board['new'] || $board['children_new'])
{
if ($board['new_img'] !== '')
echo '
<img src="'
$board['new_img'], '" alt="'$txt['new_posts'], '" title="'$txt['new_posts'], '" />';
else
echo '
<img src="'
$settings['images_url'], '/'$context['theme_variant_url'], 'on'$board['new'] ? '' '2''.png" alt="'$txt['new_posts'], '" title="'$txt['new_posts'], '" />';
}
// Is it a redirection board?
elseif ($board['is_redirect'])
{
if ($board['redirect_img'] !== '')
echo '
<img src="'
$board['redirect_img'], '" alt="*" title="*" />';
else
echo '
<img src="'
$settings['images_url'], '/'$context['theme_variant_url'], 'redirect.png" alt="*" title="*" />';
}
// No new posts at all! The agony!!
else
{
if ($board['no_new_img'] !== '')
echo '
<img src="'
$board['no_new_img'], '" alt="'$txt['old_posts'], '" title="'$txt['old_posts'], '" />';
else
echo '
<img src="'
$settings['images_url'], '/'$context['theme_variant_url'], 'off.png" alt="'$txt['old_posts'], '" title="'$txt['old_posts'], '" />';
}
// TITLEY
echo '
</a>
</td>
<td class="info">
<a class="subject" href="'
$board['href'], '" name="b'$board['id'], '">'$board['name'], '</a>';
// Show the "Child Boards: ". (there's a link_children but we're going to bold the new ones...)
if (!empty($board['children']))
{
// Sort the links into an array with new boards bold so it can be imploded.
$children = array();
/* Each child in each board's children has:
id, name, description, new (is it new?), topics (#), posts (#), href, link, and last_post. */
foreach ($board['children'] as $child)
{
if (!$child['is_redirect'])
$child['link'] = '<a href="' $child['href'] . '" ' . ($child['new'] ? 'class="new_posts" ' '') . 'title="' . ($child['new'] ? $txt['new_posts'] : $txt['old_posts']) . ' (' $txt['board_topics'] . ': ' comma_format($child['topics']) . ', ' $txt['posts'] . ': ' comma_format($child['posts']) . ')">' $child['name'] . ($child['new'] ? '</a> <a href="' $scripturl '?action=unread;board=' $child['id'] . '" title="' $txt['new_posts'] . ' (' $txt['board_topics'] . ': ' comma_format($child['topics']) . ', ' $txt['posts'] . ': ' comma_format($child['posts']) . ')"><img src="' $settings['lang_images_url'] . '/new.gif" class="new_posts" alt="" />' '') . '</a>';
else
$child['link'] = '<a href="' $child['href'] . '" title="' comma_format($child['posts']) . ' ' $txt['redirects'] . '">' $child['name'] . '</a>';

// Has it posts awaiting approval?
if ($child['can_approve_posts'] && ($child['unapproved_posts'] || $child['unapproved_topics']))
$child['link'] .= ' <a href="' $scripturl '?action=moderate;area=postmod;sa=' . ($child['unapproved_topics'] > 'topics' 'posts') . ';brd=' $child['id'] . ';' $context['session_var'] . '=' $context['session_id'] . '" title="' sprintf($txt['unapproved_posts'], $child['unapproved_topics'], $child['unapproved_posts']) . '" class="moderation_link">(!)</a>';

$children[] = $child['new'] ? '<strong>' $child['link'] . '</strong>' $child['link'];
}
// CHILDY
echo '

 <span class="childroll">'
implode(', '$children), '</span>
'
; }

// Has it outstanding posts for approval?
if ($board['can_approve_posts'] && ($board['unapproved_posts'] || $board['unapproved_topics']))
echo '
<a href="'
$scripturl'?action=moderate;area=postmod;sa=', ($board['unapproved_topics'] > 'topics' 'posts'), ';brd='$board['id'], ';'$context['session_var'], '='$context['session_id'], '" title="'sprintf($txt['unapproved_posts'], $board['unapproved_topics'], $board['unapproved_posts']), '" class="moderation_link">(!)</a>';

echo '

<p>'
$board['description'] , '</p>';

// Show the "Moderators: ". Each has name, href, link, and id. (but we're gonna use link_moderators.)
if (!empty($board['moderators']))
echo '
<p class="moderators">'
count($board['moderators']) == $txt['moderator'] : $txt['moderators'], ': 'implode(', '$board['link_moderators']), '</p>';

if(!empty($board['tidy_children'])) {
$context['tidy_board'] = $board;
template_tidy_children();
}

// Show some basic information about the number of posts, etc.
echo '
</td>
<td class="lastpost">'


/* The board's and children's 'last_post's have:
time, timestamp (a number that represents the time.), id (of the post), topic (topic id.),
link, href, subject, start (where they should go for the first unread post.),
and member. (which has id, name, link, href, username in it.) */
if (!empty($board['last_post']['id']))
echo '
<p><strong>'
$board['last_post']['link'], '</strong><br />
'
$board['last_post']['time'],' '$txt['by'], ' '$board['last_post']['member']['link'] , '
</p>'
;
echo '
</td>
</tr>'
;


}
echo '
</tbody>'
;
}
echo '
<tbody class="divider">
<tr>
<td colspan="4"></td>
</tr>
</tbody>'
;
}
echo '
</table>
</div>'
;

if ($context['user']['is_logged'])
{
echo '
'
;
}

template_info_center();
}

function 
template_info_center()
{
global $context$settings$options$txt$scripturl$modSettings;

// Here's where the "Info Center" starts...
echo '
<span class="clear upperframe"></span>
<div class="cat_bar">
<h3 class="catbg">
'
sprintf($context['num_users_online'],  $context['forum_name_html_safe']), '
'
$txt['online_users'], '
</h3>
</div>
<div id="upshrinkHeaderIC"'
, empty($options['collapse_header_ic']) ? '' ' style="display: none;"''>';


// Assuming there ARE users online... each user in users_online has an id, username, name, group, href, and link.
if (!empty($context['users_online']))
{
echo '
'
implode(', '$context['list_users_online']);

// Showing membergroups?
if (!empty($settings['show_group_key']) && !empty($context['membergroups']))
echo '
<br />[' 
implode(']&nbsp;&nbsp;['$context['membergroups']) . ']';
}

echo '
</p>
'
;

// If they are logged in, but statistical information is off... show a personal message bar.
if ($context['user']['is_logged'] && !$settings['show_stats_index'])
{
echo '
<div class="title_barIC">
<h4 class="titlebg">
<span class="ie6_header floatleft">
'
$context['allow_pm'] ? '<a href="' $scripturl '?action=pm">' '''<img class="icon" src="'$settings['images_url'], '/message_sm.gif" alt="'$txt['personal_message'], '" />'$context['allow_pm'] ? '</a>' '''
<span>'
$txt['personal_message'], '</span>
</span>
</h4>
</div>
<p class="pminfo">
<strong><a href="'
$scripturl'?action=pm">'$txt['personal_message'], '</a></strong>
<span class="smalltext">
'
$txt['you_have'], ' 'comma_format($context['user']['messages']), ' '$context['user']['messages'] == $txt['message_lowercase'] : $txt['msg_alert_messages'], '.... '$txt['click'], ' <a href="'$scripturl'?action=pm">'$txt['here'], '</a> '$txt['to_view'], '
</span>
</p>'
;
}

echo '
</div>
</div>
<span class="lowerframe"></span>'
;

// Info center collapse object.
echo '
<script type="text/javascript"><!-- // --><![CDATA[
var oInfoCenterToggle = new smc_Toggle({
bToggleEnabled: true,
bCurrentlyCollapsed: '
, empty($options['collapse_header_ic']) ? 'false' 'true'',
aSwappableContainers: [
\'upshrinkHeaderIC\'
],
aSwapImages: [
{
sId: \'upshrink_ic\',
srcExpanded: smf_images_url + \'/collapse.gif\',
altExpanded: '
JavaScriptEscape($txt['upshrink_description']), ',
srcCollapsed: smf_images_url + \'/expand.gif\',
altCollapsed: '
JavaScriptEscape($txt['upshrink_description']), '
}
],
oThemeOptions: {
bUseThemeSettings: '
$context['user']['is_guest'] ? 'false' 'true'',
sOptionName: \'collapse_header_ic\',
sSessionVar: '
JavaScriptEscape($context['session_var']), ',
sSessionId: '
JavaScriptEscape($context['session_id']), '
},
oCookieOptions: {
bUseCookie: '
$context['user']['is_guest'] ? 'true' 'false'',
sCookieName: \'upshrinkIC\'
}
});
// ]]></script>'
;
}
function 
template_tidy_children() {
global $context$settings$txt$modSettings$scripturl;
echo '
<div class="board_children">'
;
foreach($context['tidy_board']['tidy_children'] as $key => $child_block) {
echo '
<div class="tidy_child">
<ul>'
;
foreach($child_block as $child) {
echo '
<li>'
;

if(!empty($modSettings['tidy_child_boards_icon']))
echo '<img src="'$settings['images_url'], '/', ($child['new'] ? 'on' 'off'), '.png" width="12" height="12" alt=""> ';

if (!$child['is_redirect'])
$child['link'] = '<a href="' $child['href'] . '" ' . ($child['new'] ? 'class="new_posts" ' '') . 'title="' . ($child['new'] ? $txt['new_posts'] : $txt['old_posts']) . ' (' $txt['board_topics'] . ': ' comma_format($child['topics']) . ', ' $txt['posts'] . ': ' comma_format($child['posts']) . ')">' $child['name'] . '</a>';
else
$child['link'] = '<a href="' $child['href'] . '" title="' comma_format($child['posts']) . ' ' $txt['redirects'] . '">' $child['name'] . '</a>';

if (!empty($modSettings['tidy_child_boards_new']) && $child['new'])
$child['link'] .= ' <a href="' $child['href'] . '" title="' $txt['new_posts'] . ' (' $txt['board_topics'] . ': ' comma_format($child['topics']) . ', ' $txt['posts'] . ': ' comma_format($child['posts']) . ')"><img src="' $settings['lang_images_url'] . '/new.gif" class="new_posts" alt="" /></a>';

// Has it posts awaiting approval?
if ($child['can_approve_posts'] && ($child['unapproved_posts'] | $child['unapproved_topics']))
$child['link'] .= ' <a href="' $scripturl '?action=moderate;area=postmod;sa=' . ($child['unapproved_topics'] > $child['unapproved_posts'] ? 'topics' 'posts') . ';brd=' $child['id'] . ';' $context['session_var'] . '=' $context['session_id'] . '" title="' sprintf($txt['unapproved_posts'], $child['unapproved_topics'], $child['unapproved_posts']) . '" class="moderation_link">(!)</a>';

if(!empty($modSettings['tidy_child_boards_bold']) && $child['new'])
$child['link'] = '<strong>' $child['link'] . '</strong>';

echo $child['link'], '</li>';
}
echo '
</ul>
</div>'
;
}
echo '
</div>'
;
}
?>


Lainaus käyttäjältä: margarett - kesäkuu 19, 2014, 11:06:46 AP
You should remove this:
', !empty($board['children']) ? ' rowspan="2"' : '', '
from:
<td class="icon windowbg"', !empty($board['children']) ? ' rowspan="2"' : '', '>
That's why the second board goes out of place ;) You don't have 2 rows, just one.

WOW! All I can say is WOW!! Thanks so much, I really appreciate you both helping me with this, I was worried it was going to be stuck like that forever, really appreciate your kind help!!

Advertisement: