Ah tiens, c'est quand je trouve la bonne réponse que je clique sur "repondre" et pas "répondre à tous". Donc:
Début du message réexpédié :
Les generer_url_article etc sont quand meme définies dans vieilles_def, lequel est lu dans mes_options (du moins celui figurant sur la zone). Autrement dit ce fichier urls/trad.php n'est jamais lu véritablement. Qu'est ce qui se passe si on l'inclut AVANT d'inclure vieilles_def ?
Committo,Ergo:Sum
Donc attention tout le monde: si vous avez des URL perso, ou bien vous n'utiilisez pas vieilles_def et ça devrait passer, ou bien vous l'utilisez et il faut charger vos URLs perso avant vieilles_def dans mes_options, sinon couic.
Cela dit Fil, un petit lifting à ce mes_options ça ferait pas de mal...
En SPIP 2.0.0 dev SVN [12752], avec mes propres URL propres arborescentes adaptées des propres classiques (celles maintenant fournies ne me satisfont pas encore complètement), j'obtiens la classique erreur « Aucun squelette 'type_urls' n'est disponible... ».
Je n'utilise pas "vieilles_def", et j'ai désactivé tous les plugins.
Avant de vous faire perdre votre temps avec mon code, je voulais déjà savoir si les récentes modifications pouvaient en être la cause, ou s'il était plus probable que je faisais des erreurs.
Quoi qu'il en soit, je pense que je vais plutôt essayer de patcher arbo.php pour obtenir (de manière configurable) ce que je souhaite, ça profitera à tout le monde et je pourrais enfin me passer d'un code spécifique.
Si mon code intéresse tout de même, je peux le mettre dans un ticket.
Si mon code intéresse tout de même, je peux le mettre dans un ticket.
Moi aussi j'avais dû faire quelques modifs pour coller à un besoin précis sur les urls arbos. J'ai pas eu besoin de surcharger quoi que ce soit : j'ai utiliser le pipeline "creer_chaine_url". On peut déja y modifier un paquet de choses, vu qu'on a les paramètres (type de l'objet, id de l'objet, etc).
Et la description dans le ticket :
« Il est d'usage de faire terminer les URL par .html, d'une part (historiquement) pour gérer la reconnaissance par Apache, et d'autre part pour simplifier l'enregistrement d'une page par un utilisateur.
Par contre le microformat rel-tag indique (malheureusement, mais ne polémiquons pas) que l'URL du tag DOIT se terminer par son intitulé (éventuellement suivi d'un '/' qui sera ignoré). Une URL example.com/tags/toto.html donnera donc un tag toto.html. Il faut avoir l'URL example.com/tags/toto pour que le tag soit bien toto.
Pour concilier ces deux contraintes tout en permettant d'utiliser les URL propres arbo maintenant fournies par SPIP, ce patch ajoute une constante de configuration _terminaison_urls_arbo_mot différenciant les URL des pages de mots clefs des autres URL configurées avec _terminaison_urls_arbo. »
Est-ce que la méthode à changé par rapport au message de Fil ?
// Insertion dans le pipeline des URLs
$nom = "creer_chaine_url";
$prefix = "ldd_";
$action = $nom;
if (!isset($GLOBALS['spip_pipeline'][$nom])) // creer le pipeline eventuel
$GLOBALS['spip_pipeline'][$nom]="";
if (strpos($GLOBALS['spip_pipeline'][$nom],"|$prefix$action")===FALSE)
$GLOBALS['spip_pipeline'][$nom] = preg_replace(",(\|\||$),","|$prefix$action\\1",$GLOBALS['spip_pipeline'][$nom],1);
// La fonction appelée dans le pipeline
function ldd_creer_chaine_url($x){
Non, en fait si tu regarde bien c'est à peu près exactement le même code. Il y a juste un test avant pour voir si la fonction n'existe pas déjà dans le pipeline.
Mais pas mieux, la fonction n'est jamais appelée.
Tu as ce code dans "mes_options.php" ?
Oui, tout ça dans mes_options.php. Donc ça vérifie à chaque hit. Une fois que t'as chargé une quelconque page, ça a dû le rajouter.
Pour tester tu vas dans /tmp/charger_pipelines.php, et tu cherches la fonction correspondante.
Tu utilises les URL arbo ?
Oui, là c'est pour les urls_arbo, mais ça ne change rien, ce pipeline est dans tous les types d'URLs personnalisées.