giovedì 15 ottobre 2009

Lyra, gestione metatag articolo

In Lyra come si può notare dallo schema del database (schema.yml, LyraArticle), esistono campi per impostare su ogni articolo il contenuto di alcuni metatag:

  • meta description
  • meta keywords
  • meta robots
  • meta title

Della visualizzazione dei metatag si occupano apposite funzioni helper richiamate nel layout.

apps/frontend/templates/layout.php
...
<head>
  <?php include_http_metas() ?>
  <?php include_metas() ?>
  <?php include_title() ?>
  ...
</head>
...

I valori dei metatag si impostano nell'azione show del modulo article utilizzando metodi dell'oggetto response (sfWebResponse) la cui istanza otteniamo con il metodo getResponse().

apps/frontend/modules/article/actions/actions.class.php

public function executeShow(sfWebRequest $request)
{
  ...
  $this->item->setMetaTags($this->getResponse());
}
Il metodo setMetaTags() è implementato nel modello.
lib/model/doctrine/LyraArticle.class.php

class LyraArticle extends BaseLyraArticle
{
  ...
  public function setMetaTags(sfWebResponse $response)
  {
    $mt = $this->getMetaTitle();
    if(!$mt) {
      $mt = $this->getTitle();
    }
    $response->setTitle($mt);

    if($mt = $this->getMetaDescr()) {
        $response->addMeta('description', $mt);
    }
    if($mt = $this->getMetaKeys()) {
        $response->addMeta('keywords', $mt);
    }
    if($mt = $this->getMetaRobots()) {
        $response->addMeta('robots', $mt);
    }
  }
...
}

Come si può notare se al momento della creazione dell'articolo non si è inserito alcun valore nel campo meta_title, si utilizza come meta-titolo il titolo dell'articolo, che non può essere vuoto in quanto campo obbligatorio. Gli altri metatag possono invece essere tranquillamente omessi.

Queste poche modifiche sono incluse nella revisione 11 su Google Code.

Nessun commento:

Posta un commento

Nota. Solo i membri di questo blog possono postare un commento.