我來整理一下順便發表好了, 有需要的請按照以下修改步驟作
Top Topics on Index 部份:
代碼: 選擇全部
#
#-----[ OPEN ]------------------------------------------
#
portal.php
#
#-----[ FIND ]------------------------------------------
#
//
// Start Top Posters hack
if ( $CFG['number_top_posters'] > 0 )
{
$sql = "SELECT post_id FROM " . POSTS_TABLE . " ORDER BY post_id DESC LIMIT 1";
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
$total_post_perc = $row['post_id'];
$perc_mult = 3;
$perc_mult_set = 0;
$rank = 0;
$sql = "SELECT user_id, username, user_posts FROM " . USERS_TABLE ." WHERE user_id <> -1 ORDER BY user_posts DESC LIMIT ".$CFG['number_top_posters'];
$result = $db->sql_query($sql);
while( $row = $db->sql_fetchrow($result)) {
$rank++;
$class = (!($rank % 2)) ? 'row2' : 'row1';
$percentage = (get_db_stat('postcount') != 0) ? round(100 * $row['user_posts'] / get_db_stat('postcount'),0) : 0;
$bar_perc = round($percentage * $perc_mult,0);
$template->assign_block_vars("users", array(
'RANK' => $rank,
'CLASS' => $class,
'USERNAME' => color_group_colorize_name($row['user_id']),
'PERCENTAGE' => $percentage,
'URL' => $phpbb_root_path . "profile.php?mode=viewprofile&u=" . $row['user_id'],
'BAR' => $bar_perc,
'POSTS' => $row['user_posts'])
);
}
$db->sql_freeresult($result);
$template->assign_block_vars('switch_top_posters', array());
}
// End Top 5 Posters hack
//
#
#-----[ AFTER, ADD ]------------------------------------------
#
//------------------------------------------------------------------------
// Top Topics on Index 1.1.0 - Begin Code Addition
//
$template->assign_vars(array(
'L_TOPICSRECENT' => $lang['TopicsRecent'],
'L_TOPICSPOPULAR' => $lang['TopicsPopular'],
'L_TOPICSPOPULARVIEW' => $lang['TopicsPopularView'])
);
// Get forum auth information to insure privacy of hidden topics
$topics_auth = auth(AUTH_ALL, AUTH_LIST_ALL, $userdata);
$topics_auth_sql = '';
foreach($topics_auth as $k=>$v)
{
if( $v['auth_view'] && $v['auth_read'] )
{
$topics_auth_sql .= (( empty($topics_auth_sql) ) ? '': ', ') . $k;
}
}
if( empty($topics_auth_sql) )
{
$template->assign_block_vars('topicrecentpopular', array(
'TOPICSPOPULAR' => $lang['No_Posts'],
'TOPICSPOPULARVIEW' => $lang['No_Posts'],
'TOPICSRECENT' => $lang['No_Posts']
));
}
else
{
//
// Okay, let's build the topic recent and popular
//
$active_topics_sql = 'SELECT t.topic_id, t.topic_title, t.topic_replies, t.topic_views, t.topic_last_post_id
FROM ' . TOPICS_TABLE . ' t, ' . FORUMS_TABLE. ' f
WHERE t.forum_id IN (' . $topics_auth_sql . ')
AND f.forum_id = t.forum_id
ORDER BY %1$s DESC
LIMIT 0,5';
$active_topics_sql_a = sprintf($active_topics_sql, 'topic_last_post_id');
$active_topics_sql_b = sprintf($active_topics_sql, 'topic_replies');
$active_topics_sql_c = sprintf($active_topics_sql, 'topic_views');
$recent_row = $popular_row = $viewed_row = array();
if( !$active_topics_a = $db->sql_query($active_topics_sql_a))
{
message_die(GENERAL_ERROR, 'Could not retrieve recent topics', '', __LINE__, __FILE__, $active_topics_sql_a);
}
$recent_row = $db->sql_fetchrowset($active_topics_a);
$db->sql_freeresult($active_topics_a);
if( !$active_topics_b = $db->sql_query($active_topics_sql_b))
{
message_die(GENERAL_ERROR, 'Could not retrieve popular topics', '', __LINE__, __FILE__, $active_topics_sql_b);
}
$popular_row = $db->sql_fetchrowset($active_topics_b);
$db->sql_freeresult($active_topics_b);
if( !$active_topics_c = $db->sql_query($active_topics_sql_c))
{
message_die(GENERAL_ERROR, 'Could not retrieve most viewed topics', '', __LINE__, __FILE__, $active_topics_sql_c);
}
$viewed_row = $db->sql_fetchrowset($active_topics_c);
$db->sql_freeresult($active_topics_c);
for( $i = 0; $i < 5; $i++ )
{
$recent_topic_title = $recent_row[$i]['topic_title'];
$popular_topic_title = $popular_row[$i]['topic_title'];
$viewed_topic_title = $viewed_row[$i]['topic_title'];
if( strlen($recent_topic_title) > 40 )
{
$recent_topic_title = substr($recent_topic_title, 0, 40) . '...';
}
if( strlen($popular_topic_title) > 40 )
{
$popular_topic_title = substr($popular_topic_title, 0, 40) . '...';
}
if( strlen($viewed_topic_title) > 40 )
{
$viewed_topic_title = substr($viewed_topic_title, 0, 40) . '...';
}
$recent_post = '<a href="viewtopic.php?' . POST_TOPIC_URL . '=' . $recent_row[$i]['topic_id'] . '" title="' . $recent_row[$i]['topic_title'] . '">' . $recent_topic_title . '</a>';
$popular_post = '<a href="viewtopic.php?' . POST_TOPIC_URL . '=' . $popular_row[$i]['topic_id'] . '" title="' . $popular_row[$i]['topic_title'] . '">' . $popular_topic_title . '</a>';
$popular_total_replies = $popular_row[$i]['topic_replies'];
$viewed_post = '<a href="viewtopic.php?' . POST_TOPIC_URL . '=' . $viewed_row[$i]['topic_id'] . '" title="' . $viewed_row[$i]['topic_title'] . '">' . $viewed_topic_title . '</a>';
$viewed_total_replies = $viewed_row[$i]['topic_views'];
$template->assign_block_vars('topicrecentpopular', array(
'TOPICSPOPULAR' => $popular_post,
'TOPICSPOPULARC' => $popular_total_replies,
'TOPICSPOPULARVIEW' => $viewed_post,
'TOPICSPOPULARVIEWC' => $viewed_total_replies,
'TOPICSRECENT' => $recent_post)
);
}
}
//
// Top Topics on Index 1.1.0 - End Code Addition
//------------------------------------------------------------------------
#
#-----[ OPEN ]------------------------------------------
#
templates/fisubSilver/portal_body.tpl
#
#-----[ FIND ]------------------------------------------
#
<!-- BEGIN news_categories -->
<table width="100%" cellpadding="2" cellspacing="1" border="0" class="forumline">
<tr>
#
#-----[ BEFORE, ADD ]------------------------------------------
#
<!-- Top Topics on Index 1.1.0 - Begin Code Addition -->
<table width="100%" cellpadding="2" cellspacing="1" border="0" class="forumline">
<tr>
<th width="25%" class="thTop" nowrap="nowrap"> {L_TOPICSRECENT} </th>
<th width="38%" colspan="2" class="thTop" nowrap="nowrap"> {L_TOPICSPOPULAR} </th>
<th width="37%" colspan="2" class="thTop" nowrap="nowrap"> {L_TOPICSPOPULARVIEW} </th>
</tr>
<!-- BEGIN topicrecentpopular -->
<tr>
<td width="29%" class="row2" align="left" valign="middle"><span class="gensmall">{topicrecentpopular.TOPICSRECENT}</span></td>
<td width="31%" class="row2" align="left" valign="middle"><span class="gensmall">{topicrecentpopular.TOPICSPOPULAR}</span></td>
<td width="6%" class="row2" align="center" valign="middle"><span class="gensmall">{topicrecentpopular.TOPICSPOPULARC}</span></td>
<td width="29%" class="row2" align="left" valign="middle"><span class="gensmall">{topicrecentpopular.TOPICSPOPULARVIEW}</span></td>
<td width="6%" class="row2" align="center" valign="middle"><span class="gensmall">{topicrecentpopular.TOPICSPOPULARVIEWC}</span></td>
</tr>
<!-- END topicrecentpopular -->
</table>
<br />
<!-- Top Topics on Index 1.1.0 - End Code Addition -->
#
#-----[ OPEN ]------------------------------------------
#
language/lang_english/lang_main.php
#
#-----[ FIND ]------------------------------------------
#
//
// That's all, Folks!
// -------------------------------------------------
#
#-----[ BEFORE, ADD ]------------------------------------------
#
//------------------------------------------------------------------------
// Top Topics on Index 1.1.0 - Begin Code Addition
//
$lang['TopicsRecent'] = "Recent Topics";
$lang['TopicsPopular'] = "Popular Topics (by reply)";
$lang['TopicsPopularView'] = "Popular Topics (by view)";
//
// Top Topics on Index 1.1.0 - End Code Addition
//------------------------------------------------------------------------
#
#-----[ OPEN ]------------------------------------------
#
language/lang_chinese_traditional_taiwan/lang_main.php
#
#-----[ FIND ]------------------------------------------
#
//
// That's all, Folks!
// -------------------------------------------------
#
#-----[ BEFORE, ADD ]------------------------------------------
#
//------------------------------------------------------------------------
// Top Topics on Index 1.1.0 - Begin Code Addition
//
$lang['TopicsRecent'] = "最新文章";
$lang['TopicsPopular'] = "最多回覆文章";
$lang['TopicsPopularView'] = "最多觀看文章";
//
// Top Topics on Index 1.1.0 - End Code Addition
//------------------------------------------------------------------------
#
#-----[ OPEN ]------------------------------------------
#
index.php
#
#-----[ FIND ]------------------------------------------
#
//
// Okay, let's build the index
//
#
#-----[ BEFORE, ADD ]------------------------------------------
#
//------------------------------------------------------------------------
// Top Topics on Index 1.1.0 - Begin Code Addition
//
$template->assign_vars(array(
'L_TOPICSRECENT' => $lang['TopicsRecent'],
'L_TOPICSPOPULAR' => $lang['TopicsPopular'],
'L_TOPICSPOPULARVIEW' => $lang['TopicsPopularView'])
);
// Get forum auth information to insure privacy of hidden topics
$topics_auth = auth(AUTH_ALL, AUTH_LIST_ALL, $userdata);
$topics_auth_sql = '';
foreach($topics_auth as $k=>$v)
{
if( $v['auth_view'] && $v['auth_read'] )
{
$topics_auth_sql .= (( empty($topics_auth_sql) ) ? '': ', ') . $k;
}
}
if( empty($topics_auth_sql) )
{
$template->assign_block_vars('topicrecentpopular', array(
'TOPICSPOPULAR' => $lang['No_Posts'],
'TOPICSPOPULARVIEW' => $lang['No_Posts'],
'TOPICSRECENT' => $lang['No_Posts']
));
}
else
{
//
// Okay, let's build the topic recent and popular
//
$active_topics_sql = 'SELECT t.topic_id, t.topic_title, t.topic_replies, t.topic_views, t.topic_last_post_id
FROM ' . TOPICS_TABLE . ' t, ' . FORUMS_TABLE. ' f
WHERE t.forum_id IN (' . $topics_auth_sql . ')
AND f.forum_id = t.forum_id
ORDER BY %1$s DESC
LIMIT 0,5';
$active_topics_sql_a = sprintf($active_topics_sql, 'topic_last_post_id');
$active_topics_sql_b = sprintf($active_topics_sql, 'topic_replies');
$active_topics_sql_c = sprintf($active_topics_sql, 'topic_views');
$recent_row = $popular_row = $viewed_row = array();
if( !$active_topics_a = $db->sql_query($active_topics_sql_a))
{
message_die(GENERAL_ERROR, 'Could not retrieve recent topics', '', __LINE__, __FILE__, $active_topics_sql_a);
}
$recent_row = $db->sql_fetchrowset($active_topics_a);
$db->sql_freeresult($active_topics_a);
if( !$active_topics_b = $db->sql_query($active_topics_sql_b))
{
message_die(GENERAL_ERROR, 'Could not retrieve popular topics', '', __LINE__, __FILE__, $active_topics_sql_b);
}
$popular_row = $db->sql_fetchrowset($active_topics_b);
$db->sql_freeresult($active_topics_b);
if( !$active_topics_c = $db->sql_query($active_topics_sql_c))
{
message_die(GENERAL_ERROR, 'Could not retrieve most viewed topics', '', __LINE__, __FILE__, $active_topics_sql_c);
}
$viewed_row = $db->sql_fetchrowset($active_topics_c);
$db->sql_freeresult($active_topics_c);
for( $i = 0; $i < 5; $i++ )
{
$recent_topic_title = $recent_row[$i]['topic_title'];
$popular_topic_title = $popular_row[$i]['topic_title'];
$viewed_topic_title = $viewed_row[$i]['topic_title'];
if( strlen($recent_topic_title) > 40 )
{
$recent_topic_title = substr($recent_topic_title, 0, 40) . '...';
}
if( strlen($popular_topic_title) > 40 )
{
$popular_topic_title = substr($popular_topic_title, 0, 40) . '...';
}
if( strlen($viewed_topic_title) > 40 )
{
$viewed_topic_title = substr($viewed_topic_title, 0, 40) . '...';
}
$recent_post = '<a href="viewtopic.php?' . POST_TOPIC_URL . '=' . $recent_row[$i]['topic_id'] . '" title="' . $recent_row[$i]['topic_title'] . '">' . $recent_topic_title . '</a>';
$popular_post = '<a href="viewtopic.php?' . POST_TOPIC_URL . '=' . $popular_row[$i]['topic_id'] . '" title="' . $popular_row[$i]['topic_title'] . '">' . $popular_topic_title . '</a>';
$popular_total_replies = $popular_row[$i]['topic_replies'];
$viewed_post = '<a href="viewtopic.php?' . POST_TOPIC_URL . '=' . $viewed_row[$i]['topic_id'] . '" title="' . $viewed_row[$i]['topic_title'] . '">' . $viewed_topic_title . '</a>';
$viewed_total_replies = $viewed_row[$i]['topic_views'];
$template->assign_block_vars('topicrecentpopular', array(
'TOPICSPOPULAR' => $popular_post,
'TOPICSPOPULARC' => $popular_total_replies,
'TOPICSPOPULARVIEW' => $viewed_post,
'TOPICSPOPULARVIEWC' => $viewed_total_replies,
'TOPICSRECENT' => $recent_post)
);
}
}
//
// Top Topics on Index 1.1.0 - End Code Addition
//------------------------------------------------------------------------
#
#-----[ OPEN ]------------------------------------------
#
templates/fisubSilver/index_box.tpl
#
#-----[ FIND ]------------------------------------------
#
<!-- BEGIN catrow -->
<!-- BEGIN tablehead -->
<table width="100%" cellpadding="2" cellspacing="1" border="0" class="forumline">
#
#-----[ BEFORE, ADD ]------------------------------------------
#
<!-- Top Topics on Index 1.1.0 - Begin Code Addition -->
<table width="100%" cellpadding="2" cellspacing="1" border="0" class="forumline">
<tr>
<th width="25%" class="thTop" nowrap="nowrap"> {L_TOPICSRECENT} </th>
<th width="38%" colspan="2" class="thTop" nowrap="nowrap"> {L_TOPICSPOPULAR} </th>
<th width="37%" colspan="2" class="thTop" nowrap="nowrap"> {L_TOPICSPOPULARVIEW} </th>
</tr>
<!-- BEGIN topicrecentpopular -->
<tr>
<td width="29%" class="row2" align="left" valign="middle"><span class="gensmall">{topicrecentpopular.TOPICSRECENT}</span></td>
<td width="31%" class="row2" align="left" valign="middle"><span class="gensmall">{topicrecentpopular.TOPICSPOPULAR}</span></td>
<td width="6%" class="row2" align="center" valign="middle"><span class="gensmall">{topicrecentpopular.TOPICSPOPULARC}</span></td>
<td width="29%" class="row2" align="left" valign="middle"><span class="gensmall">{topicrecentpopular.TOPICSPOPULARVIEW}</span></td>
<td width="6%" class="row2" align="center" valign="middle"><span class="gensmall">{topicrecentpopular.TOPICSPOPULARVIEWC}</span></td>
</tr>
<!-- END topicrecentpopular -->
</table>
<br />
<!-- Top Topics on Index 1.1.0 - End Code Addition -->
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# End
Integrated Toplist 部份:
代碼: 選擇全部
#
#-----[ OPEN ]------------------------------------------
#
portal.php
#
#-----[ FIND ]------------------------------------------
#
$is_auth_ary = array();
$is_auth_ary = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata, $forum_data);
#
#-----[ AFTER, ADD ]------------------------------------------
#
//
// Integrated Toplist 1.0.3 by bu Based on OOHOO's ADV-TOP5 (20050119)
//
// This work is licensed under the Creative Commons Attribution-ShareAlike License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/2.0/
//
// MOD START
//
// Option of Toplist Start
//
// Topics text length
$MAX_STR_LEN = 60;
// Topics to display (Default: 5)
$MAX_TOPICS = 5;
// 0 => users can see all topics including authorized issue(but they cant read the posts)
// 1 => users can see only authorized topics
$AUTH_SECRUITY = 1;
// Order by
// topic_last_post_id (Default)
// topic_replies
// topic_views
$sortby="topic_last_post_id";
//
// Option of Toplist End
//
function cutStr($str) {
global $MAX_STR_LEN;
$str = (strlen($str) > $MAX_STR_LEN) ? (substr($str, 0, $MAX_STR_LEN - 1) . "...") : $str;
return $str;
}
// Find which forums are visible for this user
$is_auth_ary_top5 = array();
$is_auth_ary_top5 = auth(AUTH_READ, AUTH_LIST_ALL, $userdata);
$auth_forum_ary_top5 = array();
// Get forum info
$sql = "SELECT forum_id FROM " . FORUMS_TABLE;
if( !$q_forums = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Toplist ERROR: Fetch forum info fail', __LINE__, __FILE__, $sql);
}
// Authorized forums info
while( $forum_row = $db->sql_fetchrow($q_forums) )
{
$forum_id1 = $forum_row['forum_id'];
if( $is_auth_ary_top5[$forum_id1]['auth_read'] == 1)
{
if(function_exists("array_push"))
{
array_push($auth_forum_ary_top5, $forum_id1);
} else {
$auth_id=count($auth_forum_ary_top5);
$auth_forum_ary_top5[$auth_id]=$forum_id1;
}
}
}
if( sizeOf($auth_forum_ary_top5) == 0 || !$AUTH_SECRUITY )
{
$auth_forums_top5 = "";
}
else
{
$auth_forums_top5 = 'AND f.forum_id IN(';
if(sizeOf($auth_forum_ary_top5) > 1)
{
$auth_forums_top5 .= implode (',', $auth_forum_ary_top5);
}
else
{
$auth_forums_top5 .= $auth_forum_ary_top5[0];
}
$auth_forums_top5 .= ')';
}
// query
$sql = "SELECT topic_id, topic_title, topic_poster, topic_views, topic_replies, topic_last_post_id, f.forum_id, forum_name
FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f
WHERE t.forum_id = f.forum_id
AND topic_moved_id = '0'
$auth_forums_top5
ORDER BY $sortby DESC LIMIT 0, $MAX_TOPICS";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Toplist ERROR: Fetch topic info fail', __LINE__, __FILE__, $sql);
}
// fetch rows
while( $rows = $db->sql_fetchrow($result) )
{
$topic_url = append_sid("viewtopic.$phpEx?t=" . $rows['topic_id']);
$forum_url = append_sid("viewforum.$phpEx?f=" . $rows['forum_id']);
$topic_poster = $rows['topic_poster'];
$topic_last_post_id = $rows['topic_last_post_id'];
// Grab topic poster and last replier data
$sql = "SELECT post_username, user_id, username
FROM " . POSTS_TABLE . ", " . USERS_TABLE . "
WHERE topic_id = '" . $rows['topic_id'] . "'
AND poster_id = user_id
ORDER BY post_id LIMIT 0, 1";
if( !$p_result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Toplist ERROR: Fetch topic poster fail', __LINE__, __FILE__, $sql);
}
$p_row = $db->sql_fetchrow($p_result);
$poster_name = ( $topic_poster != ANONYMOUS ) ? $p_row['username'] : ( !$p_row['post_username'] ? $lang['Guest'] : $p_row['post_username']);
$poster_url = ( $topic_poster != ANONYMOUS && !$p_row['post_username'] ) ? ('<a href="' . append_sid("profile.$phpEx?mode=viewprofile&u=$topic_poster") . '" target="_top">' . "$poster_name</a>") : $poster_name;
$sql = "SELECT post_username, user_id, username, post_time
FROM " . POSTS_TABLE . ", " . USERS_TABLE . "
WHERE post_id = '$topic_last_post_id'
AND poster_id = user_id";
if( !$r_result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Toplist ERROR: Fetch topic last replier fail', __LINE__, __FILE__, $sql);
}
$r_row = $db->sql_fetchrow($r_result);
$replier_id = $r_row['user_id'];
$replier_name = ( $replier_id != ANONYMOUS ) ? $r_row['username'] : ( !$r_row['post_username'] ? $lang['Guest'] : $r_row['post_username']);
$replier_url = ( $replier_id != ANONYMOUS && !$r_row['post_username'] ) ? ('<a href="' . append_sid("profile.$phpEx?mode=viewprofile&u=$replier_id") . '" target="_top">' . "$replier_name</a>") : $replier_name;
$last_post_url = append_sid("viewtopic.$phpEx?p=$topic_last_post_id#$topic_last_post_id");
$template->assign_block_vars("toprow", array(
'FORUM_NAME' => $rows['forum_name'],
'FORUM_URL' => $forum_url,
'TOPIC' => cutStr($rows['topic_title']),
'TOPIC_URL' => $topic_url,
'TOPIC_VIEWS' => $rows['topic_views'],
'TOPIC_REPLIES' => $rows['topic_replies'],
'POST_TIME' => create_date($board_config['default_dateformat'], $r_row['post_time'], $board_config['board_timezone']),
'POSTER_URL' => $poster_url,
'REPLIER_URL' => $replier_url,
'LAST_POST_URL' => $last_post_url
));
}
// MOD END
//
// Integrated Toplist 1.0.3 by bu Based on OOHOO's ADV-TOP5 (20050119)
//
#
#-----[ FIND ]------------------------------------------
#
'L_POSTER' => $lang['Poster'],
'L_POSTED' => $lang['Posted'],
// End add - Photo Album Block
#
#-----[ AFTER, ADD ]------------------------------------------
#
'ICON_URL' => $images['icon_latest_reply'],
'ICON_ALT' => $lang['View_latest_post'],
'L_AUTHOR' => $lang['Author'],
'L_LASTPOST' => $lang['Last_Post'],
#
#-----[ OPEN ]------------------------------------------
#
templates/fisubSilver/portal_body.tpl
#
#-----[ FIND ]------------------------------------------
#
<!-- BEGIN news_categories -->
<table width="100%" cellpadding="2" cellspacing="1" border="0" class="forumline">
<tr>
#
#-----[ BEFORE, ADD ]------------------------------------------
#
<table width="100%" border="0" cellpadding="2" cellspacing="1" class="forumline">
<tr>
<!--<th align="center" class="thCornerL" nowrap="nowrap"> {L_FORUM} </th>-->
<th align="center" class="thTop" nowrap="nowrap"> TOP5 {L_TOPICS} </th>
<th align="center" class="thTop" nowrap> {L_AUTHOR} </th>
<th align="center" class="thTop" nowrap"> {L_REPLIES} </th>
<th align="center" class="thTop" nowrap> {L_VIEWS} </th>
<th align="center" class="thCornerR" nowrap> {L_LASTPOST} </th>
</tr>
<!-- BEGIN toprow -->
<tr>
<!--<td class="row1" nowrap><span class="gensmall"><a href="{toprow.FORUM_URL}" target="_top">{toprow.FORUM_NAME}</a></span></td>-->
<td class="row2" nowrap><span class="gensmall"><a href="{toprow.TOPIC_URL}" target="_top">{toprow.TOPIC}</a></span></td>
<td class="row1" align="center" nowrap><span class="gensmall">{toprow.POSTER_URL}</span></td>
<td class="row2" align="center" nowrap><span class="gensmall">{toprow.TOPIC_REPLIES}</span></td>
<td class="row1" align="center" nowrap><span class="gensmall">{toprow.TOPIC_VIEWS}</span></td>
<td class="row2" align="center" nowrap><span class="gensmall">{toprow.POST_TIME}<br />{toprow.REPLIER_URL} <a href="{toprow.LAST_POST_URL}" target="_top"><img src="{ICON_URL}" border="0" alt="{ICON_ALT}" /></a></span></td>
</tr>
<!-- END toprow -->
</table>
<br />
#
#-----[ OPEN ]------------------------------------------
#
index.php
#
#-----[ FIND ]------------------------------------------
#
//
// Okay, let's build the index
//
#
#-----[ BEFORE, ADD ]------------------------------------------
#
//
// Integrated Toplist 1.0.3 by bu Based on OOHOO's ADV-TOP5 (20050119)
//
// This work is licensed under the Creative Commons Attribution-ShareAlike License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/2.0/
//
// MOD START
//
// Option of Toplist Start
//
// Topics text length
$MAX_STR_LEN = 60;
// Topics to display (Default: 5)
$MAX_TOPICS = 5;
// 0 => users can see all topics including authorized issue(but they cant read the posts)
// 1 => users can see only authorized topics
$AUTH_SECRUITY = 1;
// Order by
// topic_last_post_id (Default)
// topic_replies
// topic_views
$sortby="topic_last_post_id";
//
// Option of Toplist End
//
function cutStr($str) {
global $MAX_STR_LEN;
$str = (strlen($str) > $MAX_STR_LEN) ? (substr($str, 0, $MAX_STR_LEN - 1) . "...") : $str;
return $str;
}
// Find which forums are visible for this user
$is_auth_ary_top5 = array();
$is_auth_ary_top5 = auth(AUTH_READ, AUTH_LIST_ALL, $userdata);
$auth_forum_ary_top5 = array();
// Get forum info
$sql = "SELECT forum_id FROM " . FORUMS_TABLE;
if( !$q_forums = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Toplist ERROR: Fetch forum info fail', __LINE__, __FILE__, $sql);
}
// Authorized forums info
while( $forum_row = $db->sql_fetchrow($q_forums) )
{
$forum_id1 = $forum_row['forum_id'];
if( $is_auth_ary_top5[$forum_id1]['auth_read'] == 1)
{
if(function_exists("array_push"))
{
array_push($auth_forum_ary_top5, $forum_id1);
} else {
$auth_id=count($auth_forum_ary_top5);
$auth_forum_ary_top5[$auth_id]=$forum_id1;
}
}
}
if( sizeOf($auth_forum_ary_top5) == 0 || !$AUTH_SECRUITY )
{
$auth_forums_top5 = "";
}
else
{
$auth_forums_top5 = 'AND f.forum_id IN(';
if(sizeOf($auth_forum_ary_top5) > 1)
{
$auth_forums_top5 .= implode (',', $auth_forum_ary_top5);
}
else
{
$auth_forums_top5 .= $auth_forum_ary_top5[0];
}
$auth_forums_top5 .= ')';
}
// query
$sql = "SELECT topic_id, topic_title, topic_poster, topic_views, topic_replies, topic_last_post_id, f.forum_id, forum_name
FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f
WHERE t.forum_id = f.forum_id
AND topic_moved_id = '0'
$auth_forums_top5
ORDER BY $sortby DESC LIMIT 0, $MAX_TOPICS";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Toplist ERROR: Fetch topic info fail', __LINE__, __FILE__, $sql);
}
// fetch rows
while( $rows = $db->sql_fetchrow($result) )
{
$topic_url = append_sid("viewtopic.$phpEx?t=" . $rows['topic_id']);
$forum_url = append_sid("viewforum.$phpEx?f=" . $rows['forum_id']);
$topic_poster = $rows['topic_poster'];
$topic_last_post_id = $rows['topic_last_post_id'];
// Grab topic poster and last replier data
$sql = "SELECT post_username, user_id, username
FROM " . POSTS_TABLE . ", " . USERS_TABLE . "
WHERE topic_id = '" . $rows['topic_id'] . "'
AND poster_id = user_id
ORDER BY post_id LIMIT 0, 1";
if( !$p_result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Toplist ERROR: Fetch topic poster fail', __LINE__, __FILE__, $sql);
}
$p_row = $db->sql_fetchrow($p_result);
$poster_name = ( $topic_poster != ANONYMOUS ) ? $p_row['username'] : ( !$p_row['post_username'] ? $lang['Guest'] : $p_row['post_username']);
$poster_url = ( $topic_poster != ANONYMOUS && !$p_row['post_username'] ) ? ('<a href="' . append_sid("profile.$phpEx?mode=viewprofile&u=$topic_poster") . '" target="_top">' . "$poster_name</a>") : $poster_name;
$sql = "SELECT post_username, user_id, username, post_time
FROM " . POSTS_TABLE . ", " . USERS_TABLE . "
WHERE post_id = '$topic_last_post_id'
AND poster_id = user_id";
if( !$r_result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Toplist ERROR: Fetch topic last replier fail', __LINE__, __FILE__, $sql);
}
$r_row = $db->sql_fetchrow($r_result);
$replier_id = $r_row['user_id'];
$replier_name = ( $replier_id != ANONYMOUS ) ? $r_row['username'] : ( !$r_row['post_username'] ? $lang['Guest'] : $r_row['post_username']);
$replier_url = ( $replier_id != ANONYMOUS && !$r_row['post_username'] ) ? ('<a href="' . append_sid("profile.$phpEx?mode=viewprofile&u=$replier_id") . '" target="_top">' . "$replier_name</a>") : $replier_name;
$last_post_url = append_sid("viewtopic.$phpEx?p=$topic_last_post_id#$topic_last_post_id");
$template->assign_block_vars("toprow", array(
'FORUM_NAME' => $rows['forum_name'],
'FORUM_URL' => $forum_url,
'TOPIC' => cutStr($rows['topic_title']),
'TOPIC_URL' => $topic_url,
'TOPIC_VIEWS' => $rows['topic_views'],
'TOPIC_REPLIES' => $rows['topic_replies'],
'POST_TIME' => create_date($board_config['default_dateformat'], $r_row['post_time'], $board_config['board_timezone']),
'POSTER_URL' => $poster_url,
'REPLIER_URL' => $replier_url,
'LAST_POST_URL' => $last_post_url
));
}
// MOD END
//
// Integrated Toplist 1.0.3 by bu Based on OOHOO's ADV-TOP5 (20050119)
//
#
#-----[ FIND ]------------------------------------------
#
'L_POSTS' => $lang['Posts'],
'L_LASTPOST' => $lang['Last_Post'],
#
#-----[ AFTER, ADD ]------------------------------------------
#
'ICON_URL' => $images['icon_latest_reply'],
'ICON_ALT' => $lang['View_latest_post'],
'L_AUTHOR' => $lang['Author'],
#
#-----[ OPEN ]------------------------------------------
#
templates/fisubSilver/index_box.tpl
#
#-----[ FIND ]------------------------------------------
#
<!-- BEGIN catrow -->
<!-- BEGIN tablehead -->
<table width="100%" cellpadding="2" cellspacing="1" border="0" class="forumline">
#
#-----[ BEFORE, ADD ]------------------------------------------
#
<table width="100%" border="0" cellpadding="2" cellspacing="1" class="forumline">
<tr>
<!--<th align="center" class="thCornerL" nowrap="nowrap"> {L_FORUM} </th>-->
<th align="center" class="thTop" nowrap="nowrap"> TOP5 {L_TOPICS} </th>
<th align="center" class="thTop" nowrap> {L_AUTHOR} </th>
<th align="center" class="thTop" nowrap"> {L_REPLIES} </th>
<th align="center" class="thTop" nowrap> {L_VIEWS} </th>
<th align="center" class="thCornerR" nowrap> {L_LASTPOST} </th>
</tr>
<!-- BEGIN toprow -->
<tr>
<!--<td class="row1" nowrap><span class="gensmall"><a href="{toprow.FORUM_URL}" target="_top">{toprow.FORUM_NAME}</a></span></td>-->
<td class="row2" nowrap><span class="gensmall"><a href="{toprow.TOPIC_URL}" target="_top">{toprow.TOPIC}</a></span></td>
<td class="row1" align="center" nowrap><span class="gensmall">{toprow.POSTER_URL}</span></td>
<td class="row2" align="center" nowrap><span class="gensmall">{toprow.TOPIC_REPLIES}</span></td>
<td class="row1" align="center" nowrap><span class="gensmall">{toprow.TOPIC_VIEWS}</span></td>
<td class="row2" align="center" nowrap><span class="gensmall">{toprow.POST_TIME}<br />{toprow.REPLIER_URL} <a href="{toprow.LAST_POST_URL}" target="_top"><img src="{ICON_URL}" border="0" alt="{ICON_ALT}" /></a></span></td>
</tr>
<!-- END toprow -->
</table>
<br />
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM