Seitentitel dynamisch Anpassen in TYPO3
Um den Seitentitel in TYPO3 dynamisch zu erzeugen, muss man zuerst den Standardseitentitel entfernen:
config.noPageTitle = 2
Danach einen neuen <title>-Tag dem Seitenkopf zuweisen:
page.headerData.10 = TEXT page.headerData.10.insertData=1 page.headerData.10.wrap = <title>|</title> page.headerData.10.value = Neuer Seitentitel
Der neue Seitentitel ist aber jetzt noch nicht Dynamisch sondern höchstens seitenspezifisch, damit wir einen Seitentitel dynamisch zum Inhalt der Seite bekommen, müssen wir erstens verhindern das TYPO3 den Seitentitel zwischenspeichert (cached), dies geschieht mit einem USER_INT Objekt:
page.headerData.10 = USER_INT
Und zweitens angeben, wie der Seitentitel erzeugt werden soll. Wir wollen dazu eine PHP Funktion verwenden, also müssen wir erst mal die PHP Bibliothek einbinden welche die Funktion zur Verfügung stellt.
In diesem und wohl in den meisten Fällen ist das eine Klasse in einer unserer Extensions:
includeLibs.tx_myext_myclass = typo3conf/ext/myext/class.tx_myclass.php
Schließlich weisen wir noch die richtige Methode aus dieser Klasse unserem USER_INT Objekt zu:
page.headerData.10 {
userFunc = tx_myclass->getPageTitle
}
In dieser PHP Funktion werden wir dann den Seitentitel erstellen und als Kompletten <title>-Tag zurückgeben:
<?php class tx_bmsymboldetailpage_facade { /** * Returns page title. * * @param string $content current TScript object content * @param array $conf TScript object configuration * * @return string page title tag */ static public function getPageTitle($content, array $conf) { global $TSFE; // site specific title $title = 'Meine Homepage'; // page title if (!empty($TSFE->page['tx_browserpagetitle_browser_title'])) { $title .= ' - ' . $TSFE->page['tx_browserpagetitle_browser_title']; } else { $title .= ' - ' . $TSFE->page['title']; } // content specific title $name = t3lib_div::_GP('name'); if (! empty($name)) { $title .= ' - ' . $name; } return '<title>' . htmlspecialchars($title) . '</title>'; } }
Beispiel
Seitensetup
# Standardseitentitel deaktivieren
config.noPageTitle = 2
# Bibliothek einbinden
includeLibs.tx_nrexample_facade = typo3conf/ext/nr_example/class.tx_nrexample_facade.php
# Seitenkopf um neuen <title>-Tag ergänzen
page.headerData.10 = USER_INT
page.headerData.10 {
userFunc = tx_nrexample_facade->getPageTitle
}
PHP Bibliothek
<?php declare(encoding = 'UTF-8'); /** * Example TYPO3 extension. * * PHP version 5 * * @category Example * @package Detailpage * @subpackage Frontend * @author Sebastian Mendel <sebastian.mendel@netresearch.de> */ /** * Facade for teh NR_Example TYPO3 Extension. * * @category Example * @package Detailpage * @subpackage Frontend * @author Sebastian Mendel <sebastian.mendel@netresearch.de> */ class tx_nrexample_facade { /** * Returns page title. * * @param string $content current TScript object content * @param array $conf TScript object configuration * * @return string page title */ static public function getPageSubtitle($content, $conf) { global $TSFE; $title = 'Netresearch Example'; if (!empty($TSFE->page['tx_browserpagetitle_browser_title'])) { $title .= ' - ' . $TSFE->page['tx_browserpagetitle_browser_title']; } else { $title .= ' - ' . $TSFE->page['title']; } $isin = t3lib_div::_GP('isin'); if (! empty($isin)) { $subtitle = self::getPageSubtitleIsin($isin); if (! empty($subtitle)) { $title .= ' - ' . $subtitle; } } return '<title>' . htmlspecialchars($title) . '</title>'; } /** * Returns ISIN and name of symbol. * * @param string $isin ISIN * * @return string ISIN and name of symbol */ static public function getPageSubtitleIsin($isin) { $symbol = NR_Symbol::getInstance($isin ); return $symbol->getIsin() . ' ' . $symbol->getName(); } }
Filed under: Neuigkeiten | No Comments »
Der Scrum-Pionier Joseph Pelrine vermittelte innerhalb eines halben Tages alles das, was man über diese agile Projektmanagement-Methode wissen muss. Besonders spannend waren in diesem Zusammenhang Josephs Erfahrungen mit Scrum, die von der Planung der eigenen Hochzeit über Bauprojekte bis hin zu großen Events führen. Joseph versuchte den Beteiligten (überwiegend, aber nicht ausschließlich, Onlinearbeiter) ein Grundverständnis der Planungsproblematiken zu vermitteln, aus denen sich agile Methoden wie Scrum oder XP herausgebildet haben. Mein Resümee: Netresearch setzt agile Methoden nun schon seit einiger Zeit ein. Dennoch war der Grundlagenworkshop – insbesondere in Hinblick auf die Reflektion des eigenen Verständnisses – äußerst interessant.
Trotz des erweiterten Konzepts von „Meet-Magento“ wird es eine ausgewogene Mischung aus Business Kongress mit angrenzenden Ausstellerflächen und Community-Treff geben, wobei die Community klares Kernzielpublikum bleibt. Dementsprechend kommen Gelegenheiten für den fachlichen und privaten Austausch nicht zu kurz. Am Abend des ersten Veranstaltungstages hat die Community die Gelegenheit, sich auf der After Show Party „offline“ und in lockerer Atmosphäre kennen zu lernen.


„Wir planen schon seit langem einen SCRUM Entwickler-Workshop und freuen uns sehr, dass es uns gelungen ist, den SCRUM „Guru“ Joseph Pelrine zu gewinnen.“ sagt Netresearch Geschäftsführer Thomas Fleck. Zusammen mit dem IT-Beratungsunternehmen Itemis holt er erstmals einen SCRUM Workshop nach Mitteldeutschland, ins thüringische Jena.