Changeset 110839 in spip-zone


Ignore:
Timestamp:
Jun 24, 2018, 2:51:43 PM (3 years ago)
Author:
eric@…
Message:

Mise au point de la fonction d'API noisette_parametrer() qui clot le sujet.
Update du guide de conception.

Location:
_plugins_/n-core/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/n-core/trunk/inc/ncore_noisette.php

    r110612 r110839  
    126126
    127127/**
     128 * Met à jour les paramètres éditables d'une noisette donnée.
     129 * La fonction contrôle la liste des champs modifiables.
     130 *
     131 * @api
     132 * @uses ncore_noisette_decrire()
     133 * @uses ncore_noisette_stocker()
     134 *
     135 * @param string $plugin
     136 *        Identifiant qui permet de distinguer le module appelant qui peut-être un plugin comme le noiZetier ou
     137 *        un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe.
     138 * @param mixed  $noisette
     139 *        Identifiant de la noisette qui peut prendre soit la forme d'un entier ou d'une chaine unique, soit la forme
     140 *        d'un couple (id conteneur, rang).
     141 * @param array  $modifications
     142 *        Tableau des couples (champ, valeur) à mettre à jour pour la noisette spécifiée.
     143 *        La fonction contrôle la liste des champs éditables en filtrant les champs standard comme `parametres`,
     144 *        `balise`, `css` et éventuellement ceux spécifiquement définis par le plugin utilisateur dans
     145 *        l'argument $editables_specifiques.
     146 * @param array  $editables_specifiques
     147 *        Liste de champs éditables spécifiques au plugin utilisateur ou tableau vide sinon.
     148 * @param string $stockage
     149 *        Identifiant du service de stockage à utiliser si précisé. Dans ce cas, ni celui du plugin
     150 *        ni celui de N-Core ne seront utilisés. En général, cet identifiant est le préfixe d'un plugin
     151 *        fournissant le service de stockage souhaité.
     152 *
     153 * @return bool
     154 */
     155function noisette_parametrer($plugin, $noisette, $modifications, $editables_specifiques = array(), $stockage = '') {
     156
     157        // Initialisation du retour
     158        $retour = false;
     159
     160        // On charge les services de N-Core.
     161        // Ce sont ces fonctions qui aiguillent ou pas vers un service spécifique du plugin.
     162        include_spip('ncore/ncore');
     163
     164        // L'identifiant d'une noisette peut être fourni de deux façons :
     165        // - par une valeur unique, celle créée lors de l'ajout et qui peut-être un entier (id d'une table SPIP) ou
     166        //   une chaine unique par exemple générée par uniqid().
     167        // - ou par un tableau à deux entrées fournissant le conteneur et le rang dans le conteneur
     168        //   (qui est unique pour un conteneur donné).
     169        if (!empty($noisette) and (is_string($noisette) or is_numeric($noisette) or is_array($noisette))) {
     170                // On récupère la description complète de la noisette avant de modifier les champs éditables spécifiés.
     171                $description = ncore_noisette_decrire($plugin, $noisette, $stockage);
     172
     173                // On contrôle les champs éditables et on met à jour la description de la noisette.
     174                $parametres = array_merge(array('parametres', 'balise', 'css'), $editables_specifiques);
     175                $modifications = array_intersect_key($modifications, array_flip($parametres));
     176                $description = array_merge($description, $modifications);
     177
     178                // La description est prête à être stockée en remplacement de l'existante.
     179                if ($id_noisette = ncore_noisette_stocker($plugin, $description, $stockage)) {
     180                        $retour = true;
     181                }
     182        }
     183
     184        return $retour;
     185}
     186
     187/**
    128188 * Supprime une noisette donnée du conteneur auquel elle est associée et, si cette noisette est un conteneur,
    129189 * le vide de ses noisettes au préalable.
  • _plugins_/n-core/trunk/paquet.xml

    r110836 r110839  
    22        prefix="ncore"
    33        categorie="outil"
    4         version="0.4.2"
     4        version="0.4.3"
    55        etat="dev"
    66        compatibilite="[3.2.0;3.2.*]"
  • _plugins_/n-core/trunk/public/noisette_preview.php

    r110835 r110839  
    88 * Compile la balise `#NOISETTE_PREVIEW` qui génère la prévisualisation de la noisette passée en argument
    99 * en gérant le fait que la type de noisette soit actif et propose bien un fichier de prévisualisation.
    10  * La signature de la balise est : `#NOISETTE_PREVIEW{id_noisette, type_noisette_actif}`.
     10 * La signature de la balise est : `#NOISETTE_PREVIEW{id_noisette, type_noisette_actif, plugins_necessites}`.
    1111 *
    1212 * @package SPIP\NCORE\NOISETTE\BALISE
Note: See TracChangeset for help on using the changeset viewer.