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.
Hallo Caroline,
… und wie funktioniert das nun in Joomla 3.4.
Dort ist nämlich leider alles anders.
Die Datei: pagination.php
befindet sich jetzt in: ../libraries/cms/pagination
viele Grüße
Hans-Günter