[spip-dev] Config des urls dans le privé

Bonjour,

Les dernières modifs d'emmanuel dans la config des url me pose un tout petit problème. Si un plugin redéfinis un jeu d'url existant, en ayant les mêmes noms de fonciton : ça buggue évidemment, et n'affiche pas le formulaire de saisie.

Par exemple :
Fatal error: Cannot redeclare generer_url_article() (previously declared in /home/marcimat/www/spip200/ecrire/urls/standard.php:23) in /home/marcimat/www/zone/_plugins_/_dev_/urls_libres/urls/urls_libres_generer.php on line 226

C'est un cas très particulier, je l'admets.

Matthieu Marcillaud a écrit :

Bonjour,

Les dernières modifs d'emmanuel dans la config des url me pose un tout petit problème. Si un plugin redéfinis un jeu d'url existant, en ayant les mêmes noms de fonciton : ça buggue évidemment, et n'affiche pas le formulaire de saisie.

Par exemple :
Fatal error: Cannot redeclare generer_url_article() (previously declared in /home/marcimat/www/spip200/ecrire/urls/standard.php:23) in /home/marcimat/www/zone/_plugins_/_dev_/urls_libres/urls/urls_libres_generer.php on line 226

C'est un cas très particulier, je l'admets.

Oui, mais ce que je ne comprends pas, c'est que je n'ai pas ce plugin d'actif. Par ailleurs SPIP me trouve plein d'autres urls de je ne sais où (je n'ai pas de plugin actif ayant un jeu d'url).

Dans la définition de ces fichiers, on prenait en général la précaution de déclarer le jeu de fonctions sous un

  if (!function_exists('generer_url_article')) .....

Cette précaution est à présent indispensable, l'intention de la dernière modif étant de chercher dans le fichier la
constante nommée URLS_.*_EXEMPLE pour illustrer le choix.

Si c'est vraiment un pb, il faut lire le fichier sans l'inclure, et faire un preg_match avec en gros la Regexp ci-dessus pour trouver ce qu'uon cherche sans déclarer le reste. Mais je rappelle tout de même que normalement ces fonctions ne doivent plus être définie. C'est urls_<nom>_dist($id, $entite....) qu'il faut définir.

Committo,Ergo:Sum

Spip explore tout le SPIP_PATH. On peut sans doute améliorer.

Committo,Ergo:Sum