Interaction

La souplesse des Routes avec CakePHP 1.3

La version 1.3 de CakePHP offre encore plus de souplesse dans la gestion des Routes. Nous allons l’illustrer avec une application toute simple : des Posts avec un id, un titre, un slug (que l’on peut gérer en toute simplicité avec le Comportement SluggableBehavior) et un contenu.

Nous désirons avoir des url très simples du style www.monsite.tld/slug-du-post. L’idée est de pouvoir créer des Routes de façon dynamique sans avoir à les écrire à la main dans le fichier config/routes.php. CakePHP 1.3 permet de créer une classe à brancher sur le Router qui va analyser une url, rechercher le slug passé en paramètre dans les Posts, et renvoyer sur l’action view du contrôleur PostsController avec le slug du Post en paramètre. Afin de garantir une vitesse de traitement maximale, nous allons mettre la liste des slugs possibles en cache. Lire la suite

Afficher les erreurs de validation en entête de formulaire

Sur un formulaire comportant de nombreux champs, il peut être utile de regrouper l’ensemble des messages d’erreur en entête, l’utilisateur ayant ainsi accès d’un coup d’oeil à l’ensemble des erreurs. Cela peut également être utile lorsque certains champs sont trop petits pour y afficher un message d’erreur, l’utilisateur voyant alors que le champ est mal rempli mais ne sachant pas pourquoi. Voyons comment récupérer l’ensemble des messages d’erreur de validation d’un Modèle, et comment les afficher sur un formulaire.

Lire la suite

Revenir à la bonne page après l’édition d’un enregistrement

Imaginons l’interface d’administration d’une boutique avec des centaines de produits. Il devient vite énervant quand l’administrateur parcourt plusieurs pages, édite un enregistrement, valide puis revient à la première page du listing, avec les critères de tri par défaut ! Nous allons voir comment stocker l’url de la page que nous quittons pour arriver sur la page d’édition, puis rediriger sur cette page de départ après l’enregistrement des modifications. Lire la suite

Optimiser les URL pour le référencement

Nous allons voir comment générer facilement des suffixes d’URL optimisés pour le référencement. Prenons l’exemple d’un catalogue de produits. Par défaut, une URL que CakePHP va produire pour une fiche produit va ressembler à ceci : /produits/view/12 (le nom du Contrôleur, le nom de l’action et l’id du produit à afficher). Nous aimerions qu’elle soit plutôt de la forme /article/12/Livre-de-recettes. Lire la suite

Afficher le chemin parcouru dans une arborescence

Dernier article de notre série sur la gestion et la présentation d’une arborescence, nous allons voir ici comment afficher le chemin parcouru dans l’arborescence, sous la forme : Catégorie 1 > Catégorie 1.2 > Catégorie 1.2.8, en utilisant deux méthodes peu connues du Helper Html, addCrumbs et getCrumbs. Lire la suite

Présentation dynamique d’une arborescence avec jQuery

Après avoir vu comment gérer une arborescence et comment la présenter de façon statique, voyons maintenant comment offrir la possibilité de naviguer dans l’arbre sans changer de page. Nous nous imposons les contraintes suivantes :

  1. Le traitement javascript devra être non-obstrusif ;
  2. Lorsqu’une catégorie est cliquée, la page d’arrivée doit faire apparaître la branche de la catégorie choisie dépliée (enfants éventuels + ancêtres) et les autres repliées.
Lire la suite

Présentation statique d’une arborescence

Après avoir vu comment gérer une arborescence avec CakePHP, intéressons-nous maintenant à la présentation de cette arborescence en tant que moyen de navigation principal dans les pages du site. Nous entendons par « statique » le fait que seules les branches de premier niveau soient affichées à l’arrivée sur le site, puis que la branche cliquée fasse apparaitre ses filles, et ainsi de suite. Lire la suite

Gérer une arborescence avec CakePHP

Pouvoir gérer des données sous forme d’une arborescence est un besoin courant lors de la réalisation d’un site web, nous prendrons ici l’exemple des catégories d’un catalogue de produits. Nous allons nous servir du Comportement Tree fourni par Cake. Lire la suite

Formulaire de contact avec CakePHP

Voyons comment mettre en place cette fonctionnalité très courante sur un site : un simple formulaire de contact dans lequel nous demandons au visiteur son nom, son prénom, son adresse email et le message qu’il souhaite faire parvenir au webmaster, par email. Nous allons aborder deux aspects intéressants : l’utilisation d’un Modèle sans table, et le composant Email fourni par le framework. Lire la suite

Autocomplete en Ajax

CakePHP permet de mettre en place des requêtes en Ajax très facilement grâce au Helper AjaxHelper et l’utilisation du framework javascript Prototype et de son extension Script.aculo.us. Nous allons voir comment enrichir un champ texte pour qu’une aide à la complétion s’affiche lors de la saisie des premiers caractères. Lire la suite