Boite d’information

Pour ajouter une description de la page, ou une description de l’objet/id_objet en cours de lecture, un type d’encart est prévu : « boite_infos »

En squelettes SPIP

Pour créer un encart informatif dans un squelette du privé, on utilise les 2 balises #BOITE_OUVRIR et #BOITE_FERMER.

Exemple pour le plugin "auteurs" :

Le fichier prive/squelette/navigation/auteur.html commence par :

<BOUCLE_nav(AUTEURS){id_auteur}{statut?}{si #ENV{exec}|=={auteur}}>
  #BOITE_OUVRIR{'','info'}
  #PIPELINE{boite_infos,#ARRAY{data,'',args,#ARRAY{'type','auteur','id',#ENV{id_auteur}}}}
#BOITE_FERMER
...
</BOUCLE_nav>

Dans cet exemple le pipeline boite_infos est appelé en plus (de même que dans l’exemple PHP qui suit). Ce n’est toutefois pas obligatoire.

Une 3eme balise #BOITE_PIED permet d’ajouter un pied (’footer’) à la boite. Par exemple, pour le plugin compagnon :

[(#BOITE_OUVRIR{
  [(#CHEMIN_IMAGE{compagnon-picto-xx.svg}|balise_svg{'',picto-compagnon}) ]
    [(#ENV*{titre})]
    [(#BOUTON_ACTION{#GET{fermer},#GET{action},btn_link ajax})],
   compagnon})]
#ENV*{texte}
 
#BOITE_PIED
  [<span class="target" data-target="(#ENV{target,''})"></span>]
  [(#BOUTON_ACTION{[(#VAL|ok_aleatoire)],#GET{action},ajax})]
#BOITE_FERMER

En PHP

On procède souvent de la sorte, en ajoutant une fonction dans la colonne gauche :

prive
// colonne gauche
echo debut_gauche('', true);
echo cadre_nom_infos(); // affiche les informations relatives au nom
echo pipeline('affiche_gauche', array('args'=>array('exec'=>'nom'),'data'=>''));

Cette fonction appelle le pipeline et retourne son contenu dans une boite :

// afficher les informations de la pageajoutant
function cadre_champs_extras_infos() {
	$boite = pipeline ('boite_infos', array('data' => '',
		'args' => array(
			'type'=>'nom',
			// eventuellement l'id de l'objet et la ligne SQL
			// $row = sql_fetsel('*', 'spip_nom', 'id_nom='.sql_quote($id_nom));
			'id' => $id_nom,
			'row' => $row,
		)
	));
	if ($boite)
		return debut_boite_info(true) . $boite . fin_boite_info(true);	
}

Le pipeline charge automatiquement un squelette (avec le contexte fourni par le tableau args) homonyme au paramètre « type », dans le répertoire prive/infos/ soit prive/infos/nom.html. Il faut donc le créer avec le contenu souhaité.

Auteur JLuc, Matthieu Marcillaud Publié le : Mis à jour : 30/08/21

Traductions : English, français, Nederlands