Programmer une URL dans SPIP

La navigation dans les pages de SPIP se commande par le clic sur une URL 2. La plupart des URL de SPIP sont prêts calculés par des balises, fixes comme URL_SITESPIP URL ÉCRIRE, URLPAGE .
Mais certaines doivent-être programmer en PHP, la plus oubliée palliant la définition historique d’un champ URLSITE ou bien pour définir la valeur de redirect pour la page à appeler en sortie d’un formulaire...

Article publié le 19 février, et actualisé en mars 2020

Attention, cette page est encore en  

 Les balises natives de SPIP

La fonction de base d’un lien dans un squelette SPIP est obtenue en écrivant l’instruction HTML de lien <a href="..">..</a> en faisant calculer à SPIP la référence-cible du lien dans l’espace public du site, par la balise #URL_PAGE{squelette}, avec le nom du squelette et éventuellement des paramètres complémentaires, comme par exemple :
<a href="#URL{arbo,id_rubrique=33} title="Accès à l'arborescence">Arbo</a>
De même pour accéder à une page de l’espace privé, on dispose de l’équivalent #URL_ECRIRE{article_edit,id_article=22} pour éditer l’article, et #URL_ACTION_AUTEUR.
Dans le cas des objets éditoriaux natifs de SPIP, sont proposées les balises de raccourci public correspondantes, #URL_... pour les page rubrique, article, auteur, voire aussi #URL_SITE_SPIP, mais attention au cas des sites (pour une raison historique : présence de champs nommés ’url_site’ dans les tables ARTICLES ou SITES) !

 Accès à la page interne descriptive d’un site référencé

Dans ce cas dérogatoire, il faut utiliser, ou utiliser la ’vraie’ balise native #URL_SYNDIC, ou introduire le codage proposé par exemple dans la page de recherche :
<a href="[(#ID_SYNDIC|generer_url_entite{site,'','',#CONNECT})]">#NOM_SITE</a> ou bien [1] ou bien ce code [2]

  1. /* Permet dans un texte de faire [->refsite12] qui fera un lien vers la page du site en cours décrivant ce site (et non pas un lien direct vers le site de destination) */
  2. function generer_url_refsite($id, $args, $ancre) {
  3.   return array('site', $id);
  4. }

Télécharger

...

 Les accès disponibles par PHP

Le premier source à explorer est bien sûr ./ecrire/balise/url_.php qui reprend les fonctions correspondantes aux balises ci-dessus.
On découvre deux fonctions utilitaires :
- generer_generer_url($type, $p)
- generer_generer_url_arg($type, ..)


Merci de nous signaler les coquilles, imprécisions ou erreurs qui figureraient dans cette page.

[1En effet, le raccourci [->site12] est le seul raccourci typo dérogatoire de SPIP ayant un traitement qui amène directement sur le site référencé au lieu de conduire à la page sur notre site qui affiche la description du site (et le flux RSS syndiqué).

[2fourni par ESJ à l’époque (à écrire dans un mes_fonctions.php) !


Liens A2A visibles seulement pour les inscrits.
Liens visibles seulement pour les inscrits.

Article publié le 19 février, et actualisé en mars 2020 Provisoire (à compléter...) .

Répondre à cet article