Changeset 96818 in spip-zone for _plugins_/svp_api/trunk/http/svp.php


Ignore:
Timestamp:
Apr 26, 2016, 7:53:36 PM (5 years ago)
Author:
eric@…
Message:

Ajout d'une collection depots qui renvoie tous les objets dépôts hébergés par le serveur SVP.
Pour tous les objets renvoyés on désérialise les champs sérialisés et on présente les champs multi comme des tableaux.
Pour la peine on passe en 0.2.0

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/svp_api/trunk/http/svp.php

    r96785 r96818  
    8484                if (requete_verifier_collection($contenu['requete']['collection'], $erreur)) {
    8585                        $items = array();
    86                         // Récupération de la collection en fonction des critères appliqués
    87                         $from = array('spip_plugins', 'spip_depots_plugins AS dp');
    88                         $select = array('*');
    89                         $where = array('dp.id_depot>0', 'dp.id_plugin=spip_plugins.id_plugin');
    90                         $group_by = array('spip_plugins.id_plugin');
    91                         // On vérifie les critères de filtre additionnels
     86                        // On vérifie les critères de filtre additionnels si la requête en contient
     87                        $where = array();
    9288                        if (requete_verifier_criteres($contenu['requete']['criteres'], $erreur)) {
    9389                                // Si il y a des critères additionnels on complète le where en conséquence
     
    9894                                                        $where[] = $f_critere($_valeur, 'spip_plugins', '>');
    9995                                                } else {
    100                                                         $where[] = "spip_plugins.${_critere}=" . sql_quote(${_valeur});
     96                                                        $where[] = "spip_plugins.${_critere}=" . sql_quote($_valeur);
    10197                                                }
    10298                                        }
    10399                                }
    104                                 $plugins = sql_allfetsel($select, $from, $where, $group_by);
    105                                 if ($plugins) {
    106                                         // On refactore le tableau de sortie du allfetsel en un tableau associatif indexé par les préfixes.
    107                                         foreach ($plugins as $_plugin) {
    108                                                 unset($_plugin['id_plugin']);
    109                                                 unset($_plugin['id_depot']);
    110                                                 $items[$_plugin['prefixe']] = $_plugin;
    111                                         }
    112                                 }
     100
     101                                // Récupération de la collection spécifiée en fonction des critères appliqués
     102                                $collectionner = 'reponse_collectionner_' . $contenu['requete']['collection'];
     103                                $items = $collectionner($where);
     104
    113105                                $contenu['items'] = $items;
    114                                 $contenu['nb_plugins'] = count($items);
    115106                        }
    116107                }
     
    179170                                        unset($plugin['id_plugin']);
    180171                                        unset($plugin['id_depot']);
    181                                         $items['plugin'] = $plugin;
     172                                        $items['plugin'] = normaliser_champs('plugin', $plugin);
    182173
    183174                                        // On recherche maintenant les paquets du plugin
     
    200191                                                                unset($_paquet[$_champ]);
    201192                                                        }
    202                                                         $items['paquets'][$_paquet['nom_archive']] = $_paquet;
     193                                                        $items['paquets'][$_paquet['nom_archive']] = normaliser_champs('paquet', $_paquet);
    203194                                                }
    204195                                        }
Note: See TracChangeset for help on using the changeset viewer.