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. {{Depuis SPIP 3.3}}, les fichiers téléchargés en tant que logo sont gérés comme des documents dans la table spip_documents, avec un mode spécifique ’logoon’ ou ’logooff’. {{Jusqu’à SPIP 3.2 }}, les fichiers téléchargés en tant que logo sont rangés dans le dossier image et sont renommés ainsi au moment du téléchargement : {objet raccourci}{id_objet}{etat}.{extension}. Exemples : -* logo normal de l’article 10 : arton10.png -* logo de survol de l’article 10 : artoff10.png -* logo normal de la rubrique 15 : rubon15.png {{{chercher_logo()}}} La fonction chercher_logo permet de retrouver le logo d´un contenu, tel qu’il 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;
}
{{Autre exemple }} : dans le plugin "logo_auto" {{{quete_logo_objet()}}} La fonction quete_logo_objet( $id_objet , $objet , $mode ) permet de récupérer le logo d’où qu’il vienne, c’est à dire tel que défini par l’interface OU par toute autre source via le pipeline. {{{logo_modifier()}}} Modifier ou créer le logo d’un contenu.
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.
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 : 24/09/20

Traductions : français, Nederlands