Server : Apache System : Linux webd348.cluster026.gra.hosting.ovh.net 5.15.148-ovh-vps-grsec-zfs-classid #1 SMP Thu Feb 8 09:41:04 UTC 2024 x86_64 User : hednacluml ( 122243) PHP Version : 8.3.9 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl Directory : /home/hednacluml/france/ecrire/inc/ |
<?php /***************************************************************************\ * SPIP, Système de publication pour l'internet * * * * Copyright © avec tendresse depuis 2001 * * Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribué sous licence GNU/GPL. * \***************************************************************************/ /** * Recherche de logo * * @package SPIP\Core\Logos **/ if (!defined('_ECRIRE_INC_VERSION')) { return; } /** * Cherche le logo d'un élément d'objet * * @global array 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[, doc]) * - array vide aucun logo trouvé. **/ function inc_chercher_logo_dist($id, $_id_objet, $mode = 'on', $compat_old_logos = true) { $mode = preg_replace(',\W,', '', $mode); if ($mode) { // chercher dans la base $mode_document = 'logo' . $mode; $objet = objet_type($_id_objet); $doc = sql_fetsel('D.*', 'spip_documents AS D JOIN spip_documents_liens AS L ON L.id_document=D.id_document', 'D.mode=' . sql_quote($mode_document) . ' AND L.objet=' . sql_quote($objet) . ' AND id_objet=' . intval($id)); if ($doc) { include_spip('inc/documents'); $d = get_spip_doc($doc['fichier']); return [$d, _DIR_IMG, basename($d), $doc['extension'], @filemtime($d), $doc]; } # deprecated TODO remove if ($compat_old_logos) { # attention au cas $id = '0' pour LOGO_SITE_SPIP : utiliser intval() $type = type_du_logo($_id_objet); $nom = $type . $mode . intval($id); foreach ($GLOBALS['formats_logos'] as $format) { if (@file_exists($d = (_DIR_LOGOS . $nom . '.' . $format))) { return [$d, _DIR_LOGOS, $nom, $format, @filemtime($d)]; } } } } # coherence de type pour servir comme filtre (formulaire_login) return []; } /** * 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 array $table_logos Exceptions des types de logo * * @param string $_id_objet * Nom de la clé primaire de l'objet * @return string * Type du logo * @deprecated 4.0 MAIS NE PAS SUPPRIMER CAR SERT POUR L'UPGRADE des logos et leur mise en base **/ function type_du_logo($_id_objet) { if (!in_array(debug_backtrace(0, 2)[1]['function'] ?? '', ['inc_chercher_logo_dist', 'logo_migrer_en_base'])) { trigger_deprecation('spip', '4.0', 'Using "%s" is deprecated', __FUNCTION__); } return $GLOBALS['table_logos'][$_id_objet] ?? objet_type(preg_replace(',^id_,', '', $_id_objet)); } // Exceptions standards (historique) $GLOBALS['table_logos'] = [ 'id_article' => 'art', 'id_auteur' => 'aut', 'id_rubrique' => 'rub', 'id_groupe' => 'groupe', ];