Browse Source

Mise au point du contrôle rubrique_categorie et correction du contrôle rubrique_plugin.

master
Eric Lupinacci 3 years ago
parent
commit
2aaa0bb940
  1. 62
      ezcheck/controles/contrib_controle.php
  2. 2
      inc/contrib_rubrique.php
  3. 4
      lang/observation_fr.php

62
ezcheck/controles/contrib_controle.php

@ -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;
}

2
inc/contrib_rubrique.php

@ -99,7 +99,7 @@ function rubrique_repertorier($filtres = array(), $informations = array()) {
}
}
// -- Appel SQL
// -- Appel SQL : le retour est toujours un tableau éventuellement vide.
$rubriques_description = sql_allfetsel($select, $from, $where, '', $order_by);
// Refactoring du tableau suivant les champs demandés.

4
lang/observation_fr.php

@ -8,4 +8,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
// A
'anomalie_rubplug_loc' => 'Rubrique mal placée',
'anomalie_rubplug_pfx' => 'Préfixe erroné',
'anomalie_rubcat_abs' => 'Rubrique absente',
'anomalie_rubcat_exc' => 'Rubriques dupliquées (@rubriques@)',
'anomalie_sectcat_abs' => 'Secteur absent',
'anomalie_sectcat_exc' => 'Secteurs dupliqués (@rubriques@)',
);

Loading…
Cancel
Save