Changeset 113444 in spip-zone


Ignore:
Timestamp:
Jan 16, 2019, 8:14:03 PM (5 weeks ago)
Author:
root
Message:

On robustifie le service de récupération des types de noisette en vérifiant que l'information demandée est bien valide.

Location:
_plugins_/noizetier/trunk
Files:
2 edited

Legend:

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

    r113342 r113444  
    8585 *
    8686 * @return array
    87  *        Description du type de noisette éventuellement complétée par le plugin utilisateur.
     87 *        Description du type de noisette complétée avec le type de page et la composition (éventuellement vides).
    8888 */
    8989function noizetier_type_noisette_completer($plugin, $description) {
     
    151151 *        un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe.
    152152 * @param string $information
    153  *        Identifiant d'un champ de la description d'un type de noisette ou `signature`.
     153 *        Identifiant d'un champ de la description d'un type de noisette.
    154154 *        Si l'argument est vide, la fonction renvoie les descriptions complètes et si l'argument est
    155155 *        un champ invalide la fonction renvoie un tableau vide.
     
    161161function noizetier_type_noisette_lister($plugin, $information = '') {
    162162
     163        // Initialiser le tableau de sortie en cas d'erreur
     164        $types_noisettes = array();
     165
    163166        $from = 'spip_types_noisettes';
    164         $where = array('plugin=' . sql_quote($plugin));
     167        $trouver_table = charger_fonction('trouver_table', 'base');
     168        $table = $trouver_table($from);
     169        $champs = array_keys($table['field']);
    165170        if ($information) {
     171                // Si une information précise est demandée on vérifie sa validité
     172                $information_valide = in_array($information, $champs);
    166173                $select = array('type_noisette', $information);
    167174        } else {
    168175                // Tous les champs sauf le timestamp 'maj' sont renvoyés.
    169                 $trouver_table = charger_fonction('trouver_table', 'base');
    170                 $table = $trouver_table($from);
    171                 $select = array_diff(array_keys($table['field']), array('maj'));
    172         }
    173         if ($types_noisettes = sql_allfetsel($select, $from, $where)) {
     176                $select = array_diff($champs, array('maj'));
     177        }
     178        $where = array('plugin=' . sql_quote($plugin));
     179
     180        if ((!$information or ($information and $information_valide))
     181        and ($types_noisettes = sql_allfetsel($select, $from, $where))) {
    174182                if ($information) {
    175183                        $types_noisettes = array_column($types_noisettes, $information, 'type_noisette');
  • _plugins_/noizetier/trunk/paquet.xml

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