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

One Response to “Dynamische Seitentitel mit Symfony”

  1. Symfony: Dynamische Meta-Tags « Der Anti-Hype Says:

    [...] es aber sinnvoller wenn diese auch dynamisch wären. Dies geht relativ einfach wenn man wie beim Artikel zu dynamischen Seitentiteln die sfActions Klasse [...]

Leave a Reply