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'