renommages bien -> articles
This commit is contained in:
parent
2312297c4a
commit
ed24271de0
9 changed files with 6 additions and 967 deletions
|
@ -35,7 +35,7 @@ function action_promouvoir_photo_dist(){
|
|||
suivre_invalideur("id='id_article/$id_article'");
|
||||
|
||||
// redirection sur la page d'édition du bien
|
||||
$retour = 'spip.php?page=editer_bien&id_article='.$id_article.'#les_photos';
|
||||
$retour = 'spip.php?page=editer_article&id_article='.$id_article.'#les_photos';
|
||||
include_spip('inc/headers');
|
||||
redirige_par_entete($retour);
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
if (!defined('_ECRIRE_INC_VERSION')) return;
|
||||
|
||||
function action_supprimer_bien_dist(){
|
||||
function action_supprimer_article_dist(){
|
||||
$securiser_action = charger_fonction('securiser_action', 'inc');
|
||||
$arg = $securiser_action();
|
||||
$id_article = intval($arg);
|
|
@ -21,7 +21,7 @@ function action_supprimer_photo_dist(){
|
|||
}
|
||||
|
||||
// redirection sur la page d'édition
|
||||
$retour = 'spip.php?page=editer_bien&id_article='.$id_article.'#les_photos';
|
||||
$retour = 'spip.php?page=editer_article&id_article='.$id_article.'#les_photos';
|
||||
include_spip('inc/headers');
|
||||
redirige_par_entete($retour);
|
||||
}
|
||||
|
|
|
@ -1,160 +0,0 @@
|
|||
<link rel="stylesheet" href="[(#CHEMIN{css/tag_editor.css}|compacte|timestamp)]">
|
||||
<div class="formulaire_spip formulaire_#FORM ajax">
|
||||
|
||||
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
|
||||
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
|
||||
|
||||
<form name="formulaire_#FORM" action="#ENV{action}" method="post" enctype="multipart/form-data">
|
||||
|
||||
#ACTION_FORMULAIRE{#ENV{action}}
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-9">
|
||||
<fieldset>
|
||||
<div class="titre">
|
||||
<label for="titre">Titre</label>
|
||||
<input class="text" type="text" name="titre" value="#ENV{titre}">
|
||||
</div>
|
||||
|
||||
<div class="soustitre">
|
||||
<label for="soustitre">Sous-titre</label>
|
||||
<input class="text" type="text" name="soustitre" value="#ENV{soustitre}">
|
||||
</div>
|
||||
|
||||
<div class="resume">
|
||||
<label for="resume">Texte</label>
|
||||
<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>
|
||||
|
||||
<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>
|
||||
]
|
||||
</fieldset>
|
||||
[(#REM)
|
||||
<fieldset>
|
||||
<legend><i class="fas fa-globe"></i> Localisation</legend>
|
||||
|
||||
[(#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>
|
||||
]
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-lg-3">
|
||||
<fieldset class="col_droite type_biens">
|
||||
<legend><i class="fas fa-globe"></i> Groupe</legend>
|
||||
<div class="">
|
||||
<select id="id_rubrique" name="id_rubrique" class="chosen">
|
||||
<option value=""> </option>
|
||||
<BOUCLE_pays(RUBRIQUES){id_parent = #CONFIG{balint/id_rub_groupes}}{tout}>
|
||||
<optgroup label="#TITRE">
|
||||
<BOUCLE_groupes(RUBRIQUES){id_parent = #ID_RUBRIQUE}{tout}>
|
||||
<option value="#ID_RUBRIQUE" [(#ID_RUBRIQUE|=={#RUBRIQUE_SELECTED}|oui) selected="selected"]>#TITRE</option>
|
||||
</BOUCLE_groupes>
|
||||
</BOUCLE_pays>
|
||||
</select>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<B_mots_fermes>
|
||||
<fieldset class="col_droite mots_fermes">
|
||||
<legend><i class="fas fa-thumb-tack"></i> Emplacements</legend>
|
||||
<BOUCLE_mots_fermes(GROUPES_MOTS){grigri != tags}{si #SESSION{statut}|=={0minirezo}}>
|
||||
<div class="">
|
||||
<select id="id_groupe_#ID_GROUPE" name="id_groupe_#ID_GROUPE[]" class="chosen" [(#UNSEUL|=={non}|oui) multiple]>
|
||||
[(#UNSEUL|=={oui}|oui)
|
||||
<option value=""> </option>
|
||||
]
|
||||
<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>
|
||||
</select>
|
||||
</div>
|
||||
</BOUCLE_mots_fermes>
|
||||
</fieldset>
|
||||
</B_mots_fermes>
|
||||
|
||||
<fieldset class="upload_vignette">
|
||||
<legend><i class="fas fa-image"></i> Photos</legend>
|
||||
<label for=""><small>largeur conseillée: entre 1024 et 2048 pixels</small></label>
|
||||
<div class="ajax">
|
||||
<INCLURE{fond=inclure/bigform,env}>
|
||||
</div>
|
||||
<INCLURE{fond=inclure/photos_bien,env,id_article=#ENV{id_article},ajax=les_photos}>
|
||||
</fieldset>
|
||||
|
||||
<p class="boutons"><input type="submit" class="submit" value="Enregistrer" /></p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<script src="[(#CHEMIN{js/tag_editor.min.js}|timestamp)]" type="text/javascript"></script>
|
||||
<script src="[(#CHEMIN{js/caret.min.js}|timestamp)]" type="text/javascript"></script>
|
||||
<script src="[(#CHEMIN{js/editer_bien.js}|compacte|timestamp)]" type="text/javascript"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var T_hashtag = [
|
||||
<BOUCLE_gp_mots(GROUPES_MOTS){grigri=tags}>
|
||||
<BOUCLE_htags(MOTS){id_groupe}>
|
||||
"#TITRE",
|
||||
</BOUCLE_htags>
|
||||
</BOUCLE_gp_mots>
|
||||
]
|
||||
|
||||
var T_hastag_ini = [
|
||||
<BOUCLE_gp_mots2(GROUPES_MOTS){grigri=tags}>
|
||||
<BOUCLE_htags2(MOTS){id_groupe}>
|
||||
<BOUCLE_art(ARTICLES){id_article}{id_mot}>
|
||||
"#_htags2:TITRE",
|
||||
</BOUCLE_art>
|
||||
</BOUCLE_htags2>
|
||||
</BOUCLE_gp_mots2>
|
||||
]
|
||||
</script>
|
|
@ -1,307 +0,0 @@
|
|||
<?php
|
||||
if (!defined('_ECRIRE_INC_VERSION')) return;
|
||||
|
||||
function formulaires_editer_bien_charger_dist($id_article=0, $redirect=''){
|
||||
|
||||
$id_rubrique = intval(_request('id_rubrique'));
|
||||
$titre = _request('titre');
|
||||
$texte = _request('texte');
|
||||
$soustitre = _request('soustitre');
|
||||
|
||||
$erreurs = array();
|
||||
include_spip('inc/autoriser');
|
||||
if (! autoriser("creer","article")) {
|
||||
$erreurs['message_erreur'] = "Vous devez être connecté pour utiliser ce formulaire.";
|
||||
return $erreurs;
|
||||
}
|
||||
|
||||
$valeurs = array();
|
||||
$valeurs['titre'] = $titre;
|
||||
$valeurs['texte'] = $texte;
|
||||
$valeurs['soustitre'] = $soustitre;
|
||||
$valeurs['rubrique_selected'] = $id_rubrique;
|
||||
|
||||
if (intval($id_article)) {
|
||||
if (! autoriser("modifier","article", $id_article)) {
|
||||
$erreurs['message_erreur'] = "Vous n'êtes pas autorisé à modifier cet article.";
|
||||
return $erreurs;
|
||||
}
|
||||
|
||||
$valeurs = sql_fetsel('*', 'spip_articles', 'id_article='.intval($id_article));
|
||||
$where = array(
|
||||
'id_objet='.intval($id_article),
|
||||
'objet="article"',
|
||||
);
|
||||
$res = sql_allfetsel('id_auteur','spip_auteurs_liens',$where);
|
||||
$valeurs['T_id_auteurs'] = array_column($res,'id_auteur');
|
||||
$valeurs['rubrique_selected'] = sql_getfetsel('id_rubrique','spip_articles','id_article='. $id_article);
|
||||
}
|
||||
else {
|
||||
$valeurs['T_id_auteurs'] = array();
|
||||
$valeurs['id_article'] = -1 * intval(session_get('id_auteur'));
|
||||
}
|
||||
|
||||
if (intval($id_article)) {
|
||||
$from = array(
|
||||
'spip_gis as G',
|
||||
'spip_gis_liens as L',
|
||||
'spip_articles as A'
|
||||
);
|
||||
$where = array(
|
||||
'L.id_objet='.intval($id_article),
|
||||
'L.objet="article"',
|
||||
'L.id_gis=G.id_gis'
|
||||
);
|
||||
$res = sql_fetsel('G.lat, G.lon', $from, $where);
|
||||
if (count($res)) {
|
||||
$valeurs['lat'] = $res['lat'];
|
||||
$valeurs['lon'] = $res['lon'];
|
||||
}
|
||||
|
||||
}
|
||||
// recup gis
|
||||
|
||||
$valeurs['_bigup_rechercher_fichiers'] = true;
|
||||
return $valeurs;
|
||||
}
|
||||
|
||||
function formulaires_editer_bien_verifier_dist($id_article=0, $redirect=''){
|
||||
$erreurs = array();
|
||||
|
||||
include_spip('inc/autoriser');
|
||||
if (! autoriser("creer","article")) {
|
||||
$erreurs['message_erreur'] = "Vous devez être connecté pour utiliser ce formulaire.";
|
||||
return $erreurs;
|
||||
}
|
||||
if (intval($id_article)) {
|
||||
if (! autoriser("modifier","article", $id_article)) {
|
||||
$erreurs['message_erreur'] = "Vous n'êtes pas autorisé à modifier cet article.";
|
||||
return $erreurs;
|
||||
}
|
||||
}
|
||||
|
||||
// il faut au minimum titre, texte et id_rubrique pour créer un article
|
||||
if (_request('titre') == '' OR _request('texte') == '' OR _request('id_rubrique') == ''){
|
||||
$erreurs['message_erreur'] = "Il faut obligatoirement un titre, un texte et une rubrique pour créer un article.";
|
||||
return $erreurs;
|
||||
}
|
||||
// la rubrique choisie doit être une sous-rubrique du secteur défini en config
|
||||
$id_rubrique = intval(_request('id_rubrique'));
|
||||
$id_secteur = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique='.$id_rubrique);
|
||||
if ($id_secteur != lire_config('balint/id_bien')) {
|
||||
$erreurs['message_erreur'] = "La rubrique choisie comme type d'article ne correspond au secteur défini dans les options de configuration.";
|
||||
return $erreurs;
|
||||
}
|
||||
|
||||
$bigform = charger_fonction('bigform_verifier','inc');
|
||||
$options = ['mime' => 'image_web','taille_max'=>'2000','largeur_max'=>'2048','hauteur_max'=>'2048'];
|
||||
$bigform($options,$erreurs);
|
||||
|
||||
return $erreurs;
|
||||
}
|
||||
|
||||
function formulaires_editer_bien_traiter_dist($id_article=0, $redirect=''){
|
||||
$new = $id_article;
|
||||
if (!intval($id_article)) {
|
||||
|
||||
//$id_rubrique = lire_config('balint/id_bien');
|
||||
$id_rubrique = intval(_request('id_rubrique'));
|
||||
include_spip('action/editer_article');
|
||||
$set = array(
|
||||
'statut' => 'prepa'
|
||||
);
|
||||
$id_article = article_inserer($id_rubrique,$set);
|
||||
}
|
||||
|
||||
// enregistrement de l'image
|
||||
if (!intval($new)) {
|
||||
$where = array(
|
||||
'objet="article"',
|
||||
'id_objet='.intval(session_get('id_auteur')) * -1
|
||||
);
|
||||
sql_updateq('spip_documents_liens',array('id_objet' => intval($id_article)), $where);
|
||||
}
|
||||
|
||||
// maj de l'article
|
||||
$set = array(
|
||||
'titre' => _request('titre'),
|
||||
'texte' => _request('texte'),
|
||||
'soustitre' => _request('soustitre'),
|
||||
'date' => date("Y-m-d H:i:s"),
|
||||
// 'champ_1' => _request('champ_1'),
|
||||
// 'champ_2' => _request('champ_2'),
|
||||
// 'descriptif' => _request('descriptif'),
|
||||
// 'chapo' => _request('chapo'),
|
||||
// 'surtitre' => _request('surtitre')
|
||||
);
|
||||
sql_updateq('spip_articles',$set,'id_article='.intval($id_article));
|
||||
|
||||
// maj rubrique si besoin
|
||||
$id_rubrique = intval(_request('id_rubrique'));
|
||||
$id_rub = sql_getfetsel('id_rubrique', 'spip_articles', 'id_article='.$id_article);
|
||||
if ($id_rub != $id_rubrique) {
|
||||
include_spip('action/editer_article');
|
||||
article_instituer($id_article, array('id_parent' => $id_rubrique));
|
||||
}
|
||||
|
||||
// maj association article -> auteurs
|
||||
include_spip('action/editer_liens');
|
||||
$where = array(
|
||||
'id_objet='.intval($id_article),
|
||||
'objet="article"',
|
||||
);
|
||||
$ids_auteurs = sql_allfetsel('id_auteur', 'spip_auteurs_liens', $where);
|
||||
$ids_auteurs = array_column($ids_auteurs, 'id_auteur');
|
||||
$Tauteurs = _request('Tauteurs');
|
||||
if (count($Tauteurs)) {
|
||||
$associer = array_diff($Tauteurs, $ids_auteurs);
|
||||
$dissocier = array_diff($ids_auteurs, $Tauteurs);
|
||||
|
||||
objet_associer( array('auteur' => $associer),array('article' => intval($id_article) ));
|
||||
objet_dissocier( array('auteur' => $dissocier) , array('article' =>intval($id_article) ));
|
||||
}
|
||||
|
||||
// maj des mots fermes
|
||||
$T_id_groupe = sql_allfetsel('id_groupe','spip_groupes_mots','grigri!="tags"');
|
||||
$T_id_groupe = array_column($T_id_groupe,'id_groupe');
|
||||
|
||||
foreach ($T_id_groupe as $id_groupe) {
|
||||
$from = array(
|
||||
'spip_mots as M',
|
||||
'spip_mots_liens as L'
|
||||
);
|
||||
$where = array(
|
||||
'L.id_objet='.intval($id_article),
|
||||
'L.objet="article"',
|
||||
'L.id_mot=M.id_mot',
|
||||
'M.id_groupe='.$id_groupe
|
||||
);
|
||||
|
||||
$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);
|
||||
if (count($coches)) {
|
||||
$associer = array_diff($coches, $ids_mots);
|
||||
$dissocier = array_diff($ids_mots, $coches);
|
||||
|
||||
objet_associer(array('mot' => $associer),array('article' => intval($id_article)));
|
||||
objet_dissocier(array('mot' => $dissocier), array('article' => intval($id_article)));
|
||||
}
|
||||
}
|
||||
|
||||
// maj des mots clefs ouverts
|
||||
$json_htags = _request('tags_save');
|
||||
$T_htags = json_decode($json_htags);
|
||||
|
||||
$from = array(
|
||||
'spip_groupes_mots AS G',
|
||||
'spip_mots AS M'
|
||||
);
|
||||
$where = array(
|
||||
'G.grigri="tags"',
|
||||
'G.id_groupe=M.id_groupe'
|
||||
);
|
||||
$res = sql_allfetsel('M.id_mot as id_mot, M.titre as titre',$from,$where);
|
||||
$T_mots_existants = array_column($res,'id_mot','titre');
|
||||
$T_id_mots_existants = array_column($res,'id_mot');
|
||||
// on supprime toutes les liaisons
|
||||
include_spip('action/editer_liens');
|
||||
objet_dissocier(array("mot"=>$T_id_mots_existants), array("article"=>intval($id_article)));
|
||||
|
||||
$T_id_mots_a_associer = array();
|
||||
$T_mots_a_creer = array();
|
||||
foreach ($T_htags as $mot) {
|
||||
if (array_key_exists($mot,$T_mots_existants)) {
|
||||
$T_id_mots_a_associer[] = $T_mots_existants[$mot];
|
||||
} else {
|
||||
$T_mots_a_creer[] = $mot;
|
||||
}
|
||||
}
|
||||
// On associe les nouveaux mots existants:
|
||||
objet_associer(array("mot"=>$T_id_mots_a_associer), array("article"=>intval($id_article)));
|
||||
|
||||
// On cree les nouveaux mots
|
||||
if (count($T_mots_a_creer)) {
|
||||
$id_groupe = sql_getfetsel('id_groupe','spip_groupes_mots','grigri="tags"');
|
||||
include_spip('action/editer_mot');
|
||||
$T_nvx_id_mot = array();
|
||||
foreach ($T_mots_a_creer as $nvx_mot) {
|
||||
$set = array( 'titre' => $nvx_mot);
|
||||
$T_nvx_id_mot[] = mot_inserer($id_groupe, $set);
|
||||
}
|
||||
// On associe les nouveaux mots crees :
|
||||
objet_associer(array("mot"=>$T_nvx_id_mot), array("article"=>intval($id_article)));
|
||||
}
|
||||
|
||||
include_spip('action/editer_objet');
|
||||
// GIS
|
||||
$lat_def = lire_config('gis/lat');
|
||||
$lon_def = lire_config('gis/lon');
|
||||
$lat = _request('lat');
|
||||
$lon = _request('lon');
|
||||
// 1. recup id_gis si present
|
||||
$from = array(
|
||||
'spip_gis as G',
|
||||
'spip_gis_liens as L',
|
||||
'spip_articles as A'
|
||||
);
|
||||
$where = array(
|
||||
'L.id_objet='.intval($id_article),
|
||||
'L.objet="article"',
|
||||
'L.id_gis=G.id_gis'
|
||||
);
|
||||
$id_gis = sql_getfetsel('G.id_gis', $from, $where);
|
||||
$set = array(
|
||||
'titre' => _request('titre'),
|
||||
'lat' => $lat,
|
||||
'lon' => $lon,
|
||||
'zoom' => 15
|
||||
);
|
||||
|
||||
if (!$id_gis) {
|
||||
$id_gis = sql_insertq('spip_gis',$set);
|
||||
$set = array(
|
||||
'id_gis' => $id_gis,
|
||||
'id_objet' => intval($id_article),
|
||||
'objet' => 'article'
|
||||
);
|
||||
sql_insertq('spip_gis_liens',$set);
|
||||
} else {
|
||||
if ($lat !== $lat_def and $lon !== $lon_def) {
|
||||
objet_modifier('gis', $id_gis, $set);
|
||||
}
|
||||
}
|
||||
|
||||
// SEO title et description: créer ou mettre à jour, y compris si les valeurs postées sont vides (= vidage du champ)
|
||||
$id_article = intval($id_article);
|
||||
$seo_titre = _request('seo_titre');
|
||||
$set = array('id_objet' => $id_article, 'objet' => 'article', 'meta_name' => 'title', 'meta_content' => $seo_titre);
|
||||
$where = array("id_objet = $id_article", "objet = 'article'", "meta_name = 'title'");
|
||||
$res = sql_getfetsel('meta_content', 'spip_seo', $where);
|
||||
if ((!$res AND $seo_titre != '')
|
||||
OR ($res != $seo_titre)) {
|
||||
sql_replace('spip_seo', $set, $where);
|
||||
}
|
||||
$seo_descriptif = _request('seo_descriptif');
|
||||
$set = array('id_objet' => $id_article, 'objet' => 'article', 'meta_name' => 'description', 'meta_content' => $seo_descriptif);
|
||||
$where = array("id_objet = $id_article", "objet = 'article'", "meta_name = 'description'");
|
||||
$res = sql_getfetsel('meta_content', 'spip_seo', $where);
|
||||
if ((!$res AND $seo_descriptif != '')
|
||||
OR ($res != $seo_descriptif)) {
|
||||
sql_replace('spip_seo', $set, $where);
|
||||
}
|
||||
|
||||
include_spip('inc/invalideur');
|
||||
suivre_invalideur("id='id_article/1'");
|
||||
|
||||
$retour = array();
|
||||
$retour['message_ok'] = "L'article est enregistré";
|
||||
|
||||
$retour['redirect'] = 'spip.php?page=article&id_article='.$id_article;
|
||||
|
||||
$bigform = charger_fonction('bigform_traiter','inc');
|
||||
$bigform($id_article, 'article');
|
||||
|
||||
|
||||
return $retour;
|
||||
}
|
|
@ -1,161 +0,0 @@
|
|||
<link rel="stylesheet" href="[(#CHEMIN{css/tag_editor.css}|compacte|timestamp)]">
|
||||
<div class="formulaire_spip formulaire_#FORM ajax">
|
||||
|
||||
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
|
||||
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
|
||||
|
||||
<form name="formulaire_#FORM" action="#ENV{action}" method="post" enctype="multipart/form-data">
|
||||
<div>
|
||||
|
||||
#ACTION_FORMULAIRE{#ENV{action}}
|
||||
|
||||
<fieldset class="col_droite type_biens">
|
||||
<legend><i class="fas fa-folder-open"></i> Rubrique</legend>
|
||||
<div class="">
|
||||
<select id="id_rubrique" name="id_rubrique" class="chosen">
|
||||
<option value=""> </option>
|
||||
<BOUCLE_type_biens(RUBRIQUES){id_parent = #CONFIG{balint/id_bien}}{tout}>
|
||||
<option value="#ID_RUBRIQUE" [(#ID_RUBRIQUE|=={#RUBRIQUE_SELECTED}|oui) selected="selected"]>#TITRE</option>
|
||||
</BOUCLE_type_biens>
|
||||
</select>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<B_mots_fermes>
|
||||
<fieldset class="col_droite mots_fermes">
|
||||
<legend><i class="fas fa-tags"></i> Mots clés</legend>
|
||||
<BOUCLE_mots_fermes(GROUPES_MOTS){grigri != tags}{si #SESSION{statut}|=={0minirezo}}>
|
||||
<div class="">
|
||||
<label for="id_groupe_#ID_GROUPE">#TITRE</label>
|
||||
<select id="id_groupe_#ID_GROUPE" name="id_groupe_#ID_GROUPE[]" class="chosen" [(#UNSEUL|=={non}|oui) multiple]>
|
||||
[(#UNSEUL|=={oui}|oui)
|
||||
<option value=""> </option>
|
||||
]
|
||||
<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>
|
||||
</select>
|
||||
</div>
|
||||
</BOUCLE_mots_fermes>
|
||||
</fieldset>
|
||||
</B_mots_fermes>
|
||||
|
||||
<fieldset class="col_droite mots_ouverts">
|
||||
<legend><i class="fas fa-hashtag"></i> Tags</legend>
|
||||
<label for="tags_ouverts">Mots clés libres</label><br>
|
||||
<small>validez vos tag avec "Entrée"</small>
|
||||
<textarea id="tags_ouverts" class="hashtag"></textarea>
|
||||
<input type="hidden" name="tags_save" id="tags_save" value="">
|
||||
<small>(pas de # initial, minuscules sauf acronymes)</small>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="principal">
|
||||
<legend><i class="fas fa-list-ul"></i> Informations générales</legend>
|
||||
|
||||
<div class="titre">
|
||||
<label for="titre">Titre</label>
|
||||
<input class="text" type="text" name="titre" value="#ENV{titre}">
|
||||
</div>
|
||||
|
||||
<div class="soustitre">
|
||||
<label for="soustitre">Sous-titre</label>
|
||||
<input class="text" type="text" name="soustitre" value="#ENV{soustitre}">
|
||||
</div>
|
||||
|
||||
<div class="resume">
|
||||
<label for="resume">Texte</label>
|
||||
<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>
|
||||
|
||||
<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>
|
||||
]
|
||||
</fieldset>
|
||||
[(#REM)
|
||||
<fieldset class="principal">
|
||||
<legend><i class="fas fa-globe"></i> Localisation</legend>
|
||||
|
||||
[(#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>
|
||||
]
|
||||
|
||||
<p class="boutons"><input type="submit" class="submit" value="Enregistrer" /></p>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<fieldset class="upload_vignette">
|
||||
<legend><i class="fas fa-image"></i> Photos</legend>
|
||||
<label for=""><small>largeur conseillée: entre 1024 et 2048 pixels</small></label>
|
||||
<div class="ajax">
|
||||
<INCLURE{fond=inclure/bigform,env}>
|
||||
</div>
|
||||
<INCLURE{fond=inclure/photos_bien,env,id_article=#ENV{id_article},ajax=les_photos}>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<script src="[(#CHEMIN{js/tag_editor.min.js}|timestamp)]" type="text/javascript"></script>
|
||||
<script src="[(#CHEMIN{js/caret.min.js}|timestamp)]" type="text/javascript"></script>
|
||||
<script src="[(#CHEMIN{js/editer_bien.js}|compacte|timestamp)]" type="text/javascript"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var T_hashtag = [
|
||||
<BOUCLE_gp_mots(GROUPES_MOTS){grigri=tags}>
|
||||
<BOUCLE_htags(MOTS){id_groupe}>
|
||||
"#TITRE",
|
||||
</BOUCLE_htags>
|
||||
</BOUCLE_gp_mots>
|
||||
]
|
||||
|
||||
var T_hastag_ini = [
|
||||
<BOUCLE_gp_mots2(GROUPES_MOTS){grigri=tags}>
|
||||
<BOUCLE_htags2(MOTS){id_groupe}>
|
||||
<BOUCLE_art(ARTICLES){id_article}{id_mot}>
|
||||
"#_htags2:TITRE",
|
||||
</BOUCLE_art>
|
||||
</BOUCLE_htags2>
|
||||
</BOUCLE_gp_mots2>
|
||||
]
|
||||
</script>
|
|
@ -1,307 +0,0 @@
|
|||
<?php
|
||||
if (!defined('_ECRIRE_INC_VERSION')) return;
|
||||
|
||||
function formulaires_editer_bien_charger_dist($id_article=0, $redirect=''){
|
||||
|
||||
$id_rubrique = intval(_request('id_rubrique'));
|
||||
$titre = _request('titre');
|
||||
$texte = _request('texte');
|
||||
$soustitre = _request('soustitre');
|
||||
|
||||
$erreurs = array();
|
||||
include_spip('inc/autoriser');
|
||||
if (! autoriser("creer","article")) {
|
||||
$erreurs['message_erreur'] = "Vous devez être connecté pour utiliser ce formulaire.";
|
||||
return $erreurs;
|
||||
}
|
||||
|
||||
$valeurs = array();
|
||||
$valeurs['titre'] = $titre;
|
||||
$valeurs['texte'] = $texte;
|
||||
$valeurs['soustitre'] = $soustitre;
|
||||
$valeurs['rubrique_selected'] = $id_rubrique;
|
||||
|
||||
if (intval($id_article)) {
|
||||
if (! autoriser("modifier","article", $id_article)) {
|
||||
$erreurs['message_erreur'] = "Vous n'êtes pas autorisé à modifier cet article.";
|
||||
return $erreurs;
|
||||
}
|
||||
|
||||
$valeurs = sql_fetsel('*', 'spip_articles', 'id_article='.intval($id_article));
|
||||
$where = array(
|
||||
'id_objet='.intval($id_article),
|
||||
'objet="article"',
|
||||
);
|
||||
$res = sql_allfetsel('id_auteur','spip_auteurs_liens',$where);
|
||||
$valeurs['T_id_auteurs'] = array_column($res,'id_auteur');
|
||||
$valeurs['rubrique_selected'] = sql_getfetsel('id_rubrique','spip_articles','id_article='. $id_article);
|
||||
}
|
||||
else {
|
||||
$valeurs['T_id_auteurs'] = array();
|
||||
$valeurs['id_article'] = -1 * intval(session_get('id_auteur'));
|
||||
}
|
||||
|
||||
if (intval($id_article)) {
|
||||
$from = array(
|
||||
'spip_gis as G',
|
||||
'spip_gis_liens as L',
|
||||
'spip_articles as A'
|
||||
);
|
||||
$where = array(
|
||||
'L.id_objet='.intval($id_article),
|
||||
'L.objet="article"',
|
||||
'L.id_gis=G.id_gis'
|
||||
);
|
||||
$res = sql_fetsel('G.lat, G.lon', $from, $where);
|
||||
if (count($res)) {
|
||||
$valeurs['lat'] = $res['lat'];
|
||||
$valeurs['lon'] = $res['lon'];
|
||||
}
|
||||
|
||||
}
|
||||
// recup gis
|
||||
|
||||
$valeurs['_bigup_rechercher_fichiers'] = true;
|
||||
return $valeurs;
|
||||
}
|
||||
|
||||
function formulaires_editer_bien_verifier_dist($id_article=0, $redirect=''){
|
||||
$erreurs = array();
|
||||
|
||||
include_spip('inc/autoriser');
|
||||
if (! autoriser("creer","article")) {
|
||||
$erreurs['message_erreur'] = "Vous devez être connecté pour utiliser ce formulaire.";
|
||||
return $erreurs;
|
||||
}
|
||||
if (intval($id_article)) {
|
||||
if (! autoriser("modifier","article", $id_article)) {
|
||||
$erreurs['message_erreur'] = "Vous n'êtes pas autorisé à modifier cet article.";
|
||||
return $erreurs;
|
||||
}
|
||||
}
|
||||
|
||||
// il faut au minimum titre, texte et id_rubrique pour créer un article
|
||||
if (_request('titre') == '' OR _request('texte') == '' OR _request('id_rubrique') == ''){
|
||||
$erreurs['message_erreur'] = "Il faut obligatoirement un titre, un texte et une rubrique pour créer un article.";
|
||||
return $erreurs;
|
||||
}
|
||||
// la rubrique choisie doit être une sous-rubrique du secteur défini en config
|
||||
$id_rubrique = intval(_request('id_rubrique'));
|
||||
$id_secteur = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique='.$id_rubrique);
|
||||
if ($id_secteur != lire_config('balint/id_bien')) {
|
||||
$erreurs['message_erreur'] = "La rubrique choisie comme type d'article ne correspond au secteur défini dans les options de configuration.";
|
||||
return $erreurs;
|
||||
}
|
||||
|
||||
$bigform = charger_fonction('bigform_verifier','inc');
|
||||
$options = ['mime' => 'image_web','taille_max'=>'2000','largeur_max'=>'2048','hauteur_max'=>'2048'];
|
||||
$bigform($options,$erreurs);
|
||||
|
||||
return $erreurs;
|
||||
}
|
||||
|
||||
function formulaires_editer_bien_traiter_dist($id_article=0, $redirect=''){
|
||||
$new = $id_article;
|
||||
if (!intval($id_article)) {
|
||||
|
||||
//$id_rubrique = lire_config('balint/id_bien');
|
||||
$id_rubrique = intval(_request('id_rubrique'));
|
||||
include_spip('action/editer_article');
|
||||
$set = array(
|
||||
'statut' => 'prepa'
|
||||
);
|
||||
$id_article = article_inserer($id_rubrique,$set);
|
||||
}
|
||||
|
||||
// enregistrement de l'image
|
||||
if (!intval($new)) {
|
||||
$where = array(
|
||||
'objet="article"',
|
||||
'id_objet='.intval(session_get('id_auteur')) * -1
|
||||
);
|
||||
sql_updateq('spip_documents_liens',array('id_objet' => intval($id_article)), $where);
|
||||
}
|
||||
|
||||
// maj de l'article
|
||||
$set = array(
|
||||
'titre' => _request('titre'),
|
||||
'texte' => _request('texte'),
|
||||
'soustitre' => _request('soustitre'),
|
||||
'date' => date("Y-m-d H:i:s"),
|
||||
// 'champ_1' => _request('champ_1'),
|
||||
// 'champ_2' => _request('champ_2'),
|
||||
// 'descriptif' => _request('descriptif'),
|
||||
// 'chapo' => _request('chapo'),
|
||||
// 'surtitre' => _request('surtitre')
|
||||
);
|
||||
sql_updateq('spip_articles',$set,'id_article='.intval($id_article));
|
||||
|
||||
// maj rubrique si besoin
|
||||
$id_rubrique = intval(_request('id_rubrique'));
|
||||
$id_rub = sql_getfetsel('id_rubrique', 'spip_articles', 'id_article='.$id_article);
|
||||
if ($id_rub != $id_rubrique) {
|
||||
include_spip('action/editer_article');
|
||||
article_instituer($id_article, array('id_parent' => $id_rubrique));
|
||||
}
|
||||
|
||||
// maj association article -> auteurs
|
||||
include_spip('action/editer_liens');
|
||||
$where = array(
|
||||
'id_objet='.intval($id_article),
|
||||
'objet="article"',
|
||||
);
|
||||
$ids_auteurs = sql_allfetsel('id_auteur', 'spip_auteurs_liens', $where);
|
||||
$ids_auteurs = array_column($ids_auteurs, 'id_auteur');
|
||||
$Tauteurs = _request('Tauteurs');
|
||||
if (count($Tauteurs)) {
|
||||
$associer = array_diff($Tauteurs, $ids_auteurs);
|
||||
$dissocier = array_diff($ids_auteurs, $Tauteurs);
|
||||
|
||||
objet_associer( array('auteur' => $associer),array('article' => intval($id_article) ));
|
||||
objet_dissocier( array('auteur' => $dissocier) , array('article' =>intval($id_article) ));
|
||||
}
|
||||
|
||||
// maj des mots fermes
|
||||
$T_id_groupe = sql_allfetsel('id_groupe','spip_groupes_mots','grigri!="tags"');
|
||||
$T_id_groupe = array_column($T_id_groupe,'id_groupe');
|
||||
|
||||
foreach ($T_id_groupe as $id_groupe) {
|
||||
$from = array(
|
||||
'spip_mots as M',
|
||||
'spip_mots_liens as L'
|
||||
);
|
||||
$where = array(
|
||||
'L.id_objet='.intval($id_article),
|
||||
'L.objet="article"',
|
||||
'L.id_mot=M.id_mot',
|
||||
'M.id_groupe='.$id_groupe
|
||||
);
|
||||
|
||||
$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);
|
||||
if (count($coches)) {
|
||||
$associer = array_diff($coches, $ids_mots);
|
||||
$dissocier = array_diff($ids_mots, $coches);
|
||||
|
||||
objet_associer(array('mot' => $associer),array('article' => intval($id_article)));
|
||||
objet_dissocier(array('mot' => $dissocier), array('article' => intval($id_article)));
|
||||
}
|
||||
}
|
||||
|
||||
// maj des mots clefs ouverts
|
||||
$json_htags = _request('tags_save');
|
||||
$T_htags = json_decode($json_htags);
|
||||
|
||||
$from = array(
|
||||
'spip_groupes_mots AS G',
|
||||
'spip_mots AS M'
|
||||
);
|
||||
$where = array(
|
||||
'G.grigri="tags"',
|
||||
'G.id_groupe=M.id_groupe'
|
||||
);
|
||||
$res = sql_allfetsel('M.id_mot as id_mot, M.titre as titre',$from,$where);
|
||||
$T_mots_existants = array_column($res,'id_mot','titre');
|
||||
$T_id_mots_existants = array_column($res,'id_mot');
|
||||
// on supprime toutes les liaisons
|
||||
include_spip('action/editer_liens');
|
||||
objet_dissocier(array("mot"=>$T_id_mots_existants), array("article"=>intval($id_article)));
|
||||
|
||||
$T_id_mots_a_associer = array();
|
||||
$T_mots_a_creer = array();
|
||||
foreach ($T_htags as $mot) {
|
||||
if (array_key_exists($mot,$T_mots_existants)) {
|
||||
$T_id_mots_a_associer[] = $T_mots_existants[$mot];
|
||||
} else {
|
||||
$T_mots_a_creer[] = $mot;
|
||||
}
|
||||
}
|
||||
// On associe les nouveaux mots existants:
|
||||
objet_associer(array("mot"=>$T_id_mots_a_associer), array("article"=>intval($id_article)));
|
||||
|
||||
// On cree les nouveaux mots
|
||||
if (count($T_mots_a_creer)) {
|
||||
$id_groupe = sql_getfetsel('id_groupe','spip_groupes_mots','grigri="tags"');
|
||||
include_spip('action/editer_mot');
|
||||
$T_nvx_id_mot = array();
|
||||
foreach ($T_mots_a_creer as $nvx_mot) {
|
||||
$set = array( 'titre' => $nvx_mot);
|
||||
$T_nvx_id_mot[] = mot_inserer($id_groupe, $set);
|
||||
}
|
||||
// On associe les nouveaux mots crees :
|
||||
objet_associer(array("mot"=>$T_nvx_id_mot), array("article"=>intval($id_article)));
|
||||
}
|
||||
|
||||
include_spip('action/editer_objet');
|
||||
// GIS
|
||||
$lat_def = lire_config('gis/lat');
|
||||
$lon_def = lire_config('gis/lon');
|
||||
$lat = _request('lat');
|
||||
$lon = _request('lon');
|
||||
// 1. recup id_gis si present
|
||||
$from = array(
|
||||
'spip_gis as G',
|
||||
'spip_gis_liens as L',
|
||||
'spip_articles as A'
|
||||
);
|
||||
$where = array(
|
||||
'L.id_objet='.intval($id_article),
|
||||
'L.objet="article"',
|
||||
'L.id_gis=G.id_gis'
|
||||
);
|
||||
$id_gis = sql_getfetsel('G.id_gis', $from, $where);
|
||||
$set = array(
|
||||
'titre' => _request('titre'),
|
||||
'lat' => $lat,
|
||||
'lon' => $lon,
|
||||
'zoom' => 15
|
||||
);
|
||||
|
||||
if (!$id_gis) {
|
||||
$id_gis = sql_insertq('spip_gis',$set);
|
||||
$set = array(
|
||||
'id_gis' => $id_gis,
|
||||
'id_objet' => intval($id_article),
|
||||
'objet' => 'article'
|
||||
);
|
||||
sql_insertq('spip_gis_liens',$set);
|
||||
} else {
|
||||
if ($lat !== $lat_def and $lon !== $lon_def) {
|
||||
objet_modifier('gis', $id_gis, $set);
|
||||
}
|
||||
}
|
||||
|
||||
// SEO title et description: créer ou mettre à jour, y compris si les valeurs postées sont vides (= vidage du champ)
|
||||
$id_article = intval($id_article);
|
||||
$seo_titre = _request('seo_titre');
|
||||
$set = array('id_objet' => $id_article, 'objet' => 'article', 'meta_name' => 'title', 'meta_content' => $seo_titre);
|
||||
$where = array("id_objet = $id_article", "objet = 'article'", "meta_name = 'title'");
|
||||
$res = sql_getfetsel('meta_content', 'spip_seo', $where);
|
||||
if ((!$res AND $seo_titre != '')
|
||||
OR ($res != $seo_titre)) {
|
||||
sql_replace('spip_seo', $set, $where);
|
||||
}
|
||||
$seo_descriptif = _request('seo_descriptif');
|
||||
$set = array('id_objet' => $id_article, 'objet' => 'article', 'meta_name' => 'description', 'meta_content' => $seo_descriptif);
|
||||
$where = array("id_objet = $id_article", "objet = 'article'", "meta_name = 'description'");
|
||||
$res = sql_getfetsel('meta_content', 'spip_seo', $where);
|
||||
if ((!$res AND $seo_descriptif != '')
|
||||
OR ($res != $seo_descriptif)) {
|
||||
sql_replace('spip_seo', $set, $where);
|
||||
}
|
||||
|
||||
include_spip('inc/invalideur');
|
||||
suivre_invalideur("id='id_article/1'");
|
||||
|
||||
$retour = array();
|
||||
$retour['message_ok'] = "L'article est enregistré";
|
||||
|
||||
$retour['redirect'] = 'spip.php?page=article&id_article='.$id_article;
|
||||
|
||||
$bigform = charger_fonction('bigform_traiter','inc');
|
||||
$bigform($id_article, 'article');
|
||||
|
||||
|
||||
return $retour;
|
||||
}
|
|
@ -1,26 +0,0 @@
|
|||
#CACHE{0}
|
||||
[(#ENV{id_article}|=={0}|oui) [(#SESSION{id_auteur}|mult{-1}|setenv{id_article})] ]
|
||||
|
||||
<div class="photo_bien" id="les_photos">
|
||||
<BOUCLE_doc(DOCUMENTS){id_article}{extension==jpg|png|gif}{statut in prop,prepa,publie}{par id_document}>
|
||||
<div class="une_photo">
|
||||
[(#FICHIER|image_recadre{320:180,-,focus}|image_reduire{320,180})]
|
||||
|
||||
[(#SESSION{statut}|=={0minirezo}|oui)
|
||||
<div class="boutons_actions">
|
||||
<a class="btn pull-right btn_poubelle" href="[(#URL_ACTION_AUTEUR{supprimer_photo, [(#ID_DOCUMENT)]-[(#ENV{id_article})]})]" title="Supprimer la photo">
|
||||
<i class="fas fa-trash red"></i>
|
||||
</a>
|
||||
[(#CREDITS*|=={une}|?{
|
||||
<i class="fas fa-check green"> Une</i>
|
||||
,
|
||||
<a class="btn pull-right btn_une" href="[(#URL_ACTION_AUTEUR{promouvoir_photo, [(#ID_DOCUMENT)]-[(#ENV{id_article})]})]" title="Mettre en première photo">
|
||||
<i class="fas fa-check"></i>
|
||||
</a>
|
||||
})]
|
||||
</div>
|
||||
]
|
||||
[<div class="titre_img #EDIT{titre}">(#TITRE|sinon{[(#SESSION{statut}|=={0minirezo}|oui)<i>Double cliquez pour ajouter un titre</i>]})</div>]
|
||||
</div>
|
||||
</BOUCLE_doc>
|
||||
</div>
|
|
@ -1,8 +1,8 @@
|
|||
jQuery(function($) {
|
||||
editer_bien();
|
||||
//onAjaxLoad(editer_bien);
|
||||
editer_article();
|
||||
//onAjaxLoad(editer_article);
|
||||
|
||||
function editer_bien(){
|
||||
function editer_article(){
|
||||
// chargement du datepicker
|
||||
$('.datepicker').datepicker({
|
||||
dateFormat: "dd/mm/yy",
|
Loading…
Add table
Reference in a new issue