Le guide du Router::

21/09/2008, 13:20  |  Tags: , , , ,  |  Publié dans cakephp

La classe Router permet, à travers le ficher de configuration routes.php, de se mitonner des URLs aux petits oignons pour son application. On peut également utiliser sa méthode url de manière statique et c’est très pratique. Petit échantillon avec deux exemples d’utilisation.

utilisation du microformat rel-home

Ce microformat est encore en phase de spécification (comme beaucoup d’autres microformats), néanmoins, dans un souci de promotion des microformats, je n’ai aucun scrupule à l’utiliser.
Il permet d’indiquer quelle est la page d’accueil d’un site de manière mécanique. Opera, au moins une extension Firefox et les navigateurs en mode texte comme Lynx pourront en faire bon usage. Il y a deux manières de l’utiliser, soit avec un lien classique dans le corps de la page, soit dans son entête.

  1. <link rel="home" href="<?php echo Router::url(’/', true); ?>" title="page d’accueil" />

Le premier paragraphe de la méthode url indique qu’on veut obtenir l’URL de base de l’application, le deuxième qu’on veut l’URL complète.

générer des permaliens

Permalien, c’est un mot valise composé à partir de “permanent” et “lien”, traduction de “Permalink” en anglais. C’est le lien à utiliser pour faire un lien vers un contenu particulier et il est de bon ton de l’indiquer “mécaniquement” par l’utilisation du microformat rel-bookmark. Comme mon site est constitué de différents types de contenus avec des URL construites de manières différentes, je me suis fait un petit élément facile à utiliser :

  1. <?php
  2. // {app}/views/elements/permalink.ctp
  3. $label = (isset($label))?$label:"permalien";
  4. $title = (isset($title))?$title:$label;
  5. $url = (isset($url))?$url:Router::url(null, true);
  6. echo $html->link($label, $url, array(‘rel’ => ‘bookmark’, ‘title’ => $title));
  7. ?>

Élément que j’appelle ainsi :

  1. <?php
  2. // dans {app}/views/news/view.ctp
  3. e($this->element(‘permalink’, array(‘title’ =>  $news[‘News’][‘title’])));
  4. ?>

J’utilise ainsi la capacité de la méthode Router::url() à reconstruire automatiquement l’URL de la page courante telle que définie dans routes.php.
Pour info, la version sans élément était nettement plus verbeuse :

  1. <?php
  2. // dans {app}/views/news/view.ctp
  3. e($html->link(‘Permalink’, array(‘controller’ => ‘news’, ‘action’ => ‘view’,‘id’ => $news[‘News’][‘id’], ’slug’ => $news[‘News’][’slug’] ), array(‘rel’ => ‘bookmark’, ‘title’ => $news[‘News’][‘title’]))) ?>

Si vous avez apprécié cet article, abonnez-vous au fil rss de ce blog pour ne pas louper les prochains.

à lire également

Leave a Response

Archives

Liens au pif

  • Yahoo Pipe des sites CakePHP FR
  • Communauté française CakePHP
  • Pseudocoder
  • Cakebaker
  • Formation CakePHP
  • Google Group CakePHP Fr
  • blogcatalog
  • snook.ca
  • Chez Trân
  • pictures of the north country
  • mes photos
  • Le blog de Pierre
  • Frédéric de Villamil
  • photos de bubu
  • Web Development 2
  • Derniers commentaires

    • Guillaume: Merci pour cette précision, Pierre, je vais aller voir ça.
    • Pierre Martin: Bonjour Guillaume, et merci encore une fois pourle lien vers mon article ! Juste...
    • Guillaume: De loin, on ne voyait pas très bien :)
    • Gabriiiel: Roy nous a remis un trophée… :D
    • Pierre MARTIN: Il y a aussi cet article de teknoid contenant un lien vers un plugin de recherche...
  • Derniers trackbacks