uawdijnntqw1x1x1
IP : 216.73.217.6
Hostname : webm002.cluster111.gra.hosting.ovh.net
Kernel : Linux webm002.cluster111.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
OS : Linux
PATH:
/
home
/
atelierpru
/
provence
/
ecrire
/
base
/
..
/
plugins
/
get_infos.php
/
/
<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2019 * * 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. * \***************************************************************************/ /** * Obtention des description des plugins locaux * * @package SPIP\Core\Plugins **/ if (!defined('_ECRIRE_INC_VERSION')) { return; } /** * Lecture du fichier de configuration d'un plugin * * @staticvar string $filecache * @staticvar array $cache * * @param string|array|bool $plug * @param bool $reload * @param string $dir * @param bool $clean_old * @return array */ function plugins_get_infos_dist($plug = false, $reload = false, $dir = _DIR_PLUGINS, $clean_old = false) { static $cache = ''; static $filecache = ''; if ($cache === '') { $filecache = _DIR_TMP . "plugin_xml_cache.gz"; if (is_file($filecache)) { lire_fichier($filecache, $contenu); $cache = unserialize($contenu); } if (!is_array($cache)) { $cache = array(); } } if (defined('_VAR_MODE') and _VAR_MODE == 'recalcul') { $reload = true; } if ($plug === false) { ecrire_fichier($filecache, serialize($cache)); return $cache; } elseif (is_string($plug)) { $res = plugins_get_infos_un($plug, $reload, $dir, $cache); } elseif (is_array($plug)) { $res = false; if (!$reload) { $reload = -1; } foreach ($plug as $nom) { $res |= plugins_get_infos_un($nom, $reload, $dir, $cache); } // Nettoyer le cache des vieux plugins qui ne sont plus la if ($clean_old and isset($cache[$dir]) and count($cache[$dir])) { foreach (array_keys($cache[$dir]) as $p) { if (!in_array($p, $plug)) { unset($cache[$dir][$p]); } } } } if ($res) { ecrire_fichier($filecache, serialize($cache)); } if (!isset($cache[$dir])) { return array(); } if (is_string($plug)) { return isset($cache[$dir][$plug]) ? $cache[$dir][$plug] : array(); } else { return $cache[$dir]; } } function plugins_get_infos_un($plug, $reload, $dir, &$cache) { if (!is_readable($file = "$dir$plug/" . ($desc = "paquet") . ".xml")) { if (!is_readable($file = "$dir$plug/" . ($desc = "plugin") . ".xml")) { return false; } } if (($time = intval(@filemtime($file))) < 0) { return false; } $md5 = md5_file($file); $pcache = isset($cache[$dir][$plug]) ? $cache[$dir][$plug] : array('filemtime' => 0, 'md5_file' => ''); // si le cache est valide if ((intval($reload) <= 0) and ($time > 0) and ($time <= $pcache['filemtime']) and $md5 == $pcache['md5_file'] ) { return false; } // si on arrive pas a lire le fichier, se contenter du cache if (!($texte = spip_file_get_contents($file))) { return false; } $f = charger_fonction('infos_' . $desc, 'plugins'); $ret = $f($texte, $plug, $dir); $ret['filemtime'] = $time; $ret['md5_file'] = $md5; // Si on lit le paquet.xml de SPIP, on rajoute un procure php afin que les plugins puissent // utiliser un necessite php. SPIP procure donc la version php courante du serveur. // chaque librairie php est aussi procurée, par exemple 'php:curl'. if (isset($ret['prefix']) and $ret['prefix'] == 'spip') { $ret['procure']['php'] = array('nom' => 'php', 'version' => phpversion()); foreach (get_loaded_extensions() as $ext) { $ret['procure']['php:' . $ext] = array('nom' => 'php:' . $ext, 'version' => phpversion($ext)); } } $diff = ($ret != $pcache); if ($diff) { $cache[$dir][$plug] = $ret; # echo count($cache[$dir]), $dir,$plug, " $reloadc<br>"; } return $diff; }
/home/atelierpru/provence/ecrire/base/../plugins/get_infos.php