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'