Changeset 101868 in spip-zone


Ignore:
Timestamp:
Jan 21, 2017, 11:28:30 AM (3 years ago)
Author:
eric@…
Message:

Robustifier le commit précédent et l'appliquer aussi au chargement des infos d'une page.

Location:
_plugins_/noizetier/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/noizetier/trunk/noizetier_fonctions.php

    r101867 r101868  
    221221                // Choisir le bon répertoire des pages
    222222                if (defined('_NOIZETIER_REPERTOIRE_PAGES')) {
    223                         $rep = _NOIZETIER_REPERTOIRE_PAGES;
    224                 }
    225                 else {
    226                         $rep = $GLOBALS['z_blocs'][0] . '/';
    227                 }
    228                
    229                 // Lister les fonds disponibles dans le repertoire contenu
    230                 $liste = find_all_in_path($rep, $match);
    231                 if (count($liste)) {
    232                         foreach ($liste as $squelette => $chemin) {
    233                                 $page = preg_replace(',[.]html$,i', '', $squelette);
    234                                 $dossier = str_replace($squelette, '', $chemin);
    235                                 // Les elements situes dans prive/contenu sont ecartes
    236                                 if (substr($dossier, -14) != 'prive/contenu/') {
    237                                         if (count($infos_page = noizetier_charger_infos_page($dossier, $page)) > 0) {
    238                                                 $liste_pages[$page] = $infos_page;
     223                        $repertoire_pages = _NOIZETIER_REPERTOIRE_PAGES;
     224                }
     225                elseif (isset($GLOBALS['z_blocs'][0])) {
     226                        $repertoire_pages = $GLOBALS['z_blocs'][0] . '/';
     227                } else {
     228                        $repertoire_pages = '';
     229                }
     230
     231                if ($repertoire_pages) {
     232                        // Lister les fonds disponibles dans le repertoire contenu
     233                        $liste = find_all_in_path($repertoire_pages, $match);
     234                        if (count($liste)) {
     235                                foreach ($liste as $squelette => $chemin) {
     236                                        $page = preg_replace(',[.]html$,i', '', $squelette);
     237                                        $dossier = str_replace($squelette, '', $chemin);
     238                                        // Les elements situes dans prive/contenu sont ecartes
     239                                        if (substr($dossier, -14) != 'prive/contenu/') {
     240                                                if (count($infos_page = noizetier_charger_infos_page($dossier, $page)) > 0) {
     241                                                        $liste_pages[$page] = $infos_page;
     242                                                }
    239243                                        }
    240244                                }
    241245                        }
    242                 }
    243 
    244                 // Dans le cas de Zpip, il faut supprimer la page 'page.html' et la page 'z_apl.html'
    245                 if (defined('_DIR_PLUGIN_Z') or defined('_DIR_PLUGIN_ZCORE')) {
    246                         unset($liste_pages['page']);
    247                         unset($liste_pages['z_apl']);
    248                 }
    249 
    250                 // supprimer de la liste les pages necissant un plugin qui n'est pas actif
    251                 foreach ($liste_pages as $page => $infos_page) {
    252                         if (isset($infos_page['necessite'])) {
    253                                 foreach ($infos_page['necessite'] as $plugin) {
    254                                         if (!defined('_DIR_PLUGIN_'.strtoupper($plugin))) {
    255                                                 unset($liste_pages[$page]);
     246
     247                        // Dans le cas de Zpip, il faut supprimer la page 'page.html' et la page 'z_apl.html'
     248                        if (defined('_DIR_PLUGIN_Z') or defined('_DIR_PLUGIN_ZCORE')) {
     249                                unset($liste_pages['page']);
     250                                unset($liste_pages['z_apl']);
     251                        }
     252
     253                        // supprimer de la liste les pages necissant un plugin qui n'est pas actif
     254                        foreach ($liste_pages as $page => $infos_page) {
     255                                if (isset($infos_page['necessite'])) {
     256                                        foreach ($infos_page['necessite'] as $plugin) {
     257                                                if (!defined('_DIR_PLUGIN_'.strtoupper($plugin))) {
     258                                                        unset($liste_pages[$page]);
     259                                                }
    256260                                        }
    257261                                }
    258262                        }
    259                 }
    260 
    261                 $liste_pages = pipeline('noizetier_lister_pages', $liste_pages);
    262                
    263                 // On ajoute les compositions du noizetier
    264                 if (defined('_DIR_PLUGIN_COMPOSITIONS')) {
    265                         $noizetier_compositions = unserialize($GLOBALS['meta']['noizetier_compositions']);
    266                         // On doit transformer le tableau de [type][compo] en [type-compo]
    267                         $liste_compos = array();
    268                         if (is_array($noizetier_compositions)) {
    269                                 foreach ($noizetier_compositions as $type => $compos_type) {
    270                                         foreach ($compos_type as $compo => $infos_compo) {
    271                                                 $infos_compo['nom'] = typo($infos_compo['nom']);
    272                                                 $infos_compo['description'] = propre($infos_compo['description']);
    273                                                 if ($infos_compo['icon'] == '') {
    274                                                         $infos_compo['icon'] = (isset($liste_pages[$type]) && isset($liste_pages[$type]['icon']) && $liste_pages[$type]['icon'] != '') ? $liste_pages[$type]['icon'] : 'composition-24.png';
     263
     264                        $liste_pages = pipeline('noizetier_lister_pages', $liste_pages);
     265
     266                        // On ajoute les compositions du noizetier
     267                        if (defined('_DIR_PLUGIN_COMPOSITIONS')) {
     268                                $noizetier_compositions = unserialize($GLOBALS['meta']['noizetier_compositions']);
     269                                // On doit transformer le tableau de [type][compo] en [type-compo]
     270                                $liste_compos = array();
     271                                if (is_array($noizetier_compositions)) {
     272                                        foreach ($noizetier_compositions as $type => $compos_type) {
     273                                                foreach ($compos_type as $compo => $infos_compo) {
     274                                                        $infos_compo['nom'] = typo($infos_compo['nom']);
     275                                                        $infos_compo['description'] = propre($infos_compo['description']);
     276                                                        if ($infos_compo['icon'] == '') {
     277                                                                $infos_compo['icon'] = (isset($liste_pages[$type]) && isset($liste_pages[$type]['icon']) && $liste_pages[$type]['icon'] != '') ? $liste_pages[$type]['icon'] : 'composition-24.png';
     278                                                        }
     279                                                        if (isset($liste_pages[$type])) {
     280                                                                $infos_compo['blocs'] = $liste_pages[$type]['blocs'];
     281                                                        } else {
     282                                                                $infos_compo['blocs'] = noizetier_blocs_defaut();
     283                                                        }
     284                                                        $liste_compos[$type.'-'.$compo] = $infos_compo;
    275285                                                }
    276                                                 if (isset($liste_pages[$type])) {
    277                                                         $infos_compo['blocs'] = $liste_pages[$type]['blocs'];
    278                                                 } else {
    279                                                         $infos_compo['blocs'] = noizetier_blocs_defaut();
    280                                                 }
    281                                                 $liste_compos[$type.'-'.$compo] = $infos_compo;
    282286                                        }
    283287                                }
    284                         }
    285                         $liste_pages = $liste_pages + $liste_compos;
    286                 }
    287         }
     288                                $liste_pages = $liste_pages + $liste_compos;
     289                        }
     290                }
     291        }
     292
    288293        if ($page_specifique) {
    289294                return $liste_pages[$page_specifique];
     
    308313        // Choisir le bon répertoire des pages
    309314        if (defined('_NOIZETIER_REPERTOIRE_PAGES')) {
    310                 $rep = _NOIZETIER_REPERTOIRE_PAGES;
    311         }
    312         elseif (defined('_DIR_PLUGIN_ZCORE')) {
    313                 $rep = 'content/';
    314         }
    315         else {
    316                 $rep = 'contenu/';
    317         }
    318        
     315                $repertoire_pages = _NOIZETIER_REPERTOIRE_PAGES;
     316        }
     317        elseif (isset($GLOBALS['z_blocs'][0])) {
     318                $repertoire_pages = $GLOBALS['z_blocs'][0] . '/';
     319        } else {
     320                $repertoire_pages = '';
     321        }
     322
    319323        // On autorise le fait que le fichier xml ne soit pas dans le meme plugin que le fichier .html
    320324        // Au cas ou le fichier .html soit surcharge sans que le fichier .xml ne le soit
    321         $fichier = find_in_path("$rep$page.xml");
     325        $fichier = find_in_path("$repertoire_pages$page.xml");
    322326
    323327        include_spip('inc/xml');
  • _plugins_/noizetier/trunk/paquet.xml

    r101867 r101868  
    22        prefix="noizetier"
    33        categorie="maintenance"
    4         version="2.7.2"
     4        version="2.7.3"
    55        etat="test"
    66        compatibilite="[3.0.0;3.1.*]"
Note: See TracChangeset for help on using the changeset viewer.