Changeset 113499 in spip-zone


Ignore:
Timestamp:
Jan 18, 2019, 7:51:09 PM (5 weeks ago)
Author:
eric@…
Message:

On simplifie le service noisette_completer() en utilisant l'API spécifique noizetier_conteneur_decomposer(). Et 30 lignes en moins !

Location:
_plugins_/noizetier/trunk
Files:
3 edited

Legend:

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

    r113001 r113499  
    3535        $conteneur = array();
    3636
    37         // Construction du tableau associatif du conteneur.
     37        // Construction du tableau associatif canonique du conteneur.
    3838        if (!empty($noisette['type_noisette']) and !empty($noisette['id_noisette'])) {
    3939                // Le conteneur est une noisette.
     
    4242                if (is_array($page_ou_objet)) {
    4343                        // Le conteneur est un objet.
    44                         $conteneur['objet'] = $page_ou_objet['objet'];
    45                         $conteneur['id_objet'] = $page_ou_objet['id_objet'];
     44                        $conteneur = $page_ou_objet;
    4645                        $conteneur['squelette'] = "${bloc}/{$page_ou_objet['objet']}";
    4746                }
  • _plugins_/noizetier/trunk/ncore/noizetier.php

    r113497 r113499  
    337337                );
    338338
    339                 // On desérialise le conteneur et après on traite les compléments.
    340                 $conteneur = unserialize($description['conteneur']);
    341 
    342                 // Détermination du complément en fonction du fait que le conteneur soit une noisette ou pas.
    343                 include_spip('inc/ncore_conteneur');
    344                 if (conteneur_est_noisette('noizetier', $conteneur)) {
    345                         // -- si le conteneur est une noisette on récupère les informations de son conteneur. Comme les noisettes
    346                         //    sont insérées par niveau on duplique forcément les informations du bloc supérieur à chaque imbrication.
    347                         //    Il est donc inutile de remonter au bloc racine.
    348                         $select = array_keys($complement);
    349                         $where = array('id_noisette=' . intval($conteneur['id_noisette']), 'plugin=' . sql_quote($plugin));
    350                         // Il est possible que le conteneur ne soit pas déjà en base (cas improbable) et donc pour éviter une
    351                         // notice on fait en sorte que $complement soit toujours un tableau.
    352                         if ($informations_bloc = sql_fetsel($select, 'spip_noisettes', $where)) {
    353                                 $complement = $informations_bloc;
    354                         }
    355                 } else {
    356                         // -- si le conteneur n'est pas une noisette, le complément se déduit du conteneur lui-même.
    357                         if (!empty($conteneur['squelette'])) {
    358                                 list($bloc, ) = explode('/', $conteneur['squelette']);
    359                                 if (!empty($conteneur['objet']) and !empty($conteneur['id_objet']) and ($id = intval($conteneur['id_objet']))) {
    360                                         // Objet
    361                                         $complement['objet'] = $conteneur['objet'];
    362                                         $complement['id_objet'] = $id;
    363                                         $complement['bloc'] = isset($conteneur['bloc']) ? $conteneur['bloc'] : $bloc;
    364                                 } else {
    365                                         $squelette = $conteneur['squelette'];
    366                                         $page = basename($squelette);
    367                                         $identifiants_page = explode('-', $page, 2);
    368                                         if (!empty($identifiants_page[1])) {
    369                                                 // Forcément une composition
    370                                                 $complement['type'] = $identifiants_page[0];
    371                                                 $complement['composition'] = $identifiants_page[1];
    372                                         } else {
    373                                                 // Page simple
    374                                                 $complement['type'] = $identifiants_page[0];
    375                                         }
    376                                         $complement['bloc'] = isset($conteneur['bloc']) ? $conteneur['bloc'] : $bloc;
    377                                 }
    378                         }
     339                // La description de la noisette contient l'id du conteneur : on le décompose car il contient certains
     340                // des champs complémentaires.
     341                $id_conteneur = $description['id_conteneur'];
     342                $conteneur_etendu = noizetier_conteneur_decomposer($id_conteneur);
     343
     344                if ($conteneur_etendu) {
     345                        // On ajoute les index manquants avec leur valeur par défaut
     346                        $conteneur_etendu = array_merge($complement, $conteneur_etendu);
     347                        // On filtre les index inutiles comme squelette par exemple.
     348                        $complement = array_intersect_key($conteneur_etendu, $complement);
    379349                }
    380350
  • _plugins_/noizetier/trunk/paquet.xml

    r113481 r113499  
    22        prefix="noizetier"
    33        categorie="maintenance"
    4         version="3.0.68"
     4        version="3.0.69"
    55        etat="dev"
    66        compatibilite="[3.2.0;3.2.*]"
Note: See TracChangeset for help on using the changeset viewer.