ajout d'une page d'edition des modeles

This commit is contained in:
Christophe 2020-02-11 10:34:40 +01:00
parent 0b0a97c9a5
commit 22d8f22473
5 changed files with 114 additions and 3 deletions

View file

@ -49,7 +49,7 @@ function auted_declarer_tables_objets_sql($tables) {
'field'=> array(
'id_aut_modele' => 'bigint(21) NOT NULL',
'nom' => 'varchar(55) NOT NULL DEFAULT ""',
'modele' => 'text NOT NULL DEFAULT ""',
'aut_modele' => 'text NOT NULL DEFAULT ""',
'statut' => 'varchar(20) DEFAULT "0" NOT NULL',
'modifie' => 'varchar(55) NOT NULL DEFAULT ""',
'maj' => 'TIMESTAMP'
@ -59,7 +59,7 @@ function auted_declarer_tables_objets_sql($tables) {
'KEY statut' => 'statut',
),
'titre' => 'nom AS titre, "" AS lang',
'champs_editables' => array('nom', 'modele', 'modifie'),
'champs_editables' => array('nom', 'aut_modele', 'modifie'),
'statut_textes_instituer' => array(
'prepa' => 'texte_statut_en_cours_redaction',
'publie' => 'texte_statut_publie',
@ -93,7 +93,7 @@ function auted_declarer_tables_objets_sql($tables) {
function auted_declarer_tables_principales($tables_principales){
$tables_principales['spip_auteurs']['field']['autorisations'] = "text NOT NULL";
$tables_principales['spip_auteurs']['field']['aut_modele'] = "text NOT NULL";
$tables_principales['spip_auteurs']['field']['aut_nom'] = "text NOT NULL";
return $tables_principales;
}

View file

@ -0,0 +1,7 @@
<div class="inner edition_modeles_autorisation">
<h1>Edition des modeles d'autorisations</h1>
<div class="">
[(#FORMULAIRE_EDITER_MODELES_AUTORISATION{#SELF})]
</div>
</div>

View file

@ -42,3 +42,7 @@ button[type='button'].toggle_save_modele {
.modifie a {
color: red;
}
.formulaire_editer_modeles_autorisation .chosen-container {
max-width: 100%;
}

View file

@ -0,0 +1,44 @@
#CACHE{0}
<div class="formulaire_spip formulaire_#FORM">
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
<form name="formulaire_#FORM" action="#ENV{action}" method="post"><div>
#ACTION_FORMULAIRE{#ENV{action}}
<table id="gestion_autorisations" class="table">
<thead>
<tr>
<th>Modele</th>
<BOUCLE_nomAuth(DATA){source tableau, #ENV{auth_modele}}>
<td>#VALEUR{label}</td>
</BOUCLE_nomAuth>
</tr>
</thead>
<tbody>
<BOUCLE_modele(AUT_MODELES){tout}>
<tr id="modele-#ID_AUT_MODELE" data-id_modele="#ID_AUT_MODELE">
<td>
<input type="text" value="#NOM" name="Tnom[#ID_AUT_MODELE][]">
<input type="hidden" name="Tid_aut_modele[]" value="#ID_AUT_MODELE">
</td>
<BOUCLE_valeurAuth(DATA){source tableau, #ENV{auth_modele}}>
[(#SET{autorisations,#AUT_MODELE|json_decode{true}|table_valeur{#VALEUR{type}}})]
<td>
<INCLURE{fond=inclure/auth_choix,id_auteur=#ID_AUT_MODELE,type=#VALEUR{type},faire=#VALEUR{faire},autorisations=#GET{autorisations}}>
</td>
</BOUCLE_valeurAuth>
</tr>
</BOUCLE_modele>
</tbody>
</table>
<div class="boutons">
<button type="submit" class="submit" name="ajouter_modele" value="add"><:ajouter_un_modele:></button>
<button type="submit" class="submit"><:valider:></button>
</div>
</div></form>
</div>

View file

@ -0,0 +1,56 @@
<?php
if (!defined('_ECRIRE_INC_VERSION')) return;
function formulaires_editer_modeles_autorisation_charger_dist($redirect){
$valeurs = [];
$valeurs = ['auth_modele' => _AUTH_MODELE];
return $valeurs;
}
function formulaires_editer_modeles_autorisation_verifier_dist($redirect){
$erreurs = array();
return $erreurs;
}
function formulaires_editer_modeles_autorisation_traiter_dist($redirect){
$retour = array();
if (_request('ajouter_modele') === "add") {
sql_insertq('spip_aut_modeles', ['statut' => 'publie']);
if ($redirect) {
$retour['redirect'] = $redirect;
}
return $retour;
}
$Tid_aut_modele = _request('Tid_aut_modele');
foreach ($Tid_aut_modele as $id) {
$Tauths = _request('id-' . $id);
$Tautorisations = [];
if (!empty($Tauths)) {
foreach ($Tauths as $valeur) {
$Tautorisations[key($valeur)][]= $valeur[key($valeur)];
}
}
$set = [
'aut_modele' => json_encode($Tautorisations),
'nom' => _request('Tnom')[$id][0]
];
sql_updateq('spip_aut_modeles', $set, 'id_aut_modele='.intval($id));
$retour['message_ok'] = "Enregistrement validé";
}
if ($redirect) {
$retour['redirect'] = $redirect;
}
return $retour;
}