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) {
|
||||
|
||||
if(in_array($qui['id_auteur'],auteurs_objet('article',$id))){
|
||||
if (in_array($qui['id_auteur'],auteurs_objet('article',$id))){
|
||||
return true;
|
||||
}
|
||||
else{
|
||||
else {
|
||||
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) {
|
||||
// Seul les admins et l'auteur peuvent le supprimer
|
||||
if(in_array($qui['id_auteur'],auteurs_objet('article',$id))){
|
||||
// Seul les admins et l'auteur peuvent le supprimer
|
||||
if (in_array($qui['id_auteur'],auteurs_objet('article',$id))){
|
||||
return true;
|
||||
}
|
||||
else{
|
||||
else {
|
||||
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) {
|
||||
$id_auteur = $qui['id_auteur'];
|
||||
// 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
|
||||
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'){
|
||||
return true;
|
||||
}
|
||||
|
@ -178,4 +178,6 @@ function autoriser_forum_voir($faire, $type, $id, $qui, $opt) {
|
|||
if ($qui['statut']=='0minirezo'){
|
||||
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('_BOUCLE_PROFILER', 5000);
|
||||
define('_LOG_FILTRE_GRAVITE', 8);
|
||||
|
@ -32,7 +32,7 @@ function debug_spip(){
|
|||
|
||||
define('_NO_CACHE', -1);
|
||||
define('_INTERDIRE_COMPACTE_HEAD_ECRIRE', true);
|
||||
}
|
||||
}*/
|
||||
//debug_spip();
|
||||
|
||||
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
|
||||
$GLOBALS['flag_preserver'] = true;
|
||||
//$GLOBALS['flag_preserver'] = true;
|
||||
|
||||
// proteger le #FORMULAIRE_NOUS_CONTACTER
|
||||
$GLOBALS['formulaires_no_spam'][] = 'nous_contacter';
|
|
@ -2,7 +2,7 @@
|
|||
#SET{mots,#ARRAY}
|
||||
#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}}>
|
||||
[(#SET{mots,#GET{mots}|push{#TITRE}})]
|
||||
[(#TYPE|=={Médiathèque}|oui)
|
||||
|
|
|
@ -1,54 +1,53 @@
|
|||
[(#REM) On affiche la première rubrique par défaut]
|
||||
|
||||
<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
|
||||
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
|
||||
}
|
||||
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 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
|
||||
}
|
||||
?>
|
||||
</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>
|
||||
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
<div>
|
||||
<h1>Création d'un compte étudiant</h1>
|
||||
|
||||
[(#FORMULAIRE_INSCRIPTION)]
|
||||
|
||||
</div>
|
|
@ -4,7 +4,7 @@
|
|||
<B_modifier_auteur>
|
||||
|
||||
<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">
|
||||
#FORMULAIRE_EDITER_AUTEUR{#ID_AUTEUR,#URL_PAGE{auteur}|parametre_url{id_auteur,#ENV{id_auteur}}}
|
||||
</div>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<section id="presentation-accueil">
|
||||
<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">
|
||||
<BOUCLE_presentation(ARTICLES){grigri=presentation_accueil}{0,1}{! par date}>
|
||||
<div id="images-presentation" class="col-lg">
|
||||
|
@ -35,7 +35,7 @@
|
|||
<aside class="col-lg-3">
|
||||
<div id="agenda" class="mt-4 mt-lg-0">
|
||||
<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">
|
||||
<a href="#URL_ARTICLE">
|
||||
<h3 class="h5">#TITRE</h3>
|
||||
|
|
|
@ -810,14 +810,14 @@ body{
|
|||
}
|
||||
.btn_poubelle{
|
||||
color: red;
|
||||
:hover{
|
||||
color: #ee9e9e;
|
||||
&:hover{
|
||||
color: #b30000;
|
||||
}
|
||||
}
|
||||
.btn_une{
|
||||
color: black;
|
||||
:hover{
|
||||
color: grey;
|
||||
color: grey;
|
||||
&:hover{
|
||||
color: black;
|
||||
}
|
||||
}
|
||||
.boutons_actions {
|
||||
|
@ -827,18 +827,19 @@ body{
|
|||
justify-content: space-around;
|
||||
align-items: center;
|
||||
background-color: $gris-clair;
|
||||
i.green {
|
||||
padding: .6rem;
|
||||
color: rgb(28, 158, 28);
|
||||
i {
|
||||
padding:0 0.6rem;
|
||||
}
|
||||
a {
|
||||
margin: 0;
|
||||
}
|
||||
.premier-plan{
|
||||
color: rgb(28, 158, 28);
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
padding: 0.2rem;
|
||||
font-size: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12799,16 +12799,16 @@ body {
|
|||
color: red;
|
||||
}
|
||||
|
||||
.docs-article .btn_poubelle :hover {
|
||||
color: #ee9e9e;
|
||||
.docs-article .btn_poubelle:hover {
|
||||
color: #b30000;
|
||||
}
|
||||
|
||||
.docs-article .btn_une {
|
||||
color: black;
|
||||
color: grey;
|
||||
}
|
||||
|
||||
.docs-article .btn_une :hover {
|
||||
color: grey;
|
||||
.docs-article .btn_une:hover {
|
||||
color: black;
|
||||
}
|
||||
|
||||
.docs-article .boutons_actions {
|
||||
|
@ -12824,9 +12824,8 @@ body {
|
|||
background-color: #f2f2f2;
|
||||
}
|
||||
|
||||
.docs-article .boutons_actions i.green {
|
||||
padding: .6rem;
|
||||
color: #1c9e1c;
|
||||
.docs-article .boutons_actions i {
|
||||
padding: 0 0.6rem;
|
||||
}
|
||||
|
||||
.docs-article .boutons_actions a {
|
||||
|
@ -12834,6 +12833,7 @@ body {
|
|||
}
|
||||
|
||||
.docs-article .boutons_actions .premier-plan {
|
||||
color: #1c9e1c;
|
||||
display: -webkit-box;
|
||||
display: flex;
|
||||
-webkit-box-orient: horizontal;
|
||||
|
@ -12842,6 +12842,7 @@ body {
|
|||
-webkit-box-align: center;
|
||||
align-items: center;
|
||||
padding: 0.2rem;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.titre_img {
|
||||
|
|
|
@ -164,6 +164,7 @@ function formulaires_editer_auteur_verifier_dist(
|
|||
$oblis[] = 'new_login';
|
||||
}
|
||||
// mais il reste obligatoire si on a rien trouve
|
||||
$erreurs = [];
|
||||
$erreurs = formulaires_editer_objet_verifier('auteur', $id_auteur, $oblis);
|
||||
if (isset($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 = array_column($ids_auteurs, 'id_auteur');
|
||||
$Tauteurs = _request('Tauteurs');
|
||||
|
||||
$Tauteurs = _request('Tauteurs') ?? [];
|
||||
if (count($Tauteurs)) {
|
||||
$associer = array_diff($Tauteurs, $ids_auteurs);
|
||||
$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 = array_column($ids_mots, 'id_mot');
|
||||
$coches = _request('id_groupe_'.$id_groupe);
|
||||
$coches = _request('id_groupe_'.$id_groupe) ?? [];
|
||||
if (count($coches)) {
|
||||
$associer = array_diff($coches, $ids_mots);
|
||||
$dissocier = array_diff($ids_mots, $coches);
|
||||
|
|
|
@ -161,6 +161,7 @@ function formulaires_editer_membre_verifier_dist(
|
|||
$oblis[] = 'new_login';
|
||||
}
|
||||
// mais il reste obligatoire si on a rien trouve
|
||||
$erreurs = [];
|
||||
$erreurs = formulaires_editer_objet_verifier('auteur', $id_auteur, $oblis);
|
||||
if (isset($erreurs['new_login'])) {
|
||||
$erreurs['login'] = $erreurs['new_login'];
|
||||
|
|
|
@ -5,9 +5,9 @@
|
|||
|
||||
#ACTION_FORMULAIRE{#ENV{action}}
|
||||
<div class="boutons a-droite">
|
||||
[(#ENV{id_article}|>{0}|oui)
|
||||
[(#INCLURE{fond=inclure/bouton_supprimer,id_article=#ENV{id_article}})]
|
||||
]
|
||||
[(#ENV{id_article}|>{0}|oui)
|
||||
[(#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}})]">
|
||||
<i class="fas fa-search"></i> Voir l'article</a>
|
||||
</div>
|
||||
|
@ -58,68 +58,67 @@
|
|||
<textarea class="text" type="text" name="texte">#ENV{texte}</textarea>
|
||||
</div>
|
||||
|
||||
[(#REM) champ_1 en attente
|
||||
<div class="champ_1">
|
||||
<label for="champ_1">champ_1</label>
|
||||
<textarea id="champ_1" name="champ_1" placeholder="Le champ_1...">#ENV{champ_1}</textarea>
|
||||
OU
|
||||
<input class="text" type="text" name="champ_1" value="#ENV{champ_1}" placeholder="Le champ_1">
|
||||
</div>
|
||||
]
|
||||
[(#REM) champ_2 en attente
|
||||
<div class="champ_2">
|
||||
<label for="champ_2">Intervenants</label>
|
||||
<textarea id="champ_2" name="champ_2" placeholder="le champ_2...">#ENV{champ_2}</textarea>
|
||||
OU
|
||||
<input class="text" type="text" name="champ_2" value="#ENV{champ_2}" placeholder="Le champ_2">
|
||||
</div>
|
||||
]
|
||||
[(#REM) les champs non utilisés
|
||||
<div class="references">
|
||||
<label for="references">Références utilisées</label>
|
||||
<textarea id="references" name="descriptif">#ENV{descriptif}</textarea>
|
||||
</div>
|
||||
[(#REM) champ_1 en attente
|
||||
<div class="champ_1">
|
||||
<label for="champ_1">champ_1</label>
|
||||
<textarea id="champ_1" name="champ_1" placeholder="Le champ_1...">#ENV{champ_1}</textarea>
|
||||
OU
|
||||
<input class="text" type="text" name="champ_1" value="#ENV{champ_1}" placeholder="Le champ_1">
|
||||
</div>
|
||||
]
|
||||
[(#REM) champ_2 en attente
|
||||
<div class="champ_2">
|
||||
<label for="champ_2">Intervenants</label>
|
||||
<textarea id="champ_2" name="champ_2" placeholder="le champ_2...">#ENV{champ_2}</textarea>
|
||||
OU
|
||||
<input class="text" type="text" name="champ_2" value="#ENV{champ_2}" placeholder="Le champ_2">
|
||||
</div>
|
||||
]
|
||||
[(#REM) les champs non utilisés
|
||||
<div class="references">
|
||||
<label for="references">Références utilisées</label>
|
||||
<textarea id="references" name="descriptif">#ENV{descriptif}</textarea>
|
||||
</div>
|
||||
|
||||
<div class="ressources">
|
||||
<label for="ressources">Ressources pour aller plus loin</label>
|
||||
<textarea id="ressources" name="chapo">#ENV{chapo}</textarea>
|
||||
</div>
|
||||
<div class="ressources">
|
||||
<label for="ressources">Ressources pour aller plus loin</label>
|
||||
<textarea id="ressources" name="chapo">#ENV{chapo}</textarea>
|
||||
</div>
|
||||
|
||||
<div class="credits">
|
||||
<label for="credits">Crédits</label>
|
||||
<textarea id="credits" name="surtitre">#ENV{surtitre}</textarea>
|
||||
</div>
|
||||
]
|
||||
<div class="credits">
|
||||
<label for="credits">Crédits</label>
|
||||
<textarea id="credits" name="surtitre">#ENV{surtitre}</textarea>
|
||||
</div>
|
||||
]
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="upload_vignette">
|
||||
<legend><i class="fas fa-paperclip"></i> Images et fichiers</legend>
|
||||
<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}>
|
||||
</div>
|
||||
<INCLURE{fond=inclure/editer_docs_article,env,id_article=#ENV{id_article},ajax=les_photos,type=article}>
|
||||
</fieldset>
|
||||
|
||||
[(#REM)
|
||||
<fieldset>
|
||||
<legend><i class="fas fa-globe"></i> Localisation</legend>
|
||||
[(#REM)
|
||||
<fieldset>
|
||||
<legend><i class="fas fa-globe"></i> Localisation</legend>
|
||||
|
||||
[(#SAISIE{carte,editer_gis_oui,env})]
|
||||
[(#SAISIE{carte,editer_gis_oui,env})]
|
||||
|
||||
[(#SAISIE{input,lat,
|
||||
label=<:gis:lat:>,
|
||||
defaut=#ENV{lat,#CONFIG{gis/lat,0}},
|
||||
obligatoire=oui})]
|
||||
[(#SAISIE{input,lon,
|
||||
label=<:gis:lon:>,
|
||||
defaut=#ENV{lon,#CONFIG{gis/lon,0}},
|
||||
obligatoire=oui})]
|
||||
</fieldset>
|
||||
]
|
||||
[(#SAISIE{input,lat,
|
||||
label=<:gis:lat:>,
|
||||
defaut=#ENV{lat,#CONFIG{gis/lat,0}},
|
||||
obligatoire=oui})]
|
||||
[(#SAISIE{input,lon,
|
||||
label=<:gis:lon:>,
|
||||
defaut=#ENV{lon,#CONFIG{gis/lon,0}},
|
||||
obligatoire=oui})]
|
||||
</fieldset>
|
||||
]
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-lg-3 formulaire-col-droite">
|
||||
<BOUCLE_doc(DOCUMENTS){id_article}{extension==jpg|png|gif}{statut in prop,prepa,publie}{credits=une}>
|
||||
<div class="photo-premier-plan">
|
||||
|
@ -135,12 +134,12 @@
|
|||
</select>
|
||||
</fieldset>
|
||||
|
||||
[(#SESSION{statut}|=={0minirezo}|oui)
|
||||
[(#VAL{}|setenv{id_auteur})]
|
||||
]
|
||||
[(#SESSION{statut}|=={0minirezo}|non)
|
||||
[(#SESSION{id_auteur}|setenv{id_auteur})]
|
||||
]
|
||||
[(#SESSION{statut}|=={0minirezo}|oui)
|
||||
[(#VAL{}|setenv{id_auteur})]
|
||||
]
|
||||
[(#SESSION{statut}|=={0minirezo}|non)
|
||||
[(#SESSION{id_auteur}|setenv{id_auteur})]
|
||||
]
|
||||
|
||||
<fieldset>
|
||||
<legend><i class="fas fa-globe"></i> Groupe</legend>
|
||||
|
@ -160,28 +159,28 @@
|
|||
</fieldset>
|
||||
|
||||
<B_mots_fermes>
|
||||
<fieldset class="mots_fermes">
|
||||
<legend><i class="fas fa-thumb-tack"></i> Emplacements</legend>
|
||||
<div class="">
|
||||
<select id="id_emplacements" name="id_emplacements[]" class="chosen" multiple>
|
||||
[(#UNSEUL|=={oui}|oui)
|
||||
<option value=""> </option>
|
||||
]
|
||||
<BOUCLE_mots_fermes(GROUPES_MOTS){grigri != tags}{si #SESSION{statut}|=={0minirezo}}>
|
||||
<optgroup label="#TITRE">
|
||||
<BOUCLE_mot(MOTS){id_groupe}{par rang}>
|
||||
#SET{selected,''}
|
||||
<BOUCLE_arts(ARTICLES){id_article?}{id_mot?}>
|
||||
[(#ID_MOT|oui) #SET{selected, selected}]
|
||||
</BOUCLE_arts>
|
||||
<fieldset class="mots_fermes">
|
||||
<legend><i class="fas fa-thumb-tack"></i> Emplacements</legend>
|
||||
<div class="">
|
||||
<select id="id_emplacements" name="id_emplacements[]" class="chosen" multiple>
|
||||
[(#UNSEUL|=={oui}|oui)
|
||||
<option value=""> </option>
|
||||
]
|
||||
<BOUCLE_mots_fermes(GROUPES_MOTS){grigri != tags}{si #SESSION{statut}|=={0minirezo}}>
|
||||
<optgroup label="#TITRE">
|
||||
<BOUCLE_mot(MOTS){id_groupe}{par rang}>
|
||||
#SET{selected,''}
|
||||
<BOUCLE_arts(ARTICLES){id_article?}{id_mot?}>
|
||||
[(#ID_MOT|oui) #SET{selected, selected}]
|
||||
</BOUCLE_arts>
|
||||
|
||||
<option value="#ID_MOT" #GET{selected}>#TITRE</option>
|
||||
</BOUCLE_mot>
|
||||
</optgroup>
|
||||
</BOUCLE_mots_fermes>
|
||||
</select>
|
||||
</div>
|
||||
</fieldset>
|
||||
<option value="#ID_MOT" #GET{selected}>#TITRE</option>
|
||||
</BOUCLE_mot>
|
||||
</optgroup>
|
||||
</BOUCLE_mots_fermes>
|
||||
</select>
|
||||
</div>
|
||||
</fieldset>
|
||||
</B_mots_fermes>
|
||||
|
||||
<div class="boutons text-center">
|
||||
|
@ -194,8 +193,6 @@
|
|||
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<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.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)) {
|
||||
$valeurs['lat'] = $res['lat'];
|
||||
$valeurs['lon'] = $res['lon'];
|
||||
|
@ -102,7 +102,10 @@ function formulaires_editer_post_verifier_dist($id_article=0, $redirect=''){
|
|||
}
|
||||
|
||||
$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);
|
||||
|
||||
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 = array_column($ids_auteurs, 'id_auteur');
|
||||
$Tauteurs = _request('Tauteurs');
|
||||
$Tauteurs = _request('Tauteurs') ?? [];
|
||||
if (count($Tauteurs)) {
|
||||
$associer = array_diff($Tauteurs, $ids_auteurs);
|
||||
$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)){
|
||||
$associer = array_diff($coches, $T_ids_mots);
|
||||
$dissocier = array_diff($T_ids_mots, $coches);
|
||||
|
@ -265,7 +267,8 @@ function formulaires_editer_post_traiter_dist($id_article = 0, $redirect = ''){
|
|||
$retour = array();
|
||||
$retour['message_ok'] = "L'article est bien enregistré.";
|
||||
if ($new==0){
|
||||
$redirect .= '&id_article=' . $id_article;
|
||||
//$redirect .= '&id_article=' . $id_article;
|
||||
$redirect = parametre_url($redirect, 'id_article', $id_article);
|
||||
}
|
||||
$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 = array_column($ids_auteurs, 'id_auteur');
|
||||
$Tauteurs = _request('Tauteurs');
|
||||
if (count($Tauteurs)) {
|
||||
$Tauteurs = _request('Tauteurs') ?? [];
|
||||
$associer = array_diff($Tauteurs, $ids_auteurs);
|
||||
$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;
|
||||
}
|
||||
|
||||
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
|
||||
// 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
|
||||
if (isset($visiteur_session['statut']) && ($visiteur_session['statut'] <= $mode)) {
|
||||
if (isset($GLOBALS['visiteur_session']['statut']) and ($GLOBALS['visiteur_session']['statut'] <= $mode)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
$valeurs = array('nom_inscription' => '', 'mail_inscription' => '', 'id' => $id, '_mode' => $mode);
|
||||
|
||||
$valeurs['password'] = '';
|
||||
|
@ -37,14 +63,21 @@ function formulaires_inscription_charger_dist($mode = '', $id = 0, $redirect =''
|
|||
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');
|
||||
|
||||
set_request("_upgrade_auteur"); // securite
|
||||
/**
|
||||
* Si inscriptions pas autorisees, retourner une chaine d'avertissement
|
||||
*
|
||||
* @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');
|
||||
$erreurs = array();
|
||||
|
||||
$id = ($options['id'] ?? 0);
|
||||
|
||||
include_spip('inc/autoriser');
|
||||
if (!autoriser('inscrireauteur', $mode, $id)
|
||||
|
@ -54,12 +87,12 @@ function formulaires_inscription_verifier_dist($mode = '', $id = 0, $redirect ='
|
|||
}
|
||||
|
||||
if (!$nom = _request('nom_inscription')) {
|
||||
$erreurs['nom_inscription'] = _T("info_obligatoire");
|
||||
$erreurs['nom_inscription'] = _T('info_obligatoire');
|
||||
} 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'))) {
|
||||
$erreurs['mail_inscription'] = _T("info_obligatoire");
|
||||
$erreurs['mail_inscription'] = _T('info_obligatoire');
|
||||
}
|
||||
|
||||
// compatibilite avec anciennes fonction surchargeables
|
||||
|
@ -71,7 +104,7 @@ function formulaires_inscription_verifier_dist($mode = '', $id = 0, $redirect ='
|
|||
} else {
|
||||
$f = 'test_inscription_dist';
|
||||
}
|
||||
$declaration = $f($mode, $mail, $nom, $id);
|
||||
$declaration = $f($mode, $mail, $nom, $options);
|
||||
if (is_string($declaration)) {
|
||||
$k = (strpos($declaration, 'mail') !== false) ?
|
||||
'mail_inscription' : 'nom_inscription';
|
||||
|
@ -79,23 +112,25 @@ function formulaires_inscription_verifier_dist($mode = '', $id = 0, $redirect ='
|
|||
} else {
|
||||
include_spip('base/abstract_sql');
|
||||
|
||||
if ($row = sql_fetsel("statut, id_auteur, login, email", "spip_auteurs",
|
||||
"email=" . sql_quote($declaration['email']))
|
||||
) {
|
||||
if (($row['statut'] == '5poubelle') and !$declaration['pass']) // irrecuperable
|
||||
{
|
||||
if ($row = sql_fetsel(
|
||||
'statut, id_auteur, login, email',
|
||||
'spip_auteurs',
|
||||
'email=' . sql_quote($declaration['email'])
|
||||
)) {
|
||||
if (($row['statut'] == '5poubelle') and empty($declaration['pass'])) {
|
||||
// irrecuperable
|
||||
$erreurs['message_erreur'] = _T('form_forum_access_refuse');
|
||||
} else {
|
||||
if (($row['statut'] != 'nouveau') and !$declaration['pass']) {
|
||||
if (($row['statut'] != 'nouveau') and empty($declaration['pass'])) {
|
||||
if (intval($row['statut']) > intval($mode)) {
|
||||
set_request("_upgrade_auteur", $row['id_auteur']);
|
||||
set_request('_upgrade_auteur', $row['id_auteur']);
|
||||
} else {
|
||||
// deja inscrit
|
||||
$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;
|
||||
}
|
||||
|
||||
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/autoriser');
|
||||
|
||||
$id = ($options['id'] ?? 0);
|
||||
|
||||
if (!autoriser('inscrireauteur', $mode, $id)) {
|
||||
$desc = "rien a faire ici";
|
||||
$desc = 'rien a faire ici';
|
||||
} else {
|
||||
if ($id_auteur = _request('_upgrade_auteur')) {
|
||||
include_spip("action/editer_auteur");
|
||||
autoriser_exception("modifier", "auteur", $id_auteur);
|
||||
autoriser_exception("instituer", "auteur", $id_auteur);
|
||||
include_spip('action/editer_auteur');
|
||||
autoriser_exception('modifier', 'auteur', $id_auteur);
|
||||
autoriser_exception('instituer', 'auteur', $id_auteur);
|
||||
auteur_modifier($id_auteur, array('statut' => $mode));
|
||||
autoriser_exception("modifier", "auteur", $id_auteur, false);
|
||||
autoriser_exception("instituer", "auteur", $id_auteur, false);
|
||||
autoriser_exception('modifier', '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);
|
||||
}
|
||||
|
@ -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'));
|
||||
|
||||
$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
|
||||
$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);
|
||||
} // OK
|
||||
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>
|
||||
<div class="row liste-articles">
|
||||
#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">
|
||||
<INCLURE{fond=inclure/bloc_article, env, id_article}/>
|
||||
</div>
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
[(#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-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}>
|
||||
</a>
|
||||
<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>
|
||||
</a>
|
||||
<div class="infos-article">
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<B_articles>
|
||||
<div class="row liste-articles-encadres">
|
||||
#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">
|
||||
<INCLURE{fond=inclure/bloc_article, env, statut, id_article,evenement=oui}/>
|
||||
</div>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<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}>
|
||||
<div class="col-sm-6 col-lg-3 mt-4 mt-lg-0">
|
||||
|
||||
|
@ -9,7 +9,7 @@
|
|||
</BOUCLE_villes>
|
||||
</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}>
|
||||
<div class="bloc-groupe col mt-4">
|
||||
[<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="boutons_actions">
|
||||
[(#INFO_ID_SECTEUR{article,#ENV{id_article}}|=={#CONFIG{balint/id_rub_groupes}}|oui)
|
||||
<div class="premier-plan">
|
||||
[(#TYPE_DOCUMENT|in_array{#LISTE{JPEG,PNG,GIF}}|oui)
|
||||
[(#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">
|
||||
<i class="fas fa-check"></i> Mettre au premier plan
|
||||
<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-flag"></i> Bannière pour [(#INFO_SURTITRE{article, #ID_ARTICLE})]
|
||||
</a>
|
||||
})]
|
||||
]
|
||||
</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">
|
||||
<i class="fas fa-trash red"></i> Supprimer
|
||||
</a>
|
||||
|
|
|
@ -5,11 +5,9 @@
|
|||
|
||||
<div class="page-groupes">
|
||||
<div class="w-100">
|
||||
|
||||
<INCLURE{fond=inclure/menu-espace_membre,env}>
|
||||
|
||||
|
||||
[(#ENV{rub_forum}|non)
|
||||
[(#REM) ENV{rub_forum}|non)
|
||||
<INCLURE{fond=inclure/bouton_ordre,env,ordre=#ENV{ordre,ASC},objet=mot}>
|
||||
]
|
||||
[(#ENV{rub_forum}|oui)
|
||||
|
@ -26,7 +24,7 @@
|
|||
<B_articles>
|
||||
<div class="row liste-articles">
|
||||
#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">
|
||||
<INCLURE{fond=inclure/bloc_article, env, id_article}/>
|
||||
</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}}}
|
||||
|
||||
[(#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>
|
||||
|
@ -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>
|
||||
|
||||
<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})]
|
||||
</BOUCLE_banniere>
|
||||
[(#CHEMIN{img/ville.png}|image_recadre{1200:300,-,focus}|image_reduire{1200,300})]
|
||||
|
@ -32,9 +35,17 @@
|
|||
[<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="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>Fréquence :</strong> (#DESCRIPTIF|textebrut)</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>
|
||||
</li>
|
||||
</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]">
|
||||
<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>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<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}>
|
||||
<BOUCLE_menu_seminaires(ARTICLES){titre_mot=seminaires}{par rang}>
|
||||
<a class="dropdown-item" href="[(#URL_ARTICLE)]">#TITRE</a>
|
||||
</BOUCLE_menu_seminaires>
|
||||
</div>
|
||||
|
@ -56,7 +56,7 @@
|
|||
<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)
|
||||
[(#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>
|
||||
]
|
||||
</div>
|
||||
|
|
|
@ -1,14 +1,29 @@
|
|||
#CACHE{0}
|
||||
[(#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">
|
||||
<BOUCLE_doc(DOCUMENTS){id_article?}{extension==jpg|png|gif}{statut in prop,prepa,publie}{0,1}{!par credits}{!par id_document}>
|
||||
[(#FICHIER|balise_img{#TITRE}|image_recadre{720:360,-,focus,transparent}|image_reduire{720,360})]
|
||||
</BOUCLE_doc>
|
||||
<BOUCLE_test(CONDITION){si #ENV{groupe}|!={oui}}>
|
||||
<BOUCLE_doc(DOCUMENTS){id_article?}{extension==jpg|png|gif}{statut in prop,prepa,publie}{0,1}{!par credits}{!par id_document}>
|
||||
[(#FICHIER|balise_img{#TITRE}|image_recadre{720:360,-,focus,transparent}|image_reduire{720,360})]
|
||||
</BOUCLE_doc>
|
||||
<div class="txtcenter placeholder">
|
||||
[(#ENV{groupe}|=={oui}|?{
|
||||
[(#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})]
|
||||
})]
|
||||
[(#CHEMIN{img/journal.png}|balise_img{#TITRE}|image_recadre{720:360,+,center,transparent}|image_reduire{720,360})]
|
||||
</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>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<B_articles>
|
||||
<div class="row liste-articles-encadres">
|
||||
#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">
|
||||
<INCLURE{fond=inclure/bloc_article, env, id_article,evenement=oui}/>
|
||||
</div>
|
||||
|
|
|
@ -7,7 +7,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
|
|||
|
||||
$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."
|
||||
|
||||
);
|
||||
|
|
|
@ -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"
|
||||
version="1.0.0"
|
||||
etat="stable"
|
||||
compatibilite="[3.1.7;3.3.*]"
|
||||
compatibilite="[4.0.0;4.*]"
|
||||
logo="img/balint_64.png"
|
||||
documentation=""
|
||||
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