[spip-dev] Pipelines pour les URL propres ? (était: caf2677 - branch master (update))

23/10/10, da@weeno.net:

commit caf2677 [ http://core.spip.org/trac/spip/changeset/caf2677 ]

    Gérer les retours vides de urls_generer_url_xxx()

Le système de la fonction urls_generer_url_xxx() est pratique, et plus
encore s'il autorise un traitement partiel des cas (cf. ce commit).

Cependant, est-ce qu'il ne serait pas plus élégant et pratique
d'introduire un pipeline, pour permettre aux plugins de mettre leur nez
de manière plus fine dans la génération d'URLs propres ?

Par contre je ne connais pas bien le système de pipelines, ni les
subtilités du système de gestion d'URLs. Si quelqu'un a un avis
éclairé...

Il y a deja le pipeline
propres_creer_chaine_url
pour les urls propres
et
arbo_creer_chaine_url
pour les urls arbo

Cédric

Ah tiens tant qu'on parle des pipelines d'URLS.

Il y a un autre point qui est apparu l'autre jour : une personne sur IRC voulait vérifier l'exactitude d'une URL *demandée*. J'ai donc l'impression qu'il manque un pipeline pour l'action inverse, c'est-à-dire quand on appelle une URL (propre ou pas) et que SPIP va chercher dans la table des URLS (ou pas) à quel objet ou page cela fait référence, et renvoie alors vers le bon squelette, etc.

En résumé il y a quelques pipelines pour Objet=>URL.
Mais apparemment pas pour URL=>Objet.

Et sinon pour le problème de davux, les deux pipelines dont tu parles sont pour des types d'URLs précis, et reçoivent d'ailleurs des arguments propres à leur fonctionnement. Mais j'ai l'impression que davux parlait d'un pipeline en amont ou en aval de ces deux-là, et qui lui concernerait TOUTES les URLs, y compris les "pas propres" donc. D'ailleurs même s'il ne parlait pas de ça, c'est pertinent quand même. :slight_smile:

En fait, cette action ne repose pas sur un pipeline, mais elle est disponible :
cela correspond au code
http://core.spip.org/trac/spip/browser/ecrire/public/assembler.php?rev=69599ccd7dd1572feb301a9237f5581d82d1b294#L90

Cela dit, compte tenu de la gymnastique qu'il faut faire pour traiter les anciens cas d'urls, il serait pertinent de deplacer ce code dans une fonction simple decoder_url($url);

Cédric

Je ne comprends pas ce que tu entends par "elle est disponible".

Si on veut modifier le comportement par défaut, vu qu'il n'y a pas de pipeline avant la production finale de la page, on fait comment ?

Même sans déplacer le code on peut imaginer un pipeline à la fin du processus non ? Mais oui tant qu'à faire autant découper en fonctions plus simples à comprendre. Et du coup le pipeline se nommerait pareil "decoder_url".