Dynamische Seitentitel mit Symfony
14. Januar 2008
Für manche Seiten ist es notwenig, dass der Seitentitel dynamisch angepasst wird. Das sieht zum einen schöner aus und ist weiterhin auch praktisch für Suchmaschinen und diverse Bookmarking-Dienste.
Eine Lösung bietet der Artikel Dynamically adjusting your page title in symfony. Mit ein wenig Anpassung kann man damit auch mehrere Ebenen unterstützen:
class myActions extends sfActions
{
public function setPageTitle($titles)
{
$response = $this->getResponse();
if(!is_array($titles)) $titles = array($titles);
$mainTitle = sfConfig::get('app_title');
$delimeter = ' '.sfConfig::get('app_delimeter', '»').' ';
$response->setTitle($mainTitle.$delimeter.implode($delimeter, $titles), false);
}
}
Jede actions-Klasse, die jetzt von myActions abgeleitet ist, statt von sfActions kann nun einen dynamischen Titel setzen:
class moduleActions extends myActions
{
public function executeIndex()
{
$this->setPageTitle(array(
'Blogs',
'Antihype',
'Seite 5'
));
return sfView::SUCCESS;
}
}
Der Seitenname und das Trennzeichen werden in der app.yml angegeben:
app: title: wordpress.com delimeter: »
Mit dieser Konfiguration würde das obige Beispiel folgenden Seitentitel setzen:
wordpress.com » Blogs » AntiHype » Seite 5

6. Mai 2008 at 13:14
[...] es aber sinnvoller wenn diese auch dynamisch wären. Dies geht relativ einfach wenn man wie beim Artikel zu dynamischen Seitentiteln die sfActions Klasse [...]