Changeset 112838 in spip-zone


Ignore:
Timestamp:
Dec 16, 2018, 3:38:04 PM (3 months ago)
Author:
root
Message:

Finalement on complète les fonctions de services du conteneur avec la fonction conteneur_construire() qui construit le tableau de conteneur à partir de l'id. C'est la fonction inverse de conteneur_identifier().

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

Legend:

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

    r112837 r112838  
    880880
    881881/**
     882 * Reconstruit le conteneur sous forme de tableau à partir de son identifiant unique (fonction inverse
     883 * de `ncore_conteneur_identifier`).
     884 * N-Core ne fournit le conteneur pour les noisettes conteneur.
     885 * Pour les autres conteneurs, c'est au plugin utilisateur de calculer le tableau.
     886 *
     887 * @package SPIP\NCORE\CONTENEUR\SERVICE
     888 *
     889 * @uses ncore_chercher_service()
     890 *
     891 * @param string $plugin
     892 *        Identifiant qui permet de distinguer le module appelant qui peut-être un plugin comme le noiZetier ou
     893 *        un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe.
     894 * @param string $id_conteneur
     895 *        Identifiant unique du conteneur. Si l'id correspond à une noisette conteneur le traitement sera fait
     896 *        par N-Core, sinon par le plugin utilisateur
     897 * @param string $stockage
     898 *        Identifiant du service de stockage à utiliser si précisé.
     899 *
     900 * @return array
     901 *        Tableau représentatif du conteneur ou tableau vide en cas d'erreur.
     902 */
     903function ncore_conteneur_construire($plugin, $id_conteneur, $stockage = '') {
     904
     905        // Il faut recomposer le tableau du conteneur à partir de son id.
     906        // N-Core ne propose pas de fonction par défaut pour les conteneurs spécifiques aux plugins utilisateur
     907        // sauf pour les noisettes conteneur.
     908        // Il est donc indispensable que le plugin utilisateur propose toujours une fonction de calcul du tableau
     909        // pour les conteneurs hors noisette conteneur.
     910        $conteneur = array();
     911        if ($id_conteneur) {
     912                $elements = explode('|', $id_conteneur);
     913                if ((count($elements) == 3) and ($elements[1] == 'noisette')) {
     914                        // C'est une noisette conteneur : les index sont le type et l'id de noisette.
     915                        $conteneur['type_noisette'] = $elements[0];
     916                        $conteneur['id_noisette'] = intval($elements[2]);
     917                } else {
     918                        // Le conteneur est spécifique au plugin utilisateur, c'est donc au plugin de le calculer.
     919                        include_spip('inc/ncore_utils');
     920                        if ($construire = ncore_chercher_service($plugin, 'conteneur_construire', $stockage)) {
     921                                $conteneur = $construire($plugin, $id_conteneur);
     922                        }
     923                }
     924        }
     925
     926        return $conteneur;
     927}
     928
     929/**
    882930 * Retire, de l'espace de stockage, toutes les noisettes d'un conteneur et ce de façon récursive si
    883931 * il existe une imbrication de conteneurs.
  • _plugins_/n-core/trunk/paquet.xml

    r112835 r112838  
    22        prefix="ncore"
    33        categorie="outil"
    4         version="0.5.7"
     4        version="0.5.8"
    55        etat="dev"
    66        compatibilite="[3.2.0;3.2.*]"
Note: See TracChangeset for help on using the changeset viewer.