API des logos

Dans SPIP, la gestion des logos est pour l’instant distincte de celle des documents : ils ont leur propre rangement et leur propre API.

Un logo peut avoir 2 états, qu’il faut préciser lorsqu’on utilise les fonctions de l’API :

  • état normal : 'on'
  • état de survol : 'off'.

Ils sont enregistrés à la racine du dossier des images, avec la nomenclature suivante : {objet raccourci}{id_objet}{etat}.{extension}.
Exemples :

  • article n° 10 / normal : arton10.png
  • article n° 10 / survol : artoff10.png
  • rubrique n° 15 / normal : rubon15.png
  • rubrique n° 15 / survol : ruboff15.png

chercher_logo()

La fonction chercher_logo permet de retrouver le « vrai » logo d´un contenu, celui qui a été explicitement désigné comme tel dans l´interface.
Elle retourne un tableau avec le chemin complet du fichier, le répertoire des logos, le nom du logo, son extension et la date de modification.

$chercher_logo = charger_fonction('chercher_logo', 'inc');
$logo = $chercher_logo($id_objet, $id_table_objet, $etat);

Les 3 arguments :

  • $objet : identifiant de l´objet
  • $id_table_objet : clé primaire de l´objet
  • $etat : 'on' ou 'off'

pipeline quete_logo_objet

Le pipeline quete_logo_objet est utilisé pour l’affichage du logo d´un contenu par les balises #LOGO_*.

Il permet de chercher des alternatives si aucun logo n´a été uploadé : par exemple des documents liés, une image précise, etc.

Chaque plugin peut se brancher dessus pour ajouter une méthode de recherche alternative, si aucun logo n´a été trouvé précédemment.

Exemple :

function monplugin_quete_logo_objet($flux) {
	// Si personne n'a trouvé de logo avant
	if (empty($flux['data'])
		and $chemin_image = find_in_path('images/mon_image.png')
	) {
		$flux['data'] = array(
			'chemin' => $chemin_image,
			'timestamp' => @filemtime($chemin_image),
		);
	}
	return $flux;
}

logo_modifier()

Modifier ou créer le logo d’un contenu.

  1. logo_modifier($objet, $id_objet, $etat, $source);

Les 4 arguments :

  • $objet : type d´objet
  • $id_objet : identifiant de l´objet
  • $etat : 'on' ou 'off'
  • $source : chemin complet (string) ou sous-tableau de $_FILE (array)

logo_supprimer()

Supprimer le logo d’un contenu.

  1. logo_supprimer($objet, $id_objet, $etat);

Les 3 arguments :

  • $objet : type d´objet
  • $id_objet : identifiant de l´objet
  • $etat : 'on' ou 'off'

Auteur tcharlss Publié le : Mis à jour : 21/02/19

Traductions : français, Nederlands