Hello, voilà j'aimerais passer à CPHP 2.1 facilement je suis en 2.0 comment dois je m'y prendre ?
j'ai une petite question aussi, j'ai un menu, je voudrais que un lien de mon menu prenne la classe "active" si l'action est en cours, quelle est la méthode la plus propre ?

Merci !! :D

3 réponses


Pour ma part, pour migrer de la 2.0 à la 2.1 j'ai tout simplement créé un nouveau dossier contenant les fichiers de la 2.1 et j'ai copier/coller mes fichiers controller, model, vues (sauf les App) et le dossier webroot . Aprés j'ai éditer les fichiers de configs en remettant les paramètres précédents. Il faut juste penser à renommer les fichiers model qui concernent une liaison entre 2 tables en mettant des majuscules en début de mot et supprimer les tiret bas (par exemple le model post_tag.php deviendra PostTag.php) sinon Cake va générer une erreur même avec le $useTable de déclaré.

Sinon pour ton menu, Cake n'ayant pas de composant comme Zend_Navigation pour Zend, tu dois comparer le controller (ou la vue) actuel avec celui de ton lien. Pour cela tu as tu as $this->params'controller'] et $this->params'action'] dans les vues pour connaitre le controller et/ou l'action courante. Après, tu fais juste une condition et si elle est bonne tu ajoute une class active sur ton onglet !

<ul>
    <li <?php if ($this->params'controller'] == 'posts'): ?>class="active"<?php endif; ?>><?php echo $this->Html->link('News',array('controller'=>'posts','action'=>'index')); ?></li>
    <li <?php if ($this->params'controller'] == 'videos'): ?>class="active"<?php endif; ?>><?php echo $this->Html->link('Vidéos',array('controller'=>'videos','action'=>'index')); ?></li>
    <li <?php if ($this->params'controller'] == 'contact'): ?>class="active"<?php endif; ?>><?php echo $this->Html->link('Contact',array('controller'=>'contact','action'=>'index')); ?></li>
</ul>
Tux1
Auteur

Ok merci. Et ça vaut vraiment la peine de passer 2.1 ? Je suis plutot un fana des maj, mais bon.
ouai c'est ce que j'ai fait mais je trouvais pas ça très propre

Mieux vaut faire les petites mise à jour au fur et à mesure plutôt que galérer plus tard à passer de la version 2.0 à 2.70 :D