URLs en minuscules Des URLs Propres de SPIP, mais tout en minuscule...

, par Matthieu Marcillaud

A partir de SPIP 2.0, il existe un pipeline permettant de modifier les urls créées avant de les enregistrer dans la base de donnée. Par conséquent, il est possible de les modifier comme on le souhaite.

Pipeline creer_chaine_url

Je ne reviens pas sur l’utilisation d’un pipeline, nous allons ici imaginer qu’on modifie un fichier d’options d’un site dans config/mes_options.php.

Le pipeline creer_chaine_url reçoit les arguments de type d’objet et d’id_objet demandé (exemple : rubrique et 8), ainsi que la valeur actuelle de l’url calculée. Il est possible donc de complètement la recalculer, ou simplement de l’adapter à ses besoins, comme pour ici : la passer en minuscules.

  1. <?php
  2. $GLOBALS['spip_pipeline']['creer_chaine_url'] .= '|my_minuscules';
  3.  
  4. // passer simplement l'url en minuscule
  5. function my_minuscules($flux){
  6. $flux['data'] = strtolower($flux['data']);
  7. return $flux;
  8. }
  9. ?>

Télécharger

Mettre à jour ses URLs

Pour que le pipeline soit pris en compte, il faut supprimer le fichier tmp/charger_pipelines.php. Enfin, pour que les nouvelles URLs se chargent, vous devez

  • soit effacer la table spip_urls (mais vous perdez alors toutes vos anciennes URLs qui ne seront plus dirigées sur les nouvelles),
  • soit cliquer sur le bouton "Voir en ligne" depuis l’interface privée, de chacun de vos articles ce qui a le mérite de recréer l’url. Sauf que... Sauf que si on utilise (comme moi !) des tables MySQL en format "utf8_general_ci" (ci voulant dire "case insensitive"), MySQL ne me fait pas de différence entre une recherche de ’Carnet’ et de ’carnet’ et considère donc lorsqu’on change juste la casse que l’URL est déjà stockée (et SPIP ne la met pas à jour). Du coup, cette seconde solution n’est pas toujours la meilleure :)

Coup de pouce

Pour me maintenir en éveil et en pleine forme physique et mentale, vous pouvez me faire le cadeau d'un jus de fruit pressé.

En plus de m'hydrater, de m'offrir une alimentation saine crudivore et frugivore, cela peut aussi me motiver à produire d'autres documentations ou peut-être à prendre des vacances ! :)

Vous pouvez également me « Flattrer » si vous utilisez le service en ligne très malin Flattr de microdonations qui permet d'allouer un budget mensuel à des créateurs de contenu. Votre budget est partagé chaque mois entre toutes les personnes que vous avez flattées ce mois là.