Tutorials
Einige nützliche Hilfen und Code-Schnipsel, die ich immer wieder benötige und deshalb hier für alle sammle.
Zurück zur Übersicht
TYPO3 Fluid: Viewhelper für Überschriften mit H-Tag in Gridelements
#Tutorials#TYPO3
Ich beschäftige mich gerade mit Fluid und Gridelements und der neuen TYPO 6.2 Version und wollte das Überschriften-Feld benutzen, aber inklusive dem Styling. Da ich nichts finden konnte, ob das von sich aus geht, habe ich kurzerhand einen Viewhelper geschrieben.
<?php
class Testviewhelper_ViewHelpers_HeadlineViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper{
public function initializeArguments(){
$this->registerArgument( 'header', 'mixed', '');
$this->registerArgument( 'layout', 'mixed', '');
}
public function render() {
$header = $this->arguments['header'];
$layout = $this->arguments['layout'];
if(!$layout || $layout == 0) $layout = 1;
$headline = ($layout != 100 && $header != '') ? '<h'.$layout.'>'.$header.'</h'.$layout.'>' : '';
return $headline;
}
}
Um das Ganze nun in eurem Template zu verwenden einfach folgendes machen:
{namespace ak=Tx_Testviewhelper_ViewHelpers}
<ak:Headline header="{data.header}" layout="{data.header_layout}" />
Ich hoffe ich konnte helfen!
Nachtrag
Dank an Philipp Hanebrink, der eine elegante und einfachere Lösung für das Problem parat hatte. Man kann sich den Viewhelper sparen und stattdessen im Fluid-Template einfach Folgendes benutzen:
<f:cObject data="{data}" typoscriptObjectPath="lib.stdheader" />
Kommentare
Kleiner Hinweis: In deinem Nachtrag im cObject fehlt ein Slash am Ende. Ohne den kriegt man sonst Fehler im Frontend.
So müsste es korrekt heißen:
<f:cObject data=“{data}“ typoscriptObjectPath=“lib.stdheader“/>
vielen Dank für deinen Kommentar. Habe es repariert.
Grüße
André
Man kann entweder den Header automatisch über jedem Gridelement anzeigen lassen:
tt_content.gridelements_pi1.10 = <lib.stdheader
oder für mehr Kontrolle über die Position im Fluid-Template:
Grüße
Hinterlasse einen Kommentar