-
+
+
[(#GET{erreurs})]
-
+
+
+
+
+ [(#GET{erreurs})]
+
diff --git a/formulaires/editer_article.html b/formulaires/editer_article.html
new file mode 100644
index 0000000..e67813a
--- /dev/null
+++ b/formulaires/editer_article.html
@@ -0,0 +1,160 @@
+
+
+
+
+
+
+
+
diff --git a/formulaires/editer_article.php b/formulaires/editer_article.php
new file mode 100644
index 0000000..b9e1c44
--- /dev/null
+++ b/formulaires/editer_article.php
@@ -0,0 +1,307 @@
+ '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;
+}
diff --git a/formulaires/login.html b/formulaires/login.html
index 6adc2bf..3c45c67 100644
--- a/formulaires/login.html
+++ b/formulaires/login.html
@@ -17,7 +17,7 @@
[(#REM) declarer les hidden qui declencheront le service du formulaire parametre : url d'action ]
#ACTION_FORMULAIRE{#ENV{action}}