fluid-Pagebrowser: Übersetzung und Templating via Dependency Injection
Von Thomas Heilmann, veröffentlicht am 06.06.2011
Der fluid-Pagebrowser von TYPO3 ist ein praktisches Widget – derzeit ist er allerdings noch nicht lokalisierbar und man kann das Template nicht bearbeiten. Vermutlich wird es in einer zukünftigen Version eine Möglichkeit zur Konfiguration des Template-Pfads geben – auf jeden Fall gibt es schon einen Patch dafür. In der Zwischenzeit kann man den Pagebrowser über Dependency Injection recht elegant dazu bringen, ein anderes Template oder eine alternative Sprachversion zu verwenden.
Dazu muss man dem PaginateViewHelper einen alternativen Controller injizieren. Der neue Controller hat keine eigenen Methoden, er muss lediglich den Original-Controller erweitern:
<?php
class Tx_MyExtension_ViewHelpers_Widget_Controller_PaginateController extends Tx_Fluid_ViewHelpers_Widget_Controller_PaginateController {
}
?>
Im Extension-Ordner unter MyExtension/Resources/Private/Templates/ViewHelpers/Widget/Paginate/Index.html kann man jetzt eine Kopie des Original-Templates ablegen, die Texte übersetzen oder das Markup anpassen. Jetzt muss man extbase nur noch sagen, dass es statt des ursprünglichen Controllers unseren neuen Controller (und damit das zugehörige angepasste Template) verwenden soll. Das geht via Typoscript:
config.tx_extbase.objects {
Tx_Fluid_ViewHelpers_Widget_Controller_PaginateController {
className = Tx_MyExtension_ViewHelpers_Widget_Controller_PaginateController
}
}
Mit etwas Glück sollte der Pagebrowser jetzt das bearbeitete Template verwenden.