on crée une option "ponctuel" pour les groupes, qui s'affichent lorsqu'il n'y a pas de ville

This commit is contained in:
Pierre 2020-03-08 21:03:45 +01:00
parent ec86397359
commit 81d0faa632
7 changed files with 138 additions and 39 deletions

View file

@ -748,6 +748,17 @@ body{
border-radius: 0.2rem; border-radius: 0.2rem;
border: solid 1px grey; border: solid 1px grey;
} }
.choix{
display: flex;
align-items: center;
width: 3rem;
label{
margin: 0;
}
}
.editer_ponctuel .ligne{
display: flex;
}
} }
/**********************************************************************/ /**********************************************************************/

View file

@ -12708,6 +12708,23 @@ body {
border: solid 1px grey; border: solid 1px grey;
} }
.formulaire_spip .choix {
display: -webkit-box;
display: flex;
-webkit-box-align: center;
align-items: center;
width: 3rem;
}
.formulaire_spip .choix label {
margin: 0;
}
.formulaire_spip .editer_ponctuel .ligne {
display: -webkit-box;
display: flex;
}
/**********************************************************************/ /**********************************************************************/
/*************** FORMULAIRE DE SAISIE D'ARTICLE ***********************/ /*************** FORMULAIRE DE SAISIE D'ARTICLE ***********************/
/**********************************************************************/ /**********************************************************************/

View file

@ -28,7 +28,23 @@
</BOUCLE_pays> </BOUCLE_pays>
</select> </select>
</div> </div>
<div class="ville">
[(#REM) valeurs : oui=on, non=""]
<div class="editer_ponctuel">
<label>Groupe ponctuel (sans ville régulière)</label>
<div class="ligne">
<div class="choix">
<input type='radio' class="radio" name='ponctuel' value='' id='ponctuel_non'[ (#ENV{ponctuel}|!={on}|?{'checked="checked"'})] />
<label for='ponctuel_non'>Non</label>
</div>
<div class="choix">
<input type='radio' class="radio" name='ponctuel' value='on' id='ponctuel_oui'[ (#ENV{ponctuel}|=={on}|?{'checked="checked"'})] />
<label for='ponctuel_oui'>Oui</label>
</div>
</div>
</div>
<div class="ville regulier [(#ENV{ponctuel}|=={on}) hide]">
<label for="surtitre">Ville</label> <label for="surtitre">Ville</label>
<input class="text" type="text" name="surtitre" value="#ENV{surtitre}"> <input class="text" type="text" name="surtitre" value="#ENV{surtitre}">
</div> </div>
@ -36,15 +52,15 @@
<label for="titre">Nom du groupe</label> <label for="titre">Nom du groupe</label>
<input class="text" type="text" name="titre" value="#ENV{titre}"> <input class="text" type="text" name="titre" value="#ENV{titre}">
</div> </div>
<div class="soustitre"> <div class="soustitre regulier [(#ENV{ponctuel}|=={on}) hide]">
<label for="soustitre">Adresse des réunions</label> <label for="soustitre">Adresse des réunions</label>
<input class="text" type="text" name="soustitre" value="#ENV{soustitre}"> <input class="text" type="text" name="soustitre" value="#ENV{soustitre}">
</div> </div>
<div class="dates"> <div class="dates regulier [(#ENV{ponctuel}|=={on}) hide]">
<label for="descriptif">Dates et horaires</label> <label for="descriptif">Dates et horaires</label>
<textarea class="text" type="text" name="descriptif">#ENV{descriptif}</textarea> <textarea class="text" type="text" name="descriptif">#ENV{descriptif}</textarea>
</div> </div>
<div class="texte"> <div class="editer texte">
<label for="texte">Informations complémentaires</label> <label for="texte">Informations complémentaires</label>
<textarea class="text" type="text" name="texte">#ENV{texte}</textarea> <textarea class="text" type="text" name="texte">#ENV{texte}</textarea>
</div> </div>
@ -83,7 +99,7 @@
] ]
</fieldset> </fieldset>
<fieldset class="upload_vignette"> <fieldset class="upload_vignette regulier [(#ENV{ponctuel}|=={on}) hide]">
<legend><i class="fas fa-image"></i> Photos</legend> <legend><i class="fas fa-image"></i> Photos</legend>
<label for=""><small>largeur conseillée: entre 1024 et 2048 pixels</small></label> <label for=""><small>largeur conseillée: entre 1024 et 2048 pixels</small></label>
<div class="ajax"> <div class="ajax">

View file

@ -42,7 +42,6 @@ function formulaires_editer_groupe_charger_dist($id_article=0, $redirect=''){
$res = sql_allfetsel('id_auteur','spip_auteurs_liens',$where); $res = sql_allfetsel('id_auteur','spip_auteurs_liens',$where);
$valeurs['T_id_auteurs'] = array_column($res,'id_auteur'); $valeurs['T_id_auteurs'] = array_column($res,'id_auteur');
$valeurs['rubrique_selected'] = sql_getfetsel('id_rubrique','spip_articles','id_article='. $id_article); $valeurs['rubrique_selected'] = sql_getfetsel('id_rubrique','spip_articles','id_article='. $id_article);
} }
else { else {
@ -50,28 +49,14 @@ function formulaires_editer_groupe_charger_dist($id_article=0, $redirect=''){
$valeurs['id_article'] = -1 * intval(session_get('id_auteur')); $valeurs['id_article'] = -1 * intval(session_get('id_auteur'));
} }
if (intval($id_article)) { // Sans ville (surtitre), le groupe est ponctuel
$from = array( if(empty($surtitre)){
'spip_gis as G', $valeurs['ponctuel'] = "on";
'spip_gis_liens as L', }
'spip_articles as A' else{
); $valeurs['ponctuel'] = "";
$where = array(
'L.id_objet='.intval($id_article),
'L.objet="article"',
'L.id_gis=G.id_gis'
);
$res = sql_fetsel('G.lat, G.lon', $from, $where);
if (count($res)) {
$valeurs['lat'] = $res['lat'];
$valeurs['lon'] = $res['lon'];
}
} }
// recup gis
$valeurs['_bigup_rechercher_fichiers'] = true; $valeurs['_bigup_rechercher_fichiers'] = true;
return $valeurs; return $valeurs;
} }
@ -90,11 +75,22 @@ function formulaires_editer_groupe_verifier_dist($id_article=0, $redirect=''){
} }
} }
// il faut au minimum titre (nom), surtitre (ville) et id_rubrique (pays) pour créer un article
if (_request('titre') == '' OR _request('surtitre') == '' OR _request('id_rubrique') == ''){ if (_request('ponctuel')!="on"){
$erreurs['message_erreur'] = "Il faut obligatoirement un pays, une ville et un nom pour créer un groupe."; // il faut au minimum titre (nom), surtitre (ville) et id_rubrique (pays) pour créer un article pour les groupes réguliers
return $erreurs; if (_request('titre') == '' OR _request('surtitre') == '' OR _request('id_rubrique') == ''){
$erreurs['message_erreur'] = "Il faut obligatoirement un pays, une ville et un nom pour créer un groupe régulier.";
return $erreurs;
}
} }
else{
// il faut au minimum titre (nom) et id_rubrique (pays) pour créer un article pour les groupes
if (_request('titre') == '' OR _request('id_rubrique') == ''){
$erreurs['message_erreur'] = "Il faut obligatoirement un pays et un nom pour créer un groupe.";
return $erreurs;
}
}
// la rubrique choisie doit être une sous-rubrique du secteur défini en config // la rubrique choisie doit être une sous-rubrique du secteur défini en config
$id_rubrique = intval(_request('id_rubrique')); $id_rubrique = intval(_request('id_rubrique'));
$id_secteur = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique='.$id_rubrique); $id_secteur = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique='.$id_rubrique);
@ -130,18 +126,30 @@ function formulaires_editer_groupe_traiter_dist($id_article=0, $redirect=''){
); );
sql_updateq('spip_documents_liens',array('id_objet' => intval($id_article)), $where); sql_updateq('spip_documents_liens',array('id_objet' => intval($id_article)), $where);
} }
$surtitre=_request('surtitre');
$titre=_request('titre');
$soustitre=_request('soustitre');
$texte=_request('texte');
$descriptif=_request('descriptif');
if (_request('ponctuel')=="on"){
$surtitre="";
$soustitre="";
$descriptif="";
}
// maj de l'article // maj de l'article
$set = array( $set = array(
'titre' => _request('titre'), 'titre' => $titre,
'texte' => _request('texte'), 'texte' => $texte,
'soustitre' => _request('soustitre'), 'soustitre' => $soustitre,
// On affiche le plus récent en premier => on garde la date de mise à jour
'date' => date("Y-m-d H:i:s"), 'date' => date("Y-m-d H:i:s"),
'descriptif' => $descriptif,
'surtitre' => $surtitre
// 'champ_1' => _request('champ_1'), // 'champ_1' => _request('champ_1'),
// 'champ_2' => _request('champ_2'), // 'champ_2' => _request('champ_2'),
'descriptif' => _request('descriptif'),
// 'chapo' => _request('chapo'), // 'chapo' => _request('chapo'),
'surtitre' => _request('surtitre')
); );
sql_updateq('spip_articles',$set,'id_article='.intval($id_article)); sql_updateq('spip_articles',$set,'id_article='.intval($id_article));

View file

@ -1,11 +1,48 @@
[(#REM) on affiche un groupe ponctuel pour les pays n'ayant pas de groupe régulier]
<BOUCLE_ponctuel(ARTICLES){id_rubrique=#ENV{id_rubrique}}{surtitre=""}{0,1}>
<div class="banniere-ville mt-4 mb-4">
<BOUCLE_banniere(DOCUMENTS){id_article}{extension==jpg|png|gif}{!par date}{0,1}>
[(#FICHIER|image_recadre{1200:300,-,focus}|image_reduire{1200,300})]
</BOUCLE_banniere>
[(#CHEMIN{img/ville.png}|image_recadre{1200:300,-,focus}|image_reduire{1200,300})]
<//B_banniere>
<div class="ville-titre">
<h2>#INFO_TITRE{rubrique, #ID_RUBRIQUE}</h2>
</div>
</div>
<div class="bloc-groupe col mt-4 mt-lg-0">
[<h3 class="h4 #EDIT{titre}">(#TITRE|sinon{"Groupes ponctuels"})</h3>]
[(#AUTORISER{modifier, article, #ID_ARTICLE})
<a class="btn" href="#URL_PAGE{editer_groupe,id_article=#ID_ARTICLE }"><i class="fas fa-edit"></i> Mettre à jour le groupe</a>
]
<div class="row">
<div class="col-md-8">
<div class="texte #EDIT{texte}">#TEXTE</div>
</div>
<div class="col-md-4">
<strong>Responsables</strong>
<BOUCLE_auteurs(AUTEURS){id_article=#ID_ARTICLE}>
<div>#NOM
[(#EMAIL|ou{#TELEPHONE}|oui)
<a href="[(#URL_PAGE{contacter_auteur}|parametre_url{id_auteur,#ID_AUTEUR})]" class="mediabox">&nbsp; (contact)</a>
]
</div>
</BOUCLE_auteurs>
</div>
</div>
</div>
</BOUCLE_ponctuel>
<div class="row liste-articles-encadres"> <div class="row liste-articles-encadres">
<BOUCLE_villes(ARTICLES){id_rubrique=#ENV{id_rubrique}}{fusion surtitre}> [(#REM) On affiche ensuite les groupes réguliers, par ville]
<BOUCLE_villes(ARTICLES){id_rubrique=#ENV{id_rubrique}}{fusion surtitre}{surtitre!=""}>
<div class="col-sm-6 col-lg-3 mt-4 mt-lg-0"> <div class="col-sm-6 col-lg-3 mt-4 mt-lg-0">
<INCLURE{fond=inclure/bloc_groupe,env,id_article=#ID_ARTICLE}> <INCLURE{fond=inclure/bloc_groupe,env,id_article=#ID_ARTICLE}>
</div> </div>
</BOUCLE_villes> </BOUCLE_villes>
<div class="col">Il n'y a pas encore de groupe dans ce pays.</div>
<//B_villes>
</div> </div>

View file

@ -34,6 +34,16 @@ jQuery(function($) {
event.preventDefault(); event.preventDefault();
}); });
} }
// Afficher / masquer des champs dans le formulaire "Groupes" selon le champ "ponctuel"
$('input[type=radio][name=ponctuel]').change(function() {
if (this.value == 'on') {
$('.regulier').hide();
}
else if (this.value == '') {
$('.regulier').show();
}
});
// les modifs déclenchées au scroll: // les modifs déclenchées au scroll:

2
js/mon_site.min.js vendored
View file

@ -1,2 +1,2 @@
"use strict";jQuery(function(t){t(".parent_prev_next").on("click","svg.cursor",function(){var e=t(this).data("id_article"),n=t(this).data("bloc_recharger");ajaxReload(n,{args:{id_article:e}})}),t("a.page-scroll").bind("click",function(e){t(this);t("html, body").animate({scrollTop:0},"slow"),e.preventDefault()});t(window).on("scroll",function(){0<t(window).scrollTop()?t("#menu-principal").addClass("reduit"):t("#menu-principal").removeClass("reduit")}),window.addEventListener("resize",function(){document.getElementById("result"),"matchMedia"in window&&(window.matchMedia("(min-width:768px)").matches?(t("#header").removeClass("navbar-fixed-top"),t("button.burgermenu, #barnav ul.js-sous-menu").removeClass("fixed-top")):(t("#header").addClass("navbar-fixed-top"),t("button.burgermenu, #barnav ul.js-sous-menu").addClass("fixed-top")))},!1)}),jQuery(function(t){var n,a;t(".js-sous-menu ul").addClass("js-hidden"),t(".js-sous-menu").on("click","a",function(e){e.stopPropagation();var n=t(this).next();if(n.length)return t(n).toggleClass("js-hidden"),!1}),"querySelector"in document&&"addEventListener"in window&&(window.document.documentElement.className+=" js-enabled",n=document.querySelector(".nav-button"),a=document.querySelector("#barnav"),n&&n.addEventListener("click",function(e){n.classList.toggle("is-active"),a.classList.toggle("is-opened"),e.preventDefault()},!1))}); "use strict";jQuery(function(t){t(".parent_prev_next").on("click","svg.cursor",function(){var e=t(this).data("id_article"),n=t(this).data("bloc_recharger");ajaxReload(n,{args:{id_article:e}})}),t("a.page-scroll").bind("click",function(e){t(this);t("html, body").animate({scrollTop:0},"slow"),e.preventDefault()}),t("input[type=radio][name=ponctuel]").change(function(){"on"==this.value?t(".regulier").hide():""==this.value&&t(".regulier").show()});t(window).on("scroll",function(){0<t(window).scrollTop()?t("#menu-principal").addClass("reduit"):t("#menu-principal").removeClass("reduit")}),window.addEventListener("resize",function(){document.getElementById("result"),"matchMedia"in window&&(window.matchMedia("(min-width:768px)").matches?(t("#header").removeClass("navbar-fixed-top"),t("button.burgermenu, #barnav ul.js-sous-menu").removeClass("fixed-top")):(t("#header").addClass("navbar-fixed-top"),t("button.burgermenu, #barnav ul.js-sous-menu").addClass("fixed-top")))},!1)}),jQuery(function(t){var n,a;t(".js-sous-menu ul").addClass("js-hidden"),t(".js-sous-menu").on("click","a",function(e){e.stopPropagation();var n=t(this).next();if(n.length)return t(n).toggleClass("js-hidden"),!1}),"querySelector"in document&&"addEventListener"in window&&(window.document.documentElement.className+=" js-enabled",n=document.querySelector(".nav-button"),a=document.querySelector("#barnav"),n&&n.addEventListener("click",function(e){n.classList.toggle("is-active"),a.classList.toggle("is-opened"),e.preventDefault()},!1))});
//# sourceMappingURL=mon_site.min.js.map //# sourceMappingURL=mon_site.min.js.map