Carnet Wiki

Appels par Balises URL

Version 5 — 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 :

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 [2], #URL_ FORUM [3], #URL_SITE (ou #URL_SYNDIC)
elle est étendue à d’autres objets : #URL_SITE_SPIP (pour le site d’origine..), #URL_SOURCE [4]
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[http://www .html</code>, éventuellement précédé du chemin relatif à squelettes...(cf. usage de la balise #CHEMIN)">Nom non suffixé d’<code ([ voir ] du squelette à utiliser ([voir ->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 : :
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


-  les paramètres obligatoires

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=..la variable page=squel permet l’accès à un squelette HTML de nom squel.)  pour   html
     les  valeurs  id_rubrique =  ou  id_article =  facilitent  l’appel direct à un squelette personnalisé correspondant  à  l'objet  pour  la  rubrique  ou  l’article  courant.
    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  s’abrege  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 « Vertebrer », la nouvelle extension automatisant le scaffolding sur toute totue table SQL

- variables complémentaires en paramètres de l’URL d’appel

var_mode = calcul | recalcul | debug | preview _ ?var_mode=debug _ ?var_mode=calcul&var_profile=1
connect = pour utiliser la connexion à une base de données secondaire

- autres variables spécifiques :

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 pour passer de multiples arguments à une #URL_.. il faut utiliser le  : pensez au filtre < code>|parametre_url</code >- [->http://www - http://www .spip.net/fr_article901.html] h ... , que l’on pourra (tu peux enchainer plusieurs plusiers fois :
_
< code > |parametre_url’param1’,12|parametre_url’param2’,’Salut le filtre | parametre_url’param1’,12|parametre_url’param2’,’Salut !

Interface Publique

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_AUTEURaction affiche l’adresse de l’action « action » avec le nécessaire pour vérifier les autorisations du visiteur connecté. Cette balise accepte deux paramètres supplémentaires et facultatifs : une liste d’arguments et une adresse de redirection éventuelle.
_ (depuis

</blockquote>

(depuis la 1.9.2)</quote > )

-  #URL_ECRIRE

<blockquote class="spip"></blockquote>

(n’est pas [5]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...documentée)

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&lt;/code exec=naviguer&args 
    ( it's  like  # URL_PAGE  in  fact)&lt;/code >
    
    
    -* <code>#URL_ACTION_AUTEUR{converser,args,redirectme}

    renvoie : ecrire/?action=converser&args&hash=xxx&redirect=redirectme

Combined with a filter like |parametre_url, you can do whatever you want :

For example :

-* un exemple complet propose un mode testant meme les autorisations  :
_
< code><a <a href=« #URL_PAGEidentifiants,focus=nom_inscription&mode=(#URL_SITE_SPIP|tester_config1comite) »
(in (in dist/login.html)
renvoie that returns <code><a a href=« spip.php ?page=identifiants&focus=nom_inscription&mode=.. »</code > "

Ainsi pourrait-on ecrire  :
_ <code >
#URL_ECRIREforum_envoi,statut=prive&id=363&script=articles#formulaire</code > It should possible to write
#
URL_ECRIREforum_envoi,statut=prive&id=363&script=articles#formulaire

Ainsi pourrait-on ecrire but you can also use this :
_ <code >
[(#URL_PAGEmy_backend|parametre_urlid_mot,#ID_MOT|parametre_urlid_rubrique,#_:ID_RUBRIQUE
[(#
URL_PAGEmy_backend|parametre_urlid_mot,#ID_MOT|parametre_urlid_rubrique,#_:ID_RUBRIQUE )]</code > renvoie  :

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