La fabrique de caches pour plugins
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

58 lines
1.9 KiB

<?php
/**
* Ce fichier contient les cas d'utilisation de certains pipelines par le plugin Cache Factory.
*
* @package SPIP\CACHE\PIPELINE
*/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**
* Supprime la meta stockant la configuration des caches de tous les plugins utilisateur quand
* la page d'administration des plugins est affiché.
*
* C'est un peu grossier mais il n'existe pas de pipeline pour agir à la mise à jour d'un plugin.
* Au moins, cela permet facilement de recharger une configuration d'un plugin utilisateur qui aurait changée
* sans être une opération trop récurrente.
*
* @uses configuration_cache_lire()
* @uses configuration_cache_effacer()
* @uses ezcache_cache_configurer()
*
* @param array $flux Tableau des données permettant de caractériser la page concernée et de déclencher le traitement uniquement
* sur la page `admin_plugin`.
*
* @return array Le flux entrant n'est pas modifié.
*/
function ezcache_affiche_milieu($flux) {
if (isset($flux['args']['exec'])) {
// Initialisation de la page du privé
$exec = $flux['args']['exec'];
if ($exec == 'admin_plugin') {
// Administration des plugins
// Supprime la meta du plugin Cache Factory de façon à mettre à jour la configuration des
// plugins utilisateur si besoin.
// Recharge la configuration des plugins utilisateur :
// -- on lit la meta pour obtenir la liste des plugins
include_spip('inc/ezcache_cache');
$configuration = configuration_cache_lire();
if ($configuration) {
$plugins = array_keys($configuration);
// -- on supprime la meta
configuration_cache_effacer();
// -- on reconfigure chaque plugin
include_spip('ezcache/ezcache');
foreach ($plugins as $_plugin) {
if (defined('_DIR_PLUGIN_' . strtoupper($_plugin))) {
ezcache_cache_configurer($_plugin);
}
}
}
}
}
return $flux;
}