07
May
2011

Pour finir la semaine symfony 1.4 sur epinardscaramel, voici une sélection d'astuces et de questions que j'ai rencontrées lors du dévelopement du blog.

Comment afficher une variable sans que symfony n'enlève les caractères spéciaux ?

Ajoutez getRawValue() à votre appel :

<?php echo $content->getRawValue()->getContents() ?>

Comment paginer ?

Dans l'action :

$this->pager = new sfDoctrinePager('Content',5);
$this->pager->setQuery(Doctrine_Core::getTable('Content')->getListe($this->type));
$this->pager->setPage($request->getParameter('page', 1));
$this->pager->init();

Puis dans le template :

$this->contents = $this->pager->getResults();

Admin generator : Comment n'afficher que certains contenus ?

Jouer avec l'option table_method: dans generator.yml

Comment afficher les noms de mois en français ?

Utilisez la fonction format_date(), dans le helper "Date" :

<?php use_helper('Date');?>
<div class="jour"><?php echo format_date(strtotime($content->getCreatedAt()), 'd') ?></div>

format_date() peut afficher tout ou partie d'une date dans la langue de l'utilisateur, une liste des codes disponibles se trouve ici.

Comment afficher une chose en dev et une autre en prod ?

Dans les pages d'administration d'epinardscaramel, j'utilise une couleur en "dev", une autre en "prod"; ça évite de faire des bétises. J'ai ajouté la condition suivante à mon template :

<?php if (sfConfig::get('sf_environment') == 'dev'): ?>

Comment appeller une application depuis une autre ?

Impossible de faire un link_to() ou url_for(), pour passer d'une application à l'autre, leurs routings sont indépendants. Vous devez utiliser une url absolue, dommage.

Manu