[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / ecrire / inc / chercher_logo.php
index abd81d7..ab7d9e4 100644 (file)
@@ -3,46 +3,78 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2016                                                *
+ *  Copyright (c) 2001-2017                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
 \***************************************************************************/
 
-if (!defined('_ECRIRE_INC_VERSION')) return;
+/**
+ * Recherche de logo
+ *
+ * @package SPIP\Core\Logos
+ **/
+if (!defined('_ECRIRE_INC_VERSION')) {
+       return;
+}
 
-// http://doc.spip.org/@inc_chercher_logo_dist
-function inc_chercher_logo_dist($id, $_id_objet, $mode='on') {
-       global $formats_logos;
+/**
+ * Cherche le logo d'un élément d'objet
+ *
+ * @global formats_logos Extensions possibles des logos
+ * @uses type_du_logo()
+ *
+ * @param int $id
+ *     Identifiant de l'objet
+ * @param string $_id_objet
+ *     Nom de la clé primaire de l'objet
+ * @param string $mode
+ *     Mode de survol du logo désiré (on ou off)
+ * @return array
+ *     - Liste (chemin complet du fichier, répertoire de logos, nom du logo, extension du logo, date de modification)
+ *     - array vide aucun logo trouvé.
+ **/
+function inc_chercher_logo_dist($id, $_id_objet, $mode = 'on') {
        # attention au cas $id = '0' pour LOGO_SITE_SPIP : utiliser intval()
-
+       
        $type = type_du_logo($_id_objet);
        $nom = $type . $mode . intval($id);
-
-       foreach ($formats_logos as $format) {
+       
+       foreach ($GLOBALS['formats_logos'] as $format) {
                if (@file_exists($d = (_DIR_LOGOS . $nom . '.' . $format))) {
                        return array($d, _DIR_LOGOS, $nom, $format, @filemtime($d));
                }
        }
+       
        # coherence de type pour servir comme filtre (formulaire_login)
        return array();
 }
 
-// http://doc.spip.org/@type_du_logo
+/**
+ * Retourne le type de logo tel que `art` depuis le nom de clé primaire
+ * de l'objet
+ *
+ * C'est par défaut le type d'objet, mais il existe des exceptions historiques
+ * déclarées par la globale `$table_logos`
+ *
+ * @global table_logos Exceptions des types de logo
+ *
+ * @param string $_id_objet
+ *     Nom de la clé primaire de l'objet
+ * @return string
+ *     Type du logo
+ **/
 function type_du_logo($_id_objet) {
        return isset($GLOBALS['table_logos'][$_id_objet])
                ? $GLOBALS['table_logos'][$_id_objet]
-               : objet_type(preg_replace(',^id_,','',$_id_objet));
+               : objet_type(preg_replace(',^id_,', '', $_id_objet));
 }
 
 // Exceptions standards (historique)
-global $table_logos;
-$table_logos = array( 
-       'id_article' => 'art', 
-       'id_auteur' => 'aut', 
+$GLOBALS['table_logos'] = array(
+       'id_article' => 'art',
+       'id_auteur' => 'aut',
        'id_rubrique' => 'rub',
        'id_groupe' => 'groupe',
 );
-
-?>