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.

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 :)