Joomla-Archiv nach Jahren gruppieren

Joomla! bietet über das Archiv-Modul die Möglichkeit, archivierte Beiträge nach Jahr und Monat gruppiert anzuzeigen. Bei weniger umfangreichen Webseiten macht jedoch eine Gruppierung nur nach Jahr mehr Sinn.

Leider bietet Joomla! da nicht die Möglichkeit, das irgendwo im Backend einzustellen. Man muss hier also an die PHP-Dateien direkt heran gehen. Zu ändern sind in diesem Fall drei Dateien:

gilt für Version 1.5.9)

In der Datei components/com_content/models/archive.php muss folgender Code auskommentiert oder entfernt werden:

/*$month = JRequest::getInt( 'month' );
   if ($month) {
      $where .= ' AND MONTH( a.created ) = \''.$month.'\'';
   }*/

Um das Formularfeld für die Filterfunktion zu entfernen muss in der Datei components/com_content/views/archive/view.html.php folgende Zeile auskommentiert oder entfernt werden:

//$form->monthField = JHTML::_('select.genericlist', $months, 'month', 'size="1" class="inputbox"', 'value', 'text', $month );  

Für die Gruppierung im Archiv-Menü müssen in der Datei modules/mod_archive/helper.php an folgenden zwei Stellen Änderungen vorgenommen werden:

In der SQL-Abfrage muss die Gruppierung nach Monat enfernt werden:

$query = 'SELECT MONTH( created ) AS created_month, created, id, sectionid, title, YEAR(created) AS created_year' .
   ' FROM #__content' .
   ' WHERE ( state = -1 AND checked_out = 0 )' .
   ' GROUP BY created_year DESC'; /*, created_month DESC*/

Bei der Ausgabe soll nur das Jahr als Text angezeigt werden:

$lists[$i]->text  = /*$month_name.', '.*/$created_year;

Hat dir der Artikel gefallen? Sag's weiter ...

Button Facebook Teilen    Tweet-Button    Button Delicious