Changeset 112903 in spip-zone for _plugins_/noizetier/trunk/inc


Ignore:
Timestamp:
Dec 18, 2018, 7:59:05 PM (7 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.

File:
1 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']);
Note: See TracChangeset for help on using the changeset viewer.