Compare commits

...
Sign in to create a new pull request.

54 commits
AIPB ... master

Author SHA1 Message Date
e1d8fa8083 Le menu des groupes est toujours en dropdown + Ordre alphabétique des groupes 2021-12-31 01:15:26 +01:00
9e0cd76805 Tabs pour un formulaire login/sign-in plus clair 2021-12-31 01:14:33 +01:00
9bda879428 Mise à jour des champs à éditer et afficher pour un groupe 2021-12-31 00:00:42 +01:00
cy_altern
0dd782c7bf correction du nom du site dans l'objet du mail de notification + les 0minirezo avec no_notification dans leur champ pgp ne seront pas notifiés 2021-09-07 10:06:36 +02:00
dba90c513b correction mail d'inscription
+ correction faute de frappe accès à un champ extra
2021-09-01 23:43:38 +02:00
2ec637c735 correction du lien de réinitialisation de mot de passe 2020-12-20 15:58:56 +01:00
1487c1298c rechargement de la page gerer_auteurs après modification d'options en mediabox 2020-12-07 11:55:06 +01:00
6a977badbd un petit formulaire de recherche, à améliorer plus tard 2020-12-07 11:29:29 +01:00
6b7464a459 on facilite la gestion des groupes par les admins via une mediabox 2020-12-07 11:28:30 +01:00
dfd83a8d2f on n'affiche que les articles des catégories appropriées sur l'accueil 2020-12-07 11:16:15 +01:00
9f8ff90adc traitement du formulaire editer_groupe sans ajax pour réactualisation complète 2020-12-05 03:22:56 +01:00
239e4184f1 on change le rechargement du formulaire editer_post (traitement sans ajax pour que tout se réactualise correctement) 2020-12-05 03:21:45 +01:00
be332c808b le mail de notification d'inscription est envoyé à tous les administrateurs 2020-12-05 00:33:05 +01:00
cb5e9a4e7d on peut envoyer des images plus grandes dans un article 2020-12-05 00:32:18 +01:00
9ead585261 correction pour que formulaire config affiche bien les destinataires enregistrés 2020-12-04 00:39:32 +01:00
be1e10e290 On peut désormais contacter plusieurs destinataires en même temps avec le formulaire de contact.
La config de plugin permet de désigner plusieurs destinataires par défaut.
Les contacts individuels des groupes continuent de fonctionner avec un array à la place d'un id_auteur.
La page Nous contacter est remaniée.
2020-12-04 00:27:31 +01:00
370b8f5afd Petit relookage du sommaire 2020-12-03 23:09:02 +01:00
42baa93400 corrections d'affichage sur le sommaire 2020-12-03 11:00:21 +01:00
ead3ed3ce1 les membres peuvent tous ajouter un article "Agenda" 2020-12-03 04:45:37 +01:00
2952f1ded9 couleurs du footer selon la charte graphique LFI 2020-12-03 04:45:11 +01:00
f2b39d5ab8 - breadcrumb mis à jour
- ordre des rubriques de l'espace membre changé
- messages de la page espace membre plus pertinents
- CSS des dernières maj
2020-12-03 04:05:36 +01:00
c2619da0b1 - on ajoute un forum accessible aux membres d'un groupe
- on ajoute des boutons visibles pour faciliter la rédaction d'articles pour les membres autorisés
- autorisations précisées en conséquence
2020-12-03 04:02:37 +01:00
716317b4e6 formulaire édition d'article :
les emplacements affichés sont soumis à condition (pas de vérification php pour l'instant car pas d'enjeu important)
on corrige le comportement à l'enregistrement (pas de redirection)
2020-12-03 03:57:14 +01:00
a63d615e52 formulaire editer_groupe : correction d'un warning avec une condition, et on corrige afin de permettre de supprimer tous les membres 2020-12-03 03:50:53 +01:00
2bae47bc02 pour la page de gestion des membres, on précise l'affichage des groupes de chacun, s'il est "admin" du groupe, et on met un lien pour aller éditer les groupes rapidement 2020-12-03 03:48:07 +01:00
eea831cafd pour un mot de passe plus sécurisé, on intègre le plugin motdepassecomplexe
ATTENTION, il faut créer en complément le fichier config/mes_options.php avec les constantes personnalisées (dans le cas actuel, 0 caractère spécial) car elles ne sont pas prises en compte autrement dans les options du plugin
2020-12-03 03:45:26 +01:00
c1524e7ef0 adaptations de mise en page :
amélioration du responsive, titres, adaptation du menu...
2020-12-03 03:41:40 +01:00
3b44143a8a correction de la déclaration du nouveau champ "role" 2020-12-01 18:42:29 +01:00
d3f0f337da Ajout d'un role "admin" pour les membres (auteurs) d'un article de type groupe :
* ajout d'un champ à la table de jointure auteurs_liens
* en même temps, ajout d'un champ "telephone" à la table auteurs
* mise à jour du formulaire d'édition d'un groupe et de ses membres / admins
* mise à jour des autorisations de modifier le groupe
2020-12-01 16:56:47 +01:00
b8cba88e47 on améliore le parcours de login lorsqu'on ne passe pas par le menu pour se connecter à l'espace membre 2020-12-01 16:53:33 +01:00
8fe8fa774a corrctions mise en forme page sommaire 2020-12-01 13:32:05 +01:00
45feca0c10 ajout et relookage du bouton connexion 2020-12-01 11:36:33 +01:00
c294143d01 quelques infos suppélmentaires sur les pages agora 2020-12-01 11:36:07 +01:00
b154b64156 Ajout des pages charte, contact, retouche du sommaire 2020-12-01 11:31:15 +01:00
f66ec8f869 mise à jour de l'espace membres 2020-12-01 02:11:45 +01:00
0bd6b4ac00 récupération d'une page et correction des noms de fichiers 2020-12-01 02:11:25 +01:00
82df065ceb on complète la page sommaire 2020-12-01 02:10:26 +01:00
7b5263e6cd les pages "Dossiers" et "Agora" se fusionnent en Agora avec article et forum 2020-12-01 00:12:27 +01:00
8a52ae06f0 Retour du modèle avec sidebar pour les pages groupes, affichant des infos contextuelles 2020-12-01 00:09:57 +01:00
6aa1b286df correction de couleurs 2020-10-20 14:42:55 +02:00
05b5e05ad4 conception de la page dossiers 2020-10-20 02:42:56 +02:00
6d9e3f0300 un niveau de moins au breadcrumb 2020-10-20 02:32:59 +02:00
2babcd316a les articles de l'Agenda n'apparaissent pas dans les dernières nouvelles 2020-10-20 02:30:00 +02:00
44b6320a0d Quelques infos complémentaires sur la page sommaire 2020-10-20 02:24:32 +02:00
626b8c913e relookage "insoumis" 2020-10-20 01:55:08 +02:00
7e637a121f une image générique pour la page contact 2020-10-19 09:42:15 +02:00
32406ce80b il n'y a plus d'espace membre, le forum renommé "agora" est accessible directement 2020-10-19 03:21:42 +02:00
ba25af90e9 Le rattachement d'un article à un groupe est simplifié 2020-10-19 03:20:54 +02:00
76f82e93c7 pages inutiles 2020-10-19 03:17:54 +02:00
87cc507d67 Simplification des groupes : il n'y a plus de rubriques principales pays => les groupes sont des articles directement dans la rubrique groupes 2020-10-19 03:16:45 +02:00
81677da3de simplification du sommaire + changement menu + changements de couleurs etc. CSS 2020-10-19 03:15:35 +02:00
420af6d6d6 on rétablit le login sur la page login standard 2020-10-19 03:11:52 +02:00
5829afa2c7 images inutiles 2020-10-19 03:10:40 +02:00
41fac1841f On met à jour les infos du plugin : fédé 2020-10-19 03:08:36 +02:00
71 changed files with 1125 additions and 715 deletions

View file

@ -28,12 +28,12 @@ function balint_upgrade($nom_meta_base_version, $version_cible) {
$maj = array(); $maj = array();
$maj['create'] = array( $maj['create'] = array(
array('maj_tables', array('spip_articles')), array('maj_tables', array('spip_articles','spip_auteurs_liens')),
array('config_prive') array('config_prive')
); );
$maj['1.0.7'] = array( $maj['1.0.13'] = array(
array('maj_tables', array('spip_articles')), array('maj_tables', array('spip_articles','spip_auteurs_liens')),
array('config_prive') array('config_prive')
); );

View file

@ -118,15 +118,35 @@ function autoriser_article_lire($faire, $type, $id, $qui, $opt) {
function autoriser_article_modifier($faire, $type, $id, $qui, $opt) { function autoriser_article_modifier($faire, $type, $id, $qui, $opt) {
// Si l'article est un groupe, il faut être auteur et avoir le rôle "admin"
if ($opt AND in_array('groupe',$opt)){
$where = array(
'id_objet='.intval($id),
'objet="article"',
'id_auteur =' . $qui['id_auteur']
);
$role = sql_getfetsel('role','spip_auteurs_liens',$where);
if (in_array($qui['id_auteur'],auteurs_objet('article',$id)) AND $role == "admin"){
return true;
}
else {
return in_array($qui['statut'], array('0minirezo'));
}
}
// Sinon, seuls les auteurs et les admins peuvent le modifier
else{
if(in_array($qui['id_auteur'],auteurs_objet('article',$id))){ if(in_array($qui['id_auteur'],auteurs_objet('article',$id))){
return true; return true;
} }
else{ else{
return in_array($qui['statut'], array('0minirezo')); return in_array($qui['statut'], array('0minirezo'));
} }
}
} }
function autoriser_article_rediger($faire, $type, $id, $qui, $opt) { function autoriser_article_rediger($faire, $type, $id, $qui, $opt) {
/*
// Si le membre est rédacteur, il doit être animateur d'au moins un groupe // Si le membre est rédacteur, il doit être animateur d'au moins un groupe
if ($qui['statut']=="1comite"){ if ($qui['statut']=="1comite"){
$id_rub = lire_config('balint/id_rub_groupes'); $id_rub = lire_config('balint/id_rub_groupes');
@ -140,7 +160,8 @@ function autoriser_article_rediger($faire, $type, $id, $qui, $opt) {
// Sinon il faut être admin // Sinon il faut être admin
else{ else{
return in_array($qui['statut'], array('0minirezo')); return in_array($qui['statut'], array('0minirezo'));
} }*/
return in_array($qui['statut'], array('0minirezo','1comite'));
} }
function autoriser_sujet_creer($faire, $type, $id, $qui, $opt) { function autoriser_sujet_creer($faire, $type, $id, $qui, $opt) {
@ -158,24 +179,18 @@ function autoriser_sujet_editer($faire, $type, $id, $qui, $opt) {
} }
function autoriser_forum_voir($faire, $type, $id, $qui, $opt) { function autoriser_forum_voir($faire, $type, $id, $qui, $opt) {
$id_auteur = $qui['id_auteur'];
// Il faut être au moins membre // Si le forum est lié à un groupe, il faut être membre du groupe (auteur de l'article)
if ($qui['statut']=='1comite'){ if ($opt AND in_array('groupe',$opt)){
// si le forum est privé, il faut être membre du bureau if (in_array($qui['id_auteur'],auteurs_objet('article',$id))){
if ($id==lire_config('balint/id_rub_forum_prive')){
if (sql_getfetsel('bureau','spip_auteurs',"id_auteur=$id_auteur")=='on'){
return true; return true;
} }
else{ else{
return false; return in_array($qui['statut'], array('0minirezo'));
} }
} }
else{ // Sinon, il suffit d'être rédacteur
return true; else{
} return in_array($qui['statut'], array('0minirezo','1comite'));
}
// Les admins ont accès à tout
if ($qui['statut']=='0minirezo'){
return true;
} }
} }

View file

@ -52,3 +52,7 @@ $GLOBALS['flag_preserver'] = true;
// proteger le #FORMULAIRE_NOUS_CONTACTER // proteger le #FORMULAIRE_NOUS_CONTACTER
$GLOBALS['formulaires_no_spam'][] = 'nous_contacter'; $GLOBALS['formulaires_no_spam'][] = 'nous_contacter';
// mots de passe
define('_PASS_LONGUEUR_MINI', '8'); // longueur minimale - défaut: 6

View file

@ -5,6 +5,8 @@ if (!defined('_ECRIRE_INC_VERSION')) return;
function balint_declarer_tables_principales($tables_principales){ function balint_declarer_tables_principales($tables_principales){
$tables_principales['spip_auteurs_liens']['field']['role'] = "text DEFAULT '' NOT NULL";
/* /*
$tables_principales['spip_articles']['field']['surface'] = "text DEFAULT '' NOT NULL"; //duree $tables_principales['spip_articles']['field']['surface'] = "text DEFAULT '' NOT NULL"; //duree
$tables_principales['spip_articles']['field']['surface_parking'] = "text DEFAULT '' NOT NULL"; //date_pv $tables_principales['spip_articles']['field']['surface_parking'] = "text DEFAULT '' NOT NULL"; //date_pv
@ -78,6 +80,21 @@ function balint_declarer_champs_extras($champs = array()) {
'modifier' => array('auteur' => '0minirezo')),//Seuls les admins peuvent modifier 'modifier' => array('auteur' => '0minirezo')),//Seuls les admins peuvent modifier
), ),
); );
$champs['spip_auteurs']['telephone'] = array(
'saisie' => 'input',//Type du champ (voir plugin Saisies)
'options' => array(
'nom' => 'telephone',
'label' => 'Téléphone',
'sql' => "varchar(30) NOT NULL DEFAULT ''",
'defaut' => '',// Valeur par défaut
'restrictions'=>array(
'voir' => array('auteur' => ''),
'modifier' => array('auteur' => '0minirezo','1comite')
)
),
);
/* /*
$champs['spip_auteurs']['bureau'] = array( $champs['spip_auteurs']['bureau'] = array(
'saisie' => 'case',//Type du champ (voir plugin Saisies) 'saisie' => 'case',//Type du champ (voir plugin Saisies)

View file

@ -2,13 +2,10 @@
#SET{mots,#ARRAY} #SET{mots,#ARRAY}
#SET{id_groupe, #INFO_ID_GROUPE{article,#ENV{id_article}}} #SET{id_groupe, #INFO_ID_GROUPE{article,#ENV{id_article}}}
[(#REM On récupère : tous les mots / les mots de la rubrique médiathèque / les mots de la rubrique espace membre )] [(#REM) On récupère : tous les mots / les mots de la rubrique médiathèque / les mots de la rubrique espace membre]
<BOUCLE_mots(MOTS){id_article=#ENV{id_article}}> <BOUCLE_mots(MOTS){id_article=#ENV{id_article}}>
[(#SET{mots,#GET{mots}|push{#TITRE}})] [(#SET{mots,#GET{mots}|push{#TITRE}})]
[(#TYPE|=={Médiathèque}|oui) [(#TYPE|=={Espace membres}|oui)
#SET{id_media,#ID_MOT}
]
[(#TYPE|=={Espace Membre}|oui)
#SET{id_membre,#ID_MOT} #SET{id_membre,#ID_MOT}
] ]
</BOUCLE_mots> </BOUCLE_mots>
@ -17,24 +14,12 @@
<li><a href="#URL_SITE_SPIP"><:accueil_site:></a><span class="divider"> &gt; </span></li> <li><a href="#URL_SITE_SPIP"><:accueil_site:></a><span class="divider"> &gt; </span></li>
[(#GET{id_membre}|oui) [(#GET{id_membre}|oui)
<li><a href="[(#URL_PAGE{espace_membre})]"> Espace membres</a><span class="divider"> &gt; </span></li>
<li><a href="[(#URL_PAGE{espace_membre}|parametre_url{id_mot,#GET{id_membre}})]"> #INFO_TITRE{mot,#GET{id_membre}}</a><span class="divider"> &gt; </span></li> <li><a href="[(#URL_PAGE{espace_membre}|parametre_url{id_mot,#GET{id_membre}})]"> #INFO_TITRE{mot,#GET{id_membre}}</a><span class="divider"> &gt; </span></li>
] ]
[(#GET{id_membre}|non) [(#GET{id_membre}|non)
[(#GET{mots}|find{Séminaires}|oui)
<li><a href="#URL_PAGE{seminaires}"> Séminaires</a><span class="divider"> &gt; </span></li>
]
[(#GET{mots}|find{Séminaires}|non)
[(#GET{id_media}|oui)
<li><a href="[(#URL_PAGE{mediatheque}|parametre_url{id_mot,#GET{id_media}})]"> #INFO_TITRE{mot,#GET{id_media}}</a><span class="divider"> &gt; </span></li>
]
[(#GET{id_media}|non)
[(#GET{id_groupe}|oui) [(#GET{id_groupe}|oui)
<li><a href="#URL_PAGE{groupes}"> Groupes</a><span class="divider"> &gt; </span></li> <li><a href="[(#URL_PAGE{groupes}|parametre_url{id_article,#GET{id_groupe}})]"> #INFO_TITRE{article,#GET{id_groupe}}</a><span class="divider"> &gt; </span></li>
<li><a href="[(#URL_PAGE{groupes}|parametre_url{id_article,#GET{id_groupe}})]"> #INFO_SURTITRE{article,#GET{id_groupe}}</a><span class="divider"> &gt; </span></li>
]
]
] ]
] ]

View file

@ -1,7 +1,7 @@
<div class="container mt-3"> <div class="container mt-3">
<BOUCLE_principale(AUTEURS){tout}{id_auteur=#ENV{id_auteur}}> <BOUCLE_principale(AUTEURS){tout}{id_auteur=#ENV{id_auteur}}{0,1}>
<h2>Contacter #NOM</h2> <h2>Contacter #NOM</h2>
[<div class='mt-3 mb-3'>Téléphone : (#TELEPHONE) [ou (#TELEPHONE2)]</div>] [<div class='mt-3 mb-3'>Téléphone : (#TELEPHONE) [ou (#TELEPHONE2)]</div>]
#FORMULAIRE_NOUS_CONTACTER{#ID_AUTEUR} #FORMULAIRE_NOUS_CONTACTER{#ARRAY{0,#ID_AUTEUR}}
</BOUCLE_principale> </BOUCLE_principale>
</div> </div>

12
content/agora.html Normal file
View file

@ -0,0 +1,12 @@
[(#REM) On affiche le premier article par défaut]
<BOUCLE_menu_agora(ARTICLES){titre_mot=agora}{0,1}{si #ENV{id_article}|non}{par rang}>
[(#ID_ARTICLE|setenv{id_article})]
</BOUCLE_menu_agora>
<section id="agora" class="container section-top section-bottom">
<div class="cadre-blanc">
<h1>Agora</h1>
<INCLURE{fond=inclure/page_agora,nom=agora,env,ajax}>
</div>
</section>

View file

@ -1,11 +0,0 @@
[(#REM) On affiche le premier article par défaut]
<BOUCLE_menu_association(ARTICLES){titre_mot=Association}{0,1}{si #ENV{id_article}|non}{par rang}>
[(#ID_ARTICLE|setenv{id_article})]
</BOUCLE_menu_association>
<section id="association" class="container section-top section-bottom">
<div class="cadre-blanc">
<h1>L'Association</h1>
<INCLURE{fond=inclure/page_statique,nom=association,env,ajax}>
</div>
</section>

View file

@ -1,6 +1,6 @@
<section id="brouillons" class="section-top section-bottom container"> <section id="brouillons" class="section-top section-bottom container">
<div class="cadre-blanc"> <div class="cadre-blanc">
<h1 class="mb-4">Articles non publiés (brouillons)</h1> <h1 class="h2 mb-4">Articles non publiés (brouillons)</h1>
<INCLURE{fond=inclure/brouillons_contenu,env,ajax}> <INCLURE{fond=inclure/brouillons_contenu,env,ajax}>
</div> </div>
</section> </section>

10
content/charte.html Normal file
View file

@ -0,0 +1,10 @@
<section class="container section-top section-bottom">
<div class="cadre-blanc">
<BOUCLE_presentation(ARTICLES){grigri=charte}{0,1}{! par date}>
<h1 class="#EDIT{titre}">#TITRE</h1>
<div class="#EDIT{texte}">
#TEXTE
</div>
</BOUCLE_presentation>
</div>
</section>

View file

@ -3,9 +3,9 @@
<div class="container"> <div class="container">
[(#ENV{id_article}|?{ [(#ENV{id_article}|?{
<h1>Éditer un article</h1> <h1 class="h2 p-3">Éditer un article : <strong>#INFO_TITRE{article,#ENV{id_article}}</strong></h1>
, ,
<h1>Rédiger un article</h1> <h1 class="h2 p-3">Rédiger un article</h1>
})] })]
[(#SESSION{id_auteur}|oui) [(#SESSION{id_auteur}|oui)

View file

@ -3,9 +3,16 @@
<div class="container"> <div class="container">
[(#ENV{id_article}|?{ [(#ENV{id_article}|?{
<h1>Mettre à jour un groupe</h1>
<div class="d-lg-flex justify-content-between">
<h1 class="strong h2 p-3">Mettre à jour un groupe : <strong>#INFO_TITRE{article,#ENV{id_article}}</strong></h1>
<p class="alert alert-light">
[<i class="fa fa-clock-o" aria-hidden="true"></i> Dernière mise à jour : (#INFO_MAJ{article,#ENV{id_article}}|date_interface)]
</p>
</div>
, ,
<h1>Créer un nouveau groupe</h1> <h1 class="p-3">Créer un nouveau groupe</h1>
})] })]
[(#SESSION{id_auteur}|oui) [(#SESSION{id_auteur}|oui)

View file

@ -12,7 +12,7 @@
[(#ENV{id_article}|oui) [(#ENV{id_article}|oui)
[(#AUTORISER{modifier, article, #ENV{id_article}}|?{ [(#AUTORISER{modifier, article, #ENV{id_article}}|?{
<div class="ajax"> <div class="ajax">
[(#FORMULAIRE_EDITER_SUJET{#ENV{id_article},#ENV{rub_forum},#URL_PAGE{espace_membre}|parametre_url{rub_forum,#ENV{rub_forum}}|parametre_url{id_article,#ENV{id_article}}})]<br> [(#FORMULAIRE_EDITER_SUJET{#ENV{id_article},#ENV{rub_forum},#URL_PAGE{agora}|parametre_url{rub_forum,#ENV{rub_forum}}|parametre_url{id_article,#ENV{id_article}}})]<br>
</div> </div>
, ,
<div class="reponse_formulaire reponse_formulaire_erreur">Votre compte ne fait pas partie des auteurs autorisés à modifier cet article.</div> <div class="reponse_formulaire reponse_formulaire_erreur">Votre compte ne fait pas partie des auteurs autorisés à modifier cet article.</div>
@ -20,7 +20,7 @@
] ]
[(#ENV{id_article}|non) [(#ENV{id_article}|non)
<div class="ajax"> <div class="ajax">
[(#FORMULAIRE_EDITER_SUJET{0,#ENV{rub_forum},#URL_PAGE{espace_membre}|parametre_url{rub_forum,#ENV{rub_forum}}|parametre_url{id_article,#ENV{id_article}}})] [(#FORMULAIRE_EDITER_SUJET{0,#ENV{rub_forum},#URL_PAGE{agora}|parametre_url{rub_forum,#ENV{rub_forum}}|parametre_url{id_article,#ENV{id_article}}})]
</div> </div>
] ]
] ]

View file

@ -1,14 +1,16 @@
[(#REM) On affiche la première rubrique par défaut] [(#REM) Si aucun paramètre id_mot ou rub_forum ne sont renseignés, on définit un rub_forum par défaut]
<BOUCLE_menu_membre(CONDITION){si #ENV{rub_forum}|non}{si #ENV{id_mot}|non}>
[(#CONFIG{balint/id_rub_forum_prive}|setenv{rub_forum})]
</BOUCLE_menu_membre>
<section id="espace_membre" class="section-top section-bottom container"> <section id="espace_membre" class="section-top section-bottom container">
<?php <?php
if (isset($GLOBALS['visiteur_session']['id_auteur']) AND $GLOBALS['visiteur_session']['id_auteur']) { if (isset($GLOBALS['visiteur_session']['id_auteur']) AND $GLOBALS['visiteur_session']['id_auteur']) {
?> ?>
<div class="cadre-blanc"> <div class="cadre-blanc">
<h1 class="mb-4">Espace membre</h1> <h1 class="mb-4">Espace membres</h1>
<?php <?php
if (isset($GLOBALS['visiteur_session']['statut']) AND in_array($GLOBALS['visiteur_session']['statut'],array("0minirezo","1comite"))) { if (isset($GLOBALS['visiteur_session']['statut']) AND in_array($GLOBALS['visiteur_session']['statut'],array("0minirezo","1comite"))) {
?> ?>
@ -18,8 +20,8 @@
else { else {
?> ?>
<div> <div>
Les administrateurs valideront votre accès à l'espace membre dès que possible.</br> Les administrateurs valideront votre accès à l'Espace Membres dès que possible.</br>
En cas de problème vous pouvez les joindre sur contact@psychodrame-balint.com. En cas de problème vous pouvez les joindre sur la page <a href="[(#URL_PAGE{nous-contacter})]">Contact</a>.
</div> </div>
<?php <?php
} }
@ -32,23 +34,33 @@
?> ?>
<div class="cadre-blanc"> <div class="cadre-blanc">
<h1 class="mb-4">Espace membre</h1> <h1 class="mb-4">Espace membre</h1>
Cet espace est réservé aux membres de l'association.</br> Cet espace est réservé aux membres du mouvement de la France Insoumise 05.</br>
Inscrivez-vous pour votre première connexion, ensuite en vous connectant vous aurez accès au forum, aux archives, aux textes officiels de l'association.</br> Inscrivez-vous pour votre première connexion.</br>
En cas de problème vous pouvez nous joindre sur contact@psychodrame-balint.com. En cas de problème vous pouvez nous joindre sur la page <a href="[(#URL_PAGE{nous-contacter})]">Contact</a>.
<div class="row mt-4">
<ul class="nav nav-tabs" id="myTab" role="tablist">
<li class="nav-item">
<a class="nav-link active" id="home-tab" data-toggle="tab" href="#home" role="tab" aria-controls="home" aria-selected="true">Se connecter</a>
</li>
<li class="nav-item">
<a class="nav-link" id="profile-tab" data-toggle="tab" href="#profile" role="tab" aria-controls="profile" aria-selected="false">S'inscrire</a>
</li>
</ul>
</div> </div>
<div class="row mt-4"> <div class="row mt-4">
<div class="se_connecter bloc_connexion col-lg-5"> <div class="tab-content" id="myTabContent">
<div class="se_connecter bloc_connexion tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab">
[(#FORMULAIRE_LOGIN{#SELF})] [(#FORMULAIRE_LOGIN{#SELF})]
</div> </div>
<div class="ou col-lg-2 text-center"><h2>ou</h2></div> <div class="creer_associer_compte bloc_connexion tab-pane fade" id="profile" role="tabpanel" aria-labelledby="profile-tab">
<div class="creer_associer_compte bloc_connexion col-lg-5">
[(#FORMULAIRE_INSCRIPTION{'','',#SELF})] [(#FORMULAIRE_INSCRIPTION{'','',#SELF})]
</div> </div>
</div> </div>
</div>
</div>
<?php <?php
} }
?> ?>
</section> </section>

View file

@ -11,15 +11,15 @@
<tr> <tr>
<th scope="col">Nom</th> <th scope="col">Nom</th>
<th scope="col">Statut</th> <th scope="col">Statut</th>
<th scope="col">Bureau</th> [(#REM)<th scope="col">Bureau</th>]
<th scope="col">Animateur</th> <th scope="col">Groupe (<i class="fas fa-star"></i> admin)</th>
<th scope="col">Email</th> <th scope="col">Email</th>
<th scope="col">Téléphone</th> <th scope="col">Téléphone</th>
<th scope="col">Actions</th> <th scope="col">Actions</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<BOUCLE_auteurs(AUTEURS){tous}{webmestre=non}{par nom}> <BOUCLE_auteurs(AUTEURS){tous}{par nom}>
<tr class="ligne-auteurs"> <tr class="ligne-auteurs">
<td class="cellule-tableau">#NOM</td> <td class="cellule-tableau">#NOM</td>
@ -28,18 +28,22 @@
[(#STATUT|=={1comite}|oui) Membre] [(#STATUT|=={1comite}|oui) Membre]
[(#STATUT|=={6forum}|oui) Inscrit] [(#STATUT|=={6forum}|oui) Inscrit]
</td> </td>
<td class="cellule-tableau"> [(#REM)<td class="cellule-tableau">
<INCLURE{fond=inclure/toggle_param,env,objet=auteur,id_objet=#ID_AUTEUR,param=bureau,ajax}> <INCLURE{fond=inclure/toggle_param,env,objet=auteur,id_objet=#ID_AUTEUR,param=bureau,ajax}>
</td> </td>]
<td class="cellule-tableau"> <td class="cellule-tableau">
<BOUCLE_groupes(ARTICLES){id_secteur=#CONFIG{balint/id_rub_groupes}}{id_auteur=#ID_AUTEUR}> <BOUCLE_groupes(ARTICLES){id_secteur=#CONFIG{balint/id_rub_groupes}}{id_auteur=#ID_AUTEUR}>
[(#REM) On affiche les villes dont on est animateur de groupe, ou le pays si on animateur de gps ponctuels] [(#REM) On affiche les groupes dont on fait partie]
[(#SURTITRE|sinon{#INFO_TITRE{rubrique,#ID_RUBRIQUE}}|unique)] [(#ROLE|=={admin}|oui)<i class="fas fa-star"></i>]#TITRE
<a class="mediabox" href="[(#URL_PAGE{editer_groupe_mediabox}|parametre_url{id_article,#ID_ARTICLE})]"><i class="fas fa-cog"></i></a>
[(#COMPTEUR_BOUCLE|!={#TOTAL_BOUCLE}|oui)<br>]
</BOUCLE_groupes> </BOUCLE_groupes>
</td> </td>
<td class="cellule-tableau">#EMAIL</td> <td class="cellule-tableau">#EMAIL</td>
<td class="cellule-tableau">#TELEPHONE</br>#TELEPHONE2</td> <td class="cellule-tableau">#TELEPHONE</br>#TELEPHONE2</td>
<td class="row"> <td class="row cellule-tableau">
<a class="btn mediabox" href="[(#URL_PAGE{editer_auteur}|parametre_url{id_auteur,#ID_AUTEUR})]"> <a class="btn mediabox" href="[(#URL_PAGE{editer_auteur}|parametre_url{id_auteur,#ID_AUTEUR})]">
<i class="fas fa-pencil"></i> <i class="fas fa-pencil"></i>
</a> </a>

View file

@ -1,15 +1,9 @@
[(#REM) On affiche la France par défaut] [(#REM) On affiche tous les groupes]
<BOUCLE_france(RUBRIQUES){id_parent = #CONFIG{balint/id_rub_groupes}}{titre=france}{tout}{0,1}{si #ENV{id_rubrique}|non}>
[(#ID_RUBRIQUE|setenv{id_rubrique})]
</BOUCLE_france>
[(#REM) On affiche tous les groupes appartenant à la même Ville]
<section id="groupes" class="section-top section-bottom container"> <section id="groupes" class="section-top section-bottom container">
<div class="cadre-blanc"> <div class="cadre-blanc">
<h1 class="mb-4">Les groupes</h1> <INCLURE{fond=inclure/groupes_contenu_sidebar,env,ajax}>
<INCLURE{fond=inclure/groupes_contenu,env,ajax}>
</div> </div>
</section> </section>

31
content/login.html Normal file
View file

@ -0,0 +1,31 @@
<section class="section-top section-bottom">
<div class="container">
<?php if (!isset($GLOBALS['visiteur_session']['id_auteur'])) { ?>
<div class="row mt-4">
<div class="se_connecter bloc_connexion col-lg-5">
[(#FORMULAIRE_LOGIN{#URL_PAGE{sommaire}})]
</div>
<div class="ou col-lg-2 text-center"><h2>ou</h2></div>
<div class="creer_associer_compte bloc_connexion col-lg-5">
[(#FORMULAIRE_INSCRIPTION)]
</div>
</div>
<?php } ?>
<?php if (isset($GLOBALS['visiteur_session']['id_auteur'])) { ?>
<div class="cadre-blanc">
Vous êtes connecté·e en tant que <a class="boutons" href="[(#URL_PAGE{modifier_auteur})]"><?php echo $GLOBALS['visiteur_session']['nom'] ?></a>.
<div>
<a href="#URL_PAGE{modifier_auteur}"><i class="fa fa-user" aria-hidden="true"></i> Voir mon profil</a>
<a href="#URL_PAGE{espace_membre}"><i class="fa fa-external-link-square ml-3" aria-hidden="true"></i> Accès à l'espace membres</a>
<a href="[(#URL_LOGOUT{#SELF})]"><i class="fa fa-sign-out ml-3" aria-hidden="true"></i> Déconnexion</a>
</div>
</div>
<?php } ?>
</div>
</section>

View file

@ -1,17 +1,18 @@
<section class="section-top section-bottom" id="page-contact"> <section class="container section-top section-bottom">
<div class="container"> <div class="cadre-blanc row">
<h2 class="h3">Nous contacter</h2> <h1 class="col-12">Nous contacter</h1>
<div class="row"> <div class='col-12 col-md-6'>
<div class="col-lg-6">
<BOUCLE_contact(AUTEURS){id_auteur=#CONFIG{balint/id_contact}}{0,1}{tout}> [(#FORMULAIRE_NOUS_CONTACTER{#CONFIG{balint/Tid_destinataires}})]
#FORMULAIRE_NOUS_CONTACTER{#ID_AUTEUR}
</BOUCLE_contact>
</div> </div>
<div class="col-lg-6 text-center"> <div class='col-12 col-md-6'>
<BOUCLE_image_rousseau(DOCUMENTS){credits=rousseau}{extension==jpg|png|gif}{statut in prop,prepa,publie}{0,1}> <BOUCLE_presentation(ARTICLES){grigri=contact}{0,1}{! par date}>
[(#FICHIER|balise_img{Jardin du Luxembourg peint par Henri Rousseau}|image_recadre{510:420,-,focus}|image_reduire{510,420})] <div class="#EDIT{texte}">
</BOUCLE_image_rousseau> #TEXTE
</div> </div>
</BOUCLE_presentation>
</div> </div>
</div> </div>
</section> </section>

11
content/presse.html Normal file
View file

@ -0,0 +1,11 @@
[(#REM) On affiche le premier article par défaut]
<BOUCLE_menu_methode(ARTICLES){titre_mot=presse}{0,1}{si #ENV{id_article}|non}{par rang}>
[(#ID_ARTICLE|setenv{id_article})]
</BOUCLE_menu_methode>
<section id="methode" class="container section-top section-bottom">
<div class="cadre-blanc">
<h1>Espace Presse</h1>
<INCLURE{fond=inclure/page_statique,nom=presse,env,ajax}>
</div>
</section>

6
content/recherche.html Normal file
View file

@ -0,0 +1,6 @@
<section id="methode" class="container section-top section-bottom">
<div class="cadre-blanc">
<h1>Résultats : #ENV{recherche}</h1>
<INCLURE{fond=inclure/a_la_une_contenu,env,ajax=a_la_une}>
</div>
</section>

View file

@ -1,51 +1,60 @@
<section id="presentation-accueil"> [(#REM)<section id="presentation-accueil">
<div class="container"> <div class="container">
<h1 class="text-center">[(#CHEMIN{images/Titre-AIPB.png}|inserer_attribut{alt,#NOM_SITE_SPIP}|image_reduire{900,120})]</h1>
<div class="row">
<BOUCLE_presentation(ARTICLES){grigri=presentation_accueil}{0,1}{! par date}>
<div id="images-presentation" class="col-lg">
<BOUCLE_image_pres(DOCUMENTS){id_article}{0,1}>
<div class="image-encadree text-dark">
[(#FICHIER|balise_img{#TITRE}|image_recadre{380:362,-,focus}|image_reduire{380,362})]
<span class="#EDIT{descriptif}">#DESCRIPTIF</span>
</div>
</BOUCLE_image_pres>
</div> </div>
<article id="texte-presentation" class="col-lg"> </section>]
<div class="contenu text-dark #EDIT{texte}"> <section class="section-top">
<div class="container">
<div class="row mb-5">
<div class="col-12 col-lg-8 col-xl-9">
<div class="mb-3">
<BOUCLE_presentation(ARTICLES){grigri=presentation_accueil}{0,1}{! par date}>
<article class="cadre-blanc contenu">
<h1 class="text-center ">[(#CHEMIN{images/logo-lfi5.jpg}|image_reduire{500,550}|inserer_attribut{alt,FI05 - #NOM_SITE_SPIP})]</h1>
<div class="text-dark #EDIT{texte}">
#TEXTE #TEXTE
</div> </div>
</article> </article>
</BOUCLE_presentation> </BOUCLE_presentation>
</div> </div>
<div class="dernieres-nouvelles mt-3 p-3">
<div class="d-md-flex justify-content-between align-items-center">
<h2 class="a-la-une h3">Derniers articles</h2>
#FORMULAIRE_RECHERCHE
</div> </div>
</section> <INCLURE{fond=inclure/a_la_une_contenu,env}>
<section id="mis-en-avant">
<div class="container">
<div class="row">
<div class="col-lg-9">
<INCLURE{fond=inclure/diaporama_accueil}/>
<div class="cadre-transparent mt-3 p-3">
<h2 class="a-la-une h3">Actualités</h2>
<INCLURE{fond=inclure/a_la_une_contenu,env,ajax}>
</div> </div>
</div> </div>
<aside class="col-lg-3"> <aside class="col-12 col-lg-4 col-xl-3">
<div id="agenda" class="mt-4 mt-lg-0"> <div id="agenda">
<h2 class="h3">Agenda</h2> <h2 class="h3">Agenda</h2>
<BOUCLE_agenda(ARTICLES){titre_mot=agenda}{par rang}> <BOUCLE_agenda(ARTICLES){titre_mot=agenda}{par rang}>
<div class="agenda-evenement"> <div class="agenda-evenement">
#DATE_AGENDA
<a href="#URL_ARTICLE"> <a href="#URL_ARTICLE">
<h3 class="h5">#TITRE</h3> <h3 class="h5">#TITRE</h3>
</a> </a>
#DATE_AGENDA
</div> </div>
</BOUCLE_agenda> </BOUCLE_agenda>
</div> </div>
<div class="dernieres-nouvelles mt-3 mb-3">
<div class="h3 mt-4">Dernières contributions</div>
<div class="liste-articles">
<BOUCLE_sujets(FORUMS){id_secteur!=#CONFIG{balint/id_rub_forum_prive}}{!par date}{0,3}{tout}>
<div class="mt-4 mt-lg-0 mb-3">
<strong> [(#INFO_TITRE{article, #ID_ARTICLE}) :]
</strong>
<a href="[(#URL_PAGE{agora}|parametre_url{id_article,#ID_ARTICLE}|parametre_url{forum,oui})]" class="ajax" title="Voir le forum">
#TITRE
</a>
<div class="infos-article">
[(#DATE|date_relative)]
</div>
</div>
</BOUCLE_sujets>
</div>
</div>
</aside> </aside>
</div> </div>
</div> </div>
</section> </section>
@ -58,21 +67,3 @@
</div> </div>
</section> </section>
] ]
<section id="nous-contacter">
<div class="container">
<h2 class="h3">Nous contacter</h2>
<div class="row">
<div class="col-lg-6">
<BOUCLE_webmaster(AUTEURS){id_auteur=#CONFIG{balint/id_contact}}{tout}>
#FORMULAIRE_NOUS_CONTACTER{#ID_AUTEUR}
</BOUCLE_webmaster>
</div>
<div class="col-lg-6 text-center">
<BOUCLE_image_rousseau(DOCUMENTS){credits=rousseau}{extension==jpg|png|gif}{statut in prop,prepa,publie}{0,1}>
[(#FICHIER|balise_img{Jardin du Luxembourg peint par Henri Rousseau}|image_recadre{510:420,-,focus}|image_reduire{510,420})]
</BOUCLE_image_rousseau>
</div>
</div>
</div>
</section>

View file

@ -19,7 +19,7 @@
src: url("../fonts/Poppins500i.woff2?#iefix") format("woff2"); src: url("../fonts/Poppins500i.woff2?#iefix") format("woff2");
font-weight: 500; font-weight: 500;
font-style: italic; font-style: italic;
}*/ }
@font-face { @font-face {
font-family: 'Cabin'; font-family: 'Cabin';
@ -50,7 +50,7 @@
} }
/*
@font-face { @font-face {
font-family: 'Bitter'; font-family: 'Bitter';
src: url("../fonts/bitter.woff2?#iefix") format("woff2"); src: url("../fonts/bitter.woff2?#iefix") format("woff2");
@ -72,3 +72,17 @@
font-style: normal; font-style: normal;
} }
*/ */
@font-face {
font-family: 'Montserrat';
src: url("../webfonts/montserrat-regular/montserrat-regular.woff2?#iefix") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: 'Montserrat';
src: url("../webfonts/montserrat-bold/montserrat-bold.woff2?#iefix") format("woff2");
font-weight: 700;
font-style: normal;
}

View file

@ -56,10 +56,16 @@ textarea[name="texte"]{
} }
/* polices */ /* polices */
* { font-family: 'Cabin', sans-serif; font-size: 1.1rem} * { font-family: 'Montserrat', sans-serif;}
i.fas { font-family: fontawesome; font-style: normal; font-weight: 400; } i.fas { font-family: fontawesome; font-style: normal; font-weight: 400; }
h1, .h1, h2, .h2, h3, .h3, h4, .h4, legend, h1, .h1, h2, .h2, h3, .h3, h4, .h4, legend,
.h1-like, .h2-like, .h3-like, .h4-like { font-family: 'Cabin', sans-serif; } .h1-like, .h2-like, .h3-like, .h4-like { font-family: 'Montserrat', sans-serif; }
h1, .h1{font-size: 2rem;}
h2, .h2{font-size: 1.75rem;}
h3, .h3{font-size: 1.5rem;}
h4, .h4{font-size: 1.25rem;}
h5, .h5{font-size: 1.15rem;}
h6, .h6{font-size: 1.05rem;}
/* liens */ /* liens */
@ -99,7 +105,7 @@ img{
border-radius: 0.2rem; border-radius: 0.2rem;
} strong{ } strong{
cursor:initial; cursor:initial;
color: $page-active; color: $pagination-active;
} }
.lien_pagination{ .lien_pagination{
color: $light; color: $light;
@ -132,26 +138,33 @@ body{
padding: 1rem 2rem; padding: 1rem 2rem;
background-color: $fond-menu; background-color: $fond-menu;
transition: all 1s; transition: all 1s;
.nav-item:hover{
background: rgba(255,255,255,0.2);
}
.nav-link{ .nav-link{
padding: 0.3rem 0; padding: 0.3rem 0;
font-size: 1.2rem; font-size: 1.2rem;
} }
.nav-link, .dropdown-item{ .nav-link, .dropdown-item{
color: $light; color: $texte-menu;
font-weight: 500; font-weight: 400;
font-family: 'Cabin', sans-serif; font-family: 'Montserrat', sans-serif;
text-align: center; text-align: center;
transition: height 1s ease; transition: height 1s ease;
} }
.dropdown-item{
font-size: 1.1rem;
white-space: normal;
}
.dropdown i.fas{
padding-bottom: 0.1rem;
}
.navbar-brand{ .navbar-brand{
width: 200px; width: 150px;
transition: all 1s ease; transition: all 1s ease;
img{ img{
transition: all 1s ease; transition: all 1s ease;
} }
@include media-breakpoint-up(sm){
width: 220px;
}
} }
.active a.nav-link{ .active a.nav-link{
color: $page-active; color: $page-active;
@ -161,7 +174,7 @@ body{
} }
.fa-bars{ .fa-bars{
font-size: 1.8rem; font-size: 1.8rem;
color: $light; color: $page-active;
} }
&.reduit{ &.reduit{
.navbar-brand{ .navbar-brand{
@ -169,13 +182,15 @@ body{
} }
} }
.dropdown-menu{ .dropdown-menu{
background: #399975; font-size: 1.2rem;
background: $gris-clair;
color: $texte-menu;
border-radius: 0 0 0.2rem 0.2rem; border-radius: 0 0 0.2rem 0.2rem;
border: none; border: none;
} }
.dropdown-item:focus, .dropdown-item:hover{ .dropdown-item:focus, .dropdown-item:hover, .nav-link:hover{
background: rgba(255,255,255,0.2); background: rgba(255,255,255,0.2);
color: white; color: $page-active;
} }
@include media-breakpoint-up(xl){ @include media-breakpoint-up(xl){
padding: 0 2rem; padding: 0 2rem;
@ -198,14 +213,18 @@ body{
} }
.dropdown-menu{ .dropdown-menu{
margin-top: 0; margin-top: 0;
background: white;
} }
.dropdown-item{ .dropdown-item{
text-align: left; text-align: left;
font-size: 1.2rem;
white-space: nowrap;
} }
} }
} }
#liste-deroulante{ #liste-deroulante{
width: 100%;
ul{ ul{
list-style-type: none; list-style-type: none;
} }
@ -292,6 +311,13 @@ body{
color: $bg-diapo-texte; color: $bg-diapo-texte;
} }
#barre-recherche input{
vertical-align: middle;
padding: 0.375rem 0.75rem;
border-radius: 0.2rem;
border: solid 1px lightgrey;
}
#agenda, .dernieres-nouvelles{ #agenda, .dernieres-nouvelles{
background: $fond-transparent; background: $fond-transparent;
border-radius: 0.2rem; border-radius: 0.2rem;
@ -311,7 +337,7 @@ body{
.dernieres-nouvelles{ .dernieres-nouvelles{
text-align: left; text-align: left;
padding: 0 1.2rem; padding: 0 1.2rem;
border-left: solid 1px $couleur-liens; //border-left: solid 1px $couleur-liens;
} }
.agenda-evenement{ .agenda-evenement{
@ -571,25 +597,13 @@ body{
} }
} }
.page_sommaire .footer-options, .page_sommaire #footer-infos{
background: #FFF0C7;
color: black !important;
h4{
color: $fond-footer;
}
a, .grille a{
color: black;
}
.pages-footer li:hover a{
color: $dark;
}
}
/**********************************************************************/ /**********************************************************************/
/************************ PAGE ASSOCIATION ****************************/ /************************ PAGE STATIQUE ****************************/
/**********************************************************************/ /**********************************************************************/
#menu-association, #menu-methode, #menu-groupes, #menu-medias, #menu-espace_membre{ #menu-agora, #menu-methode, #menu-groupes, #menu-medias, #menu-espace_membre{
background: $couleur-liens; background: $couleur-liens;
margin: 1rem 0; margin: 1rem 0;
border-radius: 0.2rem; border-radius: 0.2rem;
@ -633,7 +647,7 @@ body{
} }
@include media-breakpoint-up(lg) { @include media-breakpoint-up(lg) {
#menu-groupes, #menu-medias, #menu-espace_membre{ #menu-groupes, #menu-agora, #menu-medias, #menu-espace_membre{
li:not(:last-of-type){ li:not(:last-of-type){
border: none; border: none;
} }
@ -677,12 +691,17 @@ body{
.articles-groupe{ .articles-groupe{
display: inline-block; display: inline-block;
padding: 1rem; padding: 1rem;
background: $couleur-liens; background: $gris-clair;
border-radius: 0.5rem 0.5rem 0 0; border-radius: 0.5rem 0.5rem 0 0;
color: white; color: $dark;
} }
.btn.bouton-rediger{
margin: 0;
background: $texte-menu;
color:white;
}
/**********************************************************************/ /**********************************************************************/
/**************** TOUS LES FORMULAIRES DE CONNEXION *******************/ /**************** TOUS LES FORMULAIRES DE CONNEXION *******************/
@ -691,7 +710,6 @@ body{
.formulaire_spip .boutons, .boutons{ .formulaire_spip .boutons, .boutons{
margin: 1rem 0; margin: 1rem 0;
.btn{ .btn{
font-size: 1.2rem;
line-height: 1rem; line-height: 1rem;
padding: 1rem; padding: 1rem;
border: solid 1px $light; border: solid 1px $light;
@ -735,15 +753,21 @@ body{
} }
.btn.bouton-login{ .btn.bouton-login{
background: $couleur-liens; background: $fond-transparent;
border-radius: 0.2rem; border-radius: 0.2rem;
color: #333 !important;
&:hover{
color: black; color: black;
background-color: $page-active; &:hover{
color: white;
background-color: $couleur-liens;
} }
} }
#menu-principal .btn.bouton-login{
background: $texte-menu;
font-size: 1.1rem;
color: white;
}
.bouton-toggle{ .bouton-toggle{
color:lightgrey; color:lightgrey;
display: block; display: block;
@ -907,6 +931,10 @@ body{
text-align: center; text-align: center;
} }
.cellule-tableau .btn{
padding: 0 0.75rem;
}
/**********************************************************************/ /**********************************************************************/
/****************************** FORUM *********************************/ /****************************** FORUM *********************************/
/**********************************************************************/ /**********************************************************************/

View file

@ -2,27 +2,29 @@ $couleur-texte : black;
$dark: #595959; $dark: #595959;
//$fond-menu: #3b3f8a; bleu-violet plus foncé //$fond-menu: #3b3f8a; bleu-violet plus foncé
//$fond-menu: #478E7E; vert-bleu plus foncé //$fond-menu: #478E7E; vert-bleu plus foncé
$fond-menu: #087f52; $fond-menu: white;
$texte-menu: #00ADCB;
//$couleur-liens : #dc7544; orange moins vif //$couleur-liens : #dc7544; orange moins vif
$couleur-liens: #dd7f51; $couleur-liens: #C84227;
// $couleur-liens : #f67638; orange vif // $couleur-liens : #f67638; orange vif
$gris-moyen : #7d7d7d; $gris-moyen : #7d7d7d;
$gris-clair : #f2f2f2; $gris-clair : #f2f2f2;
$page-active-clair: #fff99d; $page-active-clair: #fff99d;
$page-active: #ffb284; $page-active: #C84227;
$pagination-active: #FF8A00;
//$fond-footer: #464ba3; bleu-violet //$fond-footer: #464ba3; bleu-violet
//$fond-footer: #4B9886; vert-bleu //$fond-footer: #4B9886; vert-bleu
$fond-footer: #3E8050; $fond-footer: $texte-menu;
//$titres-footer : #4B9886; vert plus clair //$titres-footer : #4B9886; vert plus clair
$titres-footer : #ffb284; $titres-footer : white;
$fond-formulaires: rgba(255,255,255,0.8); $fond-formulaires: rgba(255,255,255,0.8);
$fond-transparent: rgba(255, 255, 255, 0.92); $fond-transparent: rgba(255, 255, 255, 0.92);
$breadcrumb-bg: none; $breadcrumb-bg: none;
$bg-body: url('../images/bg-web.jpg'); $bg-body: url('../images/bg-web.jpg');
$bg-presentation: url('../images/bg-gris-vert2.jpg'); $bg-presentation: url('../images/bg-gris-vert2.jpg');
$bg-texte-presentation: url('../images/bg-encadre-blanc3.jpg'); $bg-texte-presentation: $fond-transparent;
$bg-mis-en-avant: url('../images/fond-une-jaune.jpg'); $bg-mis-en-avant: url('../images/fond-une-jaune.jpg');
$bg-a-la-une: url('../images/bg-web.jpg'); $bg-a-la-une: url('../images/bg-web.jpg');
$bg-nous-contacter: url('../images/Fond-contact-vert.jpg'); $bg-nous-contacter: url('../images/Fond-contact-vert.jpg');
@ -30,4 +32,4 @@ $bg-nous-contacter: url('../images/Fond-contact-vert.jpg');
$bg-diapo : rgba(255,255,255,0.55); $bg-diapo : rgba(255,255,255,0.55);
// $bg-diapo-texte: rgba(0,13,158,0.65); // $bg-diapo-texte: rgba(0,13,158,0.65);
// $bg-diapo-texte: #478E7E; vert-bleu // $bg-diapo-texte: #478E7E; vert-bleu
$bg-diapo-texte: #0c8d5c $bg-diapo-texte: #00ADCB

View file

@ -11570,7 +11570,8 @@ a.text-dark:focus, a.text-dark:hover {
src: url("../fonts/Poppins500i.woff2?#iefix") format("woff2"); src: url("../fonts/Poppins500i.woff2?#iefix") format("woff2");
font-weight: 500; font-weight: 500;
font-style: italic; font-style: italic;
}*/ }
@font-face { @font-face {
font-family: 'Cabin'; font-family: 'Cabin';
src: url("../fonts/Cabin400.woff2?#iefix") format("woff2"); src: url("../fonts/Cabin400.woff2?#iefix") format("woff2");
@ -11599,7 +11600,8 @@ a.text-dark:focus, a.text-dark:hover {
font-style: italic; font-style: italic;
} }
/*
@font-face { @font-face {
font-family: 'Bitter'; font-family: 'Bitter';
src: url("../fonts/bitter.woff2?#iefix") format("woff2"); src: url("../fonts/bitter.woff2?#iefix") format("woff2");
@ -11621,6 +11623,20 @@ a.text-dark:focus, a.text-dark:hover {
font-style: normal; font-style: normal;
} }
*/ */
@font-face {
font-family: 'Montserrat';
src: url("../webfonts/montserrat-regular/montserrat-regular.woff2?#iefix") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: 'Montserrat';
src: url("../webfonts/montserrat-bold/montserrat-bold.woff2?#iefix") format("woff2");
font-weight: 700;
font-style: normal;
}
/* ------------------------------------------ /* ------------------------------------------
/* Habillage des formulaires SPIP /* Habillage des formulaires SPIP
/* ------------------------------------------ */ /* ------------------------------------------ */
@ -11911,7 +11927,7 @@ textarea[name="texte"] {
.bordure-top { .bordure-top {
padding-top: 1.5rem; padding-top: 1.5rem;
border-top: solid 1px #dd7f51; border-top: solid 1px #C84227;
} }
.loading > * { .loading > * {
@ -11920,8 +11936,7 @@ textarea[name="texte"] {
/* polices */ /* polices */
* { * {
font-family: 'Cabin', sans-serif; font-family: 'Montserrat', sans-serif;
font-size: 1.1rem;
} }
i.fas { i.fas {
@ -11932,13 +11947,37 @@ i.fas {
h1, .h1, h2, .h2, h3, .h3, h4, .h4, legend, h1, .h1, h2, .h2, h3, .h3, h4, .h4, legend,
.h1-like, .h2-like, .h3-like, .h4-like { .h1-like, .h2-like, .h3-like, .h4-like {
font-family: 'Cabin', sans-serif; font-family: 'Montserrat', sans-serif;
}
h1, .h1 {
font-size: 2rem;
}
h2, .h2 {
font-size: 1.75rem;
}
h3, .h3 {
font-size: 1.5rem;
}
h4, .h4 {
font-size: 1.25rem;
}
h5, .h5 {
font-size: 1.15rem;
}
h6, .h6 {
font-size: 1.05rem;
} }
/* liens */ /* liens */
a, a:hover { a, a:hover {
text-decoration: none; text-decoration: none;
color: #dd7f51; color: #C84227;
} }
/* images */ /* images */
@ -11967,14 +12006,14 @@ img {
} }
.pagination strong, .pagination .lien_pagination { .pagination strong, .pagination .lien_pagination {
background-color: #3E8050; background-color: #00ADCB;
padding: 0.5rem 1rem; padding: 0.5rem 1rem;
border-radius: 0.2rem; border-radius: 0.2rem;
} }
.pagination strong { .pagination strong {
cursor: initial; cursor: initial;
color: #ffb284; color: #FF8A00;
} }
.pagination .lien_pagination { .pagination .lien_pagination {
@ -12005,31 +12044,36 @@ body {
/**********************************************************************/ /**********************************************************************/
#menu-principal { #menu-principal {
padding: 1rem 2rem; padding: 1rem 2rem;
background-color: #087f52; background-color: white;
-webkit-transition: all 1s; -webkit-transition: all 1s;
transition: all 1s; transition: all 1s;
} }
#menu-principal .nav-item:hover {
background: rgba(255, 255, 255, 0.2);
}
#menu-principal .nav-link { #menu-principal .nav-link {
padding: 0.3rem 0; padding: 0.3rem 0;
font-size: 1.2rem; font-size: 1.2rem;
} }
#menu-principal .nav-link, #menu-principal .dropdown-item { #menu-principal .nav-link, #menu-principal .dropdown-item {
color: #f8f9fa; color: #00ADCB;
font-weight: 500; font-weight: 400;
font-family: 'Cabin', sans-serif; font-family: 'Montserrat', sans-serif;
text-align: center; text-align: center;
-webkit-transition: height 1s ease; -webkit-transition: height 1s ease;
transition: height 1s ease; transition: height 1s ease;
} }
#menu-principal .dropdown-item {
font-size: 1.1rem;
white-space: normal;
}
#menu-principal .dropdown i.fas {
padding-bottom: 0.1rem;
}
#menu-principal .navbar-brand { #menu-principal .navbar-brand {
width: 200px; width: 150px;
-webkit-transition: all 1s ease; -webkit-transition: all 1s ease;
transition: all 1s ease; transition: all 1s ease;
} }
@ -12039,8 +12083,14 @@ body {
transition: all 1s ease; transition: all 1s ease;
} }
@media (min-width: 576px) {
#menu-principal .navbar-brand {
width: 220px;
}
}
#menu-principal .active a.nav-link { #menu-principal .active a.nav-link {
color: #ffb284; color: #C84227;
} }
#menu-principal .navbar-toggler { #menu-principal .navbar-toggler {
@ -12049,7 +12099,7 @@ body {
#menu-principal .fa-bars { #menu-principal .fa-bars {
font-size: 1.8rem; font-size: 1.8rem;
color: #f8f9fa; color: #C84227;
} }
#menu-principal.reduit .navbar-brand { #menu-principal.reduit .navbar-brand {
@ -12057,14 +12107,16 @@ body {
} }
#menu-principal .dropdown-menu { #menu-principal .dropdown-menu {
background: #399975; font-size: 1.2rem;
background: #f2f2f2;
color: #00ADCB;
border-radius: 0 0 0.2rem 0.2rem; border-radius: 0 0 0.2rem 0.2rem;
border: none; border: none;
} }
#menu-principal .dropdown-item:focus, #menu-principal .dropdown-item:hover { #menu-principal .dropdown-item:focus, #menu-principal .dropdown-item:hover, #menu-principal .nav-link:hover {
background: rgba(255, 255, 255, 0.2); background: rgba(255, 255, 255, 0.2);
color: white; color: #C84227;
} }
@media (min-width: 1200px) { @media (min-width: 1200px) {
@ -12092,12 +12144,19 @@ body {
} }
#menu-principal .dropdown-menu { #menu-principal .dropdown-menu {
margin-top: 0; margin-top: 0;
background: white;
} }
#menu-principal .dropdown-item { #menu-principal .dropdown-item {
text-align: left; text-align: left;
font-size: 1.2rem;
white-space: nowrap;
} }
} }
#liste-deroulante {
width: 100%;
}
#liste-deroulante ul { #liste-deroulante ul {
list-style-type: none; list-style-type: none;
} }
@ -12151,7 +12210,7 @@ body {
#texte-presentation .contenu { #texte-presentation .contenu {
align-self: center; align-self: center;
padding: 1.5rem; padding: 1.5rem;
background: url("../images/bg-encadre-blanc3.jpg"); background: rgba(255, 255, 255, 0.92);
background-size: cover; background-size: cover;
background-repeat: no-repeat; background-repeat: no-repeat;
border-radius: 0.2rem; border-radius: 0.2rem;
@ -12187,7 +12246,14 @@ body {
} }
.a-la-une { .a-la-une {
color: #0c8d5c; color: #00ADCB;
}
#barre-recherche input {
vertical-align: middle;
padding: 0.375rem 0.75rem;
border-radius: 0.2rem;
border: solid 1px lightgrey;
} }
#agenda, .dernieres-nouvelles { #agenda, .dernieres-nouvelles {
@ -12204,7 +12270,7 @@ body {
#agenda .h3, .dernieres-nouvelles .h3 { #agenda .h3, .dernieres-nouvelles .h3 {
font-weight: 700; font-weight: 700;
margin: 1.5rem; margin: 1.5rem;
color: #0c8d5c; color: #00ADCB;
} }
#agenda .h5, .dernieres-nouvelles .h5 { #agenda .h5, .dernieres-nouvelles .h5 {
@ -12214,7 +12280,6 @@ body {
.dernieres-nouvelles { .dernieres-nouvelles {
text-align: left; text-align: left;
padding: 0 1.2rem; padding: 0 1.2rem;
border-left: solid 1px #dd7f51;
} }
.agenda-evenement { .agenda-evenement {
@ -12281,7 +12346,7 @@ body {
} }
.bloc-ville:hover div { .bloc-ville:hover div {
color: #dd7f51; color: #C84227;
} }
#nous-contacter { #nous-contacter {
@ -12349,7 +12414,7 @@ body {
} }
.diapo-texte { .diapo-texte {
background-color: #0c8d5c; background-color: #00ADCB;
padding: 2rem; padding: 2rem;
align-self: center; align-self: center;
width: 70%; width: 70%;
@ -12357,7 +12422,7 @@ body {
} }
.diapo-bouton { .diapo-bouton {
background-color: #0c8d5c; background-color: #00ADCB;
border: solid 2px white; border: solid 2px white;
border-radius: 0.2rem; border-radius: 0.2rem;
padding: 0.5rem 2rem; padding: 0.5rem 2rem;
@ -12403,7 +12468,7 @@ body {
/***************************** FOOTER *********************************/ /***************************** FOOTER *********************************/
/**********************************************************************/ /**********************************************************************/
#footer-infos { #footer-infos {
background: #3E8050; background: #00ADCB;
padding: 3rem 0; padding: 3rem 0;
} }
@ -12419,7 +12484,7 @@ body {
} }
.footer h4 { .footer h4 {
color: #ffb284; color: white;
font-weight: 600; font-weight: 600;
} }
@ -12429,7 +12494,7 @@ body {
} }
.footer .footer-options { .footer .footer-options {
background: #3E8050; background: #00ADCB;
padding: 0 0 2rem 0; padding: 0 0 2rem 0;
} }
@ -12517,57 +12582,40 @@ body {
} }
.footer .pages-footer li:hover a { .footer .pages-footer li:hover a {
color: #ffb284; color: white;
}
.page_sommaire .footer-options, .page_sommaire #footer-infos {
background: #FFF0C7;
color: black !important;
}
.page_sommaire .footer-options h4, .page_sommaire #footer-infos h4 {
color: #3E8050;
}
.page_sommaire .footer-options a, .page_sommaire .footer-options .grille a, .page_sommaire #footer-infos a, .page_sommaire #footer-infos .grille a {
color: black;
}
.page_sommaire .footer-options .pages-footer li:hover a, .page_sommaire #footer-infos .pages-footer li:hover a {
color: #595959;
} }
/**********************************************************************/ /**********************************************************************/
/************************ PAGE ASSOCIATION ****************************/ /************************ PAGE STATIQUE ****************************/
/**********************************************************************/ /**********************************************************************/
#menu-association, #menu-methode, #menu-groupes, #menu-medias, #menu-espace_membre { #menu-agora, #menu-methode, #menu-groupes, #menu-medias, #menu-espace_membre {
background: #dd7f51; background: #C84227;
margin: 1rem 0; margin: 1rem 0;
border-radius: 0.2rem; border-radius: 0.2rem;
padding: 0; padding: 0;
} }
#menu-association .active a, #menu-methode .active a, #menu-groupes .active a, #menu-medias .active a, #menu-espace_membre .active a { #menu-agora .active a, #menu-methode .active a, #menu-groupes .active a, #menu-medias .active a, #menu-espace_membre .active a {
color: #fff99d; color: #fff99d;
} }
#menu-association ul, #menu-methode ul, #menu-groupes ul, #menu-medias ul, #menu-espace_membre ul { #menu-agora ul, #menu-methode ul, #menu-groupes ul, #menu-medias ul, #menu-espace_membre ul {
width: 100%; width: 100%;
} }
#menu-association li, #menu-methode li, #menu-groupes li, #menu-medias li, #menu-espace_membre li { #menu-agora li, #menu-methode li, #menu-groupes li, #menu-medias li, #menu-espace_membre li {
padding: 0.5rem; padding: 0.5rem;
} }
#menu-association li a, #menu-methode li a, #menu-groupes li a, #menu-medias li a, #menu-espace_membre li a { #menu-agora li a, #menu-methode li a, #menu-groupes li a, #menu-medias li a, #menu-espace_membre li a {
color: white; color: white;
} }
#menu-association li:not(:last-of-type), #menu-methode li:not(:last-of-type), #menu-groupes li:not(:last-of-type), #menu-medias li:not(:last-of-type), #menu-espace_membre li:not(:last-of-type) { #menu-agora li:not(:last-of-type), #menu-methode li:not(:last-of-type), #menu-groupes li:not(:last-of-type), #menu-medias li:not(:last-of-type), #menu-espace_membre li:not(:last-of-type) {
border-bottom: solid 1px #f8f9fa; border-bottom: solid 1px #f8f9fa;
} }
#menu-association .navbar-toggler, #menu-methode .navbar-toggler, #menu-groupes .navbar-toggler, #menu-medias .navbar-toggler, #menu-espace_membre .navbar-toggler { #menu-agora .navbar-toggler, #menu-methode .navbar-toggler, #menu-groupes .navbar-toggler, #menu-medias .navbar-toggler, #menu-espace_membre .navbar-toggler {
border: none; border: none;
color: white; color: white;
width: 100%; width: 100%;
@ -12589,7 +12637,7 @@ body {
} }
@media (min-width: 992px) { @media (min-width: 992px) {
#menu-groupes li:not(:last-of-type), #menu-medias li:not(:last-of-type), #menu-espace_membre li:not(:last-of-type) { #menu-groupes li:not(:last-of-type), #menu-agora li:not(:last-of-type), #menu-medias li:not(:last-of-type), #menu-espace_membre li:not(:last-of-type) {
border: none; border: none;
} }
} }
@ -12636,8 +12684,14 @@ body {
.articles-groupe { .articles-groupe {
display: inline-block; display: inline-block;
padding: 1rem; padding: 1rem;
background: #dd7f51; background: #f2f2f2;
border-radius: 0.5rem 0.5rem 0 0; border-radius: 0.5rem 0.5rem 0 0;
color: #595959;
}
.btn.bouton-rediger {
margin: 0;
background: #00ADCB;
color: white; color: white;
} }
@ -12649,7 +12703,6 @@ body {
} }
.formulaire_spip .boutons .btn, .boutons .btn { .formulaire_spip .boutons .btn, .boutons .btn {
font-size: 1.2rem;
line-height: 1rem; line-height: 1rem;
padding: 1rem; padding: 1rem;
border: solid 1px #f8f9fa; border: solid 1px #f8f9fa;
@ -12684,7 +12737,7 @@ body {
} }
.formulaire_spip .boutons .submit, .formulaire_spip .boutons .btn_editer, .boutons .submit, .boutons .btn_editer { .formulaire_spip .boutons .submit, .formulaire_spip .boutons .btn_editer, .boutons .submit, .boutons .btn_editer {
background-color: #3E8050; background-color: #00ADCB;
color: #f8f9fa; color: #f8f9fa;
padding: 1rem; padding: 1rem;
line-height: 1rem; line-height: 1rem;
@ -12701,14 +12754,20 @@ body {
} }
.btn.bouton-login { .btn.bouton-login {
background: #dd7f51; background: rgba(255, 255, 255, 0.92);
border-radius: 0.2rem; border-radius: 0.2rem;
color: #333 !important; color: black;
} }
.btn.bouton-login:hover { .btn.bouton-login:hover {
color: black; color: white;
background-color: #ffb284; background-color: #C84227;
}
#menu-principal .btn.bouton-login {
background: #00ADCB;
font-size: 1.1rem;
color: white;
} }
.bouton-toggle { .bouton-toggle {
@ -12908,6 +12967,10 @@ body {
text-align: center; text-align: center;
} }
.cellule-tableau .btn {
padding: 0 0.75rem;
}
/**********************************************************************/ /**********************************************************************/
/****************************** FORUM *********************************/ /****************************** FORUM *********************************/
/**********************************************************************/ /**********************************************************************/
@ -12961,7 +13024,7 @@ body {
} }
#page-contact .formulaire_nous_contacter input.submit { #page-contact .formulaire_nous_contacter input.submit {
background-color: #3E8050; background-color: #00ADCB;
color: #f8f9fa; color: #f8f9fa;
padding: 1rem; padding: 1rem;
line-height: 1rem; line-height: 1rem;

View file

@ -0,0 +1,12 @@
[(#SESSION{id_auteur}|oui)
[(#ENV{id_article}|oui)
[(#AUTORISER{modifier, article, #ENV{id_article}}|?{
<div class="ajax">
[(#FORMULAIRE_EDITER_GROUPE{#ENV{id_article},#URL_PAGE{gerer_auteurs}})]<br>
</div>
,
<div class="reponse_formulaire reponse_formulaire_erreur">Votre compte ne fait pas partie des auteurs autorisés à modifier cet article.</div>
})]
]
]

View file

@ -59,11 +59,6 @@
<i class="fas fa-users"></i> Gérer les membres <i class="fas fa-users"></i> Gérer les membres
</a> </a>
</li> </li>
<li class="separ">
<a class="btn bouton-footer" href="https://docs.google.com/document/d/1rkWzO24syOPHp3q0rox26b66b8bIJzGQi_BKTAowsWM/edit#" title="Mode d'emploi du site" target="_blank">
<i class="fas fa-info-circle"></i> Mode d'emploi du site
</a>
</li>
<?php <?php
} }
?> ?>
@ -97,6 +92,11 @@
if (!isset($GLOBALS['visiteur_session']['id_auteur'])) { if (!isset($GLOBALS['visiteur_session']['id_auteur'])) {
?> ?>
<ul class="nav a-droite"> <ul class="nav a-droite">
<li class="separ">
<a class="btn bouton-login" href="[(#URL_PAGE{espace_membre})]" rel="nofollow" title="Connexion">
<i class="fas fa-user"></i> Espace membre
</a>
</li>
<?php <?php
} }
?> ?>

View file

@ -83,10 +83,10 @@
<fieldset> <fieldset>
<legend><i class="fas fa-users"></i> Destinataire du formulaire de contact</legend> <legend><i class="fas fa-users"></i> Destinataire du formulaire de contact</legend>
<select id="id_contact" name="id_contact" class="chosen"> <select id="id_contact" name="Tid_destinataires[]" class="chosen" multiple>
<option value="">&nbsp;</option> <option value="">&nbsp;</option>
<BOUCLE_auteurs(AUTEURS){tous}{par nom}> <BOUCLE_auteurs(AUTEURS){tous}{par nom}>
<option value="#ID_AUTEUR" [(#ID_AUTEUR|=={#ENV{id_contact}}|oui) selected]>#NOM</option> <option value="#ID_AUTEUR" [(#ENV{Tid_destinataires}|find{#ID_AUTEUR}|oui) selected]>#NOM</option>
</BOUCLE_auteurs> </BOUCLE_auteurs>
</select> </select>
</fieldset> </fieldset>

View file

@ -5,12 +5,15 @@
#ACTION_FORMULAIRE{#ENV{action}} #ACTION_FORMULAIRE{#ENV{action}}
<div class="boutons a-droite"> <div class="boutons a-droite d-block d-sm-flex">
[(#ENV{id_article}|>{0}|oui) [(#ENV{id_article}|>{0}|oui)
[(#INCLURE{fond=inclure/bouton_supprimer,id_article=#ENV{id_article}})] [(#INCLURE{fond=inclure/bouton_supprimer,id_article=#ENV{id_article},groupe=oui})]
] ]
<a class="btn" href="[(#URL_PAGE{groupes}|parametre_url{id_article,#ENV{id_article}}|parametre_url{statut,#ENV{statut}})]"> <a class="btn" href="[(#URL_PAGE{groupes}|parametre_url{id_article,#ENV{id_article}}|parametre_url{statut,#ENV{statut}})]">
<i class="fas fa-search"></i> Voir la page du groupe</a> <i class="fas fa-search"></i> Voir la page du groupe</a>
<button type="submit" class="submit btn">
<i class="fas fa-save"></i> Enregistrer</a>
</button>
</div> </div>
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>] [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
@ -19,47 +22,19 @@
<div class="row"> <div class="row">
<div class="col-lg-9"> <div class="col-lg-9">
<fieldset> <fieldset>
<div class="pays">
<label for="id_rubrique">Pays</label>
<select id="id_rubrique" name="id_rubrique" class="chosen">
<option value="">&nbsp;</option>
<BOUCLE_pays(RUBRIQUES){id_parent = #CONFIG{balint/id_rub_groupes}}{tout}{par titre}>
<option value="#ID_RUBRIQUE" [(#ID_RUBRIQUE|=={#RUBRIQUE_SELECTED}|oui) selected="selected"]>#TITRE</option>
</BOUCLE_pays>
</select>
</div>
[(#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>
<input class="text" type="text" name="surtitre" value="#ENV{surtitre}">
</div>
<div class="titre"> <div class="titre">
<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 regulier [(#ENV{ponctuel}|=={on}) hide]"> <div class="soustitre regulier [(#ENV{ponctuel}|=={on}) hide]">
<label for="soustitre">Adresse des réunions</label> <label for="soustitre">Lien de la page Action populaire <i>"https://actionpopulaire.fr/groupes/..."</i></label>
<input class="text" type="text" name="soustitre" value="#ENV{soustitre}"> <input class="text" type="text" name="soustitre" value="#ENV{soustitre}">
</div> </div>
[(#REM) Pas utilisé par FI05
<div class="dates regulier [(#ENV{ponctuel}|=={on}) hide]"> <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="editer 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>
@ -130,24 +105,29 @@
<div class="col-lg-3"> <div class="col-lg-3">
[(#SET{T_id_auteurs, #ENV{T_id_auteurs}|sinon{#ARRAY}})] [(#SET{T_id_auteurs, #ENV{T_id_auteurs}|sinon{#ARRAY}})]
[(#SET{T_id_admins, #ENV{T_id_admins}|sinon{#ARRAY}})]
<fieldset> <fieldset>
<legend><i class="fas fa-users"></i> Responsables</legend> <legend><i class="fas fa-users"></i> Membres</legend>
<label for="auteurs">Animateurs du groupe</label> <label for="auteurs">Membres du groupe</label>
<select id="auteurs" name="Tauteurs[]" class="chosen" multiple> <select id="auteurs" name="Tauteurs[]" class="chosen" multiple>
<option value="">&nbsp;</option> <option value="">&nbsp;</option>
<BOUCLE_auteurs(AUTEURS){tous}{par nom}{webmestre != oui}> <BOUCLE_auteurs(AUTEURS){tous}{statut IN '0minirezo','1comite'}{par nom}>
<option value="#ID_AUTEUR" [(#ID_AUTEUR|in_array{#GET{T_id_auteurs}}|oui) selected]>#NOM</option> <option value="#ID_AUTEUR" [(#ID_AUTEUR|in_array{#GET{T_id_auteurs}}|oui) selected]>#NOM</option>
</BOUCLE_auteurs> </BOUCLE_auteurs>
</select> </select>
</fieldset> </fieldset>
<div class="boutons text-center"> <fieldset>
<button type="submit" class="submit btn"> <legend><i class="fas fa-star"></i> Admins</legend>
<i class="fas fa-save"></i> Enregistrer</a> <label for="admins">Animateurs du groupe</label>
</button> <select id="admins" name="Tadmins[]" class="chosen" multiple>
</div> <option value="">&nbsp;</option>
<BOUCLE_admins(AUTEURS){tous}{statut IN '0minirezo','1comite'}{par nom}{id_auteur in #GET{T_id_auteurs}}>
<option value="#ID_AUTEUR" [(#ID_AUTEUR|in_array{#GET{T_id_admins}}|oui) selected]>#NOM</option>
</BOUCLE_admins>
</select>
</fieldset>
</div> </div>
</div> </div>
</form> </form>

View file

@ -12,20 +12,16 @@ function formulaires_editer_groupe_charger_dist($id_article=0, $redirect=''){
// Pour récupérer les champs renseignés en cas d'erreur // Pour récupérer les champs renseignés en cas d'erreur
$id_rubrique = intval(_request('id_rubrique'));
$titre = _request('titre'); $titre = _request('titre');
$texte = _request('texte'); $texte = _request('texte');
$soustitre = _request('soustitre'); $soustitre = _request('soustitre');
$surtitre = _request('surtitre');
$descriptif = _request('descriptif'); $descriptif = _request('descriptif');
$valeurs = array(); $valeurs = array();
$valeurs['titre'] = $titre; $valeurs['titre'] = $titre;
$valeurs['texte'] = $texte; $valeurs['texte'] = $texte;
$valeurs['soustitre'] = $soustitre; $valeurs['soustitre'] = $soustitre;
$valeurs['rubrique_selected'] = $id_rubrique;
$valeurs['descriptif'] = $descriptif; $valeurs['descriptif'] = $descriptif;
$valeurs['surtitre'] = $surtitre;
$valeurs['statut'] = $statut; $valeurs['statut'] = $statut;
if (intval($id_article)) { if (intval($id_article)) {
@ -36,27 +32,30 @@ function formulaires_editer_groupe_charger_dist($id_article=0, $redirect=''){
$valeurs = sql_fetsel('*', 'spip_articles', 'id_article='.intval($id_article)); $valeurs = sql_fetsel('*', 'spip_articles', 'id_article='.intval($id_article));
$where = array( // Liste des membres
$where1 = array(
'id_objet='.intval($id_article),
'objet="article"'
);
$res1 = sql_allfetsel('id_auteur','spip_auteurs_liens',$where1);
$valeurs['T_id_auteurs'] = array_column($res1,'id_auteur');
// Liste des admins
$where2 = array(
'id_objet='.intval($id_article), 'id_objet='.intval($id_article),
'objet="article"', 'objet="article"',
'role="admin"'
); );
$res = sql_allfetsel('id_auteur','spip_auteurs_liens',$where); $res2 = sql_allfetsel('id_auteur','spip_auteurs_liens',$where2);
$valeurs['T_id_admins'] = array_column($res2,'id_auteur');
$valeurs['T_id_auteurs'] = array_column($res,'id_auteur');
$valeurs['rubrique_selected'] = sql_getfetsel('id_rubrique','spip_articles','id_article='. $id_article);
} }
else { else {
$valeurs['T_id_auteurs'] = array(); $valeurs['T_id_auteurs'] = array();
$valeurs['T_id_admins'] = array();
$valeurs['id_article'] = -1 * intval(session_get('id_auteur')); $valeurs['id_article'] = -1 * intval(session_get('id_auteur'));
} }
// Sans ville (surtitre), le groupe est ponctuel
if(empty($valeurs['surtitre'])){
$valeurs['ponctuel'] = "on";
}
else{
$valeurs['ponctuel'] = "";
}
$valeurs['_bigup_rechercher_fichiers'] = true; $valeurs['_bigup_rechercher_fichiers'] = true;
return $valeurs; return $valeurs;
} }
@ -76,33 +75,15 @@ function formulaires_editer_groupe_verifier_dist($id_article=0, $redirect=''){
} }
} }
if (!lire_config('balint/id_rub_groupes')){
if (_request('ponctuel')!="on"){ $erreurs['message_erreur'] = "Problème de configuration du site : veuillez renseigner la rubrique dédiée aux groupes dans les paramètres du plugin.";
// il faut au minimum titre (nom), surtitre (ville) et id_rubrique (pays) pour créer un article pour les groupes réguliers
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
$id_rubrique = intval(_request('id_rubrique'));
$id_secteur = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique='.$id_rubrique);
if ($id_secteur != lire_config('balint/id_rub_groupes')) {
$erreurs['message_erreur'] = "La rubrique choisie comme pays ne correspond au secteur défini pour les groupes dans les options de configuration.";
return $erreurs; return $erreurs;
} }
// On évite les erreurs dues à des caractères spéciaux dans le surtitre (ville)
if (preg_match('/[?!:]/', _request('surtitre'))){ // il faut au minimum titre (nom) pour créer un article
$erreurs['message_erreur'] = "La ville ne doit pas comprendre de signes de ponctuation comme ? ! ou :"; if (_request('titre') == ''){
$erreurs['message_erreur'] = "Il faut obligatoirement un nom pour créer un groupe régulier.";
return $erreurs; return $erreurs;
} }
@ -114,10 +95,14 @@ function formulaires_editer_groupe_verifier_dist($id_article=0, $redirect=''){
} }
function formulaires_editer_groupe_traiter_dist($id_article=0, $redirect=''){ function formulaires_editer_groupe_traiter_dist($id_article=0, $redirect=''){
refuser_traiter_formulaire_ajax();
$new = $id_article; $new = $id_article;
if (!intval($id_article)) { if (!intval($id_article)) {
$id_rubrique = intval(_request('id_rubrique')); $id_rubrique = lire_config('balint/id_rub_groupes');
include_spip('action/editer_article'); include_spip('action/editer_article');
$set = array( $set = array(
'statut' => 'publie' 'statut' => 'publie'
@ -133,18 +118,12 @@ 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'); $titre=_request('titre');
$soustitre=_request('soustitre'); $soustitre=_request('soustitre');
$texte=_request('texte'); $texte=_request('texte');
$descriptif=_request('descriptif'); $descriptif=_request('descriptif');
if (_request('ponctuel')=="on"){
$surtitre="";
$soustitre="";
$descriptif="";
}
// maj de l'article // maj de l'article
$set = array( $set = array(
'titre' => $titre, 'titre' => $titre,
@ -153,30 +132,24 @@ function formulaires_editer_groupe_traiter_dist($id_article=0, $redirect=''){
// On affiche le plus récent en premier => on garde la date de mise à jour // 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, 'descriptif' => $descriptif,
'surtitre' => $surtitre // 'surtitre' => $surtitre
// 'champ_1' => _request('champ_1'), // 'champ_1' => _request('champ_1'),
// 'champ_2' => _request('champ_2'), // 'champ_2' => _request('champ_2'),
// 'chapo' => _request('chapo'), // 'chapo' => _request('chapo'),
); );
sql_updateq('spip_articles',$set,'id_article='.intval($id_article)); sql_updateq('spip_articles',$set,'id_article='.intval($id_article));
// maj rubrique si besoin
$id_rubrique = intval(_request('id_rubrique'));
$id_rub = sql_getfetsel('id_rubrique', 'spip_articles', 'id_article='.$id_article);
if ($id_rub != $id_rubrique) {
include_spip('action/editer_article');
article_instituer($id_article, array('id_parent' => $id_rubrique));
}
// maj association article -> auteurs // maj association article -> auteurs
include_spip('action/editer_liens'); include_spip('action/editer_liens');
$where = array( $where = array(
'id_objet='.intval($id_article), 'id_objet='.intval($id_article),
'objet="article"', 'objet="article"'
); );
$ids_auteurs = sql_allfetsel('id_auteur', 'spip_auteurs_liens', $where); $ids_auteurs = sql_allfetsel('id_auteur', 'spip_auteurs_liens', $where);
$ids_auteurs = array_column($ids_auteurs, 'id_auteur'); $ids_auteurs = array_column($ids_auteurs, 'id_auteur');
$Tauteurs = _request('Tauteurs'); $Tauteurs = _request('Tauteurs');
$Tadmins = _request('Tadmins');
if (count($Tauteurs)) { if (count($Tauteurs)) {
$associer = array_diff($Tauteurs, $ids_auteurs); $associer = array_diff($Tauteurs, $ids_auteurs);
@ -185,6 +158,24 @@ function formulaires_editer_groupe_traiter_dist($id_article=0, $redirect=''){
objet_associer( array('auteur' => $associer),array('article' => intval($id_article) )); objet_associer( array('auteur' => $associer),array('article' => intval($id_article) ));
objet_dissocier( array('auteur' => $dissocier) , array('article' =>intval($id_article) )); objet_dissocier( array('auteur' => $dissocier) , array('article' =>intval($id_article) ));
} }
else{
sql_delete('spip_auteurs_liens', $where);
}
if (count($Tadmins)) {
$liste_admins = implode(',' , $Tadmins);
$where2 = array(
'id_objet='.intval($id_article),
'objet="article"',
'id_auteur IN (' . $liste_admins . ')'
);
sql_updateq('spip_auteurs_liens', array('role' => ''), $where);
sql_updateq('spip_auteurs_liens', array('role' => 'admin'), $where2);
}
else{
sql_updateq('spip_auteurs_liens', array('role' => ''), $where);
}
// maj des mots fermes // maj des mots fermes
$T_id_groupe = sql_allfetsel('id_groupe','spip_groupes_mots','grigri!="tags"'); $T_id_groupe = sql_allfetsel('id_groupe','spip_groupes_mots','grigri!="tags"');
@ -278,14 +269,15 @@ function formulaires_editer_groupe_traiter_dist($id_article=0, $redirect=''){
$retour = array(); $retour = array();
$retour['message_ok'] = "Le groupe est bien enregistré."; $retour['message_ok'] = "Le groupe est bien enregistré.";
// Si c'est un groupe ponctuel, on redirige vers le pays, sinon vers la ville // on redirige vers la ville
if (_request('ponctuel')=="on"){ if ($redirect == ""){
$retour['redirect'] = "spip.php?page=groupes&id_rubrique=$id_rubrique"; $retour['redirect'] = "spip.php?page=editer_groupe&id_article=$id_article";
} }
else{ else {
$retour['redirect'] = "spip.php?page=groupes&id_article=$id_article"; $retour['redirect'] = $redirect;
} }
$bigform = charger_fonction('bigform_traiter','inc'); $bigform = charger_fonction('bigform_traiter','inc');
$bigform($id_article, 'article'); $bigform($id_article, 'article');

View file

@ -1,5 +1,5 @@
<link rel="stylesheet" href="[(#CHEMIN{css/tag_editor.css}|compacte|timestamp)]"> <link rel="stylesheet" href="[(#CHEMIN{css/tag_editor.css}|compacte|timestamp)]">
<div class="formulaire_spip formulaire_#FORM ajax"> <div class="ajax formulaire_spip formulaire_#FORM">
<form name="formulaire_#FORM" action="#ENV{action}" method="post" enctype="multipart/form-data"> <form name="formulaire_#FORM" action="#ENV{action}" method="post" enctype="multipart/form-data">
@ -9,7 +9,11 @@
[(#INCLURE{fond=inclure/bouton_supprimer,id_article=#ENV{id_article}})] [(#INCLURE{fond=inclure/bouton_supprimer,id_article=#ENV{id_article}})]
] ]
<a class="btn" href="[(#URL_PAGE{article}|parametre_url{id_article,#ENV{id_article}}|parametre_url{statut,#ENV{statut}})]"> <a class="btn" href="[(#URL_PAGE{article}|parametre_url{id_article,#ENV{id_article}}|parametre_url{statut,#ENV{statut}})]">
<i class="fas fa-search"></i> Voir l'article</a> <i class="fas fa-search"></i> Voir l'article
</a>
<button type="submit" class="submit btn">
<i class="fas fa-save"></i> Enregistrer</a>
</button>
</div> </div>
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>] [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
@ -25,18 +29,14 @@
<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 editer">
<label for="soustitre">Sous-titre</label>
<input class="text" type="text" name="soustitre" value="#ENV{soustitre}">
</div>
<div class="date_agenda editer"> <div class="date_agenda editer">
<label for="date_agenda">Date Agenda</br> <label for="date_agenda">Date Agenda</br>
<small>Elle s'affiche pour les articles dans les emplacement "Agenda" (page Accueil) et "Séminaires".</small> <small>Elle s'affiche uniquement pour les articles de l'emplacement "Agenda".</small>
</label> </label>
<input class="text" type="text" name="date_agenda" value="#ENV{date_agenda}"> <input class="text" type="text" name="date_agenda" value="#ENV{date_agenda}">
</div> </div>
[(#REM)
<div class="descriptif editer"> <div class="descriptif editer">
<label for="descriptif">Résumé</br> <label for="descriptif">Résumé</br>
<small>Texte qui s'affiche dans la vignette d'aperçu de l'article (sous le titre).</br> <small>Texte qui s'affiche dans la vignette d'aperçu de l'article (sous le titre).</br>
@ -45,6 +45,7 @@
</label> </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 editer"> <div class="texte editer">
<label for="texte">Contenu de l'article</br> <label for="texte">Contenu de l'article</br>
@ -94,7 +95,7 @@
<fieldset class="upload_vignette"> <fieldset class="upload_vignette">
<legend><i class="fas fa-paperclip"></i> Images et fichiers</legend> <legend><i class="fas fa-paperclip"></i> Images et fichiers</legend>
<label for=""><small>largeur conseillée: entre 1024 et 2048 pixels</small></label> <label for=""><small>largeur conseillée pour l'image principale : entre 1024 et 2048 pixels</small></label>
<div class="ajax"> <div class="ajax">
<INCLURE{fond=inclure/bigform,env}> <INCLURE{fond=inclure/bigform,env}>
</div> </div>
@ -133,6 +134,7 @@
<option value="publie" [(#ENV{statut,publie}|=={publie}|oui) selected="selected"]>Publié</option> <option value="publie" [(#ENV{statut,publie}|=={publie}|oui) selected="selected"]>Publié</option>
<option value="prepa" [(#ENV{statut}|=={prepa}|oui) selected="selected"]>Brouillon</option> <option value="prepa" [(#ENV{statut}|=={prepa}|oui) selected="selected"]>Brouillon</option>
</select> </select>
[<i class="fa fa-clock-o" aria-hidden="true"></i> Dernier enregistrement :<br> (#MAJ|date_interface)]
</fieldset> </fieldset>
[(#SESSION{statut}|=={0minirezo}|oui) [(#SESSION{statut}|=={0minirezo}|oui)
@ -141,25 +143,20 @@
[(#SESSION{statut}|=={0minirezo}|non) [(#SESSION{statut}|=={0minirezo}|non)
[(#SESSION{id_auteur}|setenv{id_auteur})] [(#SESSION{id_auteur}|setenv{id_auteur})]
] ]
[(#REM) les membres ne peuvent publier que dans l'espace membre + leur groupe, les admins dans toutes les rubriques]
<fieldset> <fieldset>
<legend><i class="fas fa-globe"></i> Groupe</legend> <legend><i class="fas fa-globe"></i> Groupe</legend>
<select id="id_groupe" name="id_groupe" class="chosen"> <select id="id_groupe" name="id_groupe" class="chosen">
<option value="">&nbsp;</option> <option value="">&nbsp;</option>
<BOUCLE_pays(RUBRIQUES){id_parent = #CONFIG{balint/id_rub_groupes}}{tout}> <BOUCLE_villes(ARTICLES){id_rubrique = #CONFIG{balint/id_rub_groupes}}{id_auteur?}>
<optgroup label="#TITRE"> <option value="#ID_ARTICLE" [(#ENV{id_groupe}|=={#ID_ARTICLE}|oui) selected="selected"]>#TITRE</option>
<BOUCLE_villes(ARTICLES){id_rubrique = #ID_RUBRIQUE}{fusion surtitre}{par surtitre}>
<BOUCLE_groupes(ARTICLES){surtitre = #SURTITRE}{0,1}{id_auteur?}>
<option value="#ID_ARTICLE" [(#ENV{id_groupe}|=={#ID_ARTICLE}|oui) selected="selected"]>#SURTITRE</option>
</BOUCLE_groupes>
</BOUCLE_villes> </BOUCLE_villes>
</optgroup>
</BOUCLE_pays>
</select> </select>
</fieldset> </fieldset>
<B_mots_fermes>
<fieldset class="mots_fermes"> <fieldset class="mots_fermes">
<legend><i class="fas fa-thumb-tack"></i> Emplacements</legend> <legend><i class="fas fa-thumb-tack"></i> Emplacements</legend>
<div class=""> <div class="">
@ -167,29 +164,41 @@
[(#UNSEUL|=={oui}|oui) [(#UNSEUL|=={oui}|oui)
<option value="">&nbsp;</option> <option value="">&nbsp;</option>
] ]
<BOUCLE_mots_fermes(GROUPES_MOTS){grigri != tags}{si #SESSION{statut}|=={0minirezo}}> <BOUCLE_agenda(MOTS){par rang}{titre=agenda}>
#SET{selected,''}
<BOUCLE_arts_agenda(ARTICLES){id_article?}{id_mot?}>
[(#ID_MOT|oui) #SET{selected, selected}]
</BOUCLE_arts_agenda>
<optgroup label="Accueil">
<option value="#ID_MOT" #GET{selected}>#TITRE</option>
</optgroup>
</BOUCLE_agenda>
<BOUCLE_mots_admin(GROUPES_MOTS){grigri != tags}{si #SESSION{statut}|=={0minirezo}}{id_groupe!=#CONFIG{balint/id_mots_espace_membre}}>
<optgroup label="#TITRE"> <optgroup label="#TITRE">
<BOUCLE_mot(MOTS){id_groupe}{par rang}> <BOUCLE_mot(MOTS){id_groupe}{par rang}{titre!=agenda}>
#SET{selected,''} #SET{selected,''}
<BOUCLE_arts(ARTICLES){id_article?}{id_mot?}> <BOUCLE_arts(ARTICLES){id_article?}{id_mot?}>
[(#ID_MOT|oui) #SET{selected, selected}] [(#ID_MOT|oui) #SET{selected, selected}]
</BOUCLE_arts> </BOUCLE_arts>
<option value="#ID_MOT" #GET{selected}>#TITRE</option> <option value="#ID_MOT" #GET{selected}>#TITRE</option>
</BOUCLE_mot> </BOUCLE_mot>
</optgroup> </optgroup>
</BOUCLE_mots_fermes> </BOUCLE_mots_admin>
<BOUCLE_mots_redacteur(GROUPES_MOTS){grigri != tags}{id_groupe=#CONFIG{balint/id_mots_espace_membre}}>
<optgroup label="#TITRE">
<BOUCLE_mot2(MOTS){id_groupe}{par rang}>
#SET{selected,''}
<BOUCLE_arts2(ARTICLES){id_article?}{id_mot?}>
[(#ID_MOT|oui) #SET{selected, selected}]
</BOUCLE_arts2>
<option value="#ID_MOT" #GET{selected}>#TITRE</option>
</BOUCLE_mot2>
</optgroup>
</BOUCLE_mots_redacteur>
</select> </select>
</div> </div>
</fieldset> </fieldset>
</B_mots_fermes>
<div class="boutons text-center">
<button type="submit" class="submit btn">
<i class="fas fa-save"></i> Enregistrer</a>
</button>
</div>
</div> </div>
</div> </div>

View file

@ -22,6 +22,7 @@ function formulaires_editer_post_charger_dist($id_article=0, $redirect=''){
$id_groupe = _request('id_groupe'); $id_groupe = _request('id_groupe');
$valeurs = array(); $valeurs = array();
$valeurs['id_article'] = $id_article;
$valeurs['titre'] = $titre; $valeurs['titre'] = $titre;
$valeurs['texte'] = $texte; $valeurs['texte'] = $texte;
$valeurs['soustitre'] = $soustitre; $valeurs['soustitre'] = $soustitre;
@ -102,13 +103,16 @@ function formulaires_editer_post_verifier_dist($id_article=0, $redirect=''){
} }
$bigform = charger_fonction('bigform_verifier','inc'); $bigform = charger_fonction('bigform_verifier','inc');
$options = ['mime' => 'tout_mime','taille_max'=>'5000','largeur_max'=>'2048','hauteur_max'=>'2048']; $options = ['mime' => 'tout_mime','taille_max'=>'5000','largeur_max'=>'3000','hauteur_max'=>'3000'];
$bigform($options,$erreurs); $bigform($options,$erreurs);
return $erreurs; return $erreurs;
} }
function formulaires_editer_post_traiter_dist($id_article = 0, $redirect = ''){ function formulaires_editer_post_traiter_dist($id_article = 0, $redirect = ''){
refuser_traiter_formulaire_ajax();
$new = $id_article; $new = $id_article;
$id_rubrique = lire_config('balint/id_rub_articles'); $id_rubrique = lire_config('balint/id_rub_articles');

View file

@ -23,7 +23,7 @@
<div class='editer saisie_mdp_inscription obligatoire[ (#ENV*{erreurs}|table_valeur{mdp_inscription}|oui)erreur]'> <div class='editer saisie_mdp_inscription obligatoire[ (#ENV*{erreurs}|table_valeur{mdp_inscription}|oui)erreur]'>
<label for="mdp_inscription"><:entree_mot_passe:> <em class="obligatoire"><:info_obligatoire_02:></em></label> <label for="mdp_inscription"><:entree_mot_passe:> <em class="obligatoire"><:info_obligatoire_02:></em></label>
[<span class="erreur_message">(#ENV*{erreurs}|table_valeur{mdp_inscription})</span>] [<span class="erreur_message">(#ENV*{erreurs}|table_valeur{password})</span>]
<input type="password" class="formulaire_input text" name="password" id="password" value="#ENV{password}" [(#HTML5) [(#ENV{focus}|=={password}|oui)autofocus="autofocus" ]required="required"] autocapitalize="off" autocorrect="off" /> <input type="password" class="formulaire_input text" name="password" id="password" value="#ENV{password}" [(#HTML5) [(#ENV{focus}|=={password}|oui)autofocus="autofocus" ]required="required"] autocapitalize="off" autocorrect="off" />
</div> </div>
@ -32,7 +32,7 @@
[<span class="erreur_message">(#ENV*{erreurs}|table_valeur{password_confirmation})</span>] [<span class="erreur_message">(#ENV*{erreurs}|table_valeur{password_confirmation})</span>]
<input type="password" class="formulaire_input text" name="password_confirmation" id="password_confirmation" value="#ENV{password_confirmation}" [(#HTML5) [(#ENV{focus}|=={password_confirmation}|oui)autofocus="autofocus" ]required="required"] autocapitalize="off" autocorrect="off" /> <input type="password" class="formulaire_input text" name="password_confirmation" id="password_confirmation" value="#ENV{password_confirmation}" [(#HTML5) [(#ENV{focus}|=={password_confirmation}|oui)autofocus="autofocus" ]required="required"] autocapitalize="off" autocorrect="off" />
</div> </div>
<small><:info_passe_trop_court_car_pluriel{nb=7}:></small> <small><:motpassecomplexe:info_passe_trop_court{nb=8,nb_min=1,nb_maj=1,nb_int=1}:></small>
[(#REM) Piege a robots spammeurs ] [(#REM) Piege a robots spammeurs ]
<p style="display: none;"> <p style="display: none;">

View file

@ -106,8 +106,9 @@ function formulaires_inscription_verifier_dist($mode = '', $id = 0, $redirect ='
$erreurs['password_confirmation'] = _T('info_passes_identiques'); $erreurs['password_confirmation'] = _T('info_passes_identiques');
} }
if ( strlen(_request('password')) < _PASS_LONGUEUR_MINI ){ if (motpassecomplexe_verifier_pass(_request('password'))){
$erreurs['password'] = _T('info_passe_trop_court_car_pluriel', array('nb' => _PASS_LONGUEUR_MINI));
$erreurs['password'] = motpassecomplexe_verifier_pass(_request('password'));
} }
// Mais si l'un des deux champs n'est pas rempli, cette erreur prend le dessus // Mais si l'un des deux champs n'est pas rempli, cette erreur prend le dessus
@ -145,19 +146,20 @@ function formulaires_inscription_traiter_dist($mode = '', $id = 0, $redirect =''
$nom = _request('nom_inscription'); $nom = _request('nom_inscription');
$mail_complet = _request('mail_inscription'); $mail_complet = _request('mail_inscription');
$password = _request('password'); $password = _request('password');
$mail_destination = sql_getfetsel('email','spip_auteurs',"id_auteur=" . lire_config('balint/id_contact')); $Tmails_destination = sql_allfetsel('email','spip_auteurs', ["statut='0minirezo'", "pgp!='no_notification'"]);
$Tmails_destination = array_column($Tmails_destination,'email');
$inscrire_auteur = charger_fonction('inscrire_auteur', 'action'); $inscrire_auteur = charger_fonction('inscrire_auteur', 'action');
$desc = $inscrire_auteur($mode, $mail_complet, $nom, array('id' => $id)); $desc = $inscrire_auteur($mode, $mail_complet, $nom, array('id' => $id));
// AJOUT GAMUZA - BALINT // AJOUT GAMUZA - BALINT
$msg = "Une personne vient de s'inscrire sur le site de l'AIPB : $msg = "Une personne vient de s'inscrire sur le site : " . $GLOBALS['meta']['nom_site'] . "
Nom : $nom Nom : $nom
Email : $mail_complet Email : $mail_complet
Vous pouvez lui accorder le statut de membre le cas échéant."; Vous pouvez lui accorder le statut de membre le cas échéant.";
$sujet = "Nouvelle inscription sur le site de l'AIPB"; $sujet = "Nouvelle inscription sur le site ".$GLOBALS['meta']['nom_site'];
$notifications = charger_fonction('notifications', 'inc'); $notifications = charger_fonction('notifications', 'inc');
notifications_envoyer_mails($mail_destination, $msg, $sujet); notifications_envoyer_mails($Tmails_destination, $msg, $sujet);
include_spip('action/editer_auteur'); include_spip('action/editer_auteur');

View file

@ -15,7 +15,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
return; return;
} }
function formulaires_nous_contacter_charger_dist($id_auteur) { function formulaires_nous_contacter_charger_dist($Tdestinataires) {
include_spip('inc/texte'); include_spip('inc/texte');
$valeurs = array( $valeurs = array(
'nom_message_auteur' => '', 'nom_message_auteur' => '',
@ -26,14 +26,14 @@ function formulaires_nous_contacter_charger_dist($id_auteur) {
); );
// id du formulaire (pour en avoir plusieurs sur une meme page) // id du formulaire (pour en avoir plusieurs sur une meme page)
$valeurs['id'] = $id_auteur; $valeurs['id'] = intval($Tdestinataires[0]);
// passer l'id_auteur au squelette // passer les id_destinataires au squelette
$valeurs['id_auteur'] = $id_auteur; $valeurs['Tdestinataires'] = $Tdestinataires;
return $valeurs; return $valeurs;
} }
function formulaires_nous_contacter_verifier_dist($id_auteur) { function formulaires_nous_contacter_verifier_dist($Tdestinataires) {
$erreurs = array(); $erreurs = array();
include_spip('inc/filtres'); include_spip('inc/filtres');
@ -66,11 +66,14 @@ function formulaires_nous_contacter_verifier_dist($id_auteur) {
return $erreurs; return $erreurs;
} }
function formulaires_nous_contacter_traiter_dist($id_auteur) { function formulaires_nous_contacter_traiter_dist($Tdestinataires) {
$adres = _request('email_message_auteur'); $adres = _request('email_message_auteur');
$nom = _request('nom_message_auteur'); $nom = _request('nom_message_auteur');
$mail = sql_getfetsel('email','spip_auteurs','id_auteur=' . intval($id_auteur)); $Tmails = array();
foreach ($Tdestinataires as $id_auteur){
$Tmails[] = sql_getfetsel('email','spip_auteurs','id_auteur=' . intval($id_auteur));
}
$sujet = '[' . supprimer_tags(extraire_multi($GLOBALS['meta']['nom_site'])) . '] ' $sujet = '[' . supprimer_tags(extraire_multi($GLOBALS['meta']['nom_site'])) . '] '
. 'Nouveau message de ' . $nom; . 'Nouveau message de ' . $nom;
@ -91,7 +94,7 @@ function formulaires_nous_contacter_traiter_dist($id_auteur) {
), ),
); );
if ($envoyer_mail($mail, $sujet, $corps)) { if ($envoyer_mail($Tmails, $sujet, $corps)) {
$message = _T('form_prop_message_envoye'); $message = _T('form_prop_message_envoye');
return array('message_ok' => $message); return array('message_ok' => $message);

View file

@ -0,0 +1,14 @@
<div class="formulaire_spip formulaire_recherche[ (#ENV{class})]" id="formulaire_recherche">
<form id="barre-recherche" action="[(#ENV{action})]" method="get">
[(#ENV{action}|form_hidden)]
[(#RECHERCHE|oui)
<button class="btn" id="btn_reinit_recherche"><i class="fa fa-times" aria-hidden="true"></i></button>
]
<input type="search" id="recherche" name="recherche" value=#RECHERCHE>
<button type="submit" class="btn" id="btn_rechercher_doc"><i class="fa fa-search" aria-hidden="true"></i></button>
</form>
</div>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 KiB

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

BIN
images/logo-lfi5.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

BIN
img/fede_64.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

View file

@ -1,11 +1,16 @@
<div class="row liste-articles">
<B_a_la_une> <B_a_la_une>
<div class="row liste-articles"> #ANCRE_PAGINATION
#ANCRE_PAGINATION <BOUCLE_a_la_une(ARTICLES){id_rubrique=#CONFIG{balint/id_rub_articles}}{!par date}{pagination 3}{!titre_mot in agenda, dossiers, agora}{recherche?}>
<BOUCLE_a_la_une(ARTICLES){titre_mot=Actualités}{par rang}{pagination 3}> <div class="col-12 col-sm-4 mt-4 mt-lg-0">
<div class="col-lg-4 mt-4 mt-lg-0">
<INCLURE{fond=inclure/bloc_article, env, id_article}/> <INCLURE{fond=inclure/bloc_article, env, id_article}/>
</div> </div>
</BOUCLE_a_la_une> </BOUCLE_a_la_une>
</div>
[<div class="pagination mt-3">(#PAGINATION{page_precedent_suivant})</div>] [<div class="pagination mt-3">(#PAGINATION{page_precedent_suivant})</div>]
</B_a_la_une> </B_a_la_une>
<div class="col-12">
Aucun résultat
</div>
<//B_a_la_une>
</div>

View file

@ -1,14 +1,33 @@
<a href="[(#URL_PAGE{#ENV{type-page}}|parametre_url{rub_forum,#ENV{rub_forum}})]"><i class="fas fa-arrow-circle-left"></i> Retour</a> <?php
include_spip('inc/autoriser');
$id_auteur = $GLOBALS['visiteur_session']['id_auteur'] ?? 0;
if (autoriser('voir','forum', #ID_ARTICLE,$id_auteur, array('groupe'))){
?>
[(#ENV{type-page}|=={groupes}|non)
<a href="[(#URL_PAGE{#ENV{type-page}}|parametre_url{rub_forum,#ENV{rub_forum}})]"><i class="fas fa-arrow-circle-left"></i> Toutes les discussions</a>
]
<BOUCLE_sujet(ARTICLES){id_article=#ENV{id_article}}> <BOUCLE_sujet(ARTICLES){id_article=#ENV{id_article}}>
<div id="sujet-forum" class="sujet-forum"> <div id="sujet-forum" class="sujet-forum">
<h2>Forum - #TITRE</h2> <h2>Forum - #TITRE</h2>
[(#ENV{type-page}|=={groupes}|non)
<div class="infos-sujet mt-2 font-italic">Démarré par #LESAUTEURS le [(#DATE|date_interface)]</div> <div class="infos-sujet mt-2 font-italic">Démarré par #LESAUTEURS le [(#DATE|date_interface)]</div>
<div>[(#TEXTE)]</div> <div>[(#TEXTE)]</div>
<div class="boutons a-droite"> <div class="boutons a-droite">
<INCLURE{fond=inclure/boutons_modifier_sujet, env, id_article=#ID_ARTICLE}/> <INCLURE{fond=inclure/boutons_modifier_sujet, env, id_article=#ID_ARTICLE}/>
</div> </div>
]
[(#ENV{type-page}|=={groupes}|oui)
<?php if (autoriser('modifier','article', #ID_ARTICLE,$id_auteur, array('groupe'))){ ?>
<div class="boutons a-droite">
<INCLURE{fond=inclure/boutons_modifier_sujet, env, id_article=#ID_ARTICLE}/>
</div>
<div>[(#TEXTE)]</div>
<?php } ?>
]
<B_docs> <B_docs>
<div class="liste-documents row mt-3 mb-3"> <div class="liste-documents row mt-3 mb-3">
@ -56,3 +75,8 @@
</BOUCLE_sujet> </BOUCLE_sujet>
<?php } else{ ?>
<div class="mt-3 mb-3">
Vous n'êtes pas membre de ce groupe. Contactez l'administrateur·ice pour obtenir l'accès au forum.
</div>
<?php } ?>

View file

@ -0,0 +1,40 @@
<BOUCLE_sujet(ARTICLES){id_article=#ENV{id_article}}>
<div id="sujet-forum" class="sujet-forum">
<h2>Forum</h2>
<h3>#TITRE</h3>
<a href="[(#URL_PAGE{#ENV{type-page}}|parametre_url{id_article,#ENV{id_article}})]"><i class="fas fa-arrow-circle-left"></i> Retour au dossier</a>
</div>
<BOUCLE_reponses(FORUMS){id_article}{tout}>
<div class="sujet-forum row">
<div class="avatar col-1">
<INCLURE{fond=inclure/avatar_auteur,env,id_auteur=#ID_AUTEUR,taille=mini}>
</div>
<div class="col-11">
<a class="titre-sujet" href="[(#URL_PAGE{auteur}|parametre_url{id_auteur,#ID_AUTEUR})]">#AUTEUR</a>
<div class="infos-sujet font-italic">[(#DATE|date_interface)]</div>
<strong>#TITRE</strong>
<div class="texte-reponse">#TEXTE</div>
<B_docs2>
<div class="row mt-2">
<BOUCLE_docs2(DOCUMENTS){id_forum}{extension==jpg|png|gif|pdf}>
<div class="col">
<a href="#FICHIER">
[(#LOGO_DOCUMENT|image_reduire{0,75})]
[<div class="#EDIT{titre}">(#TITRE|sinon{#FICHIER|basename})</div>]
</a>
</div>
</BOUCLE_docs2>
</div>
</B_docs2>
</div>
</div>
</BOUCLE_reponses>
<div class="cadre-gris">
<div class="h2">Répondre</div>
#FORMULAIRE_FORUM{#SELF}
</div>
</BOUCLE_sujet>

View file

@ -0,0 +1,28 @@
<BOUCLE_contenu(ARTICLES){id_article=#ENV{id_article}}>
<h2 class="#EDIT{titre}">#TITRE</h2>
<?php if (isset($GLOBALS['visiteur_session']['statut']) AND $GLOBALS['visiteur_session']['statut'] == '0minirezo') { ?>
<div class="boutons a-droite">
<a href="[(#URL_PAGE{editer_article}|parametre_url{id_article,#ENV{id_article}})]" class="btn">Éditer</a>
</div>
<?php } ?>
<div class="#EDIT{texte}">#TEXTE</div>
</BOUCLE_contenu>
[(#REM) On affiche les documents à la fin]
<div class="h4 mt-4">Documents utiles</div>
<div class="row">
<BOUCLE_fichiers(DOCUMENTS){id_article=#ID_ARTICLE}{extension==pdf|doc|docx|odt|xls|xlsx|jpg|jpeg|png|gif|bmp}{tout}>
<div class="col-6 col-md-3 fichier text-center">
<a href="#FICHIER" [(#EXTENSION|in_array{#LISTE{jpg,jpeg,png,gif,bmp}}|oui) class="mediabox" rel='galerie_#ENV{nom}']>
[(#LOGO_DOCUMENT|image_reduire{0,120})]
</a>
[<div class="#EDIT{titre}">(#TITRE)</div>]
</div>
</BOUCLE_fichiers>
<div class="col-6 col-md-3 fichier text-center">
Pas de document
</div>
<//B_fichiers>
</div>

View file

@ -10,16 +10,22 @@
<h4 class="#EDIT{titre}">#TITRE</h4> <h4 class="#EDIT{titre}">#TITRE</h4>
</a> </a>
<div class="infos-article"> <div class="infos-article">
[(#REM) Ancienne méthode : pour un événement on affiche Date_Agenda, pour un article la date de publication [(#REM)
[(#REM) pour un événement on affiche Date_Agenda, pour un article la date de publication]
[(#ENV{evenement}|=={oui}?{ [(#ENV{evenement}|=={oui}?{
[<strong class="h5 #EDIT{date_agenda}">(#DATE_AGENDA)</strong>], [<strong class="h5 #EDIT{date_agenda}">(#DATE_AGENDA)</strong>],
[<span class="#EDIT{date}">(#DATE|affdate)</span>] [<span class="#EDIT{date}">(#DATE|affdate)</span>]
})] })]
] ]
[<strong class="h5 #EDIT{date_agenda}">(#DATE_AGENDA)</strong>] [<span class="#EDIT{date}">(#DATE|affdate)</span>]
[(#ID_GROUPE|oui)<div><a href="[(#URL_PAGE{groupes}|parametre_url{id_article,#ID_GROUPE})]" title="Voir le groupe">
par #INFO_TITRE{article,#ID_GROUPE}
</a></div>
]
</div> </div>
[(#REM)
[<div class="resume-article #EDIT{descriptif}">(#DESCRIPTIF|sinon{#TEXTE|couper{130,'...'}})</div>] [<div class="resume-article #EDIT{descriptif}">(#DESCRIPTIF|sinon{#TEXTE|couper{130,'...'}})</div>]
]
</div> </div>
</div> </div>
</div> </div>

View file

@ -2,24 +2,18 @@
<BOUCLE_art(ARTICLES){id_article = #ENV{id_article}}> <BOUCLE_art(ARTICLES){id_article = #ENV{id_article}}>
<div class="bloc-article bloc-ville"> <div class="bloc-article bloc-ville">
<div class="bloc-contenu"> <div class="bloc-contenu">
<a href="[(#URL_PAGE{groupes}|parametre_url{id_article,#ID_ARTICLE}|parametre_url{id_rubrique,#ENV{id_rubrique}})]" class="ajax nocache"> <a href="[(#URL_PAGE{groupes}|parametre_url{id_article,#ID_ARTICLE})]" class="ajax nocache">
<INCLURE{fond=inclure/photo_article,env,id_article=#ENV{id_article},ajax=recharger_photo,groupe=oui}> <INCLURE{fond=inclure/photo_article,env,id_article=#ENV{id_article},ajax=recharger_photo,groupe=oui}>
</a> </a>
<div class="bloc-textes"> <div class="bloc-textes">
<a href="[(#URL_PAGE{groupes}|parametre_url{id_article,#ID_ARTICLE}|parametre_url{id_rubrique,#ENV{id_rubrique}})]" class="ajax nocache"> <a href="[(#URL_PAGE{groupes}|parametre_url{id_article,#ID_ARTICLE})]" class="ajax nocache">
<h4>#SURTITRE <i class="fas fa-globe"></i></h4> <h4>#TITRE <i class="fas fa-globe"></i></h4>
#SET{nb_articles,0} #SET{nb_articles,0}
<BOUCLE_nb_articles(ARTICLES){id_groupe=#ID_ARTICLE}{id_rubrique=#CONFIG{balint/id_rub_articles}}>
<B_nb_gpes>
<div>[(#TOTAL_BOUCLE|singulier_ou_pluriel{balint:1_groupe, balint:n_groupes})]</div>
<BOUCLE_nb_gpes(ARTICLES){id_rubrique=#ENV{id_rubrique}}{surtitre}>
<BOUCLE_nb_articles(ARTICLES){id_rubrique=#CONFIG{balint/id_rub_articles}}{id_groupe=#ID_ARTICLE}>
[(#SET{nb_articles,#GET{nb_articles}|plus{1}})] [(#SET{nb_articles,#GET{nb_articles}|plus{1}})]
</BOUCLE_nb_articles> </BOUCLE_nb_articles>
</BOUCLE_nb_gpes> <div>[(#GET{nb_articles}|singulier_ou_pluriel{balint:1_article, balint:n_articles})]</div>
<div>[(#GET{nb_articles}|singulier_ou_pluriel{blaint:1_article, balint:n_articles})]</div>
</B_nb_gpes>
</a> </a>
</div> </div>
</div> </div>

View file

@ -1,4 +1,4 @@
<a class="btn btn_supprimer" href="[(#URL_ACTION_AUTEUR{supprimer_article,#ENV{id_article}})]" <a class="btn btn_supprimer" href="[(#URL_ACTION_AUTEUR{supprimer_article,#ENV{id_article}})]"
onclick="if (!confirm('Etes vous certain de vouloir effacer cet article ?')) return false;"> onclick="if (!confirm('Etes vous certain de vouloir effacer [(#ENV{groupe}|oui|?{ce groupe,cet article})] ?')) return false;">
<i class="fas fa-trash"></i> Supprimer <i class="fas fa-trash"></i> Supprimer
</a> </a>

View file

@ -1,7 +1,7 @@
<div class="row liste-articles-encadres"> <div class="row liste-articles-encadres">
[(#REM) On affiche ensuite les groupes réguliers, par ville] [(#REM) On affiche ensuite les groupes]
<BOUCLE_villes(ARTICLES){id_rubrique=#ENV{id_rubrique}}{surtitre!=""}{fusion surtitre}> <BOUCLE_villes(ARTICLES){id_rubrique=#CONFIG{balint/id_rub_groupes}}{par titre}>
<div class="col-sm-6 col-lg-3 mt-4 mt-lg-0"> <div class="col-12 col-sm-6 col-xl-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}>
@ -9,35 +9,3 @@
</BOUCLE_villes> </BOUCLE_villes>
</div> </div>
[(#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="bloc-groupe col mt-4">
[<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>
<BOUCLE_sinon(ARTICLES){id_rubrique=#ENV{id_rubrique}}>
[(#REM) Boucle vide]
</BOUCLE_sinon>
<div class="col">Il n'y a pas encore de groupe dans ce pays.</div>
<//B_sinon>

View file

@ -24,10 +24,15 @@
] ]
<B_articles> <B_articles>
<?php if (isset($GLOBALS['visiteur_session']['statut']) AND in_array($GLOBALS['visiteur_session']['statut'],array("0minirezo","1comite"))) { ?>
<div class="mb-3 text-right">
<a href="[(#URL_PAGE{editer_article})]" class="btn bouton-rediger"><i class="fas fa-pencil"></i> Rédiger un dossier</a>
</div>
<?php } ?>
<div class="row liste-articles"> <div class="row liste-articles">
#ANCRE_PAGINATION #ANCRE_PAGINATION
<BOUCLE_articles(ARTICLES){id_mot=#ENV{id_mot}}{par rang}{inverse #GET{tri}}{par date}{inverse #GET{tri}}{pagination 8}{si #ENV{rub_forum}|non}> <BOUCLE_articles(ARTICLES){id_mot=#ENV{id_mot}}{par rang}{inverse #GET{tri}}{par date}{inverse #GET{tri}}{pagination 8}{si #ENV{rub_forum}|non}>
<div class="col-lg-3 mt-4 mt-lg-3"> <div class="col-md-3 mt-4 mt-lg-3">
<INCLURE{fond=inclure/bloc_article, env, id_article}/> <INCLURE{fond=inclure/bloc_article, env, id_article}/>
</div> </div>
</BOUCLE_articles> </BOUCLE_articles>

View file

@ -1,66 +1,21 @@
[(#REM) On affiche tous les groupes appartenant à la même Ville] [(#REM) On affiche tous les groupes appartenant à la même Ville]
<div class="banniere-ville mb-4">
#SET{ville,#INFO_SURTITRE{article,#ENV{id_article}}} <BOUCLE_banniere(DOCUMENTS){id_article = #ENV{id_article}}{extension==jpg|png|gif}{!par date}{0,1}>
[(#REM) On récupère les id de tous les groupes de la ville pour les actualités et les images]
[(#SET{groupes,#ARRAY})]
<BOUCLE_groupes(ARTICLES){surtitre = #GET{ville}}{id_secteur=#CONFIG{balint/id_rub_groupes}}>
[(#SET{groupes,#GET{groupes}|push{#ID_ARTICLE}})]
</BOUCLE_groupes>
<a href="[(#URL_PAGE{groupes,id_rubrique=#ENV{id_rubrique}})]" class="ajax"><i class="fas fa-arrow-circle-left"></i> Retour</a>
<div class="banniere-ville mt-4 mb-4">
<BOUCLE_banniere(DOCUMENTS){id_article IN #GET{groupes}}{extension==jpg|png|gif}{!par date}{0,1}>
[(#FICHIER|image_recadre{1200:300,-,focus}|image_reduire{1200,300})] [(#FICHIER|image_recadre{1200:300,-,focus}|image_reduire{1200,300})]
</BOUCLE_banniere> </BOUCLE_banniere>
[(#CHEMIN{img/ville.png}|image_recadre{1200:300,-,focus}|image_reduire{1200,300})] [(#CHEMIN{img/ville.png}|image_recadre{1200:300,-,focus}|image_reduire{1200,300})]
<//B_banniere> <//B_banniere>
<div class="ville-titre"> <div class="ville-titre">
[(#GET{groupes}|count|>{1}|oui) <h1>#INFO_TITRE{article,#ENV{id_article}}</h1>
<h2>Groupes de #GET{ville}</h2>
]
[(#GET{groupes}|count|<={1}|oui)
<h2>Groupe de #GET{ville}</h2>
]
</div> </div>
</div> </div>
<BOUCLE_groupe(ARTICLES){surtitre = #GET{ville}}{id_secteur=#CONFIG{balint/id_rub_groupes}}{par rang}>
<div class="bloc-groupe mt-4 mt-lg-0">
[<h3 class="h4">(#TITRE)</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"><strong>Adresse :</strong> (#SOUSTITRE)</div>]
[<div class="texte"><strong>Fréquence :</strong> (#DESCRIPTIF|textebrut)</div>]
<div class="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_groupe>
<B_articles> <B_articles>
<h2 class="h4 mb-lg-0 mt-4 articles-groupe">Articles de #GET{ville}</h2> <h2 class="h4 mb-lg-0 mt-4 articles-groupe">Dernières nouvelles</h2>
#ANCRE_PAGINATION #ANCRE_PAGINATION
[<div class="pagination pagination_top">(#PAGINATION{page_precedent_suivant})</div>] [<div class="pagination pagination_top">(#PAGINATION{page_precedent_suivant})</div>]
<div class="row liste-articles"> <div class="row liste-articles">
<BOUCLE_articles(ARTICLES){id_rubrique=#CONFIG{balint/id_rub_articles}}{id_groupe IN #GET{groupes}}{! par date}{pagination 6}> <BOUCLE_articles(ARTICLES){id_rubrique=#CONFIG{balint/id_rub_articles}}{id_groupe = #ENV{id_article}}{! par date}{pagination 6}>
<div class="col-md-6 col-lg-4 mt-4 mt-lg-0"> <div class="col-md-6 col-lg-4 mt-4 mt-lg-0">
<INCLURE{fond=inclure/bloc_article, env, id_article}/> <INCLURE{fond=inclure/bloc_article, env, id_article}/>
</div> </div>

View file

@ -1,8 +1,6 @@
<div class="page-groupes row"> <div class="page-groupes row">
<div class="col w-100"> <div class="col w-100">
<INCLURE{fond=inclure/menu-groupes,env}>
[(#ENV{id_article}|non) [(#ENV{id_article}|non)
<INCLURE{fond=inclure/choix_ville,env} /> <INCLURE{fond=inclure/choix_ville,env} />
] ]

View file

@ -1,49 +1,38 @@
<div class="page-groupes row"> <div class="page-groupes">
<div class="col w-100 col-lg-9">
<INCLURE{fond=inclure/menu-groupes,env}> [(#ENV{id_article}|non)
<h1 class="mb-4">Les groupes</h1>
[(#ENV{id_article}|non) <div class="row">
<div class="col w-100 col-lg-8">
<INCLURE{fond=inclure/choix_ville,env} /> <INCLURE{fond=inclure/choix_ville,env} />
]
[(#ENV{id_article}|oui)
<INCLURE{fond=inclure/groupe-detail,env} />
]
</div>
<aside class="col col-lg-3 d-none d-lg-block dernieres-nouvelles">
<h3 class="h4 mt-4 mb-3">Derniers articles</br>
<BOUCLE_pays(RUBRIQUES){id_rubrique=#ENV{id_rubrique}}{tout}>
<span class="h4 font-italic">#PREPOSITION #TITRE</span>
</BOUCLE_pays>
</h3>
[(#REM) On récupère les id de tous les groupes du pays]
[(#SET{groupes_pays,#ARRAY})]
<BOUCLE_villes2(ARTICLES){id_rubrique=#ENV{id_rubrique}}{tout}>
[(#SET{groupes_pays,#GET{groupes_pays}|push{#ID_ARTICLE}})]
</BOUCLE_villes2>
<div class="liste-articles">
<BOUCLE_a_la_une(ARTICLES){id_rubrique=#CONFIG{balint/id_rub_articles}}{id_groupe IN #GET{groupes_pays}}{0,6}{! par date}>
<div class="mt-4 mt-lg-0 mb-3">
<div class="infos-article">
[(#DATE|affdate) :]
</div>
<a href="#URL_ARTICLE" title="Lire l'article">
<h4 class='h5 mb-0'>#TITRE</h4>
</a>
[<div class="resume-article">(#DESCRIPTIF)</div>]
</div>
</BOUCLE_a_la_une>
<div class="col">Il n'y a pas encore d'article dans ce pays.</div>
<//B_a_la_une>
</div> </div>
<aside class="col-12 col-lg-4 dernieres-nouvelles">
<INCLURE{fond=inclure/sidebar_groupes,env} />
</aside> </aside>
</div>
]
[(#ENV{id_article}|oui)
<INCLURE{fond=inclure/menu-groupes-dropdown,env}>
[(#ENV{forum}|=={oui}|non)
<a href="[(#URL_PAGE{groupes})]" class="ajax"><i class="fas fa-arrow-circle-left"></i> Tous les groupes</a>
<div class="row mt-4">
<div class="col-12 w-100 col-lg-8">
<INCLURE{fond=inclure/groupe-detail,env} />
</div>
<aside class="col-12 col-lg-4 dernieres-nouvelles">
<INCLURE{fond=inclure/sidebar_groupes,env} />
</aside>
</div>
]
[(#ENV{forum}|=={oui}|oui)
<a href="[(#URL_PAGE{groupes}|parametre_url{id_article,#ENV{id_article}})]" class="ajax"><i class="fas fa-arrow-circle-left"></i> Retour à la page du groupe</a>
<INCLURE{fond=inclure/article-forum,env} />
]
]
</div> </div>

15
inclure/menu-agora.html Normal file
View file

@ -0,0 +1,15 @@
<nav id="menu-agora" class="navbar navbar-expand-lg navbar-dark">
<button class="navbar-toggler collapsed d-flex d-lg-none" type="button" data-toggle="collapse" data-target="#liste-deroulante-agora" aria-controls="liste-deroulante-agora" aria-expanded="false" aria-label="Toggle navigation">
<i class="fa fa-angle-down" aria-hidden="true"></i>
<span class="navbar-brand d-lg-none">Autres rubriques</span>
</button>
<div class="collapse navbar-collapse" id="liste-deroulante-agora">
<ul class="navbar-nav">
<BOUCLE_menu_agora(ARTICLES){titre_mot=agora}{par rang}>
<li class="nav-item [(#ENV{id_article}|=={#ID_ARTICLE}|oui) active]">
<a class="nav-link ajax" href="[(#URL_PAGE{agora}|parametre_url{id_article,#ID_ARTICLE})]">#TITRE</a>
</li>
</BOUCLE_menu_agora>
</ul>
</div>
</nav>

View file

@ -1,15 +0,0 @@
<nav id="menu-association" class="navbar navbar-expand-lg navbar-dark">
<button class="navbar-toggler collapsed d-flex d-lg-none" type="button" data-toggle="collapse" data-target="#liste-deroulante-association" aria-controls="liste-deroulante-association" aria-expanded="false" aria-label="Toggle navigation">
<i class="fa fa-angle-down" aria-hidden="true"></i>
<span class="navbar-brand">Autres rubriques</span>
</button>
<div class="collapse navbar-collapse" id="liste-deroulante-association">
<ul class="navbar-nav ml-auto flex-column">
<BOUCLE_menu_association(ARTICLES){titre_mot=Association}{par rang}>
<li class="nav-item [(#ENV{id_article}|=={#ID_ARTICLE}|oui) active]">
<a class="nav-link ajax" href="[(#URL_PAGE{association}|parametre_url{id_article,#ID_ARTICLE})]">#TITRE</a>
</li>
</BOUCLE_menu_association>
</ul>
</div>
</nav>

View file

@ -2,22 +2,18 @@
<button class="navbar-toggler d-flex d-lg-none collapsed" type="button" data-toggle="collapse" data-target="#liste-groupes" aria-controls="liste-deroulante-association" aria-expanded="false" aria-label="Toggle navigation"> <button class="navbar-toggler d-flex d-lg-none collapsed" type="button" data-toggle="collapse" data-target="#liste-groupes" aria-controls="liste-deroulante-association" aria-expanded="false" aria-label="Toggle navigation">
<i class="fa fa-angle-down" aria-hidden="true"></i> <i class="fa fa-angle-down" aria-hidden="true"></i>
[<span class="navbar-brand d-lg-none">(#INFO_TITRE{mot,#ENV{id_mot}})</span>] [<span class="navbar-brand d-lg-none">(#INFO_TITRE{mot,#ENV{id_mot}})</span>]
[(#ENV{rub_forum}|oui)<span class="navbar-brand d-lg-none">Forum</span>]
</button> </button>
<div class="collapse navbar-collapse" id="liste-groupes"> <div class="collapse navbar-collapse" id="liste-groupes">
<ul class="navbar-nav"> <ul class="navbar-nav">
<li class="nav-item [(#ENV{rub_forum}|=={#CONFIG{balint/id_rub_forum}}|oui) active]"> <li class="nav-item [(#ENV{rub_forum}|=={#CONFIG{balint/id_rub_forum_prive}}|oui) active]">
<a class="nav-link ajax nocache" href="[(#URL_PAGE{espace_membre}|parametre_url{rub_forum,#CONFIG{balint/id_rub_forum}})]">Forum</a> <a class="nav-link ajax nocache" href="[(#URL_PAGE{espace_membre}|parametre_url{rub_forum,#CONFIG{balint/id_rub_forum_prive}})]">Forum</a>
</li> </li>
<BOUCLE_menu_membre(MOTS){id_groupe = #CONFIG{balint/id_mots_espace_membre}}{par rang}{tout}> <BOUCLE_menu_membre(MOTS){id_groupe = #CONFIG{balint/id_mots_espace_membre}}{par rang}{tout}>
<li class="nav-item [(#ENV{id_mot}|=={#ID_MOT}|oui) active]"> <li class="nav-item [(#ENV{id_mot}|=={#ID_MOT}|oui) active]">
<a class="nav-link ajax nocache" href="[(#URL_PAGE{espace_membre}|parametre_url{id_mot,#ID_MOT})]">#TITRE</a> <a class="nav-link ajax nocache" href="[(#URL_PAGE{espace_membre}|parametre_url{id_mot,#ID_MOT})]">#TITRE</a>
</li> </li>
</BOUCLE_menu_membre> </BOUCLE_menu_membre>
[(#AUTORISER{voir,forum,#CONFIG{balint/id_rub_forum_prive}}|oui)
<li class="nav-item [(#ENV{rub_forum}|=={#CONFIG{balint/id_rub_forum_prive}}|oui) active]">
<a class="nav-link ajax nocache" href="[(#URL_PAGE{espace_membre}|parametre_url{rub_forum,#CONFIG{balint/id_rub_forum_prive}})]">Échanges entre membres du bureau</a>
</li>
]
</ul> </ul>
</div> </div>
</nav> </nav>

View file

@ -0,0 +1,15 @@
<nav id="menu-groupes" class="navbar navbar-dark">
<button class="navbar-toggler d-flex justify-content-center collapsed" type="button" data-toggle="collapse" data-target="#liste-groupes" aria-controls="liste-deroulante-association" aria-expanded="false" aria-label="Toggle navigation">
<i class="fa fa-angle-down" aria-hidden="true"></i>
<span class="navbar-brand pl-4">Groupes</span>
</button>
<div class="collapse navbar-collapse" id="liste-groupes">
<ul class="navbar-nav">
<BOUCLE_menu_groupes(ARTICLES){id_rubrique=#CONFIG{balint/id_rub_groupes}}{par titre}>
<li class="nav-item [(#ENV{id_article}|=={#ID_ARTICLE}|oui) active]">
<a class="nav-link p-lg-0 ajax" href="[(#URL_PAGE{groupes}|parametre_url{id_article,#ID_ARTICLE})]">#TITRE</a>
</li>
</BOUCLE_menu_groupes>
</ul>
</div>
</nav>

View file

@ -1,13 +1,13 @@
<nav id="menu-groupes" class="navbar navbar-expand-lg navbar-dark"> <nav id="menu-groupes" class="navbar navbar-expand-lg navbar-dark">
<button class="navbar-toggler d-flex d-lg-none collapsed" type="button" data-toggle="collapse" data-target="#liste-groupes" aria-controls="liste-deroulante-association" aria-expanded="false" aria-label="Toggle navigation"> <button class="navbar-toggler d-flex d-lg-none collapsed" type="button" data-toggle="collapse" data-target="#liste-groupes" aria-controls="liste-deroulante-association" aria-expanded="false" aria-label="Toggle navigation">
<i class="fa fa-angle-down" aria-hidden="true"></i> <i class="fa fa-angle-down" aria-hidden="true"></i>
[<span class="navbar-brand d-lg-none">(#INFO_TITRE{rubrique,#ENV{id_rubrique}})</span>] <span class="navbar-brand d-lg-none">Groupes</span>
</button> </button>
<div class="collapse navbar-collapse" id="liste-groupes"> <div class="collapse navbar-collapse" id="liste-groupes">
<ul class="navbar-nav"> <ul class="navbar-nav">
<BOUCLE_menu_groupes(RUBRIQUES){id_parent=#CONFIG{balint/id_rub_groupes}}{par num titre}{tout}> <BOUCLE_menu_groupes(ARTICLES){id_rubrique=#CONFIG{balint/id_rub_groupes}}{par titre}>
<li class="nav-item [(#ENV{id_rubrique}|=={#ID_RUBRIQUE}|oui) active]"> <li class="nav-item [(#ENV{id_article}|=={#ID_ARTICLE}|oui) active]">
<a class="nav-link ajax" href="[(#URL_PAGE{groupes}|parametre_url{id_rubrique,#ID_RUBRIQUE})]">#TITRE</a> <a class="nav-link ajax" href="[(#URL_PAGE{groupes}|parametre_url{id_article,#ID_ARTICLE})]">#TITRE</a>
</li> </li>
</BOUCLE_menu_groupes> </BOUCLE_menu_groupes>
</ul> </ul>

View file

@ -5,9 +5,9 @@
</button> </button>
<div class="collapse navbar-collapse" id="liste-deroulante-methode"> <div class="collapse navbar-collapse" id="liste-deroulante-methode">
<ul class="navbar-nav ml-auto flex-column"> <ul class="navbar-nav ml-auto flex-column">
<BOUCLE_menu_methode(ARTICLES){titre_mot=Méthode}{par rang}> <BOUCLE_menu_methode(ARTICLES){titre_mot=presse}{par rang}>
<li class="nav-item [(#ENV{id_article}|=={#ID_ARTICLE}|oui) active]"> <li class="nav-item [(#ENV{id_article}|=={#ID_ARTICLE}|oui) active]">
<a class="nav-link ajax" href="[(#URL_PAGE{methode}|parametre_url{id_article,#ID_ARTICLE})]">#TITRE</a> <a class="nav-link ajax" href="[(#URL_PAGE{presse}|parametre_url{id_article,#ID_ARTICLE})]">#TITRE</a>
</li> </li>
</BOUCLE_menu_methode> </BOUCLE_menu_methode>
</ul> </ul>

View file

@ -6,65 +6,68 @@
</button> </button>
<div class="collapse navbar-collapse" id="liste-deroulante"> <div class="collapse navbar-collapse" id="liste-deroulante">
<ul class="navbar-nav ml-auto"> <ul class="navbar-nav ml-auto">
<li class="nav-item [(#SI_PAGE{sommaire}|oui) active]"> <li class="nav-item [(#SI_PAGE{groupes}|oui) active]">
<a class="nav-link" href="[(#URL_PAGE{sommaire})]">Accueil</a> <a class="nav-link" href="[(#URL_PAGE{groupes})]">Groupes</a>
</li> </li>
<li class="nav-item [(#SI_PAGE{methode}|oui) active]"> <li class="nav-item dropdown [(#SI_PAGE{agora}|oui) active]">
<a class="nav-link" href="[(#URL_PAGE{methode})]">Méthode</a> <a class="nav-link dropdown-toggle" href="[(#URL_PAGE{agora})]" id="mediasDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Agora</a>
</li>
<li class="nav-item dropdown [(#SI_PAGE{seminaires}|oui) active]">
<a class="nav-link dropdown-toggle" href="[(#URL_PAGE{seminaires})]" id="seminairesDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Séminaires</a>
<div class="dropdown-menu" aria-labelledby="seminairesDropdown">
<BOUCLE_menu_seminaires(ARTICLES){titre_mot=seminaires}{par titre}>
<a class="dropdown-item" href="[(#URL_ARTICLE)]">#TITRE</a>
</BOUCLE_menu_seminaires>
</div>
</li>
<li class="nav-item dropdown [(#SI_PAGE{groupes}|oui) active]">
<a class="nav-link dropdown-toggle" href="[(#URL_PAGE{groupes})]" id="groupesDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Groupes</a>
<div class="dropdown-menu" aria-labelledby="groupesDropdown">
<BOUCLE_menu_groupes(RUBRIQUES){id_parent=#CONFIG{balint/id_rub_groupes}}{par num titre}{tout}>
<a class="dropdown-item" href="[(#URL_PAGE{groupes}|parametre_url{id_rubrique,#ID_RUBRIQUE})]">#TITRE</a>
</BOUCLE_menu_groupes>
</div>
</li>
<li class="nav-item dropdown [(#SI_PAGE{mediatheque}|oui) active]">
<a class="nav-link dropdown-toggle" href="[(#URL_PAGE{mediatheque})]" id="mediasDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Médiathèque</a>
<div class="dropdown-menu" aria-labelledby="mediasDropdown"> <div class="dropdown-menu" aria-labelledby="mediasDropdown">
<BOUCLE_menu_medias(MOTS){id_groupe=#CONFIG{balint/id_mots_medias}}{par id_mot}{tout}> <BOUCLE_menu_forums(ARTICLES){titre_mot=agora}{tout}>
<a class="dropdown-item" href="[(#URL_PAGE{mediatheque}|parametre_url{id_mot,#ID_MOT})]">#TITRE</a> <a class="dropdown-item" href="[(#URL_PAGE{agora}|parametre_url{id_article,#ID_ARTICLE})]">#TITRE</a>
</BOUCLE_menu_medias> </BOUCLE_menu_forums>
</div> </div>
</li> </li>
<li class="nav-item [(#SI_PAGE{association}|oui) active]"> <?php if (isset($GLOBALS['visiteur_session']['statut']) AND in_array($GLOBALS['visiteur_session']['statut'],array("0minirezo","1comite"))) { ?>
<a class="nav-link" href="[(#URL_PAGE{association})]">L'association</a>
</li>
<?php
if (!isset($GLOBALS['visiteur_session']['statut']) OR $GLOBALS['visiteur_session']['statut']=="6forum") {
?>
<li class="nav-item [(#SI_PAGE{forum_discussion}|oui) active]"> <li class="nav-item [(#SI_PAGE{forum_discussion}|oui) active]">
<a class="nav-link" href="[(#URL_PAGE{espace_membre}|parametre_url{rub_forum,#CONFIG{balint/id_rub_forum}})]">Espace membre</a> <a class="nav-link" href="[(#URL_PAGE{espace_membre}|parametre_url{rub_forum,#CONFIG{balint/id_rub_forum_prive}})]">Espace membres</a>
</li>
<?php
}
if (isset($GLOBALS['visiteur_session']['statut']) AND in_array($GLOBALS['visiteur_session']['statut'],['0minirezo','1comite'])) {
?>
<li class="nav-item dropdown [(#SI_PAGE{espace_membre}|oui) active]">
<a class="nav-link dropdown-toggle" href="[(#URL_PAGE{espace_membre})]" id="membresDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Espace membre</a>
<div class="dropdown-menu" aria-labelledby="membresDropdown">
<a class="dropdown-item" href="[(#URL_PAGE{espace_membre}|parametre_url{rub_forum,#CONFIG{balint/id_rub_forum}})]">Forum</a>
<BOUCLE_menu_prive(MOTS){id_groupe=#CONFIG{balint/id_mots_espace_membre}}{par rang}{tout}>
<a class="dropdown-item" href="[(#URL_PAGE{espace_membre}|parametre_url{id_mot,#ID_MOT})]">#TITRE</a>
</BOUCLE_menu_prive>
[(#AUTORISER{voir,forum,#CONFIG{balint/id_rub_forum_prive}}|oui)
<a class="dropdown-item" href="[(#URL_PAGE{espace_membre}|parametre_url{rub_forum,#CONFIG{balint/id_rub_forum_prive}})]">Échanges entre membres du bureau</a>
]
</div>
</li> </li>
<?php } ?> <?php } ?>
<li class="nav-item [(#SI_PAGE{charte}|oui) active]">
<a class="nav-link" href="[(#URL_PAGE{charte})]">Charte</a>
</li>
<li class="nav-item [(#SI_PAGE{presse}|oui) active]">
<a class="nav-link" href="[(#URL_PAGE{presse})]">Presse</a>
</li>
<li class="nav-item [(#SI_PAGE{nous-contacter}|oui) active]"> <li class="nav-item [(#SI_PAGE{nous-contacter}|oui) active]">
<a class="nav-link" href="[(#URL_PAGE{nous-contacter})]">Contact</a> <a class="nav-link" href="[(#URL_PAGE{nous-contacter})]">Contact</a>
</li> </li>
<?php if (!isset($GLOBALS['visiteur_session']['id_auteur'])) { ?>
<li class="nav-item">
<a class="nav-link" href="[(#URL_PAGE{espace_membre})]"><span class="btn bouton-login">Connexion</span></a>
</li>
<?php } ?>
<?php if (isset($GLOBALS['visiteur_session']['id_auteur'])) { ?>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="[(#URL_PAGE{agora})]" id="mediasDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="fas fa-user"></i>&nbsp;<?php echo $GLOBALS['visiteur_session']['nom'] ?>
</a>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="mediasDropdown">
<a class="dropdown-item" href="[(#URL_PAGE{modifier_auteur}|parametre_url{retour,#SELF})]">
<i class="fas fa-user-circle-o"></i> Mon profil
</a>
<?php if (isset($GLOBALS['visiteur_session']['statut']) AND in_array($GLOBALS['visiteur_session']['statut'],array("0minirezo","1comite"))) { ?>
<a class="dropdown-item" href="[(#URL_PAGE{editer_article})]">
<i class="fas fa-pencil"></i> Rédiger un article
</a>
<a class="dropdown-item" href="[(#URL_PAGE{brouillons})]">
<i class="fas fa-file"></i> Brouillons
</a>
<?php } ?>
<?php if (isset($GLOBALS['visiteur_session']['statut']) AND in_array($GLOBALS['visiteur_session']['statut'],array("0minirezo"))) { ?>
<a class="dropdown-item" href="[(#URL_PAGE{editer_groupe})]">
<i class="fas fa-globe"></i> Créer un groupe
</a>
<a class="dropdown-item" href="[(#URL_PAGE{gerer_auteurs})]">
<i class="fas fa-users"></i> Gérer les membres
</a>
<?php } ?>
<a class="dropdown-item" href="[(#URL_LOGOUT{#URL_PAGE{sommaire}})]" rel="nofollow">
<i class="fas fa-sign-out"></i> Déconnexion
</a>
</div>
</li>
<?php } ?>
</ul> </ul>
</div> </div>
</div> </div>

19
inclure/page_agora.html Normal file
View file

@ -0,0 +1,19 @@
<div>
<INCLURE{fond=inclure/menu-#ENV{nom},env}>
</div>
<div class="row">
<div class="col-lg-8 asso-contenu">
<BOUCLE_contenu(CONDITION){si #ENV{forum}|oui}>
<INCLURE{fond=inclure/article_agora,env}>
</BOUCLE_contenu>
<INCLURE{fond=inclure/article_contenu_1col,env}>
<//B_contenu>
</div>
<aside class="col col-lg-4 dernieres-nouvelles">
<INCLURE{fond=inclure/sidebar_agora,env} />
</aside>
</div>

View file

@ -0,0 +1,44 @@
[(#REM) Rappel : ici #ENV{id_article} correspond à l'id du groupe.]
<div class="bloc-groupe mt-4 mt-lg-0">
<BOUCLE_contenu(CONDITION){si #ENV{forum}|non}>
<h3>Apportez vos réflexions !</br></h3>
<a href="[(#URL_PAGE{agora}|parametre_url{id_article,#ENV{id_article}}|parametre_url{forum,oui})]" class="infos-article ajax" title="Voir le forum">
<h4 class='h5 m-0 mb-3'><i class="fas fa-arrow-circle-right"></i> Accès au forum</h4>
</a>
<div class="h4 mt-4">Dernières contributions</div>
<div class="liste-articles">
<BOUCLE_sujets(FORUMS){id_article=#ENV{id_article}}{!par date}{0,3}{tout}>
<div class="mt-4 mt-lg-0 mb-3">
<a href="[(#URL_PAGE{agora}|parametre_url{id_article,#ENV{id_article}}|parametre_url{forum,oui})]" class="ajax" title="Voir le forum">
#TITRE
</a>
<div class="infos-article">
[(#DATE|date_interface)]
</div>
<div class="infos-article">
par #AUTEUR
</div>
</div>
</BOUCLE_sujets>
<div>Il n'y a pas encore d'échanges.</div>
<//B_sujets>
</div>
</BOUCLE_contenu>
<h3>Documents utiles</h3>
<div class="row mb-3">
<BOUCLE_fichiers(DOCUMENTS){id_article=#ID_ARTICLE}{extension==pdf|doc|docx|odt|xls|xlsx|jpg|png|gif}{tout}>
<div class="col-6 col-md-4 fichier text-center">
<a href="#FICHIER" class="">
[(#LOGO_DOCUMENT|image_reduire{0,120})]
</a>
[<div class="#EDIT{titre}">(#TITRE)</div>]
</div>
</BOUCLE_fichiers>
</div>
<//B_contenu>
</div>

View file

@ -0,0 +1,75 @@
[(#REM) Rappel : ici #ENV{id_article} correspond à l'id du groupe.]
[(#REM) S'il s'agit de la page d'un groupe :]
<BOUCLE_groupe(ARTICLES){id_article=#ENV{id_article}}{par rang}>
[(#REM) Si la personne connectée est admin ou membre du groupe, elle peut rédiger un article]
#SET{id_auteur,#EVAL{$GLOBALS['visiteur_session']['id_auteur']}}
<BOUCLE_test(AUTEURS){id_article=#ID_ARTICLE}{id_auteur=#GET{id_auteur}}>
<div class="mb-1">
<a href="[(#URL_PAGE{editer_article})]" class="btn bouton-rediger"><i class="fas fa-pencil"></i> Rédiger un article</a>
</div>
<div class="mb-3">
<a href="[(#URL_PAGE{groupes}|parametre_url{id_article,#ENV{id_article}}|parametre_url{forum,oui})]" class="btn bouton-rediger ajax"><i class="fas fa-comment"></i> Forum</a>
</div>
</BOUCLE_test>
<?php if (isset($GLOBALS['visiteur_session']['statut']) AND $GLOBALS['visiteur_session']['statut']=="0minirezo") { ?>
<div class="mb-3">
<a href="[(#URL_PAGE{editer_article})]" class="btn bouton-rediger"><i class="fas fa-pencil"></i> Rédiger un article</a>
</div>
<?php } ?>
<//B_test>
<div class="bloc-groupe mt-4 mt-lg-0">
<?php
include_spip('inc/autoriser');
$id_auteur = $GLOBALS['visiteur_session']['id_auteur'] ?? 0;
if (autoriser('modifier','article', #ID_ARTICLE,$id_auteur, array('groupe'))){ ?>
<a class="btn" href="#URL_PAGE{editer_groupe,id_article=#ID_ARTICLE }"><i class="fas fa-edit"></i> Mettre à jour le groupe</a>
<?php } ?>
[<h3>(#TITRE)</h3>]
<strong>Contact</strong>
<BOUCLE_auteurs(AUTEURS){id_article=#ID_ARTICLE}{role=admin}>
<div>
[(#EMAIL|ou{#TELEPHONE}|oui)
<a href="[(#URL_PAGE{contacter_auteur}|parametre_url{id_auteur,#ID_AUTEUR})]" class="mediabox">#NOM</a>
]
</div>
</BOUCLE_auteurs>
[<div class="texte"><strong>Fréquence :</strong> (#DESCRIPTIF|textebrut)</div>]
<div class="texte">#TEXTE</div>
[<div class="texte"><a href="(#SOUSTITRE)">Page du groupe sur actionpopulaire.fr</a></div>]
</div>
</BOUCLE_groupe>
[(#REM) S'il s'agit de la page de tous les groupes :]
<div class="bloc-groupe mt-4 mt-lg-0">
<h3 class="h4">Derniers articles</br></h3>
<div class="liste-articles">
<BOUCLE_a_la_une(ARTICLES){id_rubrique=#CONFIG{balint/id_rub_articles}}{id_groupe>0}{0,6}{! par date}>
<div class="mt-4 mt-lg-0 mb-3">
<div class="infos-article">
[(#DATE|date_interface)]
</div>
<div class="infos-article">
<a href="[(#URL_PAGE{groupes}|parametre_url{id_article,#ID_GROUPE})]" class="ajax nocache">
<i class="fas fa-globe"></i> #INFO_TITRE{article,#ID_GROUPE}
</a>
</div>
<a href="#URL_ARTICLE" title="Lire l'article">
<h4 class='h5 mb-0'>#TITRE</h4>
</a>
[<div class="resume-article">(#DESCRIPTIF)</div>]
</div>
</BOUCLE_a_la_une>
<div class="col">Il n'y a pas encore d'article.</div>
<//B_a_la_une>
</div>
</div>
<//B_groupe>

View file

@ -90,5 +90,26 @@ jQuery(function($) {
// On lie l'événement resize à la fonction // On lie l'événement resize à la fonction
window.addEventListener('resize', redimensionnement, false); window.addEventListener('resize', redimensionnement, false);
/*
// Formulaire de recherche perso
$('body').on('submit', '#barre-recherche', function(event){
event.preventDefault();
var mot = $("#recherche").val();
console.log(mot);
ajaxReload('a_la_une', {
args: {
recherche: mot
}
});
});
$("body").on("click","#btn_reinit_recherche",function(){
ajaxReload('a_la_une', {
args: {
recherche: ''
}
});
});
*/
}); });

View file

@ -0,0 +1,12 @@
<?php
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
$GLOBALS[$GLOBALS['idx_lang']] = array(
// I
'info_passe_trop_court' => 'Le mot de passe doit contenir au moins @nb@ caractères dont @nb_min@ minuscule, @nb_maj@ majuscule et @nb_int@ chiffre.',
);

View file

@ -7,7 +7,8 @@ if (!defined('_ECRIRE_INC_VERSION')) {
$GLOBALS[$GLOBALS['idx_lang']] = array( $GLOBALS[$GLOBALS['idx_lang']] = array(
'form_forum_email_deja_enregistre' => 'Un compte existe déjà avec cette adresse email. Connectez-vous avec votre mot de passe habituel, ou bien réinitialisez-le en <a href="http://localhost/balint/spip.php?page=spip_pass">cliquant ici</a>.', 'form_forum_email_deja_enregistre' => 'Un compte existe déjà avec cette adresse email. Connectez-vous (formulaire "Se connecter ci-contre") avec votre mot de passe habituel, ou bien réinitialisez-le <a href="' . generer_url_public('spip_pass') . '">en cliquant ici</a>.',
'pass_recevoir_mail' => "Un lien de réinitialisation de votre mot de passe vous a été envoyé sur votre adresse email (si celle-ci est valide). Si vous ne le trouvez pas, pensez à vérifiez vos SPAMs." 'pass_recevoir_mail' => "Un lien de réinitialisation de votre mot de passe vous a été envoyé sur votre adresse email (si celle-ci est valide). Si vous ne le trouvez pas, pensez à vérifiez vos SPAMs.",
'entree_nom_pseudo' => 'Nom et prénom'
); );

View file

@ -1 +0,0 @@
<INCLURE{fond=structure,env,type-page=espace_membre,id_forum=#CONFIG{balint/id_rub_forum}} />

View file

@ -4,12 +4,12 @@
version="1.0.0" version="1.0.0"
etat="stable" etat="stable"
compatibilite="[3.1.7;3.3.*]" compatibilite="[3.1.7;3.3.*]"
logo="img/balint_64.png" logo="img/fede_64.jpg"
documentation="" documentation=""
schema="1.0.7" schema="1.0.13"
> >
<nom>Squelette AIPB</nom> <nom>Squelette Fédé</nom>
<auteur lien='https://gamuza.fr'>Gamuza[informatique]</auteur> <auteur lien='https://gamuza.fr'>Gamuza[informatique]</auteur>
@ -25,6 +25,7 @@
<necessite nom="suivant_precedent" compatibilite="[1.4.4;]" /> <necessite nom="suivant_precedent" compatibilite="[1.4.4;]" />
<necessite nom="bigform" compatibilite="[1.0.5;]" /> <necessite nom="bigform" compatibilite="[1.0.5;]" />
<necessite nom="compositions" compatibilite="[3.8.0;]" /> <necessite nom="compositions" compatibilite="[3.8.0;]" />
<necessite nom="motpassecomplexe" compatibilite="[1.3.0;]" />
<utilise nom="urls_pages" compatibilite="[1.0.11;]" /> <utilise nom="urls_pages" compatibilite="[1.0.11;]" />
<pipeline nom="declarer_champs_extras" inclure="base/balint.php" /> <pipeline nom="declarer_champs_extras" inclure="base/balint.php" />