'image_web','taille_max'=>'2000','largeur_max'=>'2048','hauteur_max'=>'2048']; $bigform($options,$erreurs); return $erreurs; } function formulaires_editer_groupe_traiter_dist($id_article=0, $redirect=''){ $new = $id_article; if (!intval($id_article)) { $id_rubrique = lire_config('balint/id_rub_groupes'); include_spip('action/editer_article'); $set = array( 'statut' => 'publie' ); $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); } $titre=_request('titre'); $soustitre=_request('soustitre'); $texte=_request('texte'); $descriptif=_request('descriptif'); // maj de l'article $set = array( 'titre' => $titre, 'texte' => $texte, 'soustitre' => $soustitre, // On affiche le plus récent en premier => on garde la date de mise à jour 'date' => date("Y-m-d H:i:s"), 'descriptif' => $descriptif, // 'surtitre' => $surtitre // 'champ_1' => _request('champ_1'), // 'champ_2' => _request('champ_2'), // 'chapo' => _request('chapo'), ); sql_updateq('spip_articles',$set,'id_article='.intval($id_article)); // 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))); } } 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'] = "Le groupe est bien enregistré."; // on redirige vers la ville $retour['redirect'] = "spip.php?page=groupes&id_article=$id_article"; $bigform = charger_fonction('bigform_traiter','inc'); $bigform($id_article, 'article'); return $retour; }