Tak mniej więcej wygląda topic:
// Shows the top topics.
function ssi_topTopics($type = 'replies', $num_topics = 10, $output_method = 'echo')
{
global $db_prefix, $txt, $scripturl, $user_info, $modSettings, $smcFunc, $context;
if ($modSettings['totalMessages'] > 100000)
{
// !!! Why don't we use {query(_wanna)_see_board}?
$request = $smcFunc['db_query']('', '
SELECT id_topic
FROM {db_prefix}topics
WHERE num_' . ($type != 'replies' ? 'views' : 'replies') . ' != 0' . ($modSettings['postmod_active'] ? '
AND approved = {int:is_approved}' : '') . '
ORDER BY num_' . ($type != 'replies' ? 'views' : 'replies') . ' DESC
LIMIT {int:limit}',
'is_approved' => 1,
'limit' => $num_topics > 100 ? ($num_topics + ($num_topics / 2)) : 100,
)
);
while ($row = $smcFunc['db_fetch_assoc']($request))
$topic_ids[] = $row['id_topic'];
$smcFunc['db_free_result']($request);
}
else
$request = $smcFunc['db_query']('', '
SELECT m.subject, m.id_topic, t.num_views, t.num_replies
FROM {db_prefix}topics AS t
INNER JOIN {db_prefix}messages AS m ON (m.id_msg = t.id_first_msg)
INNER JOIN {db_prefix}boards AS b ON (b.id_board = t.id_board)
WHERE {query_wanna_see_board}' . ($modSettings['postmod_active'] ? '
AND t.approved = {int:is_approved}' : '') . (!empty($topic_ids) ?
' AND t.id_topic IN ({array_int:topic_list})' : '') . (!empty($modSettings['recycle_enable']) && $modSettings['recycle_board'] > 0 ?
' AND b.id_board != {int:recycle_enable}' : '') . '
ORDER BY t.num_' . ($type != 'replies' ? 'views' : 'replies') . ' DESC
LIMIT {int:limit}',
'topic_list' => $topic_ids,
'is_approved' => 1,
'recycle_enable' => $modSettings['recycle_board'],
'limit' => $num_topics,
)
);
while ($row = $smcFunc['db_fetch_assoc']($request))
{
censorText($row['subject']);
'id' => $row['id_topic'],
'subject' => $row['subject'],
'num_replies' => $row['num_replies'],
'num_views' => $row['num_views'],
'href' => $scripturl . '?topic=' . $row['id_topic'] . '.0',
'link' => '<a href="' . $scripturl . '?topic=' . $row['id_topic'] . '.0">' . $row['subject'] . '</a>',
);
}
$smcFunc['db_free_result']($request);
if ($output_method != 'echo' || empty($topics)) return $topics;
<table class="ssi_table">
<tr>
<th align="left"></th>
<th align="left">', $txt['views'], '</th>
<th align="left">', $txt['replies'], '</th>
</tr>';
foreach ($topics as $topic)
<tr>
<td align="left">
', $topic['link'], '
</td>
<td align="right">', comma_format($topic['num_views']), '</td>
<td align="right">', comma_format($topic['num_replies']), '</td>
</tr>';
</table>';
}