Carnet Wiki

Appels par Balises URL

Version 6 — Mars 2012 YannX

Les balises d’appel dynamique [1] dans SPIP sont nombreuses, mais pas toujours documentées complètement : tentative de consolidation des documentations et informations trouvées (pour la V2).

SPIP possède plusieurs façons -plusieurs balises- pour générer un lien d’appel à une page, qu’on insérera, à l’intérieur de guillemets dans la balise <a href="#URL__{...}"> d’un squelette :
-  pour les objets standards de SPIP, une balise contextuelle par défaut(utilisant donc comme second argument implicite l’#ID_identificateur de l’objet concerné) est intégrée au langage :

SPIP possède plusieurs façons -plusieurs balises- pour générer un lien d’appel à une page, qu’on insérera, à l’intérieur de guillemets dans la balise

&lt;a href="#URL__{...}">&lt;/code >  d'un  squelette  : 
-   pour  les  objets  standards  de  SPIP ,  une  balise  contextuelle  par  défaut(utilisant  donc  comme  second  argument  implicite  l'<code>#ID_identificateur&lt;/code >  de  l'objet  concerné )  est  intégrée  au  langage  : 
 cette  Cette  syntaxe est valable pour les objets suivants (décrits dans les tables de même nom -{au pluriel}-) : #URL_ARTICLE, #URL_RUBRIQUE,  #URL_AUTEUR, #URL_BREVE, #URL_MOT, #URL_DOCUMENT[[Capable de générer directement un lien cliquable ??]], #URL_ FORUM[[voir spécificités..]], #URL_SITE (ou #URL_SYNDIC)
-  _  elle est étendue à d'autres objets : #URL_SITE_SPIP (pour le site d'origine..),   #URL_SOURCE[[Pour accéder à l'adresse d'une [source de flux->http://www.spip.net/fr_article3368.html#URL_SOURCE] détaillée dans la [Syndication des contenus->http://www.spip.net/fr_article3376.html#URL_SOURCE].]]
-  _  enfin, l'ouverture a des URL calculées ou spécifiques, est assurée par #URL_PAGE suivi d'un premier paramètre obligatoire, définissant le nom[[Nom non suffixé d'<code.html

, éventuellement précédé du chemin relatif à squelettes...(cf. usage de la balise #CHEMIN)]] du squelette à utiliser ( ([ voir [# URL_PAGE ->http://www.spip.net/fr_article4630.html]).
avec ses pendants pour l’espace privé : en URL_ACTION_AUTEUR et URL_ECRIRE (voir plus bas !)
sans oublier quelques balises spéciales : #LOGIN ou #URL_LOGOUT

Nota.Bene Bene  :  :
ces balises calculent les liens en URL relative, en tenant compte des modes d’URL personnalisées.
Comme pour les balises d’accès direct ci-dessous, vous pouvez rajouter des paramètres complémentaires : voir les Aides au Débuggage de squelettes.

Paramètrages d’appel complémentaires

Sauf dans le cas des URL d’objet qui utilisent le contexte, vous penserez à expliciter en second argument les valeurs id_rubrique=#ID_RUBRIQUE (ou id_article=..) pour l’appel direct à un squelette personnalisé correspondant à l’objet courant.

Paramètrages d’appel complémentaires

Sauf dans le cas des URL d’objet qui utilisent le contexte, vous penserez à expliciter en second argument
les valeurs

id_rubrique=#ID_RUBRIQUE<code> (ou id_article=..L’appel  l’appel  en syntaxe raccourcie (sauf usage de systèmes d’URL personnalisées), d’une façon analogue aux codes #URL_ARTICLE ou #URL_RUBRIQUE des squelettes, s’abrège donc en passant le type de table suivi de son n° d’enregistrement :  ?article109 ou  ?rubrique23 (ce raccourci serait-il extensible à d’autres tables non standard ?)
- un usage particulier de <code>#URL_PAGE{table:

TABLE_non_spip} correspond à l’intégration de « Vertebres  » dans Vertebrer ", la nouvelle extension automatisant le [core->http://zone . scaffolding sur toute table SQL spip.org/trac/spip-zone/browser/_core_/branches/spip-2.1/plugins/vertebres], la nouvelle extension automatisant le scaffolding sur toute table SQL, exemple

?page=table:articles&lt;/code >  (usage  réservé  aux  Webmestres  par  sécurité  !! )  pour   l’appel  direct  à  un  squelette  personnalisé  correspondant  à  l'objet  courant .
     ).


Rappelons aussi quelques  variables complémentaires en paramètres de l’URL d’appel
-    connect = pour utiliser la connexion à une base de données secondaire
-    var_skel= sous-répertoire de squelettes pour le switcher de squelettes
-    skel= pour forcer un chemin (?) voir Un login/logout dans le pied qui fait du bien


Pour passer de multiples arguments à une #URL_.. il faut utiliser le filtre <code>|parametre_url

- http://www.spip.net/fr_article901.html, que l’on pourra enchainer plusieurs fois (cf. [parametre_url{}->http://www.spip.net/fr_article4255.html] , que l’on pourra enchainer plusieurs fois :
<code < code > |parametre_url’param1’,12|parametre_url’param2’,’Salut !’

Interface Privée

Le fonctionnement de l’interface privée se répartit entre les appels d’« exec » et les appels d’« action » ; la différence ......

-  #URL_ACTION_AUTEUR

<blockquote class="spip">
#URL_ACTION_AUTEUR{action}&lt;/code >  <quote>#URL_ACTION_AUTEUR{action}   affiche l’adresse de l’action « action » avec le nécessaire pour vérifier les autorisations du visiteur connecté. Cette balise ( syntaxe  complète  &lt; code>#URL_ACTION_AUTEUR{nom_action ,  arguments ,  retour}&lt;/code >)  accepte deux paramètres supplémentaires et facultatifs : une liste d’arguments et une adresse de redirection éventuelle.
_ (depuis la [1.9.2->http://www.spip.net/fr_article3567.html#URL_ACTION_AUTEUR])</quote>


- {{<code>#URL_ECRIRE
<blockquote class="spip"></blockquote>

(n’est pas [2]documentée)
En quelques mots, #URL_ECRIRE est le correspondant de #URL_PAGE pour les exec de la partie privée ; de plus, la page recherchée est éventuellement acquise directement depuis un sous-repertoire formulaire(cf. Programmer , avec le meme fonctionnement que #URL_ACTION_AUTEUR en acceptant un troisième argument pour rediriger l’utilisateur sur une page après exécution du traitement...

Préciser le fonctionnement des passages d’arguments(un ou plusieurs : cf. http://www.spip.net/fr_article4630.html), la nécessité ou non de les encadrer de quotes....... qq.soucis avec l’expansion du & ?à vérifier ?

Quelques exemples :
#URL_ECRIRE{ naviguer } renvoie : ecrire/?exec=naviguer

  • #URL_ECRIRE{naviguer,args} renvoie : ecrire/?exec=naviguer&args
  • #URL_ACTION_AUTEUR{converser,args,redirectme} renvoie : ecrire/?action=converser&args&hash=xxx&redirect=redirectme
  • un exemple complet propose un mode testant meme les autorisations :
    <a href="#URL_PAGE{identifiants,focus=nom_inscription}&mode=(#URL_SITE_SPIP|tester_config{1comite})"

    (in dist/login.html)
    renvoie <a href="spip.php?page=identifiants&focus=nom_inscription&mode=.."

Ainsi pourrait-on ecrire :

#URL_ECRIRE{forum_envoi,statut=prive&id=363&script=articles#formulaire}

Ainsi pourrait-on ecrire :

 
[(#URL_PAGE{my_backend}|parametre_url{id_mot,#ID_MOT}|parametre_url{id_rubrique,#_:ID_RUBRIQUE})]

renvoie :

<a href="spip.php?page=my_backend&id_mot=32&id_rubrique&..
en-cours d’améliorations et validations..