Changeset 113625 in spip-zone


Ignore:
Timestamp:
Jan 26, 2019, 8:34:41 PM (3 weeks ago)
Author:
eric@…
Message:

Par cohérence avec les autres API on rajoute l'argument $information en deuxème position de page_noizetier_lire() et par conséquence on revoit les appels (l'argument $traiter_typo est mis à false par défaut).
Et en plus on corrige la balise #PAGE_NOIZETIER_INFOS qui ne fonctionnait pas pour une demande d'information unique car justement l'API précédente ne le permettait pas !

Location:
_plugins_/noizetier/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/noizetier/trunk/formulaires/editer_page.php

    r113610 r113625  
    4848
    4949        include_spip('inc/noizetier_page');
    50         $description_page = page_noizetier_lire($page, false);
     50        $description_page = page_noizetier_lire($page);
    5151        if ($description_page) {
    5252                if ($edition == 'modifier') {
  • _plugins_/noizetier/trunk/inc/noizetier_page.php

    r113623 r113625  
    182182
    183183/**
    184  * Retourne la configuration de la page, de la composition explicite ou de la composition virtuelle demandée.
    185  * La configuration est stockée en base de données, certains champs sont recalculés avant d'être fournis.
    186  *
    187  * @api
    188  *
    189  * @uses bloc_z_lister_defaut()
     184 * Retourne la description complète de la page, de la composition explicite ou de la composition virtuelle demandée ou
     185 * une information donnée uniquement.
     186 * La description est stockée en base de données, certains champs sont recalculés avant d'être fournis.
     187 *
     188 * @api
     189 *
     190 * @uses page_noizetier_lister_blocs()
    190191 *
    191192 * @param string        $page
    192193 *              Identifiant de la page ou de la composition.
    193  * @param boolean       $traitement_typo
     194 * @param string  $information
     195 *        Information spécifique à retourner ou vide pour retourner toute la description.
     196 * @param boolean       $traiter_typo
    194197 *      Indique si les données textuelles doivent être retournées brutes ou si elles doivent être traitées
    195198 *      en utilisant la fonction typo.
    196199 *              Les champs sérialisés sont toujours désérialisés.
    197200 *
    198  * @return array
    199  */
    200 function page_noizetier_lire($page, $traitement_typo = true) {
     201 * @return array|string
     202 *        La description complète ou un champ précis demandé pour une page donnée. Les champs
     203 *        de type tableau sont systématiquement désérialisés et si demandé, les champs textuels peuvent être
     204 *        traités avec la fonction typo().
     205 */
     206function page_noizetier_lire($page, $information = '', $traiter_typo = false) {
    201207
    202208        static $description_page = array();
    203209
    204         if (!isset($description_page[$traitement_typo][$page])) {
     210        if (!isset($description_page[$traiter_typo][$page])) {
    205211                // Chargement de toute la configuration de la page en base de données.
    206212                $description = sql_fetsel('*', 'spip_noizetier_pages', array('page=' . sql_quote($page)));
     
    209215                if ($description) {
    210216                        // Traitements des champs textuels
    211                         if ($traitement_typo) {
     217                        if ($traiter_typo) {
    212218                                $description['nom'] = typo($description['nom']);
    213                                 if (isset($description['description'])) {
     219                                if ($description['description']) {
    214220                                        $description['description'] = typo($description['description']);
    215221                                }
    216222                        }
     223
    217224                        // Traitements des champs tableaux sérialisés
    218225                        $description['blocs_exclus'] = unserialize($description['blocs_exclus']);
    219226                        $description['necessite'] = unserialize($description['necessite']);
    220227                        $description['branche'] = unserialize($description['branche']);
     228
    221229                        // Calcul des blocs
    222230                        $description['blocs'] = page_noizetier_lister_blocs($page, $description['blocs_exclus']);
    223                         $description_page[$traitement_typo][$page] = $description;
     231
     232                        // Stockage de la description
     233                        $description_page[$traiter_typo][$page] = $description;
    224234                } else {
    225                         $description_page[$traitement_typo][$page] = array();
    226                 }
    227         }
    228 
    229         return $description_page[$traitement_typo][$page];
     235                        // En cas d'erreur stocker une description vide
     236                        $description_page[$traiter_typo][$page] = array();
     237                }
     238        }
     239
     240        if ($information) {
     241                if (isset($description_page[$traiter_typo][$page][$information])) {
     242                        $page_lue = $description_page[$traiter_typo][$page][$information];
     243                } else {
     244                        $page_lue = '';
     245                }
     246        } else {
     247                $page_lue = $description_page[$traiter_typo][$page];
     248        }
     249
     250        return $page_lue;
    230251}
    231252
  • _plugins_/noizetier/trunk/noizetier_autorisations.php

    r113619 r113625  
    9696        if (autoriser('noizetier')
    9797        and (is_array($options) and !empty($options))) {
    98                 if (!empty($options['page']) and ($configuration = page_noizetier_lire($options['page'], false))
     98                if (!empty($options['page']) and ($configuration = page_noizetier_lire($options['page']))
    9999                and (!$configuration['composition']
    100100                        or (defined('_DIR_PLUGIN_COMPOSITIONS')
     
    148148                and autoriser('noizetier')
    149149                and (is_array($options) and !empty($options))
    150                 and (!empty($options['page']) and ($configuration = page_noizetier_lire($options['page'], false))
     150                and (!empty($options['page']) and ($configuration = page_noizetier_lire($options['page']))
    151151                and !$configuration['composition'])
    152152                and ($configuration['est_page_objet'] == 'oui')
     
    183183        if (autoriser('noizetier')
    184184        and (is_array($options) and !empty($options))
    185         and (!empty($options['page']) and ($configuration = page_noizetier_lire($options['page'], false))
     185        and (!empty($options['page']) and ($configuration = page_noizetier_lire($options['page']))
    186186        and !$configuration['composition'])
    187187        and (defined('_DIR_PLUGIN_COMPOSITIONS'))
     
    214214        if ((is_array($options) and !empty($options['page']))
    215215        and autoriser('configurerpage', 'noizetier', 0, '', $options)
    216         and ($configuration = page_noizetier_lire($options['page'], false))
     216        and ($configuration = page_noizetier_lire($options['page']))
    217217        and $configuration['composition']
    218218        and ($configuration['est_virtuelle'] == 'oui')) {
     
    268268        if (autoriser('noizetier')
    269269        and (is_array($options) and !empty($options))
    270         and (!empty($options['page']) and ($configuration = page_noizetier_lire($options['page'], false))
     270        and (!empty($options['page']) and ($configuration = page_noizetier_lire($options['page']))
    271271        and $configuration['composition'])
    272272        and defined('_DIR_PLUGIN_COMPOSITIONS')) {
  • _plugins_/noizetier/trunk/noizetier_fonctions.php

    r113556 r113625  
    255255                $retour = page_noizetier_compter_noisettes($page);
    256256        } else {
    257                 $retour = page_noizetier_lire($page, $information);
     257                $retour = page_noizetier_lire($page, $information, true);
    258258        }
    259259
Note: See TracChangeset for help on using the changeset viewer.