|
|
|
@ -14,11 +14,6 @@ function contrib_rubrique_plugin($id_controle, $id_auteur, $options) {
|
|
|
|
|
// Initialisation de l'erreur à chaine vide soit 'aucune erreur'. |
|
|
|
|
$erreur = ''; |
|
|
|
|
|
|
|
|
|
// Initialisation par défaut d'une anomalie pour le type de contrôle |
|
|
|
|
$anomalie = array( |
|
|
|
|
'type_controle' => 'contrib_rubrique_plugin' |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
// Pour limiter le nombre de rubriques récupérées d'un coup, on boucle par secteur-plugin. |
|
|
|
|
// -- les secteurs-plugin |
|
|
|
|
include_spip('inc/contrib_rubrique'); |
|
|
|
@ -41,11 +36,16 @@ function contrib_rubrique_plugin($id_controle, $id_auteur, $options) {
|
|
|
|
|
if ($rubriques_plugin) { |
|
|
|
|
foreach ($rubriques_plugin as $_rubrique) { |
|
|
|
|
if ($_rubrique['prefixe']) { |
|
|
|
|
// Initialisation par défaut d'une anomalie pour le type de contrôle |
|
|
|
|
$anomalie = array( |
|
|
|
|
'type_controle' => 'contrib_rubrique_plugin' |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
// Pour chaque rubrique-plugin on vérifie que : |
|
|
|
|
// - le préfixe est bien référencé dans SVP |
|
|
|
|
// - la catégorie d'appartenance est correcte. |
|
|
|
|
if ($id_plugin = plugin_lire($_rubrique['prefixe'], 'id_plugin')) { |
|
|
|
|
// On lit la catégorie du plugin telle que configurée dans la typologie |
|
|
|
|
// On lit la catégorie du plugin telle que configurée dans la typologie qui est la référence: |
|
|
|
|
// - si elle n'est pas positionnée on ne renvoie aucune erreur car c'est un autre contrôle |
|
|
|
|
// qui s'en occupe |
|
|
|
|
if ($categorie_plugin = plugin_lire_categorie($_rubrique['prefixe'])) { |
|
|
|
@ -79,7 +79,7 @@ function contrib_rubrique_plugin($id_controle, $id_auteur, $options) {
|
|
|
|
|
|
|
|
|
|
// Si une anomalie a été détectée on l'ajoute dans la base |
|
|
|
|
if (!empty($anomalie['code'])) { |
|
|
|
|
// On complète la description de l'anomalie avant sa création |
|
|
|
|
// On complète la description de l'anomalie et on la crée |
|
|
|
|
$anomalie['objet'] = 'rubrique'; |
|
|
|
|
$anomalie['id_objet'] = $_rubrique['id_rubrique']; |
|
|
|
|
observation_ajouter('anomalie', $id_controle, $anomalie); |
|
|
|
@ -103,6 +103,54 @@ function contrib_rubrique_categorie($id_controle, $id_auteur, $options) {
|
|
|
|
|
// Initialisation de l'erreur à chaine vide soit 'aucune erreur'. |
|
|
|
|
$erreur = ''; |
|
|
|
|
|
|
|
|
|
// Récupération de tous les types de plugin de la typologie 'categorie' avec leur identifiant et leur |
|
|
|
|
// profondeur |
|
|
|
|
include_spip('inc/svptype_type_plugin'); |
|
|
|
|
$categories = type_plugin_repertorier( |
|
|
|
|
'categorie', |
|
|
|
|
array(), |
|
|
|
|
array('identifiant', 'profondeur') |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
// On boucle sur chacune des catégories en recherchant dans les rubriques si il en existe une dont le champ |
|
|
|
|
// 'categorie' correspond au champ 'identifiant' du type de plugin. |
|
|
|
|
include_spip('inc/contrib_rubrique'); |
|
|
|
|
include_spip('inc/ezcheck_observation'); |
|
|
|
|
foreach ($categories as $_categorie) { |
|
|
|
|
// Initialisation par défaut d'une anomalie pour le type de contrôle |
|
|
|
|
$anomalie = array( |
|
|
|
|
'type_controle' => 'contrib_rubrique_categorie' |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
// On cherche si il existe une ou plusieurs rubriques associées à la catégorie. Le retour est toujours un |
|
|
|
|
// tableau. |
|
|
|
|
$rubriques = rubrique_repertorier( |
|
|
|
|
array('categorie' => $_categorie['identifiant']), |
|
|
|
|
array('id_rubrique') |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
if (count($rubriques) != 1) { |
|
|
|
|
// C'est forcément une erreur. On détermine le préfixe de l'erreur en fonction de la profondeur |
|
|
|
|
// du type de plugin (0 ou 1) |
|
|
|
|
$prefixe_anomalie = $_categorie['profondeur'] == 0 |
|
|
|
|
? 'sectcat' |
|
|
|
|
: 'rubcat'; |
|
|
|
|
|
|
|
|
|
// Suivant que la rubrique est introuvable ou que plusieurs rubriques ont la même catégorie on complète |
|
|
|
|
// le code de l'anomalie |
|
|
|
|
$anomalie['code'] = $prefixe_anomalie |
|
|
|
|
. '_' |
|
|
|
|
. (!$rubriques ? 'abs' : 'exc'); |
|
|
|
|
|
|
|
|
|
// On complète la description de l'anomalie et on la crée. |
|
|
|
|
$anomalie['objet'] = $_categorie['identifiant']; |
|
|
|
|
if ($rubriques) { |
|
|
|
|
$anomalie['parametres'] = array('rubriques' => $rubriques); |
|
|
|
|
} |
|
|
|
|
observation_ajouter('anomalie', $id_controle, $anomalie); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return $erreur; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|