Der Rezeptecounter bei Joomla: fast alles schon da

Joomla hat schon einen eingebauten Hit-Counter, der per default bei jedem Beitrag angezeigt wird. Und es gibt ein konfigurierbares Modul Beiträge-beliebte, das einem die Beiträge mit den meisten Hits anzeigt, die Anzahl der angezeigten Beiträge und die Kategorien kann man einstellen. Was ich allerdings bislang nicht gefunden habe: eine Möglichkeit, auch die Anzahl der Hits zu jedem Beitrag auszugeben. Dabei bunkert Joomla die Hits zu jedem Beitrag in der Tabelle #__content, es wäre also ein leichtes, die mit auszugeben.

Ich hab mir dafür eine Mini-Lösung mit dem Sourcerer gebastelt, eine eigene Modul-Lösung ist mir für das bisschen Code zuviel Aufwand. Eigentlich braucht es dazu nur die ensprechend formulierte SQL-Query. Ich setze mal den Where auf die Kategorie Rezepte, die anderen interessieren mich eigentlich nicht.

$db = JFactory::getDBO();
$query = "SELECT * FROM #__content where catid = 8 and state = 1 order by hits desc limit 10";
$db->setQuery($query);
$results = $db->loadObjectList();

echo "<ul>";

foreach ($results as $rec){

echo "<li>".$rec->title." (".$rec->hits.")</li>";

}
echo "</ul>";

Das wars schon! Bittesehr, die Top Ten Rezepte mit Anzahl der Hits, (inclusive aller Tippfehler und Testbeiträge in der Testumgebung):

top_ten

top_ten

Nachtrag: die Links zu den Rezepten

Die wollen wir natürlich auch noch haben. Da ich in Joomla leider kein Äquivalent zu get_the_permalink() gefunden habe, gehts anders, da kommt JROUTE ins Spiel, das wird mit der ID des Artikels bedient. Ich leg mir die URL auf eine Variable, damits nicht so unübersichtlich wird. Die Ausgabe innerhalb des Foreach sieht dann so aus:

$url = JRoute::_('index.php?option=com_content&view=article&id='.$rec->id);
echo "<li><a href = '".$url."'>".$rec->title." (".$rec->hits.")</a></li>";

Damit erzeugen wir die Links zu den Rezepten, und das ist jetzt hübsch genug, dabei lass ich es.