|
|
|
@ -28,9 +28,14 @@ function autoriser_contrib_dist($faire, $type, $id, $qui, $options) {
|
|
|
|
|
* Autorisation de modifier le champ extra catégorie d'une rubrique. |
|
|
|
|
* Il faut : |
|
|
|
|
* - être un webmestre, |
|
|
|
|
* - que la rubrique ait une profondeur égale à 0 ou 1, |
|
|
|
|
* - que le secteur ne soit ni un secteur-carnet, ni un secteur-apropos, ni un secteur-galaxie. |
|
|
|
|
* - et que si la rubrique est de profondeur 1, le secteur a déjà sa catégorie remplie. |
|
|
|
|
* - et que si la rubrique est un secteur : |
|
|
|
|
* -- qu'elle soit en création ou sinon que son secteur ne soit ni un secteur-carnet, ni un secteur-apropos, |
|
|
|
|
* ni un secteur-galaxie. |
|
|
|
|
* - ou si la rubrique n'est pas un secteur : |
|
|
|
|
* -- qu'elle ait une profondeur égale 1, |
|
|
|
|
* -- que son secteur ne soit ni un secteur-carnet, ni un secteur-apropos, ni un secteur-galaxie. |
|
|
|
|
* -- et qu'il ait déjà sa catégorie remplie. |
|
|
|
|
* |
|
|
|
|
* |
|
|
|
|
* @param $faire |
|
|
|
|
* L'action se nomme modifierextra |
|
|
|
@ -58,21 +63,21 @@ function autoriser_rubrique_modifierextra_categorie($faire, $type, $id, $qui, $o
|
|
|
|
|
if (!is_null($id_parent)) { |
|
|
|
|
if (!$id_parent) { |
|
|
|
|
// La rubrique parent est nulle: la rubrique en cours de création ou de modification est un secteur. |
|
|
|
|
if ($id == 'oui') { |
|
|
|
|
$id_rubrique = intval($id); |
|
|
|
|
if (!$id_rubrique) { |
|
|
|
|
// Création d'un secteur: on autorise car c'est plus surement un secteur plugin. |
|
|
|
|
$autoriser = true; |
|
|
|
|
} else { |
|
|
|
|
// Modification d'un secteur: on autorise si ce n'est pas apropos, carnet ou galaxie sinon |
|
|
|
|
// l'autorisation est refusée. |
|
|
|
|
if (($id_rubrique = intval($id)) |
|
|
|
|
and !rubrique_dans_secteur_apropos($id_rubrique) |
|
|
|
|
if (!rubrique_dans_secteur_apropos($id_rubrique) |
|
|
|
|
and !rubrique_dans_secteur_carnet($id_rubrique) |
|
|
|
|
and !rubrique_dans_secteur_galaxie($id_rubrique)) { |
|
|
|
|
$autoriser = true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
// La rubrique parent est a minima un secteur. Il faudra donc tester la profondeur de la rubrique |
|
|
|
|
// La rubrique parent est a minima un secteur. Il faut donc tester la profondeur de la rubrique |
|
|
|
|
// en cours de traitement qui ne doit pas dépasser 1. |
|
|
|
|
// On vérifie si la rubrique parent est dans un secteur à exclure (non plugin). |
|
|
|
|
// - le carnet wiki |
|
|
|
@ -81,7 +86,7 @@ function autoriser_rubrique_modifierextra_categorie($faire, $type, $id, $qui, $o
|
|
|
|
|
if (!rubrique_dans_secteur_apropos($id_parent) |
|
|
|
|
and !rubrique_dans_secteur_carnet($id_parent) |
|
|
|
|
and !rubrique_dans_secteur_galaxie($id_parent)) { |
|
|
|
|
// On vérifie la profondeur de la rubrique parent est égale à 0 et qu'elle a une catégorie |
|
|
|
|
// On vérifie la profondeur de la rubrique parent est un secteur et qu'elle a une catégorie |
|
|
|
|
// non vide. |
|
|
|
|
$parent = rubrique_lire($id_parent); |
|
|
|
|
$profondeur = intval($parent['profondeur']); |
|
|
|
@ -102,7 +107,8 @@ function autoriser_rubrique_modifierextra_categorie($faire, $type, $id, $qui, $o
|
|
|
|
|
* Il faut : |
|
|
|
|
* - être un webmestre, |
|
|
|
|
* - que la rubrique ait une profondeur égale à 2, |
|
|
|
|
* - que la catégorie de sa rubrique parente soit non vide (rubrique-categorie). |
|
|
|
|
* - que la catégorie de sa rubrique parente soit non vide (rubrique-categorie) ce qui n'est possible que si |
|
|
|
|
* la rubrique est dans un secteur-plugin. |
|
|
|
|
* Cela implique que le préfixe ne peut être positionné que si les rubriques parentes |
|
|
|
|
* ont déjà une catégorie. |
|
|
|
|
* |
|
|
|
@ -127,20 +133,16 @@ function autoriser_rubrique_modifierextra_prefixe($faire, $type, $id, $qui, $opt
|
|
|
|
|
|
|
|
|
|
// Seuls les webmestres peuvent configurer le préfixe d'une rubrique-plugin. |
|
|
|
|
if (autoriser('webmestre')) { |
|
|
|
|
if ($id_rubrique = intval($id)) { |
|
|
|
|
// On vérifie la profondeur de la rubrique qui ne peut-être que 2. |
|
|
|
|
$id_parent = isset($opt['contexte']['id_parent']) ? intval($opt['contexte']['id_parent']) : 0; |
|
|
|
|
if ($id_parent) { |
|
|
|
|
// On vérifie la profondeur de la rubrique parent qui ne peut-être que 2 et le remplissage de sa |
|
|
|
|
// catégorie. |
|
|
|
|
include_spip('inc/contrib_rubrique'); |
|
|
|
|
$rubrique = rubrique_lire($id_rubrique); |
|
|
|
|
$profondeur = intval($rubrique['profondeur']); |
|
|
|
|
if (($profondeur !== null) |
|
|
|
|
and ($profondeur == 2)) { |
|
|
|
|
// On vérifie que l'on est bien dans une rubrique-categorie ce qui implique la rubrique |
|
|
|
|
// parente possède une catégorie non vide (la rubrique parent n'est jamais un secteur du fait |
|
|
|
|
// de la profondeur). |
|
|
|
|
if (($id_parent = intval($rubrique['id_parent'])) |
|
|
|
|
and rubrique_lire($id_parent, 'categorie')) { |
|
|
|
|
$autoriser = true; |
|
|
|
|
} |
|
|
|
|
$parent = rubrique_lire($id_parent); |
|
|
|
|
$profondeur = intval($parent['profondeur']); |
|
|
|
|
if (($profondeur == 1) |
|
|
|
|
and $parent['categorie']) { |
|
|
|
|
$autoriser = true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|