On change le stockage des modeles, on utilise finalement la table

spip_aut_mods, on aura plus de souplesse
This commit is contained in:
Christophe 2020-02-10 20:21:07 +01:00
parent 19496d4e20
commit 3e8561ce8f
3 changed files with 51 additions and 14 deletions

View file

@ -18,33 +18,42 @@
</thead>
<tbody>
<BOUCLE_auteurs(AUTEURS)
{id_auteur ?!IN #ENV{id_auteur}}
{statut ?!IN #ENV{statut}}
{id_auteur ?IN #ENV{id_auteur}}
{statut ?IN #ENV{statut}}
{pgp ?!IN #ENV{pgp}}
{webmestre?}
{tout}>
[(#SET{nom_modele,#AUT_MODELE|json_decode{true}|table_valeur{name}})]
<tr id="auteur-#ID_AUTEUR" data-id_auteur="#ID_AUTEUR">
<tr id="auteur-#ID_AUTEUR" data-id_auteur="#ID_AUTEUR" data-new="[oui(#AUT_MODELE|!={''}|oui)]">
<td>
<div>
[(#PGP|=={boss}|oui)
<img class="boss" src="[(#CHEMIN{img/boss.png})]" alt="boss"/>
#NOM
]
#NOM
[(#PGP|=={boss}|non)
<a class="mediabox" href="[(#URL_PAGE{charger_aut_modele}
|parametre_url{id_auteur,#ID_AUTEUR}
|parametre_url{nom,#NOM}
|parametre_url{redirect,#SELF}
)]"
title="<:auted:charger_modele:>"
>
<i class="fa fa-upload"></i>
</a>
#NOM
<button class="toggle_save_modele" type="button"
title="<:auted:sauvegarder_modele:>"
data-id_auteur="#ID_AUTEUR"
>
<svg class="icone_svg [ (#GET{nom_modele}|oui)checked]" alt="">
<svg id="svg_save-#ID_AUTEUR" class="icone_svg [ (#AUT_MODELE|oui)checked]" alt="">
<title></title>
<use xlink:href="[(#CHEMIN{img/toggle.svg})]#toggle" />
</svg>
</button>
]
</div>
<div class="enregistrer_modele modele-#ID_AUTEUR[ (#GET{nom_modele}|non)pas_modele]">
<input id="modele-#ID_AUTEUR" class="" type="text" value="[(#GET{nom_modele})]" name="modele-#ID_AUTEUR"/>
<div class="enregistrer_modele modele-#ID_AUTEUR[ (#AUT_MODELE|non)pas_modele]">
<input id="modele-#ID_AUTEUR" class="" type="text" value="[(#AUT_MODELE)]" name="modele-#ID_AUTEUR"/>
</div>
<input type="hidden" name="Tid_auteur[]" value="#ID_AUTEUR" placeholder="Nom modèle">
</td>
@ -81,7 +90,23 @@
$(this).children('svg').toggleClass('checked');
}
})
$('.select_autorisation').on('change', function(e){
e.stopPropagation();
var id_auteur = $(this).data('id_auteur');
if (id_auteur) {
var nouveau = $("#auteur-"+id_auteur).data('new');
console.log("new ", nouveau);
if (nouveau) {
$('input#modele-' + id_auteur)
.css('border-color', 'red')
.css('color', 'red');
$('#svg_save-' + id_auteur).css('fill', 'red');
}
}
})
}
});
</script>

View file

@ -35,18 +35,27 @@ function formulaires_editer_autorisations_traiter_dist($id_auteur=0, $redirect='
$set = [ 'autorisations' => json_encode($Tautorisations) ];
if ($nom_modele) {
$aut_modele = [
'name' => $nom_modele,
'modele' => $Tautorisations
'nom' => $nom_modele,
'modele' => json_encode($Tautorisations),
'statut' => 'publie'
];
$set['aut_modele'] = json_encode($aut_modele);
$id_aut_modele = sql_getfetsel('id_aut_mod', 'spip_aut_mods', 'nom='.sql_quote($nom_modele));
if (intval($id_aut_modele)) {
sql_updateq('spip_aut_mods', $aut_modele, 'id_aut_mod='.intval($id_aut_modele));
} else {
sql_insertq('spip_aut_mods', $aut_modele);
}
$set['aut_modele'] = $nom_modele;
}
sql_updateq('spip_auteurs', $set, 'id_auteur='.intval($id));
$auteur = sql_fetsel('*', 'spip_auteurs','id_auteur='.intval($id));
actualiser_sessions($auteur);
$retour['message_ok'] = "Enregistrement validé";
}

View file

@ -1,7 +1,10 @@
#SET{name,aut_#ENV{type}}
<select id="#GET{name}" name="id-#ID_AUTEUR[][#ENV{type}]" class="select chosen" multiple>
<select id="#GET{name}"
data-id_auteur="#ID_AUTEUR"
name="id-#ID_AUTEUR[][#ENV{type}]" class="select select_autorisation chosen" multiple>
<option value=""></option>
<BOUCLE_choix(DATA){source tableau,#ENV{faire}}>
<option value="#VALEUR" [(#VALEUR|in_array{#ENV{autorisations,#ARRAY}}|oui) selected]>[(#VALEUR|majuscules)]</option>
<option value="#VALEUR" [(#VALEUR|in_array{#ENV{autorisations,#ARRAY}}|oui) selected]
>[(#VALEUR|majuscules)]</option>
</BOUCLE_choix>
</select>