|
|
|
@ -307,29 +307,41 @@ function paquets_collectionner($conditions, $filtres, $configuration) {
|
|
|
|
|
|
|
|
|
|
$collection = sql_allfetsel($select, $from, $where); |
|
|
|
|
|
|
|
|
|
// On recherche maintenant la description des plugins correspondant aux paquets récupérés. |
|
|
|
|
// -- Acquérir la configuration de la collection plugins. |
|
|
|
|
// On recherche maintenant la description du ou des plugins correspondant aux paquets récupérés. |
|
|
|
|
if ($collection) { |
|
|
|
|
include_spip('ezrest/ezrest'); |
|
|
|
|
$configuration_plugins = configuration_ezrest_lire('plugins'); |
|
|
|
|
// -- Extraire des filtres de la collection paquets ceux qui sont compatibles pour la collection plugins. |
|
|
|
|
$criteres = array_keys(array_column($configuration_plugins['filtres'], null, 'critere')); |
|
|
|
|
$filtres_plugins = []; |
|
|
|
|
foreach ($filtres as $_critere => $_valeur) { |
|
|
|
|
if (in_array($_critere, $criteres)) { |
|
|
|
|
$filtres_plugins[$_critere] = $_valeur; |
|
|
|
|
// Si le filtre préfixe est utilisé c'est que l'on veut uniquement un seul plugin, inutile d'appeler la collection |
|
|
|
|
// plugins entière |
|
|
|
|
if (!empty($filtres['prefixe'])) { |
|
|
|
|
// -- Liste des champs |
|
|
|
|
$select = plugin_lister_champs('plugin', $options); |
|
|
|
|
// -- Récupération des champs, le plugin existe forcément |
|
|
|
|
include_spip('inc/svp_plugin'); |
|
|
|
|
$plugin = plugin_lire($filtres['prefixe'], $select); |
|
|
|
|
// On crée le tableau comme pour le cas sans préfixe |
|
|
|
|
$plugins[strtoupper($filtres['prefixe'])] = plugin_normaliser_champs('plugin', $plugin); |
|
|
|
|
} else { |
|
|
|
|
// -- Acquérir la configuration de la collection plugins. |
|
|
|
|
include_spip('ezrest/ezrest'); |
|
|
|
|
$configuration_plugins = configuration_ezrest_lire('plugins'); |
|
|
|
|
// -- Extraire des filtres de la collection paquets ceux qui sont compatibles pour la collection plugins. |
|
|
|
|
$criteres = array_keys(array_column($configuration_plugins['filtres'], null, 'critere')); |
|
|
|
|
$filtres_plugins = []; |
|
|
|
|
foreach ($filtres as $_critere => $_valeur) { |
|
|
|
|
if (in_array($_critere, $criteres)) { |
|
|
|
|
$filtres_plugins[$_critere] = $_valeur; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
// Calculer les conditions associées aux filtres résiduels |
|
|
|
|
$conditions_plugins = ezrest_conditionner( |
|
|
|
|
'svpapi', |
|
|
|
|
'plugins', |
|
|
|
|
$filtres_plugins, |
|
|
|
|
$configuration_plugins |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
// -- acquérir la liste des paquets en réutilisant les fonctions de la collection plugins |
|
|
|
|
$plugins = plugins_collectionner($conditions_plugins, $filtres_plugins, $configuration_plugins); |
|
|
|
|
} |
|
|
|
|
// Calculer les conditions associées aux filtres résiduels |
|
|
|
|
$conditions_plugins = ezrest_conditionner( |
|
|
|
|
'svpapi', |
|
|
|
|
'plugins', |
|
|
|
|
$filtres_plugins, |
|
|
|
|
$configuration_plugins |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
// -- acquérir la liste des paquets en réutilisant les fonctions de la collection plugins |
|
|
|
|
$plugins = plugins_collectionner($conditions_plugins, $filtres_plugins, $configuration_plugins); |
|
|
|
|
|
|
|
|
|
// On présente la liste des paquets par plugin, avec la description de chaque plugin. |
|
|
|
|
// La liste des paquets d'un plugin est accessible dans un index 'paquets'. |
|
|
|
@ -345,6 +357,9 @@ function paquets_collectionner($conditions, $filtres, $configuration) {
|
|
|
|
|
$paquets[$_paquet['prefixe']]['paquets'][denormaliser_version($_paquet['version'])] = plugin_normaliser_champs('paquet', $_paquet); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Ranger les paquets par ordre alphabétique des préfixes |
|
|
|
|
ksort($paquets); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return $paquets; |
|
|
|
|