Browse Source

PHPDoc et PSR

svn/root/tags/v010
eric@smellup.net 5 years ago
parent
commit
7be3769425
  1. 152
      inc/ncore_noisette.php
  2. 120
      ncore/ncore.php

152
inc/ncore_noisette.php

@ -20,25 +20,25 @@ if (!defined('_ECRIRE_INC_VERSION')) {
* @uses ncore_noisette_stocker()
* @uses ncore_noisette_ranger()
*
* @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 $type_noisette
* Identifiant du type de noisette à ajouter au squelette.
* @param string $squelette
* Chemin relatif du squelette auquel associer la noisette.
* @param array $contexte
* Tableau éventuellement vide matérialisant le contexte d'utilisation du squelette.
* @param int $rang
* Rang dans le squelette contextualisé où insérer la noisette. Si l'argument n'est pas fourni ou est égal à 0
* on insère la noisette en fin de bloc.
* @param string $stockage
* Identifiant du service de stockage à utiliser si précisé. Dans ce cas, ni celui du plugin
* ni celui de N-Core ne seront utilisés. En général, cet identifiant est le préfixe d'un plugin
* fournissant le service de stockage souhaité.
* @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 $type_noisette
* Identifiant du type de noisette à ajouter au squelette.
* @param string $squelette
* Chemin relatif du squelette auquel associer la noisette.
* @param array $contexte
* Tableau éventuellement vide matérialisant le contexte d'utilisation du squelette.
* @param int $rang
* Rang dans le squelette contextualisé où insérer la noisette. Si l'argument n'est pas fourni ou est égal à 0
* on insère la noisette en fin de bloc.
* @param string $stockage
* Identifiant du service de stockage à utiliser si précisé. Dans ce cas, ni celui du plugin
* ni celui de N-Core ne seront utilisés. En général, cet identifiant est le préfixe d'un plugin
* fournissant le service de stockage souhaité.
*
* @return int|string|bool
* Retourne l'identifiant de la nouvelle instance de noisette créée ou `false` en cas d'erreur.
* Retourne l'identifiant de la nouvelle instance de noisette créée ou `false` en cas d'erreur.
**/
function noisette_ajouter($plugin, $type_noisette, $squelette, $contexte, $rang = 0, $stockage = '') {
@ -53,7 +53,8 @@ function noisette_ajouter($plugin, $type_noisette, $squelette, $contexte, $rang
$type_noisette,
'parametres',
false,
$stockage);
$stockage
);
// Et on leur associe des valeurs par défaut.
include_spip('inc/saisies');
@ -73,11 +74,11 @@ function noisette_ajouter($plugin, $type_noisette, $squelette, $contexte, $rang
// On charge les services de N-Core.
// Ce sont ces fonctions qui aiguillent ou pas vers un service spécifique du plugin.
include_spip("ncore/ncore");
include_spip('ncore/ncore');
// On récupère les noisettes déjà affectées au squelette contextualisé sous la forme d'un tableau indexé
// par le rang de chaque noisette.
$noisettes = ncore_noisette_lister($plugin, $squelette, $contexte, '', 'rang', $stockage);
$noisettes = ncore_noisette_lister($plugin, $squelette, $contexte, '', 'rang', $stockage);
// On calcule le rang max déjà utilisé.
$rang_max = $noisettes ? max(array_keys($noisettes)) : 0;
@ -120,16 +121,16 @@ function noisette_ajouter($plugin, $type_noisette, $squelette, $contexte, $rang
* @uses ncore_noisette_lister()
* @uses ncore_noisette_ranger()
*
* @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 mixed $noisette
* @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 mixed $noisette
* Identifiant de la noisette qui peut prendre soit la forme d'un entier ou d'une chaine unique, soit la forme
* d'un triplet (squelette, contexte, rang).
* @param string $stockage
* Identifiant du service de stockage à utiliser si précisé. Dans ce cas, ni celui du plugin
* ni celui de N-Core ne seront utilisés. En général, cet identifiant est le préfixe d'un plugin
* fournissant le service de stockage souhaité.
* @param string $stockage
* Identifiant du service de stockage à utiliser si précisé. Dans ce cas, ni celui du plugin
* ni celui de N-Core ne seront utilisés. En général, cet identifiant est le préfixe d'un plugin
* fournissant le service de stockage souhaité.
*
* @return bool
*/
@ -140,7 +141,7 @@ function noisette_supprimer($plugin, $noisette, $stockage = '') {
// On charge les services de N-Core.
// Ce sont ces fonctions qui aiguillent ou pas vers un service spécifique du plugin.
include_spip("ncore/ncore");
include_spip('ncore/ncore');
// L'identifiant d'une noisette peut être fourni de deux façons :
// - par une valeur unique, celle créée lors de l'ajout et qui peut-être un entier (id d'une table SPIP) ou
@ -164,7 +165,8 @@ function noisette_supprimer($plugin, $noisette, $stockage = '') {
unserialize($description['contexte']),
'',
'rang',
$stockage);
$stockage
);
// Si il reste des noisettes, on tasse d'un rang les noisettes qui suivaient la noisette supprimée.
if ($autres_noisettes) {
@ -189,23 +191,23 @@ function noisette_supprimer($plugin, $noisette, $stockage = '') {
* @uses ncore_squelette_identifier()
* @uses ncore_noisette_decrire()
*
* @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 mixed $noisette
* @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 mixed $noisette
* Identifiant de la noisette qui peut prendre soit la forme d'un entier ou d'une chaine unique, soit la forme
* d'un triplet (squelette, contexte, rang).
* @param string $information
* Information spécifique à retourner ou vide pour retourner toute la description.
* @param boolean $traiter_typo
* Indique si les données textuelles doivent être retournées brutes ou si elles doivent être traitées
* en utilisant la fonction _T_ou_typo. Par défaut l'indicateur vaut `false`.
* Les champs sérialisés sont eux toujours désérialisés.
* Pour l'instant il n'y a pas de champ textuel directement associé à une noisette.
* @param string $stockage
* Identifiant du service de stockage à utiliser si précisé. Dans ce cas, ni celui du plugin
* ni celui de N-Core ne seront utilisés. En général, cet identifiant est le préfixe d'un plugin
* fournissant le service de stockage souhaité.
* @param string $information
* Information spécifique à retourner ou vide pour retourner toute la description.
* @param boolean $traiter_typo
* Indique si les données textuelles doivent être retournées brutes ou si elles doivent être traitées
* en utilisant la fonction _T_ou_typo. Par défaut l'indicateur vaut `false`.
* Les champs sérialisés sont eux toujours désérialisés.
* Pour l'instant il n'y a pas de champ textuel directement associé à une noisette.
* @param string $stockage
* Identifiant du service de stockage à utiliser si précisé. Dans ce cas, ni celui du plugin
* ni celui de N-Core ne seront utilisés. En général, cet identifiant est le préfixe d'un plugin
* fournissant le service de stockage souhaité.
*
* @return bool
*/
@ -222,19 +224,20 @@ function noisette_lire($plugin, $noisette, $information = '', $traiter_typo = fa
if (!empty($noisette) and (is_string($noisette) or is_numeric($noisette) or is_array($noisette))) {
// On charge les services de N-Core.
// Ce sont ces fonctions qui aiguillent ou pas vers un service spécifique du plugin.
include_spip("ncore/ncore");
include_spip('ncore/ncore');
// On vérifie si la description n'a pas déjà été enregistrée dans le tableau adéquat.
$description_existe = isset($description_noisette_par_id[$plugin][$noisette]) ? true : false;
if (!is_array($noisette)) {
$description_existe = isset($description_noisette_par_id[$plugin][$noisette]) ? true : false;
} else {
if (isset($noisette['squelette']) and isset($noisette['contexte']) and isset($noisette['rang'])) {
if (isset($noisette['squelette'], $noisette['contexte'], $noisette['rang'])) {
$squelette_contextualise = ncore_squelette_identifier(
$plugin,
$noisette['squelette'],
$noisette['contexte'],
$stockage);
$stockage
);
$description_existe = isset($description_noisette_par_rang[$plugin][$squelette_contextualise][$noisette['rang']])
? true
: false;
@ -265,8 +268,8 @@ function noisette_lire($plugin, $noisette, $information = '', $traiter_typo = fa
if ($information) {
if ((!is_array($noisette) and isset($description_noisette_par_id[$plugin][$noisette][$information]))
or (is_array($noisette)
and isset($description_noisette_par_rang[$plugin][$squelette_contextualise][$noisette['rang']][$information]))) {
or (is_array($noisette)
and isset($description_noisette_par_rang[$plugin][$squelette_contextualise][$noisette['rang']][$information]))) {
$retour = is_array($noisette)
? $description_noisette_par_rang[$plugin][$squelette_contextualise][$noisette['rang']][$information]
: $description_noisette_par_id[$plugin][$noisette][$information];
@ -292,16 +295,18 @@ function noisette_lire($plugin, $noisette, $information = '', $traiter_typo = fa
* @uses ncore_noisette_lister()
* @uses ncore_noisette_ranger()
*
* @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 mixed $noisette
* @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 mixed $noisette
* Identifiant de la noisette qui peut prendre soit la forme d'un entier ou d'une chaine unique, soit la forme
* d'un triplet (squelette, contexte, rang).
* @param string $stockage
* Identifiant du service de stockage à utiliser si précisé. Dans ce cas, ni celui du plugin
* ni celui de N-Core ne seront utilisés. En général, cet identifiant est le préfixe d'un plugin
* fournissant le service de stockage souhaité.
* @param int $rang_destination
* Entier représentant le rang où repositionner la noisette dans le squelette contextualisé.
* @param string $stockage
* Identifiant du service de stockage à utiliser si précisé. Dans ce cas, ni celui du plugin
* ni celui de N-Core ne seront utilisés. En général, cet identifiant est le préfixe d'un plugin
* fournissant le service de stockage souhaité.
*
* @return bool
*/
@ -312,12 +317,12 @@ function noisette_deplacer($plugin, $noisette, $rang_destination, $stockage = ''
// On charge les services de N-Core.
// Ce sont ces fonctions qui aiguillent ou pas vers un service spécifique du plugin.
include_spip("ncore/ncore");
include_spip('ncore/ncore');
// L'identifiant d'une noisette peut être fourni de deux façons :
// - par une valeur unique, celle créée lors de l'ajout et qui peut-être un entier (id d'une table SPIP) ou
// une chaine unique par exemple générée par uniqid().
// - ou par un tableau à trois entrées fournissant le squelette, le contexte et le rang
// - ou par un tableau à trois entrées fournissant le squelette, le contexte et le rang
// (qui est unique pour un squelette donné).
if (!empty($noisette) and (is_string($noisette) or is_numeric($noisette) or is_array($noisette))) {
// Avant de deplacer la noisette on sauvegarde sa description et son rang origine.
@ -333,7 +338,8 @@ function noisette_deplacer($plugin, $noisette, $rang_destination, $stockage = ''
unserialize($description['contexte']),
'',
'rang',
$stockage);
$stockage
);
// On vérifie que le rang destination soit bien compris entre 1 et le rang max, sinon on le force à une
// des bornes.
@ -383,17 +389,17 @@ function noisette_deplacer($plugin, $noisette, $rang_destination, $stockage = ''
* @api
* @uses ncore_noisette_destocker()
*
* @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 mixed $squelette
* Chemin relatif du squelette où ajouter la noisette.
* @param array $contexte
* Tableau éventuellement vide matérialisant le contexte d'utilisation du squelette.
* @param string $stockage
* Identifiant du service de stockage à utiliser si précisé. Dans ce cas, ni celui du plugin
* ni celui de N-Core ne seront utilisés. En général, cet identifiant est le préfixe d'un plugin
* fournissant le service de stockage souhaité.
* @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 mixed $squelette
* Chemin relatif du squelette où ajouter la noisette.
* @param array $contexte
* Tableau éventuellement vide matérialisant le contexte d'utilisation du squelette.
* @param string $stockage
* Identifiant du service de stockage à utiliser si précisé. Dans ce cas, ni celui du plugin
* ni celui de N-Core ne seront utilisés. En général, cet identifiant est le préfixe d'un plugin
* fournissant le service de stockage souhaité.
*
* @return bool
*/
@ -404,7 +410,7 @@ function noisette_vider($plugin, $squelette, $contexte, $stockage = '') {
// On charge l'API de N-Core.
// Ce sont ces fonctions qui aiguillent ou pas vers une fonction spécifique du service.
include_spip("ncore/ncore");
include_spip('ncore/ncore');
if ($squelette or $contexte) {
// On construit un tableau avec le squelette et son contexte et on le passe à la fonction.

120
ncore/ncore.php

@ -45,9 +45,8 @@ if (!defined('_ECRIRE_INC_VERSION')) {
* Indique si le chargement en cours est forcé ou pas. Cela permet à la fonction N-Core ou au service
* concerné d'optimiser le traitement sachant que seules les types de noisette nouveaux sont fournis.
* @param string $stockage
* Identifiant du service de stockage à utiliser si précisé. Dans ce cas, ni celui du plugin
* ni celui de N-Core ne seront utilisés. En général, cet identifiant est le préfixe d'un plugin
* fournissant le service de stockage souhaité.
* Identifiant du service de stockage à utiliser si précisé. Dans ce cas, ni celui du plugin ni celui de N-Core
* ne seront utilisés. En général, cet identifiant est le préfixe du plugin fournissant le stockage.
*
* @return bool
* `true` si le traitement s'est bien déroulé, `false` sinon.
@ -130,9 +129,8 @@ function ncore_type_noisette_stocker($plugin, $types_noisette, $recharger, $stoc
* @param string $type_noisette
* Identifiant du type de noisette.
* @param string $stockage
* Identifiant du service de stockage à utiliser si précisé. Dans ce cas, ni celui du plugin
* ni celui de N-Core ne seront utilisés. En général, cet identifiant est le préfixe d'un plugin
* fournissant le service de stockage souhaité.
* Identifiant du service de stockage à utiliser si précisé. Dans ce cas, ni celui du plugin ni celui de N-Core
* ne seront utilisés. En général, cet identifiant est le préfixe du plugin fournissant le stockage.
*
* @return array
* Tableau de la description du type de noisette. Les champs textuels et les champs de type tableau sérialisé
@ -229,11 +227,22 @@ function ncore_type_noisette_lister($plugin, $information = '', $stockage = '')
*
* @package SPIP\NCORE\SERVICE\NOISETTE
*
* @uses ncore_chercher_service()
* @uses ncore_squelette_identifier()
*
* @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 array $description
* Description de la noisette. Soit la description ne contient pas l'id de la noisette et c'est un ajout,
* soit la description contient l'id et c'est une mise à jour.
* @param string $stockage
* Identifiant du service de stockage à utiliser si précisé. Dans ce cas, ni celui du plugin ni celui de N-Core
* ne seront utilisés. En général, cet identifiant est le préfixe du plugin fournissant le stockage.
*
* @return string
* @return mixed
* Id de la noisette de type entier ou chaine.
* Le stockage N-Core renvoie lui une chaine construite à partir du plugin et de la fonction uniqid().
*/
function ncore_noisette_stocker($plugin, $description, $stockage = '') {
@ -256,13 +265,14 @@ function ncore_noisette_stocker($plugin, $description, $stockage = '') {
include_spip('inc/config');
$noisettes = lire_config("${plugin}_noisettes", array());
// Détermination de l'identifiant du squelette contextualisé. Le squelette et le contexte font partie de
// Détermination de l'identifiant du squelette contextualisé. Le squelette et le contexte font partie de
// la description, le contexte est lui sérialisé.
$squelette_contextualise = ncore_squelette_identifier(
$plugin,
$description['squelette'],
unserialize($description['contexte']),
$stockage);
$stockage
);
if (empty($description['id_noisette'])) {
// Ajout de la noisette :
@ -280,7 +290,8 @@ function ncore_noisette_stocker($plugin, $description, $stockage = '') {
if (isset($noisettes[$squelette_contextualise][$description['rang']])) {
$noisettes[$squelette_contextualise][$description['rang']] = array_merge(
$noisettes[$squelette_contextualise][$description['rang']],
$description);
$description
);
}
}
@ -296,16 +307,26 @@ function ncore_noisette_stocker($plugin, $description, $stockage = '') {
/**
* Positionne une noisette à un rang différent que celui qu'elle occupe.
* Positionne une noisette à un rang différent que celui qu'elle occupe dans le squelette contextualisé.
*
* @package SPIP\NCORE\SERVICE\NOISETTE
*
* @uses ncore_chercher_service()
* @uses ncore_squelette_identifier()
*
* @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 array $description
* Description complète de la noisette.
* @param int $rang_destination
* Position à laquelle ranger la noisette au sein du squelette contextualisé.
* @param string $stockage
* Identifiant du service de stockage à utiliser si précisé. Dans ce cas, ni celui du plugin ni celui de N-Core
* ne seront utilisés. En général, cet identifiant est le préfixe du plugin fournissant le stockage.
*
* @return bool
* `true` si le traitement s'est bien déroulé, `false` sinon.
*/
function ncore_noisette_ranger($plugin, $description, $rang_destination, $stockage = '') {
@ -329,13 +350,14 @@ function ncore_noisette_ranger($plugin, $description, $rang_destination, $stocka
include_spip('inc/config');
$noisettes = lire_config("${plugin}_noisettes", array());
// Détermination de l'identifiant du squelette contextualisé. Le squelette et le contexte font partie de
// Détermination de l'identifiant du squelette contextualisé. Le squelette et le contexte font partie de
// la description, le contexte est lui sérialisé.
$squelette_contextualise = ncore_squelette_identifier(
$plugin,
$description['squelette'],
unserialize($description['contexte']),
$stockage);
$stockage
);
// On ajoute la noisette au rang choisi même si on doit écraser un index existant.
// Il est donc nécessaire de gérer la collision en amont de cette fonction.
@ -356,15 +378,25 @@ function ncore_noisette_ranger($plugin, $description, $rang_destination, $stocka
}
/**
* Retire une noisette et donc sa description de l'espace de stockage.
* Retire une noisette donnée de son squelette contextualisé ou retire l'ensemble des noisettes
* d'un squelette contextualisé de l'espace de stockage.
*
* @package SPIP\NCORE\SERVICE\NOISETTE
*
* @param string $plugin
* @uses ncore_chercher_service()
* @uses ncore_squelette_identifier()
*
* @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 array|string $description
* @param string $stockage
* Description complète de la noisette ou identifiant du squelette contextualisé.
* @param string $stockage
* Identifiant du service de stockage à utiliser si précisé. Dans ce cas, ni celui du plugin ni celui de N-Core
* ne seront utilisés. En général, cet identifiant est le préfixe du plugin fournissant le stockage.
*
* @return bool
* `true` si le traitement s'est bien déroulé, `false` sinon.
*/
function ncore_noisette_destocker($plugin, $description, $stockage = '') {
@ -388,13 +420,14 @@ function ncore_noisette_destocker($plugin, $description, $stockage = '') {
include_spip('inc/config');
$meta_noisettes = lire_config("${plugin}_noisettes", array());
// Détermination de l'identifiant du squelette contextualisé. Le squelette et le contexte font partie de
// Détermination de l'identifiant du squelette contextualisé. Le squelette et le contexte font partie de
// la description, le contexte est lui sérialisé.
$squelette_contextualise = ncore_squelette_identifier(
$plugin,
$description['squelette'],
unserialize($description['contexte']),
$stockage);
$stockage
);
if (!empty($description['id_noisette']) and isset($meta_noisettes[$squelette_contextualise][$description['rang']])) {
// On supprime une noisette donnée.
@ -409,7 +442,7 @@ function ncore_noisette_destocker($plugin, $description, $stockage = '') {
unset($meta_noisettes[$squelette_contextualise]);
ecrire_config("${plugin}_noisettes", $meta_noisettes);
$retour = true;
}
}
}
return $retour;
@ -417,12 +450,15 @@ function ncore_noisette_destocker($plugin, $description, $stockage = '') {
/**
* Renvoie un données ou toute la description des noisettes d'un squelette contextualisé ou de tous les squelettes
* Renvoie une donnée ou toute la description des noisettes d'un squelette contextualisé ou de tous les squelettes
* contextualisés.
* Le tableau retourné est indexé soit par id_noisette soit par squelette contextualisé et rang.
* Le tableau retourné est indexé soit par identifiant de noisette soit par squelette contextualisé et rang.
*
* @package SPIP\NCORE\SERVICE\NOISETTE
*
* @uses ncore_chercher_service()
* @uses ncore_squelette_identifier()
*
* @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.
@ -431,13 +467,16 @@ function ncore_noisette_destocker($plugin, $description, $stockage = '') {
* @param array $contexte
* Tableau éventuellement vide matérialisant le contexte d'utilisation du squelette.
* @param string $information
* Champ précis de la description d'une noisette ou vide pour toute la description.
* @param string $cle
* @param string $stockage
* Identifiant du service de stockage à utiliser si précisé. Dans ce cas, ni celui du plugin
* ni celui de N-Core ne seront utilisés. En général, cet identifiant est le préfixe d'un plugin
* fournissant le service de stockage souhaité.
* Champ de la description d'une noisette servant d'index du tableau. En général on utilisera soit `id_noisette`
* soit `rang`.
* @param string $stockage
* Identifiant du service de stockage à utiliser si précisé. Dans ce cas, ni celui du plugin ni celui de N-Core
* ne seront utilisés. En général, cet identifiant est le préfixe du plugin fournissant le stockage.
*
* @return array|mixed
* @return array
* Tableau de la liste des informations demandées indexé par identifiant de noisette ou par rang.
*/
function ncore_noisette_lister($plugin, $squelette = '', $contexte = array(), $information = '', $cle = 'rang', $stockage = '') {
@ -487,14 +526,13 @@ function ncore_noisette_lister($plugin, $squelette = '', $contexte = array(), $i
/**
* Renvoie la description brute d'un type de noisette sans traitement typo ni désérialisation des champs de type
* Renvoie la description brute d'une noisette sans traitement typo ni désérialisation des champs de type
* tableau sérialisé.
*
* Le service N-Core lit la description du type de noisette concerné dans le cache des descriptions.
* @package SPIP\NCORE\SERVICE\NOISETTE
*
* @package SPIP\NCORE\SERVICE\TYPE_NOISETTE
*
* @uses cache_lire()
* @uses ncore_chercher_service()
* @uses ncore_squelette_identifier()
*
* @param string $plugin
* Identifiant qui permet de distinguer le module appelant qui peut-être un plugin comme le noiZetier ou
@ -503,9 +541,8 @@ function ncore_noisette_lister($plugin, $squelette = '', $contexte = array(), $i
* Identifiant de la noisette qui peut prendre soit la forme d'un entier ou d'une chaine unique, soit la forme
* d'un triplet (squelette, contexte, rang).
* @param string $stockage
* Identifiant du service de stockage à utiliser si précisé. Dans ce cas, ni celui du plugin
* ni celui de N-Core ne seront utilisés. En général, cet identifiant est le préfixe d'un plugin
* fournissant le service de stockage souhaité.
* Identifiant du service de stockage à utiliser si précisé. Dans ce cas, ni celui du plugin ni celui de N-Core
* ne seront utilisés. En général, cet identifiant est le préfixe du plugin fournissant le stockage.
*
* @return array
* Tableau de la description du type de noisette. Les champs textuels et les champs de type tableau sérialisé
@ -550,13 +587,14 @@ function ncore_noisette_decrire($plugin, $noisette, $stockage = '') {
}
}
} else {
if (isset($noisette['squelette']) and isset($noisette['contexte']) and isset($noisette['rang'])) {
if (isset($noisette['squelette'], $noisette['contexte'], $noisette['rang'])) {
// Détermination de l'identifiant du squelette contextualisé.
$squelette_contextualise = ncore_squelette_identifier(
$plugin,
$noisette['squelette'],
$noisette['contexte'],
$stockage);
$stockage
);
if (!empty($meta_noisettes[$squelette_contextualise][$noisette['rang']])) {
// L'identifiant est un tableau associatif fournissant le squelette contextualisé et le rang.
// Comme la meta de N-Core est structurée ainsi c'est la méthode la plus adaptée pour adresser
@ -578,6 +616,8 @@ function ncore_noisette_decrire($plugin, $noisette, $stockage = '') {
*
* @package SPIP\NCORE\SERVICE\NOISETTE
*
* @uses ncore_chercher_service()
*
* @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.
@ -585,12 +625,12 @@ function ncore_noisette_decrire($plugin, $noisette, $stockage = '') {
* Chemin relatif du squelette où ajouter la noisette.
* @param array $contexte
* Tableau éventuellement vide matérialisant le contexte d'utilisation du squelette.
* @param string $stockage
* Identifiant du service de stockage à utiliser si précisé. Dans ce cas, ni celui du plugin
* ni celui de N-Core ne seront utilisés. En général, cet identifiant est le préfixe d'un plugin
* fournissant le service de stockage souhaité.
* @param string $stockage
* Identifiant du service de stockage à utiliser si précisé. Dans ce cas, ni celui du plugin ni celui de N-Core
* ne seront utilisés. En général, cet identifiant est le préfixe du plugin fournissant le stockage.
*
* @return string
* Identifiant du squelette contextualisé.
*/
function ncore_squelette_identifier($plugin, $squelette, $contexte, $stockage) {

Loading…
Cancel
Save