Mir ist aufgefallen, dass es man den Fluid Code zwar sehr schön formatieren kann, es aber nicht unbedingt schön in der Ausgabe aussieht. Jedes If führt in der Ausgabe zu einem Zeilenumbruch, was im Endeffekt zu einem unnötig langen HTML-Code führt. Also habe ich einen Trim-ViewHelper geschrieben. Dieser geht ein bisschen über das einfache trim von PHP hinaus – es werden alle Zeilenumbrüche und doppelte Leerzeichen entfernt, da sie in der Darstellung von HTML keine Rolle spielen. Und das ist der Code von meinem ViewHelper (namespace bitte selbst einsetzen):
class TrimViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper { /** * @param mixed $value The value to output * @return string */ public function render($value = NULL) { if ($value === NULL) { $value = $this->renderChildren(); } // remove new line - does not matter in html anyway $value = str_replace(chr(10), '', $value); // remove multiple whitespaces $value = preg_replace ('#\s+#' , ' ' , $value); return trim($value); } }
Namespace richtig setzten!??
Sorry, ich bring das nicht hin. Ich muss doch “nur” in der template.html folgenden Namespace eintragen:
{namespace fn=\TYPO3\so_exe\Classes\ViewHelpers}
und dann sollte ich doch den Viewhelper so verwenden können?
<fn:trim>12
34</fn:trim>
Wieso bring ich das nicht fertig!?!? 🙁 [TYPO3v6.0]