Changeset 112903 in spip-zone


Ignore:
Timestamp:
Dec 18, 2018, 7:59:05 PM (3 months ago)
Author:
eric@…
Message:

Ne pas appeler les fonctions de service propre au noiZetier entre elles ou à partir d'une autre fonction du noizetier. En effet, il faut toujours appeler à minima la fonction de service de N-Core ou la fonction d'API si elle existe.
A voir d'ailleurs plus tard si il ne faudrait pas monter en API les fonctions de service N-Core appeler dans les plugins utilisateur pour que ceux n'utilisent strictement que ces API.

Location:
_plugins_/noizetier/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/noizetier/trunk/inc/noizetier_conteneur.php

    r112848 r112903  
    1212/**
    1313 * Détermine l'id du conteneur à partir des données d'une page, d'un objet ou d'une noisette conteneur.
    14  * Cette fonction est en fait une encapsalution de la fonction noizetier_conteneur_identifier() qui permet
     14 * Cette fonction est en fait une encapsalution de la fonction conteneur_identifier() qui permet
    1515 * de reconstituer le conteneur à partir des données du noizetier page, composition, objet et noisette.
    1616 *
    1717 * @api
    1818 *
    19  * @uses noizetier_conteneur_identifier()
     19 * @uses ncore_conteneur_verifier()
     20 * @uses ncore_conteneur_identifier()
    2021 *
    2122 * @param array|string $page_ou_objet
     
    3637
    3738        // Construction du tableau associatif du conteneur.
     39        include_spip('ncore/ncore');
    3840        if (!empty($noisette['type_noisette']) and !empty($noisette['id_noisette'])) {
    39                 // Le conteneur est une noisette.
    40                 $conteneur = $noisette;
     41                // Le conteneur est une noisette. On appelle le service de vérification de N-Core pour vérifier
     42                // la conformité du tableau.
     43                $conteneur = ncore_conteneur_verifier('noizetier', $noisette);
    4144        } else {
    4245                if (is_array($page_ou_objet)) {
     
    5255        }
    5356
    54         // Calcul de l'identifiant du conteneur
    55         include_spip('ncore_fonctions');
    56         $id_conteneur = conteneur_identifier('noizetier', $conteneur);
     57        // Calcul de l'identifiant du conteneur. On utilise la fonction de N-Core pour traiter aussi le cas
     58        // des noisettes conteneur.
     59        $id_conteneur = ncore_conteneur_identifier('noizetier', $conteneur);
    5760
    5861        return $id_conteneur;
     
    8184        // Construction du tableau associatif propre au noizetier contenant les éléments
    8285        // d'un conteneur mais aussi les éléments propres au noiZetier comme la page,
    83         // la composition, le type, l'objet ou la noisette conteneur.
    84         $elements = explode('|', $id_conteneur);
    85         if (count($elements) == 1) {
    86                 // C'est une page ou une composition
    87                 // -- le squelette
    88                 $conteneur['squelette'] = $id_conteneur;
     86        // la composition, le type, l'objet ou la noisette conteneur
     87
     88        // -- On commence d'abord par contruire le conteneur canonique avec le service de N-Core.
     89        include_spip('ncore/ncore');
     90        $conteneur = ncore_conteneur_construire('noizetier', $id_conteneur);
     91
     92        if (count($conteneur) == 1) {
     93                // C'est une page ou une composition : l'index squelette est le seul initialisé
    8994                // -- Page et bloc
    90                 list($bloc, $page) = explode('/', $id_conteneur);
     95                list($bloc, $page) = explode('/', $conteneur['squelette']);
    9196                $conteneur['bloc'] = $bloc;
    9297                $conteneur['page'] = $page;
     
    96101                $conteneur['composition'] = noizetier_page_extraire_composition($conteneur['page']);
    97102        } else {
    98                 if ($elements[1] == 'noisette') {
    99                         // C'est une noisette
    100                         // -- Type de noisette et id_noisette
    101                         $conteneur['type_noisette'] = $elements[0];
    102                         $conteneur['id_noisette'] = intval($elements[2]);
     103                if (!empty($conteneur['id_noisette'])) {
     104                        // C'est une noisette conteneur : les index type de noisette et id_noisette sont initialisés.
    103105                        // -- le squelette
    104106                        // TODO : revoir l'intérêt voire la cohérence de ce champ
     
    122124                }
    123125                else {
    124                         // C'est un objet
    125                         // -- le type d'objet et son id
    126                         $conteneur['objet'] = $elements[1];
    127                         $conteneur['id_objet'] = $elements[2];
    128                         // -- le squelette
    129                         $conteneur['squelette'] = $elements[0];
     126                        // C'est un objet : le squelette, le type d'objet et son id sont déjà initialisés
    130127                        // -- le bloc
    131128                        list($bloc, ) = explode('/', $conteneur['squelette']);
  • _plugins_/noizetier/trunk/ncore/noizetier.php

    r112875 r112903  
    280280        // On rajoute la description à son emplacement destination en prenant soin de modifier les index id_conteneur,
    281281        // conteneur et rang_noisette qui doivent représenter le conteneur destination.
     282        include_spip('ncore/ncore');
     283        $description['conteneur'] = ncore_conteneur_construire($plugin, $id_conteneur);
    282284        $description['id_conteneur'] = $id_conteneur;
    283         $description['conteneur'] = ncore_conteneur_construire($plugin, $id_conteneur);
    284285        $description['rang_noisette'] = $rang;
    285286
     
    472473                // On sélectionne le contenant par son identifiant qui est stocké dans la table.
    473474                if (is_array($conteneur)) {
    474                         $id_conteneur = noizetier_conteneur_identifier($plugin, $conteneur);
     475                        include_spip('ncore/ncore');
     476                        $id_conteneur = ncore_conteneur_identifier($plugin, $conteneur);
    475477                } else {
    476478                        $id_conteneur = $conteneur;
     
    723725        // Calcul de l'id du conteneur en fonction du mode d'appel de la fonction.
    724726        if (is_array($conteneur)) {
    725                 $id_conteneur = noizetier_conteneur_identifier($plugin, $conteneur);
     727                include_spip('ncore/ncore');
     728                $id_conteneur = ncore_conteneur_identifier($plugin, $conteneur);
    726729        } else {
    727730                $id_conteneur = $conteneur;
  • _plugins_/noizetier/trunk/noizetier_administrations.php

    r112848 r112903  
    160160        $noisettes = sql_allfetsel($select, $from);
    161161        if ($noisettes) {
    162                 include_spip('ncore/noizetier');
     162                include_spip('ncore/ncore');
    163163                foreach ($noisettes as $_cle => $_noisette) {
    164164                        // C'est le plugin noizetier
     
    178178                        }
    179179                        $noisettes[$_cle]['conteneur'] = serialize($conteneur);
    180                         $noisettes[$_cle]['id_conteneur'] = noizetier_conteneur_identifier('noizetier', $conteneur);
     180                        $noisettes[$_cle]['id_conteneur'] = ncore_conteneur_identifier('noizetier', $conteneur);
    181181                }
    182182                sql_replace_multi($from, $noisettes);
Note: See TracChangeset for help on using the changeset viewer.