Added a select so only active and approved articles are listed, and also a sort in the articles on position (ascending) and date (descending, so newer on top)
global $smcFunc, $scripturl, $modSettings, $settings, $txt;
// Retrieve the articles.
$request = $smcFunc['db_query']('', '
SELECT art.subject, art.id, art.parse, art.date, var.value1 AS category_name
FROM ({db_prefix}tp_articles AS art)
LEFT JOIN {db_prefix}tp_variables AS var ON (var.id = art.category)
WHERE art.approved = 1 and art.off = 0
ORDER BY value1, parse, date DESC',);
$articles = array();
while ($row = $smcFunc['db_fetch_assoc']($request)) {
$articles[] = array(
'subject' => $row['subject'],
'id' => $row['id'],
'category_name' => $row['category_name'],
);
}
$smcFunc['db_free_result']($request);
echo '
<ul style="list-style-type: none; margin-left: 0; padding-left: 0;">';
if (empty($articles)) {
echo '
No articles Available';
}
else
$category = '';
foreach ($articles as $article)
{
$category2 = $article['category_name'];
if($category != $category2){
echo'
<li><b><i><u>', $category2 ,'</u></i></b></li>';
$category = $category2;
}
$category3 = $article['category_name'];
if($category3 == $category2){
echo '
<li style="margin-left: 7px"><font size="1"><a href="', $scripturl ,'?page=', $article['id'], '"><b>', $article['subject'], '</b></a></font></li>';
}
}
echo '
</ul>';