SVP Typologie gère maintenant toute la typologie des plugins, soit les catégories et les tags. Aussi, contrairement à ce qui a été prévu dans les commits précédents on supprime toute manipulation des catégories et des tags dans SVP :
- les colonnes tags et categorie sont supprimées de spip_plugins - le chargement du XML considère encore l'attribut ou la balise categorie par souci de compatibilité mais ne le renvoie pas. - il ne reste plus que les API d'affichage qui utilisent la catégorie comme filtre mais qui fonctionnent très bien sans et ne sont utilisés que par Plugins SPIP. Ces API seront revus dans un prochain commit. Cette version de SVP qui inaugure une branche 2.0 est totalement compatible avec les sites de production fonctionnant en mode runtime mais est incomptaible avec Plugins SPIP.master v2.0.0
parent
95000c2c95
commit
165adbad68
@ -1,93 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Ce fichier contient le complément pour SVP de l'API de gestion des différentes typologie de plugin.
|
||||
*/
|
||||
if (!defined('_ECRIRE_INC_VERSION')) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!defined('_SVP_URL_SERVEUR_TYPOLOGIE')) {
|
||||
define('_SVP_URL_SERVEUR_TYPOLOGIE', 'https://demopot.smellup.net/http.api/svp/');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Renvoie, pour le plugin demandé et en fonction de la typologie, le ou les types associés au plugin.
|
||||
* La typologie est acquise vi l'API REST des modules complémentaires de SVP (SVP Typologie, SVP API) et
|
||||
* stockée dans un cache mis à jour toutes les 6 heures.
|
||||
*
|
||||
* @param string $prefixe
|
||||
* Préfixe du plugin concerné en majuscules.
|
||||
* @param string $typologie
|
||||
* Typologie concernée : categorie ou tag.
|
||||
*
|
||||
* @return string
|
||||
* Identifiant de la catégorie ou chaine vide sinon.
|
||||
*/
|
||||
function plugin_acquerir_type($prefixe, $typologie) {
|
||||
|
||||
// Utilisation d'une statique pour éviter les requêtes multiples sur le même hit.
|
||||
static $types = array();
|
||||
|
||||
if (!isset($types[$typologie][$prefixe])) {
|
||||
// On lit le cache des affectations plugin-type.
|
||||
// strpos(_SPIPERIPSUM_EVANGILE_ENDPOINT, $GLOBALS['meta']['adresse_site']) === false)
|
||||
$affectations = array();
|
||||
|
||||
|
||||
// Si échut on requete le serveur
|
||||
|
||||
// On stocke les affectations en statique pour la typologie concernée.
|
||||
$types[$typologie] = $affectations;
|
||||
}
|
||||
|
||||
return $types[$typologie][$prefixe];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Renvoie les affectations aux plugins pour une typologie donnée.
|
||||
*
|
||||
* @param string $typologie
|
||||
* Typologie concernée : categorie ou tag.
|
||||
* @param string $type
|
||||
* Valeur d'un type donné pour la typologie concernée.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
function type_plugin_lister_affectation($typologie, $type = '') {
|
||||
|
||||
// Utilisation d'une statique pour éviter les requêtes multiples sur le même hit.
|
||||
static $affectations = array();
|
||||
|
||||
if (!isset($affectations[$typologie])) {
|
||||
// On récupère l'id du groupe pour le type précisé (categorie, tag).
|
||||
include_spip('inc/config');
|
||||
$id_groupe = lire_config("svptype/typologies/${typologie}/id_groupe", 0);
|
||||
|
||||
// On récupère la description complète de toutes les catégories de plugin
|
||||
$from = array('spip_plugins_typologies');
|
||||
$where = array('id_groupe=' . $id_groupe);
|
||||
$order_by = array('id_mot', 'prefixe');
|
||||
$affectations[$typologie] = sql_allfetsel('*', $from, $where, '', $order_by);
|
||||
}
|
||||
|
||||
// Filtrer sur le type souhaité si il existe.
|
||||
if (!$type) {
|
||||
$affectations_filtrees = $affectations[$typologie];
|
||||
} else {
|
||||
// Récupération de l'id du type
|
||||
include_spip('inc/svptype_mot');
|
||||
$id_type = mot_lire_id($type);
|
||||
|
||||
// Extraction des seules affectations au type.
|
||||
$affectations_filtrees = array();
|
||||
foreach ($affectations[$typologie] as $_affectation) {
|
||||
if ($_affectation['id_mot'] == $id_type) {
|
||||
$affectations_filtrees[] = $_affectation;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $affectations_filtrees;
|
||||
}
|
Loading…
Reference in New Issue