commit inutile, il faut tout refaire, en plus KISS
This commit is contained in:
parent
75efda4b08
commit
0b0a97c9a5
13 changed files with 298 additions and 15 deletions
|
@ -27,7 +27,7 @@ function auted_upgrade($nom_meta_base_version, $version_cible) {
|
|||
$maj = array();
|
||||
|
||||
$maj['create'] = array(array('maj_tables', array('spip_aut_modeles','spip_auteurs')));
|
||||
$maj['1.0.3'] = array(array('maj_tables', array('spip_aut_modeles','spip_auteurs')));
|
||||
$maj['1.0.4'] = array(array('maj_tables', array('spip_aut_modeles','spip_auteurs')));
|
||||
|
||||
include_spip('base/upgrade');
|
||||
maj_plugin($nom_meta_base_version, $version_cible, $maj);
|
||||
|
|
|
@ -51,6 +51,7 @@ function auted_declarer_tables_objets_sql($tables) {
|
|||
'nom' => 'varchar(55) NOT NULL DEFAULT ""',
|
||||
'modele' => 'text NOT NULL DEFAULT ""',
|
||||
'statut' => 'varchar(20) DEFAULT "0" NOT NULL',
|
||||
'modifie' => 'varchar(55) NOT NULL DEFAULT ""',
|
||||
'maj' => 'TIMESTAMP'
|
||||
),
|
||||
'key' => array(
|
||||
|
@ -58,11 +59,7 @@ function auted_declarer_tables_objets_sql($tables) {
|
|||
'KEY statut' => 'statut',
|
||||
),
|
||||
'titre' => 'nom AS titre, "" AS lang',
|
||||
#'date' => '',
|
||||
'champs_editables' => array('nom', 'modele'),
|
||||
'champs_versionnes' => array(),
|
||||
'rechercher_champs' => array(),
|
||||
'tables_jointures' => array(),
|
||||
'champs_editables' => array('nom', 'modele', 'modifie'),
|
||||
'statut_textes_instituer' => array(
|
||||
'prepa' => 'texte_statut_en_cours_redaction',
|
||||
'publie' => 'texte_statut_publie',
|
||||
|
|
8
charger_aut_modele.html
Normal file
8
charger_aut_modele.html
Normal file
|
@ -0,0 +1,8 @@
|
|||
<div id="charger_aut_modele">
|
||||
<h1>Charger un modèle pour : [ (#ENV{nom})]</h1>
|
||||
<div class="">
|
||||
|
||||
[(#FORMULAIRE_CHARGER_AUT_MODELE{#ENV{id_auteur},#ENV{redirect}})]
|
||||
</div>
|
||||
|
||||
</div>
|
|
@ -35,3 +35,10 @@ button[type='button'].toggle_save_modele {
|
|||
.pas_modele.enregistrer_modele input {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.modifie input {
|
||||
color: red;
|
||||
}
|
||||
.modifie a {
|
||||
color: red;
|
||||
}
|
||||
|
|
30
formulaires/charger_aut_modele.html
Normal file
30
formulaires/charger_aut_modele.html
Normal file
|
@ -0,0 +1,30 @@
|
|||
<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}}
|
||||
|
||||
<div class="editer_groupe">
|
||||
#SET{name,aut_modele}
|
||||
#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
|
||||
#SET{obli,"obligatoire"}
|
||||
<div class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
|
||||
<BOUCLE_auteurs(AUTEURS){aut_modele != ''}{tout}>
|
||||
[(#SET{nom_modele,#AUT_MODELE|json_decode{true}|table_valeur{name}})]
|
||||
|
||||
<div class="choix">
|
||||
<input type="radio" class="radio" name="#GET{name}" value="#AUT_MODELE" id="#GET{name}_non" >
|
||||
<label for="#GET{name}_non">#GET{nom_modele}</label>
|
||||
</div>
|
||||
|
||||
</BOUCLE_auteurs>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<p class="boutons"><input type="submit" class="submit" value="Envoyer" ></p>
|
||||
</div></form>
|
||||
|
||||
</div>
|
37
formulaires/charger_aut_modele.php
Normal file
37
formulaires/charger_aut_modele.php
Normal file
|
@ -0,0 +1,37 @@
|
|||
<?php
|
||||
if (!defined('_ECRIRE_INC_VERSION')) return;
|
||||
|
||||
function formulaires_charger_aut_modele_charger_dist($id_auteur, $redirect = ''){
|
||||
$valeurs = array(
|
||||
"id_auteur" => $id_auteur,
|
||||
"aut_modele" => ""
|
||||
);
|
||||
|
||||
return $valeurs;
|
||||
}
|
||||
|
||||
function formulaires_charger_aut_modele_verifier_dist($id_auteur, $redirect = ''){
|
||||
$erreurs = array();
|
||||
return $erreurs;
|
||||
}
|
||||
|
||||
function formulaires_charger_aut_modele_traiter_dist($id_auteur, $redirect = ''){
|
||||
|
||||
$retour = array();
|
||||
$retour['message_ok'] = "bravo";
|
||||
$retour['redirect'] = "spip.php?page=perdu";
|
||||
$retour['editable'] = true;
|
||||
|
||||
$aut_modele = _request('aut_modele');
|
||||
if ($aut_modele) {
|
||||
$aut_modele = json_decode($aut_modele, true);
|
||||
if (is_array($aut_modele)) {
|
||||
|
||||
|
||||
}
|
||||
$modele = sql_getfetsel('aut_modele', 'spip_auteurs', 'aut_modele');
|
||||
|
||||
}
|
||||
|
||||
return $retour;
|
||||
}
|
|
@ -1,3 +1,5 @@
|
|||
#CACHE{0}
|
||||
|
||||
<div class="formulaire_spip formulaire_#FORM">
|
||||
|
||||
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
|
||||
|
@ -23,6 +25,8 @@
|
|||
{pgp ?!IN #ENV{pgp}}
|
||||
{webmestre?}
|
||||
{tout}>
|
||||
#SET{modifie,''}
|
||||
<BOUCLE_mod(AUT_MODELES){nom=#AUT_MODELE}> #SET{modifie,#MODIFIE} </BOUCLE_mod>
|
||||
<tr id="auteur-#ID_AUTEUR" data-id_auteur="#ID_AUTEUR" data-new="[oui(#AUT_MODELE|!={''}|oui)]">
|
||||
<td>
|
||||
<div>
|
||||
|
@ -46,14 +50,25 @@
|
|||
data-id_auteur="#ID_AUTEUR"
|
||||
>
|
||||
<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[ (#AUT_MODELE|non)pas_modele]">
|
||||
<input id="modele-#ID_AUTEUR" class="" type="text" value="[(#AUT_MODELE)]" name="modele-#ID_AUTEUR"/>
|
||||
<div class="enregistrer_modele modele-#ID_AUTEUR[ (#GET{modifie}|oui)modifie]">
|
||||
<input id="modele-#ID_AUTEUR" class="" type="text" value="[(#AUT_MODELE)]" name="modele-#ID_AUTEUR" placeholder="Nom du modèle"/>
|
||||
<a class="mediabox save_modele"
|
||||
href="[(#URL_PAGE{save_aut_modele}
|
||||
|parametre_url{id_auteur,#ID_AUTEUR}
|
||||
|parametre_url{redirect,#SELF}
|
||||
)]"
|
||||
title = "<:auted:sauvegarder_modele:>"
|
||||
>
|
||||
<svg id="svg_save-#ID_AUTEUR" class="icone_svg" alt="">
|
||||
<use xlink:href="[(#CHEMIN{img/save.svg})]#save" />
|
||||
</svg>
|
||||
|
||||
</a>
|
||||
</div>
|
||||
<input type="hidden" name="Tid_auteur[]" value="#ID_AUTEUR" placeholder="Nom modèle">
|
||||
</td>
|
||||
|
@ -98,6 +113,7 @@
|
|||
var nouveau = $("#auteur-"+id_auteur).data('new');
|
||||
console.log("new ", nouveau);
|
||||
if (nouveau) {
|
||||
//$('.save_modele').attr('disabled',true);
|
||||
$('input#modele-' + id_auteur)
|
||||
.css('border-color', 'red')
|
||||
.css('color', 'red');
|
||||
|
|
|
@ -43,13 +43,17 @@ function formulaires_editer_autorisations_traiter_dist($id_auteur=0, $redirect='
|
|||
'modele' => json_encode($Tautorisations),
|
||||
'statut' => 'publie'
|
||||
];
|
||||
$id_aut_modele = sql_getfetsel('id_aut_modele', 'spip_aut_modeles', 'nom='.sql_quote($nom_modele));
|
||||
if (intval($id_aut_modele)) {
|
||||
$r = sql_fetsel('id_aut_modele, modele, nom', 'spip_aut_modeles', 'nom='.sql_quote($nom_modele));
|
||||
$id_aut_modele = $r['id_aut_modele'];
|
||||
if ($id_aut_modele) {
|
||||
if ($r['modele'] !== $aut_modele['modele']) {
|
||||
$aut_modele['modifie'] = 'oui';
|
||||
}
|
||||
sql_updateq('spip_aut_modeles', $aut_modele, 'id_aut_modele='.intval($id_aut_modele));
|
||||
} else {
|
||||
sql_insertq('spip_aut_modeles', $aut_modele);
|
||||
}
|
||||
$set['aut_modele'] = $nom_modele;
|
||||
$set['aut_modele'] = $r['nom'];
|
||||
}
|
||||
|
||||
sql_updateq('spip_auteurs', $set, 'id_auteur='.intval($id));
|
||||
|
|
96
formulaires/save_aut_modele.html
Normal file
96
formulaires/save_aut_modele.html
Normal file
|
@ -0,0 +1,96 @@
|
|||
<div class="formulaire_spip formulaire_#FORM">
|
||||
|
||||
[<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}}
|
||||
<input type="hidden" value="#ENV{nom_modele}" name="nom_modele"/>
|
||||
|
||||
<div class="editer_groupe">
|
||||
#SET{name,repercuter}
|
||||
<div class="editer editer_[(#GET{name})]">
|
||||
<p class="explication">
|
||||
<:auted:repercuter_modele:>
|
||||
rep #ENV{repercuter}
|
||||
</p>
|
||||
<div class="choix">
|
||||
<input type="radio" class="radio" name="#GET{name}" value="oui" id="#GET{name}_oui" [(#ENV{repercuter}|=={oui}|oui) checked]>
|
||||
<label for="#GET{name}_oui"><:oui:></label>
|
||||
</div>
|
||||
<div class="choix">
|
||||
<input type="radio" class="radio" name="#GET{name}" value="non" id="#GET{name}_non" [(#ENV{repercuter}|=={non}|oui) checked] >
|
||||
<label for="#GET{name}_non"><:non:></label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="editer_groupe">
|
||||
#SET{name,new_modele}
|
||||
#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
|
||||
#SET{obli,"obligatoire"}
|
||||
<div class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
|
||||
<label for="#GET{name}"><:auted:nom_du_modele:></label>
|
||||
[<span class="erreur_message">(#GET{erreurs})</span>]
|
||||
<input type="text" class="text modele" name="#GET{name}" id="#GET{name}" value="#ENV{nom_modele}"[(#ENV{repercuter}|=={oui}|oui) readonly] autocomplete="off">
|
||||
<span class="erreur_message changer_new_modele"><:auted:forcer_changer_nom_du_modele:> : #ENV{nom_modele}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<p class="boutons"><input type="submit" class="submit" value="Envoyer" ></p>
|
||||
</div></form>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
jQuery(function() {
|
||||
save_aut_modele();
|
||||
//onAjaxLoad(save_aut_modele);
|
||||
onAjaxLoad(repercuter);
|
||||
|
||||
function repercuter(){
|
||||
if ("#ENV{repercuter}" === 'non'){
|
||||
$('input.modele').attr('readonly',false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function save_aut_modele(){
|
||||
var nom_modele = "#ENV{nom_modele}";
|
||||
$(".changer_new_modele").css('display', 'none');
|
||||
$('.editer_repercuter').on('change','.radio', function(e){
|
||||
e.stopPropagation();
|
||||
var val = $(this).val();
|
||||
if (val === 'non') {
|
||||
$(".changer_new_modele").fadeIn();
|
||||
$('input.modele').css('color','red').attr('readonly',false);
|
||||
$('.submit').fadeOut()
|
||||
}
|
||||
if (val === 'oui') {
|
||||
$(".changer_new_modele").css('display', 'none');
|
||||
$('input.modele').css('color','#000').attr('readonly',true);
|
||||
$('.submit').fadeIn()
|
||||
}
|
||||
});
|
||||
$('#new_modele').on('keyup', function(){
|
||||
var new_modele = $(this).val();
|
||||
if (nom_modele !== new_modele) {
|
||||
$(".changer_new_modele").css('display', 'none');
|
||||
$(".erreur_message").css('display', 'none');
|
||||
$(".editer_new_modele").removeClass('erreur');
|
||||
$('input.modele').css('color','green');
|
||||
$('.submit').fadeIn()
|
||||
} else {
|
||||
$(".changer_new_modele").fadeIn();
|
||||
$('input.modele').css('color','red');
|
||||
$(".editer_new_modele").addClass('erreur');
|
||||
$('.submit').fadeOut()
|
||||
}
|
||||
})
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
82
formulaires/save_aut_modele.php
Normal file
82
formulaires/save_aut_modele.php
Normal file
|
@ -0,0 +1,82 @@
|
|||
<?php
|
||||
if (!defined('_ECRIRE_INC_VERSION')) return;
|
||||
|
||||
function formulaires_save_aut_modele_charger_dist($id_auteur, $redirect = ''){
|
||||
$valeurs = [];
|
||||
|
||||
if (intval($id_auteur)) {
|
||||
$valeurs = array(
|
||||
"id_auteur" => $id_auteur,
|
||||
"nom_modele" => sql_getfetsel('aut_modele', 'spip_auteurs', 'id_auteur='.intval($id_auteur)),
|
||||
"new_modele" => "",
|
||||
"repercuter" => "oui",
|
||||
);
|
||||
}
|
||||
|
||||
return $valeurs;
|
||||
}
|
||||
|
||||
function formulaires_save_aut_modele_verifier_dist($id_auteur, $redirect = ''){
|
||||
$nom_modele = _request('nom_modele');
|
||||
$new_modele = _request('new_modele');
|
||||
$repercuter = _request('repercuter');
|
||||
|
||||
|
||||
$erreurs = array();
|
||||
if ($repercuter === 'nom') {
|
||||
foreach (array ('new_modele ') as $obligatoire) {
|
||||
if (empty($new_modele)){
|
||||
$erreurs[$obligatoire] = 'Ce champs est obligatoire';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($repercuter === 'non' and $nom_modele === $new_modele) {
|
||||
$erreurs['new_modele'] = _T('auted:forcer_changer_nom_du_modele');
|
||||
}
|
||||
|
||||
return $erreurs;
|
||||
}
|
||||
|
||||
function formulaires_save_aut_modele_traiter_dist($id_auteur, $redirect = ''){
|
||||
$new_modele = _request('new_modele');
|
||||
$repercuter = _request('repercuter');
|
||||
|
||||
$from = [
|
||||
'spip_auteurs AS A',
|
||||
'spip_aut_modeles AS M'
|
||||
];
|
||||
$where = [
|
||||
'A.id_auteur='.intval($id_auteur),
|
||||
'A.aut_modele=M.nom'
|
||||
];
|
||||
$r = sql_fetsel('M.id_aut_modele, M.modele, M.nom', $from, $where);
|
||||
|
||||
if (!empty($r)) {
|
||||
if ($repercuter === 'oui') {
|
||||
sql_updateq('spip_auteurs', ['autorisations' => $r['modele']], 'aut_modele='.sql_quote($r['nom']));
|
||||
sql_updateq('spip_aut_modeles', ['modele' => $r['modele']], 'nom='.sql_quote($r['nom']));
|
||||
}
|
||||
|
||||
if ($repercuter === 'non') {
|
||||
sql_updateq('spip_auteurs', ['aut_modele' => $new_modele], 'id_auteur='.intval($id_auteur));
|
||||
$set = [
|
||||
'nom' => $new_modele,
|
||||
'modele' => $r['autorisations'],
|
||||
'statut' => 'publie'
|
||||
];
|
||||
sql_insertq('spip_aut_modeles', $set);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$retour = array();
|
||||
|
||||
|
||||
$retour['message_ok'] = "bravo";
|
||||
if ($redirect) {
|
||||
$retour['redirect'] = $redirect;
|
||||
}
|
||||
|
||||
return $retour;
|
||||
}
|
|
@ -9,7 +9,7 @@
|
|||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
inkscape:version="1.1-dev (6c977cb37d, 2020-02-03)"
|
||||
sodipodi:docname="save.svg"
|
||||
id="save_modele"
|
||||
id="save"
|
||||
clip-rule="evenodd"
|
||||
fill-rule="evenodd"
|
||||
y="0px"
|
||||
|
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
@ -1,12 +1,12 @@
|
|||
<paquet
|
||||
prefix="auted"
|
||||
categorie="outil"
|
||||
version="1.0.3"
|
||||
version="1.0.4"
|
||||
etat="dev"
|
||||
compatibilite="[3.2.0-dev;3.3.*]"
|
||||
logo="prive/themes/spip/images/auted-64.png"
|
||||
documentation=""
|
||||
schema="1.0.3"
|
||||
schema="1.0.4"
|
||||
>
|
||||
<!--
|
||||
Paquet généré le 2020-02-10 11:18:59
|
||||
|
|
6
save_aut_modele.html
Normal file
6
save_aut_modele.html
Normal file
|
@ -0,0 +1,6 @@
|
|||
<div class="save_aut_modele">
|
||||
<h1><:auted:sauvegarder_modele:></h1>
|
||||
<div class="ajax">
|
||||
[(#FORMULAIRE_SAVE_AUT_MODELE{#ENV{id_auteur}, #ENV{redirect}})]
|
||||
</div>
|
||||
</div>
|
Loading…
Add table
Reference in a new issue