Browse Source

Ajout d'un formulaire de config et mise à jour de l'API rubrique et des autorisations.

master
Eric Lupinacci 3 years ago
parent
commit
cdc2f24a74
  1. 3
      contrib_autorisations.php
  2. 28
      formulaires/configurer_contrib.html
  3. 41
      formulaires/configurer_contrib.php
  4. 26
      inc/contrib_rubrique.php
  5. 5
      prive/squelettes/contenu/configurer_contrib.html

3
contrib_autorisations.php

@ -41,7 +41,8 @@ function autoriser_rubrique_modifierextra_categorie($faire, $type, $id, $qui, $o
// - le secteur apropos
include_spip('inc/contrib_rubrique');
if (!rubrique_dans_secteur_apropos($id_rubrique)
and !rubrique_dans_secteur_carnet($id_rubrique)) {
and !rubrique_dans_secteur_carnet($id_rubrique)
and !rubrique_dans_secteur_galaxie($id_rubrique)) {
// On vérifie la profondeur de la rubrique qui ne peut-être que 0 ou 1
// et si 1, on vérifie que la rubrique parent a une catégorie non vide.
$profondeur = rubrique_lire_profondeur($id_rubrique);

28
formulaires/configurer_contrib.html

@ -0,0 +1,28 @@
<div class="formulaire_spip formulaire_configurer formulaire_#FORM">
<h3 class="titrem"><:contrib:configurer_form_titre:></h3>
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
<form method="post" action="#ENV{action}">
<div>
#ACTION_FORMULAIRE{#ENV{action}}
<input type="hidden" name="_meta_casier" value="contrib" />
<div class="editer-groupe">
[(#SAISIE{selection_multiple, secteurs,
explication=<:contrib:configuration_secteur_galaxie_explication:>,
label=<:contrib:configuration_secteur_galaxie_explication:>,
data=#ENV{_secteurs_possibles},
})]
</div>
<p class="boutons">
<span class="image_loading">&nbsp;</span>
<input type="submit" class="submit" value="<:bouton_enregistrer:>" />
</p>
</div>
</form>
</div>

41
formulaires/configurer_contrib.php

@ -0,0 +1,41 @@
<?php
/**
* Gestion du formulaire de configuration du plugin
*
* @package SPIP\TAXONOMIE\CONFIGURATION
*/
if (!defined("_ECRIRE_INC_VERSION")) return;
/**
* Chargement des données : le formulaire propose la liste des langues possibles.
* L'utilisateur doit cocher les langues qu'il souhaite utiliser parmi les langues possibles.
*
* @return array
* Tableau des données à charger par le formulaire (affichage ou données de configuration).
* - `_langues` : (affichage) codes de langue et libellés des langues possibles.
* - `langues_utilisees` : (configuration) la liste des langues utilisées. Par défaut, le plugin
* propose la langue française.
*/
function formulaires_configurer_contrib_charger() {
$valeurs = array();
// Liste des secteurs apropos et carnet pour les exclure car il ne peuvent pas être choisis.
include_spip('inc/config');
$exclusions = lire_config('secteur/exclure_sect', array());
$exclusions = array_merge($exclusions, lire_config('autorite/espace_wiki', array()));
// Sélection des secteurs pouvant être choisis pour la galaxie en excluant aussi les secteurs-plugin qui
// sont ceux qui ont déjà une catégorie non vide.
$from = 'spip_rubriques';
$where = array(
'profondeur=0',
'categorie!=' . sql_quote(''),
sql_in('id_rubrique', $exclusions, 'NOT')
);
$secteurs = sql_allfetsel('id_rubrique, titre', $from, $where);
$valeurs['_secteurs'] = array_column($secteurs, 'titre', 'id_rubrique');
return $valeurs;
}

26
inc/contrib_rubrique.php

@ -126,6 +126,32 @@ function rubrique_dans_secteur_carnet($id_rubrique) {
}
/**
* Vérifie que la rubrique concernée fait bien partie du secteur-carnet.
* Le secteur-carnet est déterminé par la configuration de l'espace wiki dans le plugin
* Autorité.
*
* @param int $id
* Id de la rubrique concernée.
*
* @return bool
* True si la rubrique fait partie du secteur-carnet, false sinon.
*/
function rubrique_dans_secteur_galaxie($id_rubrique) {
$est_galaxie = false;
include_spip('inc/config');
$galaxie = lire_config('contrib/secteurs', array());
if ($galaxie and in_array(rubrique_lire_secteur($id_rubrique), $galaxie)) {
$est_galaxie = true;
}
return $est_galaxie;
}
/**
* Vérifie que la rubrique concernée fait bien partie d'un secteur-plugin.
* Il suffit de vérifier que le secteur a bien une catégorie non vide.

5
prive/squelettes/contenu/configurer_contrib.html

@ -0,0 +1,5 @@
[(#AUTORISER{configurer}|sinon_interdire_acces)]
<h1 class="grostitre"><:contrib:configurer_page_titre:></h1>
<div class="ajax">
#FORMULAIRE_CONFIGURER_CONTRIB
</div>
Loading…
Cancel
Save