'tout_mime','taille_max'=>'5000','largeur_max'=>'3000','hauteur_max'=>'3000']; $bigform($options,$erreurs); return $erreurs; } function formulaires_editer_post_traiter_dist($id_article = 0, $redirect = ''){ $new = $id_article; $id_rubrique = lire_config('balint/id_rub_articles'); if (!intval($id_article)) { 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'), 'descriptif' => _request('descriptif'), 'date_agenda' => _request('date_agenda'), 'statut' => _request('statut'), 'id_groupe' => _request('id_groupe') // 'champ_1' => _request('champ_1'), // 'champ_2' => _request('champ_2'), // 'chapo' => _request('chapo'), // 'surtitre' => _request('surtitre') ); 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'); $T_ids_mots = array(); 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'); foreach($ids_mots as $id_mot){ $T_ids_mots[] = $id_mot; } } $coches = _request('id_emplacements'); if (count($coches)){ $associer = array_diff($coches, $T_ids_mots); $dissocier = array_diff($T_ids_mots, $coches); objet_associer(array('mot' => $associer),array('article' => intval($id_article))); objet_dissocier(array('mot' => $dissocier), array('article' => intval($id_article))); } else{ objet_dissocier(array('mot' => $T_ids_mots), 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 bien enregistré."; if ($new==0){ $redirect .= '&id_article=' . $id_article; } //$retour['redirect'] = $redirect; $bigform = charger_fonction('bigform_traiter','inc'); $bigform($id_article, 'article'); return $retour; }