|
|
|
@ -11,8 +11,8 @@ if (!defined('_ECRIRE_INC_VERSION')) {
|
|
|
|
|
|
|
|
|
|
if (!defined('_NCORE_DIRCACHE')) {
|
|
|
|
|
/**
|
|
|
|
|
* Dossier racine dans lesquels tous les caches de N-Core seront écrits.
|
|
|
|
|
* Les caches sont répartis suivant le service dans un sous-dossier `/${service}`.
|
|
|
|
|
* Dossier racine dans lesquels tous les caches de N-Core seront rangés.
|
|
|
|
|
* Les caches sont répartis suivant le plugin dans un sous-dossier `/${plugin}`.
|
|
|
|
|
*/
|
|
|
|
|
define('_NCORE_DIRCACHE', _DIR_CACHE . 'ncore/');
|
|
|
|
|
}
|
|
|
|
@ -55,25 +55,28 @@ if (!defined('_NCORE_NOMCACHE_NOISETTE_CONTEXTE')) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Lit le cache spécifié pour un service donné et renvoie le contenu sous forme de tableau éventuellement
|
|
|
|
|
* vide.
|
|
|
|
|
* Lit le cache spécifié pour un plugin donné et renvoie le contenu sous forme de tableau
|
|
|
|
|
* éventuellement vide.
|
|
|
|
|
*
|
|
|
|
|
* @param string $service
|
|
|
|
|
* Le service permet de distinguer l'appelant qui peut-être un plugin comme le noiZetier ou
|
|
|
|
|
* un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe.
|
|
|
|
|
* @api
|
|
|
|
|
* @uses lire_fichier_securise()
|
|
|
|
|
*
|
|
|
|
|
* @param string $plugin
|
|
|
|
|
* Identifiant qui permet de distinguer le module appelant qui peut-être un plugin comme le noiZetier
|
|
|
|
|
* ou un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe.
|
|
|
|
|
* @param string $nom_cache
|
|
|
|
|
* Nom et extension du fichier cache.
|
|
|
|
|
*
|
|
|
|
|
* @return array
|
|
|
|
|
* Contenu du fichier sous la forme d'un tableau éventuellement vide.
|
|
|
|
|
*/
|
|
|
|
|
function cache_lire($service, $nom_cache) {
|
|
|
|
|
function cache_lire($plugin, $nom_cache) {
|
|
|
|
|
|
|
|
|
|
// Initialisation du contenu du cache
|
|
|
|
|
$cache = array();
|
|
|
|
|
|
|
|
|
|
// Détermination du nom du cache en fonction du service appelant et du type
|
|
|
|
|
$fichier_cache = _NCORE_DIRCACHE . "${service}/${nom_cache}";
|
|
|
|
|
// Détermination du nom du cache en fonction du plugin appelant et du type
|
|
|
|
|
$fichier_cache = _NCORE_DIRCACHE . "${plugin}/${nom_cache}";
|
|
|
|
|
|
|
|
|
|
include_spip('inc/flock');
|
|
|
|
|
if (lire_fichier_securise($fichier_cache, $contenu)) {
|
|
|
|
@ -85,11 +88,14 @@ function cache_lire($service, $nom_cache) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Ecrit le contenu d'un tableau dans le cache spécifié pour un service donné.
|
|
|
|
|
* Ecrit le contenu d'un tableau dans le cache spécifié pour un plugin donné.
|
|
|
|
|
*
|
|
|
|
|
* @api
|
|
|
|
|
* @uses ecrire_fichier_securise()
|
|
|
|
|
*
|
|
|
|
|
* @param string $service
|
|
|
|
|
* Le service permet de distinguer l'appelant qui peut-être un plugin comme le noiZetier ou
|
|
|
|
|
* un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe.
|
|
|
|
|
* @param string $plugin
|
|
|
|
|
* Identifiant qui permet de distinguer le module appelant qui peut-être un plugin comme le noiZetier
|
|
|
|
|
* ou un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe.
|
|
|
|
|
* @param string $nom_cache
|
|
|
|
|
* Nom et extension du fichier cache.
|
|
|
|
|
* @param array $contenu_cache
|
|
|
|
@ -97,13 +103,13 @@ function cache_lire($service, $nom_cache) {
|
|
|
|
|
*
|
|
|
|
|
* @return void
|
|
|
|
|
*/
|
|
|
|
|
function cache_ecrire($service, $nom_cache, $contenu_cache) {
|
|
|
|
|
function cache_ecrire($plugin, $nom_cache, $contenu_cache) {
|
|
|
|
|
|
|
|
|
|
// Création du répertoire du cache si besoin
|
|
|
|
|
$dir_cache = sous_repertoire(_DIR_CACHE, 'ncore');
|
|
|
|
|
$dir_cache = sous_repertoire($dir_cache, $service);
|
|
|
|
|
$dir_cache = sous_repertoire($dir_cache, $plugin);
|
|
|
|
|
|
|
|
|
|
// Détermination du nom du cache en fonction du service appelant et du type
|
|
|
|
|
// Détermination du nom du cache en fonction du plugin appelant et du type
|
|
|
|
|
$fichier_cache = "${dir_cache}${nom_cache}";
|
|
|
|
|
|
|
|
|
|
// On vérifie que le contenu est bien un tableau. Si ce n'est pas le cas on le transforme en tableau.
|
|
|
|
@ -118,20 +124,23 @@ function cache_ecrire($service, $nom_cache, $contenu_cache) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Supprime le cache cache spécifié pour un service donné.
|
|
|
|
|
* Supprime le cache cache spécifié pour un plugin donné.
|
|
|
|
|
*
|
|
|
|
|
* @api
|
|
|
|
|
* @uses supprimer_fichier()
|
|
|
|
|
*
|
|
|
|
|
* @param string $service
|
|
|
|
|
* Le service permet de distinguer l'appelant qui peut-être un plugin comme le noiZetier ou
|
|
|
|
|
* un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe.
|
|
|
|
|
* @param string $plugin
|
|
|
|
|
* Identifiant qui permet de distinguer le module appelant qui peut-être un plugin comme le noiZetier
|
|
|
|
|
* ou un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe.
|
|
|
|
|
* @param string $nom_cache
|
|
|
|
|
* Nom et extension du fichier cache.
|
|
|
|
|
*
|
|
|
|
|
* @return void
|
|
|
|
|
*/
|
|
|
|
|
function cache_supprimer($service, $nom_cache) {
|
|
|
|
|
function cache_supprimer($plugin, $nom_cache) {
|
|
|
|
|
|
|
|
|
|
// Détermination du nom du cache en fonction du service appelant et du type
|
|
|
|
|
$fichier_cache = _NCORE_DIRCACHE . "${service}/${nom_cache}";
|
|
|
|
|
// Détermination du nom du cache en fonction du plugin appelant et du type
|
|
|
|
|
$fichier_cache = _NCORE_DIRCACHE . "${plugin}/${nom_cache}";
|
|
|
|
|
|
|
|
|
|
// Suppression du fichier cache
|
|
|
|
|
include_spip('inc/flock');
|
|
|
|
|