Compare commits
19 commits
Author | SHA1 | Date | |
---|---|---|---|
|
53849dd670 | ||
|
48f883148e | ||
|
d159c678cf | ||
|
cd702576ed | ||
|
f930dad01d | ||
|
6515fec0d1 | ||
|
c45827e51a | ||
|
826c97f418 | ||
|
3e7879fc8c | ||
4431d1da0d | |||
5631406dc7 | |||
edd1a327c5 | |||
6259d76399 | |||
2c9d15d959 | |||
eb1ce93610 | |||
e2a09959ab | |||
ac4f408415 | |||
360207c285 | |||
4c22337ec4 |
38 changed files with 595 additions and 229 deletions
53
action/choisir_banniere.php
Normal file
53
action/choisir_banniere.php
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
<?php
|
||||||
|
if (!defined('_ECRIRE_INC_VERSION')) return;
|
||||||
|
|
||||||
|
// mettre une photo en banniere (credit = une)
|
||||||
|
function action_choisir_banniere_dist(){
|
||||||
|
$securiser_action = charger_fonction('securiser_action', 'inc');
|
||||||
|
$arg = $securiser_action();
|
||||||
|
$Targs = explode('-', $arg);
|
||||||
|
$id_document = intval($Targs[0]);
|
||||||
|
$id_article = intval($Targs[1]);
|
||||||
|
|
||||||
|
if (!$id_document OR !$id_article)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
// il faut être auteur pour mettre à la Une
|
||||||
|
include_spip('inc/autoriser');
|
||||||
|
if (! autoriser("creer","article")) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// On récupère tous les id_article de la même ville
|
||||||
|
|
||||||
|
$ville = sql_getfetsel('surtitre','spip_articles','id_article='.$id_article);
|
||||||
|
$where0 = array(
|
||||||
|
"surtitre='$ville'",
|
||||||
|
'id_secteur='. lire_config('balint/id_rub_groupes')
|
||||||
|
);
|
||||||
|
$groupes = sql_allfetsel('id_article','spip_articles',$where0);
|
||||||
|
$Tid_groupes = array_column($groupes,'id_article');
|
||||||
|
|
||||||
|
foreach($Tid_groupes as $id_groupe){
|
||||||
|
|
||||||
|
// récupérer les docs attachés à l'article
|
||||||
|
$where = array(
|
||||||
|
'id_objet='.$id_groupe,
|
||||||
|
'objet="article"',
|
||||||
|
'extension IN ("jpg","png","gif")',
|
||||||
|
);
|
||||||
|
$res = sql_allfetsel('spip_documents_liens.id_document', array('spip_documents_liens','spip_documents'), $where);
|
||||||
|
$Tid_docs = array_column($res,'id_document');
|
||||||
|
|
||||||
|
// virer la bannière actuelle
|
||||||
|
sql_updateq('spip_documents', array('credits' => ''),'id_document IN ('.join(',',$Tid_docs).')');
|
||||||
|
}
|
||||||
|
|
||||||
|
// mettre en bannière la photo choisie
|
||||||
|
sql_updateq('spip_documents', array('credits' => 'une'),'id_document = '.$id_document);
|
||||||
|
|
||||||
|
// Cache
|
||||||
|
include_spip('inc/invalideur');
|
||||||
|
suivre_invalideur("id='id_article/$id_article'");
|
||||||
|
}
|
||||||
|
|
|
@ -118,10 +118,10 @@ 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) {
|
||||||
|
|
||||||
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'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -148,11 +148,11 @@ function autoriser_sujet_creer($faire, $type, $id, $qui, $opt) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function autoriser_sujet_editer($faire, $type, $id, $qui, $opt) {
|
function autoriser_sujet_editer($faire, $type, $id, $qui, $opt) {
|
||||||
// Seul les admins et l'auteur peuvent le supprimer
|
// Seul les admins et l'auteur peuvent le supprimer
|
||||||
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'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -160,9 +160,9 @@ 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'];
|
$id_auteur = $qui['id_auteur'];
|
||||||
// Il faut être au moins membre
|
// Il faut être au moins membre
|
||||||
if ($qui['statut']=='1comite'){
|
if ($qui['statut'] == '1comite'){
|
||||||
// si le forum est privé, il faut être membre du bureau
|
// si le forum est privé, il faut être membre du bureau
|
||||||
if ($id==lire_config('balint/id_rub_forum_prive')){
|
if ($id == lire_config('balint/id_rub_forum_prive')){
|
||||||
if (sql_getfetsel('bureau','spip_auteurs',"id_auteur=$id_auteur")=='on'){
|
if (sql_getfetsel('bureau','spip_auteurs',"id_auteur=$id_auteur")=='on'){
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -178,4 +178,6 @@ function autoriser_forum_voir($faire, $type, $id, $qui, $opt) {
|
||||||
if ($qui['statut']=='0minirezo'){
|
if ($qui['statut']=='0minirezo'){
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
// si aucun des cas précédents (pas loggué par ex)
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function debug_spip(){
|
/*function debug_spip(){
|
||||||
define('_DEBUG_SLOW_QUERIES', true);
|
define('_DEBUG_SLOW_QUERIES', true);
|
||||||
define('_BOUCLE_PROFILER', 5000);
|
define('_BOUCLE_PROFILER', 5000);
|
||||||
define('_LOG_FILTRE_GRAVITE', 8);
|
define('_LOG_FILTRE_GRAVITE', 8);
|
||||||
|
@ -32,7 +32,7 @@ function debug_spip(){
|
||||||
|
|
||||||
define('_NO_CACHE', -1);
|
define('_NO_CACHE', -1);
|
||||||
define('_INTERDIRE_COMPACTE_HEAD_ECRIRE', true);
|
define('_INTERDIRE_COMPACTE_HEAD_ECRIRE', true);
|
||||||
}
|
}*/
|
||||||
//debug_spip();
|
//debug_spip();
|
||||||
|
|
||||||
if (!isset($GLOBALS['z_blocs']))
|
if (!isset($GLOBALS['z_blocs']))
|
||||||
|
@ -48,7 +48,7 @@ if (!isset($GLOBALS['z_blocs']))
|
||||||
|
|
||||||
|
|
||||||
// On retire les boutons "Espace privé" et "Recalculer" pour les admins
|
// On retire les boutons "Espace privé" et "Recalculer" pour les admins
|
||||||
$GLOBALS['flag_preserver'] = true;
|
//$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';
|
|
@ -2,7 +2,7 @@
|
||||||
#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|=={Médiathèque}|oui)
|
||||||
|
|
|
@ -1,54 +1,53 @@
|
||||||
[(#REM) On affiche la première rubrique par défaut]
|
[(#REM) On affiche la première rubrique par défaut]
|
||||||
|
|
||||||
<section id="espace_membre" class="section-top section-bottom container">
|
<section id="espace_membre" class="section-top section-bottom container">
|
||||||
|
|
||||||
|
|
||||||
<?php
|
|
||||||
if (isset($GLOBALS['visiteur_session']['id_auteur']) AND $GLOBALS['visiteur_session']['id_auteur']) {
|
|
||||||
?>
|
|
||||||
|
|
||||||
<div class="cadre-blanc">
|
|
||||||
<h1 class="mb-4">Espace membre</h1>
|
|
||||||
<?php
|
<?php
|
||||||
if (isset($GLOBALS['visiteur_session']['statut']) AND in_array($GLOBALS['visiteur_session']['statut'],array("0minirezo","1comite"))) {
|
if (isset($GLOBALS['visiteur_session']['id_auteur']) AND $GLOBALS['visiteur_session']['id_auteur']) {
|
||||||
?>
|
?>
|
||||||
<INCLURE{fond=inclure/espace_membre_contenu,env,ajax}>
|
|
||||||
|
<div class="cadre-blanc">
|
||||||
|
<h1 class="mb-4">Espace membre</h1>
|
||||||
|
<?php
|
||||||
|
if (isset($GLOBALS['visiteur_session']['statut']) AND in_array($GLOBALS['visiteur_session']['statut'],array("0minirezo","1comite"))) {
|
||||||
|
?>
|
||||||
|
<div class="mb-3">
|
||||||
|
Vous êtes connecté·e en tant que <a class="boutons" href="[(#URL_PAGE{modifier_auteur})]"><?php echo $GLOBALS['visiteur_session']['nom'] ?></a>.<a href="[(#URL_LOGOUT{#SELF})]"><i class="fa fa-sign-out ml-3" aria-hidden="true"></i> Déconnexion</a>
|
||||||
|
</div>
|
||||||
|
<INCLURE{fond=inclure/espace_membre_contenu,env,ajax}>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
?>
|
||||||
|
<div>
|
||||||
|
Les administrateurs valideront votre accès à l'espace membre dès que possible.</br>
|
||||||
|
En cas de problème vous pouvez les joindre sur contact@psychodrame-balint.com.
|
||||||
|
</div>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</div>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
?>
|
?>
|
||||||
<div>
|
<div class="cadre-blanc">
|
||||||
Les administrateurs valideront votre accès à l'espace membre dès que possible.</br>
|
<h1 class="mb-4">Espace membre</h1>
|
||||||
En cas de problème vous pouvez les joindre sur contact@psychodrame-balint.com.
|
Cet espace est réservé aux membres de l'association.</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>
|
||||||
|
En cas de problème vous pouvez nous joindre sur contact@psychodrame-balint.com.
|
||||||
|
</div>
|
||||||
|
<div class="row mt-4">
|
||||||
|
<div class="se_connecter bloc_connexion col-lg-5">
|
||||||
|
[(#FORMULAIRE_LOGIN{#SELF})]
|
||||||
|
</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{'','',#SELF})]
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</div>
|
|
||||||
|
|
||||||
<?php
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
?>
|
|
||||||
<div class="cadre-blanc">
|
|
||||||
<h1 class="mb-4">Espace membre</h1>
|
|
||||||
Cet espace est réservé aux membres de l'association.</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>
|
|
||||||
En cas de problème vous pouvez nous joindre sur contact@psychodrame-balint.com.
|
|
||||||
</div>
|
|
||||||
<div class="row mt-4">
|
|
||||||
<div class="se_connecter bloc_connexion col-lg-5">
|
|
||||||
[(#FORMULAIRE_LOGIN{#SELF})]
|
|
||||||
</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{'','',#SELF})]
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<?php
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
<div>
|
|
||||||
<h1>Création d'un compte étudiant</h1>
|
|
||||||
|
|
||||||
[(#FORMULAIRE_INSCRIPTION)]
|
|
||||||
|
|
||||||
</div>
|
|
|
@ -4,7 +4,7 @@
|
||||||
<B_modifier_auteur>
|
<B_modifier_auteur>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<BOUCLE_modifier_auteur(AUTEURS){id_auteur = #SESSION{id_auteur}}{tous}>
|
<BOUCLE_modifier_auteur(AUTEURS){id_auteur=#SESSION{id_auteur}}{tous}>
|
||||||
<div class="m-auto">
|
<div class="m-auto">
|
||||||
#FORMULAIRE_EDITER_AUTEUR{#ID_AUTEUR,#URL_PAGE{auteur}|parametre_url{id_auteur,#ENV{id_auteur}}}
|
#FORMULAIRE_EDITER_AUTEUR{#ID_AUTEUR,#URL_PAGE{auteur}|parametre_url{id_auteur,#ENV{id_auteur}}}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<section id="presentation-accueil">
|
<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>
|
<h1 class="text-center">[(#CHEMIN{images/Titre-AIPB.png}|image_reduire{900,120}|inserer_attribut{alt,AIPB - #NOM_SITE_SPIP})]</h1>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<BOUCLE_presentation(ARTICLES){grigri=presentation_accueil}{0,1}{! par date}>
|
<BOUCLE_presentation(ARTICLES){grigri=presentation_accueil}{0,1}{! par date}>
|
||||||
<div id="images-presentation" class="col-lg">
|
<div id="images-presentation" class="col-lg">
|
||||||
|
@ -35,7 +35,7 @@
|
||||||
<aside class="col-lg-3">
|
<aside class="col-lg-3">
|
||||||
<div id="agenda" class="mt-4 mt-lg-0">
|
<div id="agenda" class="mt-4 mt-lg-0">
|
||||||
<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}{!par date}>
|
||||||
<div class="agenda-evenement">
|
<div class="agenda-evenement">
|
||||||
<a href="#URL_ARTICLE">
|
<a href="#URL_ARTICLE">
|
||||||
<h3 class="h5">#TITRE</h3>
|
<h3 class="h5">#TITRE</h3>
|
||||||
|
|
|
@ -810,14 +810,14 @@ body{
|
||||||
}
|
}
|
||||||
.btn_poubelle{
|
.btn_poubelle{
|
||||||
color: red;
|
color: red;
|
||||||
:hover{
|
&:hover{
|
||||||
color: #ee9e9e;
|
color: #b30000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.btn_une{
|
.btn_une{
|
||||||
color: black;
|
color: grey;
|
||||||
:hover{
|
&:hover{
|
||||||
color: grey;
|
color: black;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.boutons_actions {
|
.boutons_actions {
|
||||||
|
@ -827,18 +827,19 @@ body{
|
||||||
justify-content: space-around;
|
justify-content: space-around;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
background-color: $gris-clair;
|
background-color: $gris-clair;
|
||||||
i.green {
|
i {
|
||||||
padding: .6rem;
|
padding:0 0.6rem;
|
||||||
color: rgb(28, 158, 28);
|
|
||||||
}
|
}
|
||||||
a {
|
a {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
.premier-plan{
|
.premier-plan{
|
||||||
|
color: rgb(28, 158, 28);
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
padding: 0.2rem;
|
padding: 0.2rem;
|
||||||
|
font-size: 1rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12799,16 +12799,16 @@ body {
|
||||||
color: red;
|
color: red;
|
||||||
}
|
}
|
||||||
|
|
||||||
.docs-article .btn_poubelle :hover {
|
.docs-article .btn_poubelle:hover {
|
||||||
color: #ee9e9e;
|
color: #b30000;
|
||||||
}
|
}
|
||||||
|
|
||||||
.docs-article .btn_une {
|
.docs-article .btn_une {
|
||||||
color: black;
|
color: grey;
|
||||||
}
|
}
|
||||||
|
|
||||||
.docs-article .btn_une :hover {
|
.docs-article .btn_une:hover {
|
||||||
color: grey;
|
color: black;
|
||||||
}
|
}
|
||||||
|
|
||||||
.docs-article .boutons_actions {
|
.docs-article .boutons_actions {
|
||||||
|
@ -12824,9 +12824,8 @@ body {
|
||||||
background-color: #f2f2f2;
|
background-color: #f2f2f2;
|
||||||
}
|
}
|
||||||
|
|
||||||
.docs-article .boutons_actions i.green {
|
.docs-article .boutons_actions i {
|
||||||
padding: .6rem;
|
padding: 0 0.6rem;
|
||||||
color: #1c9e1c;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.docs-article .boutons_actions a {
|
.docs-article .boutons_actions a {
|
||||||
|
@ -12834,6 +12833,7 @@ body {
|
||||||
}
|
}
|
||||||
|
|
||||||
.docs-article .boutons_actions .premier-plan {
|
.docs-article .boutons_actions .premier-plan {
|
||||||
|
color: #1c9e1c;
|
||||||
display: -webkit-box;
|
display: -webkit-box;
|
||||||
display: flex;
|
display: flex;
|
||||||
-webkit-box-orient: horizontal;
|
-webkit-box-orient: horizontal;
|
||||||
|
@ -12842,6 +12842,7 @@ body {
|
||||||
-webkit-box-align: center;
|
-webkit-box-align: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
padding: 0.2rem;
|
padding: 0.2rem;
|
||||||
|
font-size: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.titre_img {
|
.titre_img {
|
||||||
|
|
|
@ -164,6 +164,7 @@ function formulaires_editer_auteur_verifier_dist(
|
||||||
$oblis[] = 'new_login';
|
$oblis[] = 'new_login';
|
||||||
}
|
}
|
||||||
// mais il reste obligatoire si on a rien trouve
|
// mais il reste obligatoire si on a rien trouve
|
||||||
|
$erreurs = [];
|
||||||
$erreurs = formulaires_editer_objet_verifier('auteur', $id_auteur, $oblis);
|
$erreurs = formulaires_editer_objet_verifier('auteur', $id_auteur, $oblis);
|
||||||
if (isset($erreurs['new_login'])) {
|
if (isset($erreurs['new_login'])) {
|
||||||
$erreurs['login'] = $erreurs['new_login'];
|
$erreurs['login'] = $erreurs['new_login'];
|
||||||
|
|
|
@ -176,8 +176,7 @@ function formulaires_editer_groupe_traiter_dist($id_article=0, $redirect=''){
|
||||||
);
|
);
|
||||||
$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') ?? [];
|
||||||
|
|
||||||
if (count($Tauteurs)) {
|
if (count($Tauteurs)) {
|
||||||
$associer = array_diff($Tauteurs, $ids_auteurs);
|
$associer = array_diff($Tauteurs, $ids_auteurs);
|
||||||
$dissocier = array_diff($ids_auteurs, $Tauteurs);
|
$dissocier = array_diff($ids_auteurs, $Tauteurs);
|
||||||
|
@ -204,7 +203,7 @@ function formulaires_editer_groupe_traiter_dist($id_article=0, $redirect=''){
|
||||||
|
|
||||||
$ids_mots = sql_allfetsel('M.id_mot AS id_mot', $from, $where);
|
$ids_mots = sql_allfetsel('M.id_mot AS id_mot', $from, $where);
|
||||||
$ids_mots = array_column($ids_mots, 'id_mot');
|
$ids_mots = array_column($ids_mots, 'id_mot');
|
||||||
$coches = _request('id_groupe_'.$id_groupe);
|
$coches = _request('id_groupe_'.$id_groupe) ?? [];
|
||||||
if (count($coches)) {
|
if (count($coches)) {
|
||||||
$associer = array_diff($coches, $ids_mots);
|
$associer = array_diff($coches, $ids_mots);
|
||||||
$dissocier = array_diff($ids_mots, $coches);
|
$dissocier = array_diff($ids_mots, $coches);
|
||||||
|
|
|
@ -161,6 +161,7 @@ function formulaires_editer_membre_verifier_dist(
|
||||||
$oblis[] = 'new_login';
|
$oblis[] = 'new_login';
|
||||||
}
|
}
|
||||||
// mais il reste obligatoire si on a rien trouve
|
// mais il reste obligatoire si on a rien trouve
|
||||||
|
$erreurs = [];
|
||||||
$erreurs = formulaires_editer_objet_verifier('auteur', $id_auteur, $oblis);
|
$erreurs = formulaires_editer_objet_verifier('auteur', $id_auteur, $oblis);
|
||||||
if (isset($erreurs['new_login'])) {
|
if (isset($erreurs['new_login'])) {
|
||||||
$erreurs['login'] = $erreurs['new_login'];
|
$erreurs['login'] = $erreurs['new_login'];
|
||||||
|
|
|
@ -5,9 +5,9 @@
|
||||||
|
|
||||||
#ACTION_FORMULAIRE{#ENV{action}}
|
#ACTION_FORMULAIRE{#ENV{action}}
|
||||||
<div class="boutons a-droite">
|
<div class="boutons a-droite">
|
||||||
[(#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}})]
|
||||||
]
|
]
|
||||||
<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>
|
||||||
</div>
|
</div>
|
||||||
|
@ -58,68 +58,67 @@
|
||||||
<textarea class="text" type="text" name="texte">#ENV{texte}</textarea>
|
<textarea class="text" type="text" name="texte">#ENV{texte}</textarea>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
[(#REM) champ_1 en attente
|
[(#REM) champ_1 en attente
|
||||||
<div class="champ_1">
|
<div class="champ_1">
|
||||||
<label for="champ_1">champ_1</label>
|
<label for="champ_1">champ_1</label>
|
||||||
<textarea id="champ_1" name="champ_1" placeholder="Le champ_1...">#ENV{champ_1}</textarea>
|
<textarea id="champ_1" name="champ_1" placeholder="Le champ_1...">#ENV{champ_1}</textarea>
|
||||||
OU
|
OU
|
||||||
<input class="text" type="text" name="champ_1" value="#ENV{champ_1}" placeholder="Le champ_1">
|
<input class="text" type="text" name="champ_1" value="#ENV{champ_1}" placeholder="Le champ_1">
|
||||||
</div>
|
</div>
|
||||||
]
|
]
|
||||||
[(#REM) champ_2 en attente
|
[(#REM) champ_2 en attente
|
||||||
<div class="champ_2">
|
<div class="champ_2">
|
||||||
<label for="champ_2">Intervenants</label>
|
<label for="champ_2">Intervenants</label>
|
||||||
<textarea id="champ_2" name="champ_2" placeholder="le champ_2...">#ENV{champ_2}</textarea>
|
<textarea id="champ_2" name="champ_2" placeholder="le champ_2...">#ENV{champ_2}</textarea>
|
||||||
OU
|
OU
|
||||||
<input class="text" type="text" name="champ_2" value="#ENV{champ_2}" placeholder="Le champ_2">
|
<input class="text" type="text" name="champ_2" value="#ENV{champ_2}" placeholder="Le champ_2">
|
||||||
</div>
|
</div>
|
||||||
]
|
]
|
||||||
[(#REM) les champs non utilisés
|
[(#REM) les champs non utilisés
|
||||||
<div class="references">
|
<div class="references">
|
||||||
<label for="references">Références utilisées</label>
|
<label for="references">Références utilisées</label>
|
||||||
<textarea id="references" name="descriptif">#ENV{descriptif}</textarea>
|
<textarea id="references" name="descriptif">#ENV{descriptif}</textarea>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="ressources">
|
<div class="ressources">
|
||||||
<label for="ressources">Ressources pour aller plus loin</label>
|
<label for="ressources">Ressources pour aller plus loin</label>
|
||||||
<textarea id="ressources" name="chapo">#ENV{chapo}</textarea>
|
<textarea id="ressources" name="chapo">#ENV{chapo}</textarea>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="credits">
|
<div class="credits">
|
||||||
<label for="credits">Crédits</label>
|
<label for="credits">Crédits</label>
|
||||||
<textarea id="credits" name="surtitre">#ENV{surtitre}</textarea>
|
<textarea id="credits" name="surtitre">#ENV{surtitre}</textarea>
|
||||||
</div>
|
</div>
|
||||||
]
|
]
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<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: entre 1024 et 2048 pixels</small></label>
|
||||||
<div class="ajax">
|
<div class="ajax les_photos">
|
||||||
<INCLURE{fond=inclure/bigform,env}>
|
<INCLURE{fond=inclure/bigform,env}>
|
||||||
</div>
|
</div>
|
||||||
<INCLURE{fond=inclure/editer_docs_article,env,id_article=#ENV{id_article},ajax=les_photos,type=article}>
|
<INCLURE{fond=inclure/editer_docs_article,env,id_article=#ENV{id_article},ajax=les_photos,type=article}>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
[(#REM)
|
[(#REM)
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend><i class="fas fa-globe"></i> Localisation</legend>
|
<legend><i class="fas fa-globe"></i> Localisation</legend>
|
||||||
|
|
||||||
[(#SAISIE{carte,editer_gis_oui,env})]
|
[(#SAISIE{carte,editer_gis_oui,env})]
|
||||||
|
|
||||||
[(#SAISIE{input,lat,
|
[(#SAISIE{input,lat,
|
||||||
label=<:gis:lat:>,
|
label=<:gis:lat:>,
|
||||||
defaut=#ENV{lat,#CONFIG{gis/lat,0}},
|
defaut=#ENV{lat,#CONFIG{gis/lat,0}},
|
||||||
obligatoire=oui})]
|
obligatoire=oui})]
|
||||||
[(#SAISIE{input,lon,
|
[(#SAISIE{input,lon,
|
||||||
label=<:gis:lon:>,
|
label=<:gis:lon:>,
|
||||||
defaut=#ENV{lon,#CONFIG{gis/lon,0}},
|
defaut=#ENV{lon,#CONFIG{gis/lon,0}},
|
||||||
obligatoire=oui})]
|
obligatoire=oui})]
|
||||||
</fieldset>
|
</fieldset>
|
||||||
]
|
]
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="col-lg-3 formulaire-col-droite">
|
<div class="col-lg-3 formulaire-col-droite">
|
||||||
<BOUCLE_doc(DOCUMENTS){id_article}{extension==jpg|png|gif}{statut in prop,prepa,publie}{credits=une}>
|
<BOUCLE_doc(DOCUMENTS){id_article}{extension==jpg|png|gif}{statut in prop,prepa,publie}{credits=une}>
|
||||||
<div class="photo-premier-plan">
|
<div class="photo-premier-plan">
|
||||||
|
@ -135,12 +134,12 @@
|
||||||
</select>
|
</select>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
[(#SESSION{statut}|=={0minirezo}|oui)
|
[(#SESSION{statut}|=={0minirezo}|oui)
|
||||||
[(#VAL{}|setenv{id_auteur})]
|
[(#VAL{}|setenv{id_auteur})]
|
||||||
]
|
]
|
||||||
[(#SESSION{statut}|=={0minirezo}|non)
|
[(#SESSION{statut}|=={0minirezo}|non)
|
||||||
[(#SESSION{id_auteur}|setenv{id_auteur})]
|
[(#SESSION{id_auteur}|setenv{id_auteur})]
|
||||||
]
|
]
|
||||||
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend><i class="fas fa-globe"></i> Groupe</legend>
|
<legend><i class="fas fa-globe"></i> Groupe</legend>
|
||||||
|
@ -160,28 +159,28 @@
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<B_mots_fermes>
|
<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="">
|
||||||
<select id="id_emplacements" name="id_emplacements[]" class="chosen" multiple>
|
<select id="id_emplacements" name="id_emplacements[]" class="chosen" multiple>
|
||||||
[(#UNSEUL|=={oui}|oui)
|
[(#UNSEUL|=={oui}|oui)
|
||||||
<option value=""> </option>
|
<option value=""> </option>
|
||||||
]
|
]
|
||||||
<BOUCLE_mots_fermes(GROUPES_MOTS){grigri != tags}{si #SESSION{statut}|=={0minirezo}}>
|
<BOUCLE_mots_fermes(GROUPES_MOTS){grigri != tags}{si #SESSION{statut}|=={0minirezo}}>
|
||||||
<optgroup label="#TITRE">
|
<optgroup label="#TITRE">
|
||||||
<BOUCLE_mot(MOTS){id_groupe}{par rang}>
|
<BOUCLE_mot(MOTS){id_groupe}{par rang}>
|
||||||
#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_fermes>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</B_mots_fermes>
|
</B_mots_fermes>
|
||||||
|
|
||||||
<div class="boutons text-center">
|
<div class="boutons text-center">
|
||||||
|
@ -194,8 +193,6 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="[(#CHEMIN{js/tag_editor.min.js}|timestamp)]" type="text/javascript"></script>
|
<script src="[(#CHEMIN{js/tag_editor.min.js}|timestamp)]" type="text/javascript"></script>
|
||||||
|
|
|
@ -60,7 +60,7 @@ function formulaires_editer_post_charger_dist($id_article=0, $redirect=''){
|
||||||
'L.objet="article"',
|
'L.objet="article"',
|
||||||
'L.id_gis=G.id_gis'
|
'L.id_gis=G.id_gis'
|
||||||
);
|
);
|
||||||
$res = sql_fetsel('G.lat, G.lon', $from, $where);
|
$res = sql_fetsel('G.lat, G.lon', $from, $where) ?? [];
|
||||||
if (count($res)) {
|
if (count($res)) {
|
||||||
$valeurs['lat'] = $res['lat'];
|
$valeurs['lat'] = $res['lat'];
|
||||||
$valeurs['lon'] = $res['lon'];
|
$valeurs['lon'] = $res['lon'];
|
||||||
|
@ -102,7 +102,10 @@ 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'];
|
$taille_max = intval(lire_config('bigup/max_file_size')) * 1000;
|
||||||
|
$largeur_max = (defined('_IMG_MAX_WIDTH') ? _IMG_MAX_WIDTH : 2048);
|
||||||
|
$hauteur_max = (defined('_IMG_MAX_HEIGHT') ? _IMG_MAX_HEIGHT : 2048);
|
||||||
|
$options = ['mime' => 'tout_mime','taille_max'=> $taille_max, 'largeur_max'=> $largeur_max, 'hauteur_max'=> $hauteur_max];
|
||||||
$bigform($options,$erreurs);
|
$bigform($options,$erreurs);
|
||||||
|
|
||||||
return $erreurs;
|
return $erreurs;
|
||||||
|
@ -155,7 +158,7 @@ function formulaires_editer_post_traiter_dist($id_article = 0, $redirect = ''){
|
||||||
);
|
);
|
||||||
$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') ?? [];
|
||||||
if (count($Tauteurs)) {
|
if (count($Tauteurs)) {
|
||||||
$associer = array_diff($Tauteurs, $ids_auteurs);
|
$associer = array_diff($Tauteurs, $ids_auteurs);
|
||||||
$dissocier = array_diff($ids_auteurs, $Tauteurs);
|
$dissocier = array_diff($ids_auteurs, $Tauteurs);
|
||||||
|
@ -188,8 +191,7 @@ function formulaires_editer_post_traiter_dist($id_article = 0, $redirect = ''){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$coches = _request('id_emplacements');
|
$coches = _request('id_emplacements') ?? [];
|
||||||
|
|
||||||
if (count($coches)){
|
if (count($coches)){
|
||||||
$associer = array_diff($coches, $T_ids_mots);
|
$associer = array_diff($coches, $T_ids_mots);
|
||||||
$dissocier = array_diff($T_ids_mots, $coches);
|
$dissocier = array_diff($T_ids_mots, $coches);
|
||||||
|
@ -265,7 +267,8 @@ function formulaires_editer_post_traiter_dist($id_article = 0, $redirect = ''){
|
||||||
$retour = array();
|
$retour = array();
|
||||||
$retour['message_ok'] = "L'article est bien enregistré.";
|
$retour['message_ok'] = "L'article est bien enregistré.";
|
||||||
if ($new==0){
|
if ($new==0){
|
||||||
$redirect .= '&id_article=' . $id_article;
|
//$redirect .= '&id_article=' . $id_article;
|
||||||
|
$redirect = parametre_url($redirect, 'id_article', $id_article);
|
||||||
}
|
}
|
||||||
$retour['redirect'] = $redirect;
|
$retour['redirect'] = $redirect;
|
||||||
|
|
||||||
|
|
|
@ -107,8 +107,7 @@ function formulaires_editer_sujet_traiter_dist($id_article = 0, $id_rubrique, $r
|
||||||
);
|
);
|
||||||
$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') ?? [];
|
||||||
if (count($Tauteurs)) {
|
|
||||||
$associer = array_diff($Tauteurs, $ids_auteurs);
|
$associer = array_diff($Tauteurs, $ids_auteurs);
|
||||||
$dissocier = array_diff($ids_auteurs, $Tauteurs);
|
$dissocier = array_diff($ids_auteurs, $Tauteurs);
|
||||||
|
|
||||||
|
|
125
formulaires/forum.html
Normal file
125
formulaires/forum.html
Normal file
|
@ -0,0 +1,125 @@
|
||||||
|
<div class="formulaire_spip formulaire_forum ajax" id="formulaire_forum">
|
||||||
|
|
||||||
|
[<p class="reponse_formulaire reponse_formulaire_ok success">(#ENV*{message_ok})</p>]
|
||||||
|
[<p class="reponse_formulaire reponse_formulaire_erreur error">(#ENV*{message_erreur})</p>]
|
||||||
|
|
||||||
|
[(#ENV{login_forum_abo})
|
||||||
|
<INCLURE{fond=formulaires/inc-login_forum_abo, env} />
|
||||||
|
]
|
||||||
|
|
||||||
|
[(#ENV{editable})
|
||||||
|
|
||||||
|
|
||||||
|
<form action="#ENV{action}#formulaire_forum" method="post" enctype='multipart/form-data'><div>
|
||||||
|
#ACTION_FORMULAIRE
|
||||||
|
[<input type="hidden" name="id_forum" value="(#ENV*{id_forum})" />]
|
||||||
|
[<fieldset class="moderation_info info">
|
||||||
|
<legend><:forum:bouton_radio_modere_priori:></legend>
|
||||||
|
<p class="explication">(#ENV{modere})<:forum:forum_info_modere:></p>
|
||||||
|
</fieldset>]
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
<legend><:forum:forum_message:></legend>[
|
||||||
|
(#CONFIG{forums_titre}|!={non}|non)
|
||||||
|
<input type="hidden" name="titre" id="titre"[ value="(#ENV{titre})"] />
|
||||||
|
]<div class="editer-groupe">
|
||||||
|
[<div class='editer saisie_mots_forum'>(#INCLURE{fond=formulaires/inc-forum_bloc_choix_mots, table=#ENV*{table}, ajouter_mot})</div>]
|
||||||
|
|
||||||
|
[(#CONFIG{forums_titre}|!={non}|oui)
|
||||||
|
<div class='editer saisie_titre obligatoire[ (#ENV**{erreurs}|table_valeur{titre}|oui)erreur]'>
|
||||||
|
<label for="titre"><:forum:forum_titre:> <:info_obligatoire_02:></label>
|
||||||
|
[<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{titre})</span>]
|
||||||
|
<input type="text" class="text" name="titre" id="titre"[ value="(#ENV{titre})"] size="60" />
|
||||||
|
</div>
|
||||||
|
]
|
||||||
|
|
||||||
|
[(#CONFIG{forums_texte}|!={non}|?{
|
||||||
|
<div class='editer saisie_texte obligatoire[ (#ENV**{erreurs}|table_valeur{texte}|oui)erreur]'>
|
||||||
|
<label for='texte'><:forum:forum_texte|typo:> <:info_obligatoire_02:></label>
|
||||||
|
[<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{texte})</span>]
|
||||||
|
[(#ENV**{config}|table_valeur{afficher_barre}|?{<p class='explication'><:info_creation_paragraphe:></p>,<p class="explication forum_saisie_texte_info"><:forum:forum_saisie_texte_info:></p>})]
|
||||||
|
<textarea name="texte" id="texte" rows="10" cols="60"[(#CONFIG{forums_afficher_barre}|=={non}|oui) class="no_barre"]>[(#ENV{texte})]</textarea>
|
||||||
|
</div>
|
||||||
|
})]
|
||||||
|
</div></fieldset>
|
||||||
|
|
||||||
|
[(#CONFIG{forums_urlref}|!={non}|?{
|
||||||
|
<div class="editer-groupe"><div class='fieldset'>
|
||||||
|
<fieldset>
|
||||||
|
<legend><:forum:forum_lien_hyper:></legend>
|
||||||
|
<p class='explication'><:forum:forum_page_url:></p>
|
||||||
|
<div class="editer-groupe">
|
||||||
|
<div class='editer saisie_nom_site[ (#ENV**{erreurs}|table_valeur{nom_site}|oui)erreur]'>
|
||||||
|
<label for="nom_site"><:forum:forum_titre:></label>
|
||||||
|
[<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{nom_site})</span>]
|
||||||
|
<input type="text" class="text" name="nom_site" id="nom_site" size="40" value="[(#ENV{nom_site})]" />
|
||||||
|
</div>
|
||||||
|
<div class='editer saisie_url_site[ (#ENV**{erreurs}|table_valeur{url_site}|oui)erreur]'>
|
||||||
|
<label for="url_site"><:forum:forum_lien_hyper:></label>
|
||||||
|
[<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{url_site})</span>]
|
||||||
|
<input type="text" class="text url" name="url_site" id="url_site" style="text-align: left;" dir="ltr" size="40" value="[(#ENV{url_site})]" autocapitalize="off" autocorrect="off" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
})]
|
||||||
|
|
||||||
|
[
|
||||||
|
<fieldset>
|
||||||
|
<legend><:medias:bouton_ajouter_document:></legend>
|
||||||
|
<div class="editer-groupe">
|
||||||
|
<div class='editer saisie_document_forum[ (#ENV**{erreurs}|table_valeur{document_forum}|oui)erreur]'>
|
||||||
|
[<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{document_forum})</span>]
|
||||||
|
<input type="hidden" name="cle_ajouter_document" value="(#ENV{cle_ajouter_document})" />
|
||||||
|
[<div id="ajouter_document_up">(#ENV{ajouter_document})
|
||||||
|
<label for="supprimer_document_ajoute"><input type='checkbox' name='supprimer_document_ajoute' id='supprimer_document_ajoute' />
|
||||||
|
<:lien_supprimer:></label>
|
||||||
|
</div>]
|
||||||
|
<div>
|
||||||
|
[<label for="ajouter_document"><:forum:extensions_autorisees:> (#ENV{formats_documents_forum}|is_array|?{#ENV{formats_documents_forum}|join{', '},#ENV{formats_documents_forum}})</label>]
|
||||||
|
<input class='file' type="file" name="ajouter_document" id="ajouter_document"[
|
||||||
|
accept="(#ENV{formats_documents_forum}|is_array|?{#ENV{formats_documents_forum}|join{', '},''})"] />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div></fieldset>
|
||||||
|
]
|
||||||
|
|
||||||
|
[(#REM) Piege a robots spammeurs, dont on change le nom a chaque fois,
|
||||||
|
][<p style="display: none;">
|
||||||
|
<label for="(#ENV{cle_ajouter_document})"><:antispam_champ_vide:></label>
|
||||||
|
<input type="text" class="text" name="#ENV{cle_ajouter_document}" id="#ENV{cle_ajouter_document}" value="#ENV{#ENV{cle_ajouter_document}}" size="10" />
|
||||||
|
</p>]
|
||||||
|
[(#ENV{cle_ajouter_document}|non)
|
||||||
|
<p style="display: none;">
|
||||||
|
<label for="nobot_forum"><:antispam_champ_vide:></label>
|
||||||
|
<input type="text" class="text" name="nobot" id="nobot_forum" value="#ENV{nobot}" size="10" />
|
||||||
|
</p>
|
||||||
|
]
|
||||||
|
<p class="boutons"><input type="submit" class="btn submit" name="previsualiser_message" value="<:forum:forum_voir_avant:>" />[
|
||||||
|
(#ENV{forcer_previsu}|=={non}|et{#ENV*{erreurs}|table_valeur{previsu}|non}|oui)<input type="submit" class="btn submit" name="envoyer_message" value="<:forum:forum_envoyer:>" />]</p>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
[(#REM)
|
||||||
|
Bloc de previsualisation du forum envoye
|
||||||
|
|
||||||
|
Si on valide la previsu, on n'envoie pas en ajax car, si le post reussit
|
||||||
|
il faudra certainement redessiner toute la page pour afficher le nouveau
|
||||||
|
forum
|
||||||
|
|
||||||
|
][<form action="#ENV{action}#formulaire_forum" method="post" class="noajax">
|
||||||
|
<div>
|
||||||
|
#ACTION_FORMULAIRE
|
||||||
|
<input type='hidden' name='titre' value="#ENV{titre}" />
|
||||||
|
<input type='hidden' name='texte' value="#ENV{texte}" />
|
||||||
|
<input type='hidden' name='url_site' value="#ENV{url_site}" />
|
||||||
|
<input type='hidden' name='nom_site' value="#ENV{nom_site}" />
|
||||||
|
[<input type="hidden" name="id_forum" value="(#ENV*{id_forum})" />]
|
||||||
|
[(#INCLURE{fond=formulaires/inc-forum_ajouter_mot, ajouter_mot})]
|
||||||
|
(#ENV**{erreurs}|table_valeur{previsu})
|
||||||
|
</div>
|
||||||
|
</form>]
|
||||||
|
|
||||||
|
]
|
||||||
|
</div>
|
|
@ -14,8 +14,33 @@ if (!defined('_ECRIRE_INC_VERSION')) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
function formulaires_inscription_charger_dist($mode = '', $id = 0, $redirect ='') {
|
/**
|
||||||
global $visiteur_session;
|
*
|
||||||
|
* #FORMULAIRE_INSCRIPTION
|
||||||
|
* #FORMULAIRE_INSCRIPTION{6forum}
|
||||||
|
* #FORMULAIRE_INSCRIPTION{1comite,#ARRAY{id,#ENV{id_rubrique}}}
|
||||||
|
*
|
||||||
|
* Pour rediriger l'utilisateur apres soumission du formulaire vers une page qui lui dit de verifier ses mails par exemple :
|
||||||
|
* #FORMULAIRE_INSCRIPTION{6forum,'',#URL_PAGE{verifiez-vos-mails}}
|
||||||
|
*
|
||||||
|
* Pour rediriger l'utilisateur apres Clic dans le lien du mail de confirmation, pour lui confirmer son inscription par exemple
|
||||||
|
* #FORMULAIRE_INSCRIPTION{6forum,#ARRAY{redirect,#URL_PAGE{confirmation-inscription}}}
|
||||||
|
*
|
||||||
|
* Tout ensemble
|
||||||
|
* #FORMULAIRE_INSCRIPTION{6forum,#ARRAY{redirect,#URL_PAGE{confirmation-inscription}}, #URL_PAGE{verifiez-vos-mails}}
|
||||||
|
*
|
||||||
|
* Syntaxe legacy :
|
||||||
|
* #FORMULAIRE_INSCRIPTION{1comite,#ENV{id_rubrique}}
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @param string $mode
|
||||||
|
* @param array $options
|
||||||
|
* @param string $retour
|
||||||
|
* @return array|false
|
||||||
|
*/
|
||||||
|
function formulaires_inscription_charger_dist($mode = '', $options = [], $retour = '') {
|
||||||
|
|
||||||
|
$id = ($options['id'] ?? 0);
|
||||||
|
|
||||||
// fournir le mode de la config ou tester si l'argument du formulaire est un mode accepte par celle-ci
|
// fournir le mode de la config ou tester si l'argument du formulaire est un mode accepte par celle-ci
|
||||||
// pas de formulaire si le mode est interdit
|
// pas de formulaire si le mode est interdit
|
||||||
|
@ -25,10 +50,11 @@ function formulaires_inscription_charger_dist($mode = '', $id = 0, $redirect =''
|
||||||
}
|
}
|
||||||
|
|
||||||
// pas de formulaire si on a déjà une session avec un statut égal ou meilleur au mode
|
// pas de formulaire si on a déjà une session avec un statut égal ou meilleur au mode
|
||||||
if (isset($visiteur_session['statut']) && ($visiteur_session['statut'] <= $mode)) {
|
if (isset($GLOBALS['visiteur_session']['statut']) and ($GLOBALS['visiteur_session']['statut'] <= $mode)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$valeurs = array('nom_inscription' => '', 'mail_inscription' => '', 'id' => $id, '_mode' => $mode);
|
$valeurs = array('nom_inscription' => '', 'mail_inscription' => '', 'id' => $id, '_mode' => $mode);
|
||||||
|
|
||||||
$valeurs['password'] = '';
|
$valeurs['password'] = '';
|
||||||
|
@ -37,14 +63,21 @@ function formulaires_inscription_charger_dist($mode = '', $id = 0, $redirect =''
|
||||||
return $valeurs;
|
return $valeurs;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Si inscriptions pas autorisees, retourner une chaine d'avertissement
|
|
||||||
function formulaires_inscription_verifier_dist($mode = '', $id = 0, $redirect ='') {
|
|
||||||
|
|
||||||
$erreurs = array();
|
/**
|
||||||
include_spip('inc/config');
|
* Si inscriptions pas autorisees, retourner une chaine d'avertissement
|
||||||
|
*
|
||||||
set_request("_upgrade_auteur"); // securite
|
* @param string $mode
|
||||||
|
* @param array $options
|
||||||
|
* @param string $retour
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
function formulaires_inscription_verifier_dist($mode = '', $options = [], $retour = '') {
|
||||||
|
set_request('_upgrade_auteur'); // securite
|
||||||
include_spip('inc/filtres');
|
include_spip('inc/filtres');
|
||||||
|
$erreurs = array();
|
||||||
|
|
||||||
|
$id = ($options['id'] ?? 0);
|
||||||
|
|
||||||
include_spip('inc/autoriser');
|
include_spip('inc/autoriser');
|
||||||
if (!autoriser('inscrireauteur', $mode, $id)
|
if (!autoriser('inscrireauteur', $mode, $id)
|
||||||
|
@ -54,12 +87,12 @@ function formulaires_inscription_verifier_dist($mode = '', $id = 0, $redirect ='
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$nom = _request('nom_inscription')) {
|
if (!$nom = _request('nom_inscription')) {
|
||||||
$erreurs['nom_inscription'] = _T("info_obligatoire");
|
$erreurs['nom_inscription'] = _T('info_obligatoire');
|
||||||
} elseif (!nom_acceptable(_request('nom_inscription'))) {
|
} elseif (!nom_acceptable(_request('nom_inscription'))) {
|
||||||
$erreurs['nom_inscription'] = _T("ecrire:info_nom_pas_conforme");
|
$erreurs['nom_inscription'] = _T('ecrire:info_nom_pas_conforme');
|
||||||
}
|
}
|
||||||
if (!$mail = strval(_request('mail_inscription'))) {
|
if (!$mail = strval(_request('mail_inscription'))) {
|
||||||
$erreurs['mail_inscription'] = _T("info_obligatoire");
|
$erreurs['mail_inscription'] = _T('info_obligatoire');
|
||||||
}
|
}
|
||||||
|
|
||||||
// compatibilite avec anciennes fonction surchargeables
|
// compatibilite avec anciennes fonction surchargeables
|
||||||
|
@ -71,7 +104,7 @@ function formulaires_inscription_verifier_dist($mode = '', $id = 0, $redirect ='
|
||||||
} else {
|
} else {
|
||||||
$f = 'test_inscription_dist';
|
$f = 'test_inscription_dist';
|
||||||
}
|
}
|
||||||
$declaration = $f($mode, $mail, $nom, $id);
|
$declaration = $f($mode, $mail, $nom, $options);
|
||||||
if (is_string($declaration)) {
|
if (is_string($declaration)) {
|
||||||
$k = (strpos($declaration, 'mail') !== false) ?
|
$k = (strpos($declaration, 'mail') !== false) ?
|
||||||
'mail_inscription' : 'nom_inscription';
|
'mail_inscription' : 'nom_inscription';
|
||||||
|
@ -79,23 +112,25 @@ function formulaires_inscription_verifier_dist($mode = '', $id = 0, $redirect ='
|
||||||
} else {
|
} else {
|
||||||
include_spip('base/abstract_sql');
|
include_spip('base/abstract_sql');
|
||||||
|
|
||||||
if ($row = sql_fetsel("statut, id_auteur, login, email", "spip_auteurs",
|
if ($row = sql_fetsel(
|
||||||
"email=" . sql_quote($declaration['email']))
|
'statut, id_auteur, login, email',
|
||||||
) {
|
'spip_auteurs',
|
||||||
if (($row['statut'] == '5poubelle') and !$declaration['pass']) // irrecuperable
|
'email=' . sql_quote($declaration['email'])
|
||||||
{
|
)) {
|
||||||
|
if (($row['statut'] == '5poubelle') and empty($declaration['pass'])) {
|
||||||
|
// irrecuperable
|
||||||
$erreurs['message_erreur'] = _T('form_forum_access_refuse');
|
$erreurs['message_erreur'] = _T('form_forum_access_refuse');
|
||||||
} else {
|
} else {
|
||||||
if (($row['statut'] != 'nouveau') and !$declaration['pass']) {
|
if (($row['statut'] != 'nouveau') and empty($declaration['pass'])) {
|
||||||
if (intval($row['statut']) > intval($mode)) {
|
if (intval($row['statut']) > intval($mode)) {
|
||||||
set_request("_upgrade_auteur", $row['id_auteur']);
|
set_request('_upgrade_auteur', $row['id_auteur']);
|
||||||
} else {
|
} else {
|
||||||
// deja inscrit
|
// deja inscrit
|
||||||
$erreurs['message_erreur'] = _T('form_forum_email_deja_enregistre');
|
$erreurs['message_erreur'] = _T('form_forum_email_deja_enregistre');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
spip_log($row['id_auteur'] . " veut se reinscrire");
|
spip_log($row['id_auteur'] . ' veut se resinscrire');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -121,20 +156,34 @@ function formulaires_inscription_verifier_dist($mode = '', $id = 0, $redirect ='
|
||||||
return $erreurs;
|
return $erreurs;
|
||||||
}
|
}
|
||||||
|
|
||||||
function formulaires_inscription_traiter_dist($mode = '', $id = 0, $redirect ='') {
|
/**
|
||||||
|
* Si inscriptions pas autorisees, retourner une chaine d'avertissement
|
||||||
|
*
|
||||||
|
* @param string $mode
|
||||||
|
* @param array $options
|
||||||
|
* @param string $retour
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
function formulaires_inscription_traiter_dist($mode = '', array $options = [], $retour = '') {
|
||||||
|
if ($retour) {
|
||||||
|
refuser_traiter_formulaire_ajax();
|
||||||
|
}
|
||||||
|
|
||||||
include_spip('inc/filtres');
|
include_spip('inc/filtres');
|
||||||
include_spip('inc/autoriser');
|
include_spip('inc/autoriser');
|
||||||
|
|
||||||
|
$id = ($options['id'] ?? 0);
|
||||||
|
|
||||||
if (!autoriser('inscrireauteur', $mode, $id)) {
|
if (!autoriser('inscrireauteur', $mode, $id)) {
|
||||||
$desc = "rien a faire ici";
|
$desc = 'rien a faire ici';
|
||||||
} else {
|
} else {
|
||||||
if ($id_auteur = _request('_upgrade_auteur')) {
|
if ($id_auteur = _request('_upgrade_auteur')) {
|
||||||
include_spip("action/editer_auteur");
|
include_spip('action/editer_auteur');
|
||||||
autoriser_exception("modifier", "auteur", $id_auteur);
|
autoriser_exception('modifier', 'auteur', $id_auteur);
|
||||||
autoriser_exception("instituer", "auteur", $id_auteur);
|
autoriser_exception('instituer', 'auteur', $id_auteur);
|
||||||
auteur_modifier($id_auteur, array('statut' => $mode));
|
auteur_modifier($id_auteur, array('statut' => $mode));
|
||||||
autoriser_exception("modifier", "auteur", $id_auteur, false);
|
autoriser_exception('modifier', 'auteur', $id_auteur, false);
|
||||||
autoriser_exception("instituer", "auteur", $id_auteur, false);
|
autoriser_exception('instituer', 'auteur', $id_auteur, false);
|
||||||
|
|
||||||
return array('message_ok' => _T('form_forum_email_deja_enregistre'), 'id_auteur' => $id_auteur);
|
return array('message_ok' => _T('form_forum_email_deja_enregistre'), 'id_auteur' => $id_auteur);
|
||||||
}
|
}
|
||||||
|
@ -148,7 +197,7 @@ function formulaires_inscription_traiter_dist($mode = '', $id = 0, $redirect =''
|
||||||
$mail_destination = sql_getfetsel('email','spip_auteurs',"id_auteur=" . lire_config('balint/id_contact'));
|
$mail_destination = sql_getfetsel('email','spip_auteurs',"id_auteur=" . lire_config('balint/id_contact'));
|
||||||
|
|
||||||
$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, $options);
|
||||||
|
|
||||||
// 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 de l'AIPB :
|
||||||
|
@ -195,7 +244,16 @@ function formulaires_inscription_traiter_dist($mode = '', $id = 0, $redirect =''
|
||||||
return array('message_erreur' => $desc);
|
return array('message_erreur' => $desc);
|
||||||
} // OK
|
} // OK
|
||||||
else {
|
else {
|
||||||
return array('redirect' => $redirect, 'message_ok' => _T('form_forum_identifiant_mail'), 'id_auteur' => $desc['id_auteur']);
|
$retours = array(
|
||||||
|
'message_ok' => _T('form_forum_identifiant_mail'),
|
||||||
|
'id_auteur' => $desc['id_auteur'],
|
||||||
|
);
|
||||||
|
|
||||||
|
// Si on demande à rediriger juste après validation du formulaire
|
||||||
|
if ($retour) {
|
||||||
|
$retours['redirect'] = $retour;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $retours;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<B_a_la_une>
|
<B_a_la_une>
|
||||||
<div class="row liste-articles">
|
<div class="row liste-articles">
|
||||||
#ANCRE_PAGINATION
|
#ANCRE_PAGINATION
|
||||||
<BOUCLE_a_la_une(ARTICLES){titre_mot=Actualités}{par rang}{pagination 3}>
|
<BOUCLE_a_la_une(ARTICLES){titre_mot=Actualités}{par rang}{!par date}{pagination 3}>
|
||||||
<div class="col-lg-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>
|
||||||
|
|
|
@ -1,12 +1,13 @@
|
||||||
[(#REM) affichage du bloc d'un article ]
|
[(#REM) affichage du bloc d'un article ]
|
||||||
<BOUCLE_art(ARTICLES){id_article = #ENV{id_article}}{statut?}>
|
<BOUCLE_art(ARTICLES){id_article=#ENV{id_article}}{statut?}>
|
||||||
|
#SET{url_page,#URL_ARTICLE} [(#STATUT|=={prepa}|oui) #SET{url_page, #URL_PAGE{editer_article, id_article=#ID_ARTICLE}}]
|
||||||
<div class="bloc-article">
|
<div class="bloc-article">
|
||||||
<div class="bloc-contenu">
|
<div class="bloc-contenu">
|
||||||
<a href="#URL_ARTICLE" title="Lire l'article">
|
<a href="#GET{url_page}" title="Lire l'article">
|
||||||
<INCLURE{fond=inclure/photo_article,env,id_article=#ENV{id_article},ajax=recharger_photo}>
|
<INCLURE{fond=inclure/photo_article,env,id_article=#ENV{id_article},ajax=recharger_photo}>
|
||||||
</a>
|
</a>
|
||||||
<div class="bloc-textes">
|
<div class="bloc-textes">
|
||||||
<a href="#URL_ARTICLE" title="Lire l'article">
|
<a href="#GET{url_page}" title="Lire l'article">
|
||||||
<h4 class="#EDIT{titre}">#TITRE</h4>
|
<h4 class="#EDIT{titre}">#TITRE</h4>
|
||||||
</a>
|
</a>
|
||||||
<div class="infos-article">
|
<div class="infos-article">
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<B_articles>
|
<B_articles>
|
||||||
<div class="row liste-articles-encadres">
|
<div class="row liste-articles-encadres">
|
||||||
#ANCRE_PAGINATION
|
#ANCRE_PAGINATION
|
||||||
<BOUCLE_articles(ARTICLES){statut=prepa}{! par date}{pagination 6}>
|
<BOUCLE_articles(ARTICLES){statut=prepa}{! par date}{pagination 12}>
|
||||||
<div class="col-lg-4 mt-4 mt-lg-3">
|
<div class="col-lg-4 mt-4 mt-lg-3">
|
||||||
<INCLURE{fond=inclure/bloc_article, env, statut, id_article,evenement=oui}/>
|
<INCLURE{fond=inclure/bloc_article, env, statut, id_article,evenement=oui}/>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<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 les groupes réguliers, par ville]
|
||||||
<BOUCLE_villes(ARTICLES){id_rubrique=#ENV{id_rubrique}}{surtitre!=""}{fusion surtitre}>
|
<BOUCLE_villes(ARTICLES){id_rubrique=#ENV{id_rubrique}}{surtitre!=""}{fusion surtitre}>
|
||||||
<div class="col-sm-6 col-lg-3 mt-4 mt-lg-0">
|
<div class="col-sm-6 col-lg-3 mt-4 mt-lg-0">
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
||||||
</BOUCLE_villes>
|
</BOUCLE_villes>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
[(#REM) on affiche un groupe ponctuel pour les pays n'ayant pas de groupe régulier]
|
[(#REM) on affiche ensuite un groupe ponctuel pour les pays n'ayant pas de groupe régulier]
|
||||||
<BOUCLE_ponctuel(ARTICLES){id_rubrique=#ENV{id_rubrique}}{surtitre=""}{0,1}>
|
<BOUCLE_ponctuel(ARTICLES){id_rubrique=#ENV{id_rubrique}}{surtitre=""}{0,1}>
|
||||||
<div class="bloc-groupe col mt-4">
|
<div class="bloc-groupe col mt-4">
|
||||||
[<h3 class="h4 #EDIT{titre}">(#TITRE|sinon{"Groupes ponctuels"})</h3>]
|
[<h3 class="h4 #EDIT{titre}">(#TITRE|sinon{"Groupes ponctuels"})</h3>]
|
||||||
|
|
|
@ -14,17 +14,40 @@
|
||||||
[<div class="titre_img #EDIT{titre}">(#TITRE|sinon{[(#SESSION{statut}|=={0minirezo}|oui)<i>Double cliquez pour ajouter un titre</i>]})</div>]
|
[<div class="titre_img #EDIT{titre}">(#TITRE|sinon{[(#SESSION{statut}|=={0minirezo}|oui)<i>Double cliquez pour ajouter un titre</i>]})</div>]
|
||||||
|
|
||||||
<div class="boutons_actions">
|
<div class="boutons_actions">
|
||||||
|
[(#INFO_ID_SECTEUR{article,#ENV{id_article}}|=={#CONFIG{balint/id_rub_groupes}}|oui)
|
||||||
<div class="premier-plan">
|
<div class="premier-plan">
|
||||||
[(#TYPE_DOCUMENT|in_array{#LISTE{JPEG,PNG,GIF}}|oui)
|
[(#TYPE_DOCUMENT|in_array{#LISTE{JPEG,PNG,GIF}}|oui)
|
||||||
[(#CREDITS*|=={une}|?{
|
[(#CREDITS*|=={une}|?{
|
||||||
<i class="fas fa-check green"></i> Au premier plan
|
<i class="fas fa-flag green"></i> Bannière pour [(#INFO_SURTITRE{article, #ID_ARTICLE})]
|
||||||
,
|
,
|
||||||
<a class="btn btn_une" href="[(#URL_ACTION_AUTEUR{promouvoir_photo, [(#ID_DOCUMENT)][-(#ENV{id_article})],#SELF})]" title="Mettre en première photo">
|
<a class="btn btn_une" href="[(#URL_ACTION_AUTEUR{choisir_banniere, [(#ID_DOCUMENT)][-(#ENV{id_article})],#SELF})]" title="Mettre en première photo">
|
||||||
<i class="fas fa-check"></i> Mettre au premier plan
|
<i class="fas fa-flag"></i> Bannière pour [(#INFO_SURTITRE{article, #ID_ARTICLE})]
|
||||||
</a>
|
</a>
|
||||||
})]
|
})]
|
||||||
]
|
]
|
||||||
</div>
|
</div>
|
||||||
|
<div class="premier-plan">
|
||||||
|
[(#TYPE_DOCUMENT|in_array{#LISTE{JPEG,PNG,GIF}}|oui)
|
||||||
|
[(#COMPTEUR_BOUCLE|=={#TOTAL_BOUCLE}|oui)
|
||||||
|
<i class="fas fa-picture-o green"></i> Photo du groupe
|
||||||
|
]
|
||||||
|
]
|
||||||
|
</div>
|
||||||
|
]
|
||||||
|
|
||||||
|
[(#INFO_ID_SECTEUR{article,#ENV{id_article}}|=={#CONFIG{balint/id_rub_articles}}|oui)
|
||||||
|
<div class="premier-plan">
|
||||||
|
[(#TYPE_DOCUMENT|in_array{#LISTE{JPEG,PNG,GIF}}|oui)
|
||||||
|
[(#CREDITS*|=={une}|?{
|
||||||
|
<i class="fas fa-star green"></i> Au premier plan [(#INFO_SURTITRE{article, #ID_ARTICLE})]
|
||||||
|
,
|
||||||
|
<a class="btn btn_une" href="[(#URL_ACTION_AUTEUR{promouvoir_photo, [(#ID_DOCUMENT)][-(#ENV{id_article})],#SELF})]" title="Mettre en première photo">
|
||||||
|
<i class="fas fa-star"></i> Mettre au premier plan
|
||||||
|
</a>
|
||||||
|
})]
|
||||||
|
]
|
||||||
|
</div>
|
||||||
|
]
|
||||||
<a class="btn btn_poubelle" href="[(#URL_ACTION_AUTEUR{supprimer_photo, [(#ID_DOCUMENT)][-(#ENV{id_article})],#SELF})]" title="Supprimer la photo">
|
<a class="btn btn_poubelle" href="[(#URL_ACTION_AUTEUR{supprimer_photo, [(#ID_DOCUMENT)][-(#ENV{id_article})],#SELF})]" title="Supprimer la photo">
|
||||||
<i class="fas fa-trash red"></i> Supprimer
|
<i class="fas fa-trash red"></i> Supprimer
|
||||||
</a>
|
</a>
|
||||||
|
|
|
@ -5,11 +5,9 @@
|
||||||
|
|
||||||
<div class="page-groupes">
|
<div class="page-groupes">
|
||||||
<div class="w-100">
|
<div class="w-100">
|
||||||
|
|
||||||
<INCLURE{fond=inclure/menu-espace_membre,env}>
|
<INCLURE{fond=inclure/menu-espace_membre,env}>
|
||||||
|
|
||||||
|
[(#REM) ENV{rub_forum}|non)
|
||||||
[(#ENV{rub_forum}|non)
|
|
||||||
<INCLURE{fond=inclure/bouton_ordre,env,ordre=#ENV{ordre,ASC},objet=mot}>
|
<INCLURE{fond=inclure/bouton_ordre,env,ordre=#ENV{ordre,ASC},objet=mot}>
|
||||||
]
|
]
|
||||||
[(#ENV{rub_forum}|oui)
|
[(#ENV{rub_forum}|oui)
|
||||||
|
@ -26,7 +24,7 @@
|
||||||
<B_articles>
|
<B_articles>
|
||||||
<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 date}{pagination 8}{si #ENV{rub_forum}|non}>
|
||||||
<div class="col-lg-3 mt-4 mt-lg-3">
|
<div class="col-lg-3 mt-4 mt-lg-3">
|
||||||
<INCLURE{fond=inclure/bloc_article, env, id_article}/>
|
<INCLURE{fond=inclure/bloc_article, env, id_article}/>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
[(#REM) On affiche tous les groupes appartenant à la même Ville]
|
[(#REM) On récupère l'id_rubrique s'il n'a pas été passé en paramètre]
|
||||||
|
[(#ENV{id_rubrique,#INFO_ID_RUBRIQUE{article,#ENV{id_article}}}|setenv{id_rubrique})]
|
||||||
|
|
||||||
|
[(#REM) On affiche tous les groupes appartenant à la même Ville]
|
||||||
#SET{ville,#INFO_SURTITRE{article,#ENV{id_article}}}
|
#SET{ville,#INFO_SURTITRE{article,#ENV{id_article}}}
|
||||||
|
|
||||||
[(#REM) On récupère les id de tous les groupes de la ville pour les actualités et les images]
|
[(#REM) On récupère les id de tous les groupes de la ville pour les actualités et les images]
|
||||||
[(#SET{groupes,#ARRAY})]
|
[(#SET{groupes,#ARRAY})]
|
||||||
|
|
||||||
<BOUCLE_groupes(ARTICLES){surtitre = #GET{ville}}{id_secteur=#CONFIG{balint/id_rub_groupes}}>
|
<BOUCLE_groupes(ARTICLES){surtitre = #GET{ville}}{id_secteur=#CONFIG{balint/id_rub_groupes}}>
|
||||||
[(#SET{groupes,#GET{groupes}|push{#ID_ARTICLE}})]
|
[(#SET{groupes,#GET{groupes}|push{#ID_ARTICLE}})]
|
||||||
</BOUCLE_groupes>
|
</BOUCLE_groupes>
|
||||||
|
@ -11,7 +14,7 @@
|
||||||
<a href="[(#URL_PAGE{groupes,id_rubrique=#ENV{id_rubrique}})]" class="ajax"><i class="fas fa-arrow-circle-left"></i> Retour</a>
|
<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">
|
<div class="banniere-ville mt-4 mb-4">
|
||||||
<BOUCLE_banniere(DOCUMENTS){id_article IN #GET{groupes}}{extension==jpg|png|gif}{!par date}{0,1}>
|
<BOUCLE_banniere(DOCUMENTS){id_article IN #GET{groupes}}{extension==jpg|png|gif}{!par credits}{!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})]
|
||||||
|
@ -32,9 +35,17 @@
|
||||||
[<h3 class="h4">(#TITRE)</h3>]
|
[<h3 class="h4">(#TITRE)</h3>]
|
||||||
[(#AUTORISER{modifier, article, #ID_ARTICLE})
|
[(#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>
|
<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="row">
|
||||||
<div class="col-md-8">
|
<div class="col-md-4">
|
||||||
|
<BOUCLE_photo(DOCUMENTS){id_article}{extension==jpg|png|gif}{! par date}{0,1}>
|
||||||
|
<div class="mb-4 mb-lg-0">
|
||||||
|
[(#FICHIER|image_recadre{400:250,-,focus}|image_reduire{400,250})]
|
||||||
|
</div>
|
||||||
|
</BOUCLE_photo>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-4">
|
||||||
[<div class="texte"><strong>Adresse :</strong> (#SOUSTITRE)</div>]
|
[<div class="texte"><strong>Adresse :</strong> (#SOUSTITRE)</div>]
|
||||||
[<div class="texte"><strong>Fréquence :</strong> (#DESCRIPTIF|textebrut)</div>]
|
[<div class="texte"><strong>Fréquence :</strong> (#DESCRIPTIF|textebrut)</div>]
|
||||||
<div class="texte">#TEXTE</div>
|
<div class="texte">#TEXTE</div>
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
<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)
|
[(#REM) 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]">
|
<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>
|
<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>
|
</li>
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
<li class="nav-item dropdown [(#SI_PAGE{seminaires}|oui) active]">
|
<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>
|
<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">
|
<div class="dropdown-menu" aria-labelledby="seminairesDropdown">
|
||||||
<BOUCLE_menu_seminaires(ARTICLES){titre_mot=seminaires}{par titre}>
|
<BOUCLE_menu_seminaires(ARTICLES){titre_mot=seminaires}{par rang}>
|
||||||
<a class="dropdown-item" href="[(#URL_ARTICLE)]">#TITRE</a>
|
<a class="dropdown-item" href="[(#URL_ARTICLE)]">#TITRE</a>
|
||||||
</BOUCLE_menu_seminaires>
|
</BOUCLE_menu_seminaires>
|
||||||
</div>
|
</div>
|
||||||
|
@ -56,7 +56,7 @@
|
||||||
<BOUCLE_menu_prive(MOTS){id_groupe=#CONFIG{balint/id_mots_espace_membre}}{par rang}{tout}>
|
<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>
|
<a class="dropdown-item" href="[(#URL_PAGE{espace_membre}|parametre_url{id_mot,#ID_MOT})]">#TITRE</a>
|
||||||
</BOUCLE_menu_prive>
|
</BOUCLE_menu_prive>
|
||||||
[(#AUTORISER{voir,forum,#CONFIG{balint/id_rub_forum_prive}}|oui)
|
[(#REM) 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>
|
<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>
|
</div>
|
||||||
|
|
|
@ -1,14 +1,29 @@
|
||||||
#CACHE{0}
|
#CACHE{0}
|
||||||
[(#ENV{id_article}|=={0}|oui) [(#SESSION{id_auteur}|mult{-1}|setenv{id_article})] ]
|
[(#ENV{id_article}|=={0}|oui) [(#SESSION{id_auteur}|mult{-1}|setenv{id_article})] ]
|
||||||
|
|
||||||
|
[(#REM) On récupère les id de tous les groupes de la ville pour les actualités et les images]
|
||||||
|
#SET{ville,#INFO_SURTITRE{article,#ENV{id_article}}}
|
||||||
|
[(#SET{groupes,#ARRAY})]
|
||||||
|
<BOUCLE_groupes(ARTICLES){surtitre = #GET{ville}}{id_secteur=#CONFIG{balint/id_rub_groupes}}{si #ENV{groupe}|=={oui}}>
|
||||||
|
[(#SET{groupes,#GET{groupes}|push{#ID_ARTICLE}})]
|
||||||
|
</BOUCLE_groupes>
|
||||||
|
|
||||||
<div class="photo-article">
|
<div class="photo-article">
|
||||||
<BOUCLE_doc(DOCUMENTS){id_article?}{extension==jpg|png|gif}{statut in prop,prepa,publie}{0,1}{!par credits}{!par id_document}>
|
<BOUCLE_test(CONDITION){si #ENV{groupe}|!={oui}}>
|
||||||
[(#FICHIER|balise_img{#TITRE}|image_recadre{720:360,-,focus,transparent}|image_reduire{720,360})]
|
<BOUCLE_doc(DOCUMENTS){id_article?}{extension==jpg|png|gif}{statut in prop,prepa,publie}{0,1}{!par credits}{!par id_document}>
|
||||||
</BOUCLE_doc>
|
[(#FICHIER|balise_img{#TITRE}|image_recadre{720:360,-,focus,transparent}|image_reduire{720,360})]
|
||||||
|
</BOUCLE_doc>
|
||||||
<div class="txtcenter placeholder">
|
<div class="txtcenter placeholder">
|
||||||
[(#ENV{groupe}|=={oui}|?{
|
[(#CHEMIN{img/journal.png}|balise_img{#TITRE}|image_recadre{720:360,+,center,transparent}|image_reduire{720,360})]
|
||||||
[(#CHEMIN{img/ville.png}|balise_img{#TITRE}|image_recadre{720:360,+,center,transparent}|image_reduire{720,360})],
|
|
||||||
[(#CHEMIN{img/journal.png}|balise_img{#TITRE}|image_recadre{720:360,+,center,transparent}|image_reduire{720,360})]
|
|
||||||
})]
|
|
||||||
</div>
|
</div>
|
||||||
<//B_doc>
|
<//B_doc>
|
||||||
|
</BOUCLE_test>
|
||||||
|
<BOUCLE_doc_groupe(DOCUMENTS){id_article IN #GET{groupes}}{extension==jpg|png|gif}{statut in prop,prepa,publie}{0,1}{!par date}{!par id_document}>
|
||||||
|
[(#FICHIER|balise_img{#TITRE}|image_recadre{720:360,-,focus,transparent}|image_reduire{720,360})]
|
||||||
|
</BOUCLE_doc_groupe>
|
||||||
|
<div class="txtcenter placeholder">
|
||||||
|
[(#CHEMIN{img/ville.png}|balise_img{#TITRE}|image_recadre{720:360,+,center,transparent}|image_reduire{720,360})]
|
||||||
|
</div>
|
||||||
|
<//B_doc_groupe>
|
||||||
|
<//B_test>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<B_articles>
|
<B_articles>
|
||||||
<div class="row liste-articles-encadres">
|
<div class="row liste-articles-encadres">
|
||||||
#ANCRE_PAGINATION
|
#ANCRE_PAGINATION
|
||||||
<BOUCLE_articles(ARTICLES){titre_mot=seminaires}{par rang}{pagination 6}>
|
<BOUCLE_articles(ARTICLES){titre_mot=seminaires}{par rang}{!par date}{pagination 6}>
|
||||||
<div class="col-lg-4 mt-4 mt-lg-3">
|
<div class="col-lg-4 mt-4 mt-lg-3">
|
||||||
<INCLURE{fond=inclure/bloc_article, env, id_article,evenement=oui}/>
|
<INCLURE{fond=inclure/bloc_article, env, id_article,evenement=oui}/>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -7,7 +7,7 @@ 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' => 'Cette adresse email est déjà enregistrée. Veuillez réinitialiser votre mot de passe <a href="' . generer_url_public('spip_pass') . '" class="text-success"><b>en suivant ce lien</b></a>.</br>Avec nos excuses pour ce contretemps.',
|
||||||
'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."
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
<INCLURE{fond=structure,env,type-page=espace_membre,id_forum=#CONFIG{balint/id_rub_forum}} />
|
<INCLURE{fond=structure,env,type-page=espace_membre,rub_forum=#CONFIG{balint/id_rub_forum}} />
|
|
@ -3,7 +3,7 @@
|
||||||
categorie="squelette"
|
categorie="squelette"
|
||||||
version="1.0.0"
|
version="1.0.0"
|
||||||
etat="stable"
|
etat="stable"
|
||||||
compatibilite="[3.1.7;3.3.*]"
|
compatibilite="[4.0.0;4.*]"
|
||||||
logo="img/balint_64.png"
|
logo="img/balint_64.png"
|
||||||
documentation=""
|
documentation=""
|
||||||
schema="1.0.7"
|
schema="1.0.7"
|
||||||
|
|
85
urls/propres.php
Normal file
85
urls/propres.php
Normal file
|
@ -0,0 +1,85 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Gestion des URLs propres : surcharge (voir @notes pour le pourquoi et le comment)
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!defined("_ECRIRE_INC_VERSION")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrouve le fond et les paramètres d'une URL propre
|
||||||
|
* ou produit l'URL propre d'un objet, en fonction des paramètres passés.
|
||||||
|
*
|
||||||
|
* @note
|
||||||
|
* À défaut de pipeline dont on pourrait se servir, on est obligé de surcharger
|
||||||
|
* la fonction urls_propres_dist pour gérer correctement les URLS des pages.
|
||||||
|
* Néammoins, une fois le cas des pages évacué, c'est toujours la fonction dist qui est utilisée.
|
||||||
|
*
|
||||||
|
* La fonction dist est prévue pour gérer les URLs des objets.
|
||||||
|
* Pour un objet donné, elle va chercher l'URL la plus récente dans `spip_urls`.
|
||||||
|
* Or toutes les URLs des pages seraient identifiées comme se rapportant au même objet, avec type='' et id_objet=0,
|
||||||
|
* et du coup seraient redirigées vers la même URL : celle la plus récente.
|
||||||
|
*
|
||||||
|
* On ne serait pas obligé de surcharger on utilisant type=`page` et id_objet=N pour les URLs des pages,
|
||||||
|
* mais le contexte retourné serait erroné : `id_page = N` au lieu de `page = X`
|
||||||
|
*
|
||||||
|
* Valeurs des paramètres quand il s'agit d'une page :
|
||||||
|
* $i = URL personnalisée
|
||||||
|
* $entite = ''
|
||||||
|
*
|
||||||
|
* @param integer | string
|
||||||
|
* URL si on veut retourner son fond et ses paramètres
|
||||||
|
* Numéro d'un objet si on veut retourner son URL propre
|
||||||
|
* @param string $entite
|
||||||
|
* Fond si on veut retourner le fond et les paramètres d'une URL
|
||||||
|
* Type d'un objet si on veut retourner son URL propre
|
||||||
|
* @param array | string $args
|
||||||
|
* @param string $ancre
|
||||||
|
* @return array
|
||||||
|
* Fond et paramètres d'une URL propre : [contexte],[type],[url_redirect],[fond]
|
||||||
|
* ou URL décodée de l'objet donné
|
||||||
|
*/
|
||||||
|
function urls_propres_decoder_url($i, $entite, $args = '', $ancre = '') {
|
||||||
|
include_spip('base/abstract_sql');
|
||||||
|
// 1) Gestion des pages (voir @note)
|
||||||
|
if (is_string($i) // c'est une URL et pas un id
|
||||||
|
and strlen($i)
|
||||||
|
and strpos($i, '/') === false // ce n'est pas une URL arborescente
|
||||||
|
and !$entite // ce n'est pas l'URL d'un objet
|
||||||
|
and $url = strtok($i, '?') // retirer les query strings
|
||||||
|
and $ligne = sql_fetsel('page, url', 'spip_urls', array('url = ' . sql_quote($url), 'page != \'\''))
|
||||||
|
) {
|
||||||
|
$fond = $page = $ligne['page'];
|
||||||
|
// récupérer le contexte
|
||||||
|
if (is_array($args)){
|
||||||
|
$contexte = $args;
|
||||||
|
} else {
|
||||||
|
$contexte = array();
|
||||||
|
}
|
||||||
|
$contexte['page'] = $page;
|
||||||
|
$retour = array(
|
||||||
|
$contexte,
|
||||||
|
$entite,
|
||||||
|
'',
|
||||||
|
$fond,
|
||||||
|
);
|
||||||
|
|
||||||
|
// 2) S'il ne s'agit pas d'une page, appel de la fonction dist
|
||||||
|
} else {
|
||||||
|
include_spip(_DIR_PLUGIN_URLS.'urls/propres');
|
||||||
|
$retour = urls_propres_decoder_url_dist($i, $entite, $args, $ancre);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $retour;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* include de tout le fichier urls/propres.php du plugin-dist url_etendues
|
||||||
|
* pour avoir toutes les fonctions que n'a pas la surcharge du plugin urls_pages
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
include_spip('plugins-dist/urls_etendues/urls/propres');
|
||||||
|
|
Loading…
Add table
Reference in a new issue