Joomla Override – Pagination

Im folgenden Beitrag wird das Override-Verfahren der Joomla Paginierung beispielhaft veranschaulicht.

Joomla Pagination – Welche Datei ist für die Ausgabe zuständig?

Die Core-Datei ./libraries/joomla/html/pagination.php ist standardmäßig für die Ausgabe der Paginierung zuständig. Würde man diese Datei einfach in das html-Verzeichnis des eigenen Templates kopieren, kommt es zu einer fehlerhaften Anzeige. Des Weiteren kommt es zu einer Fehlermeldung: Fatal error: Cannot redeclare class JPagination in …\templates\DeinTemplate\html\pagination.php on line XXX.
Der Kopiervorgang war der erste korrekte Schritt des Overrides. Nun muss die Datei pagination.php nur noch entsprechend „gestutzt“ werden. Auf diese Weise verschwinden auch die Fehler.

Joomla Override

Folgende Zeilen sind für das weitere Verfahren nützlich und dienen als kleine Orientierung:

if (function_exists('pagination_item_active') && function_exists('pagination_item_inactive'))
{
$itemOverride = true;
}
if (function_exists('pagination_list_render'))
{
$listOverride = true;
}

Sofern also die oben genannten Funktionen vorhanden sind, wird das Override korrekt durchgeführt.
Im nächsten Schritt werden folgende Funktionen gesucht und umbenannt.
WICHTIGER HINWEIS: Die folgenden Anpassungen werden im Template (./templates/DeinTemplate/html/pagination.php) vorgenommen! Finger weg von Core-Dateien ;)

// OriginalFunktionen
protected function _item_active(&$item){}
protected function _item_inactive(&$item) {}
protected function _list_render($list) {}
// OverrideFunktionen
function pagination_item_active(&$item){}
function pagination_item_inactive(&$item) {}
function pagination_list_render($list) {}

pagination.php – Override-Datei

Und so könnte die Datei pagination.php aussehen:

<?php
/**
* Pagination Override
*/
defined('JPATH_PLATFORM') or die;
function pagination_item_active(&$item) {
[...]
}
function pagination_item_inactive(&$item) {
[...]
}
function pagination_list_render($list) {
[...]
}
?>

Durch eine anschließende Modifikation der 3 Funktionen können bestimmte Bereiche der Paginierung manipuliert bzw. individuell angepasst werden.
Fazit: Für das Joomla Override der Paginierung werden nur die oben genannten Funktionen benötigt.

Info: Diese Anpassung wurde mit dem CMS Joomla! 2.5.27 getestet.

One Response to “Joomla Override – Pagination”

Schreibe einen Kommentar

* Pflichtfelder