function action_instituer_article_dist() { $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); list($id_article, $statut) = preg_split('/\W/', $arg); if (!$statut) $statut = _request('statut_nouv'); // cas POST if (!$statut) return; // impossible mais sait-on jamais $id_article = intval($id_article); // si on passe un statut_old, le controler // http://trac.rezo.net/trac/spip/ticket/1932 if ($old = _request('statut_old') AND $s = sql_fetsel('statut', 'spip_articles', 'id_article='.sql_quote($id_article)) AND $s['statut'] != $old) return; include_spip('action/editer_article'); $c = array('statut' => $statut); // si on a envoye une 'date_posterieure', l'enregistrer if ($d = _request('date_posterieure')) $c['date'] = $d; instituer_article($id_article, $c); }
function articles_set($id_article, $set=null) { $err = ''; // unifier $texte en cas de texte trop long trop_longs_articles(); $c = array(); foreach (array( 'surtitre', 'titre', 'soustitre', 'descriptif', 'nom_site', 'url_site', 'chapo', 'texte', 'ps' ) as $champ) $c[$champ] = _request($champ,$set); if (_request('changer_virtuel',$set) == 'oui') { $r = _request('virtuel',$set); $c['chapo'] = (strlen($r) ? '='.$r : ''); } include_spip('inc/modifier'); revision_article($id_article, $c); // Modification de statut, changement de rubrique ? $c = array(); foreach (array( 'date', 'statut', 'id_parent' ) as $champ) $c[$champ] = _request($champ,$set); $err .= instituer_article($id_article, $c); // Un lien de trad a prendre en compte $err .= article_referent($id_article, array('lier_trad' => _request('lier_trad',$set))); return $err; }
function crayons_update_article($id_article, $c = false) { include_spip('action/editer_article'); // Enregistrer les nouveaux contenus revisions_articles($id_article, $c); // En cas de statut ou de id_rubrique // NB: instituer_article veut id_parent, et pas id_rubrique ! if (isset($c['id_rubrique'])) { $c['id_parent'] = $c['id_rubrique']; unset($c['id_rubrique']); } instituer_article($id_article, $c); }
} } // Creation d'un nouvel article du WIKI -- cf. inc-entete if (_request('ajouter_page_wiki') !== NULL and !preg_match(",http://,", _request('ajouter_page_wiki')) and _request('id_rubrique') !== NULL and !_request('pas_de_robot_merci') and _request('id_rubrique') == $GLOBALS['contexte']['id_rubrique']) { $id_rubrique = intval($_POST['id_rubrique']); $id_article = null; // on verifie d'abord qu'un article de ce titre n'existe pas deja $s = sql_query("SELECT id_article FROM spip_articles WHERE titre=" . _q(_request('ajouter_page_wiki')) . " OR url_propre=" . _q(_request('ajouter_page_wiki'))); if ($t = sql_fetch($s)) { $id_article = $t['id_article']; } else { include_spip('inc/autoriser'); if (autoriser('publierdans', 'rubrique', $id_rubrique)) { include_spip('action/editer_article'); $id_article = insert_article($id_rubrique); include_spip('inc/modifier'); $r = modifier_contenu('article', $id_article, array('champs' => array('titre', 'statut')), array('titre' => _request('ajouter_page_wiki'), 'statut' => 'publie')); # pour SPIP 1.9.3 if (function_exists('instituer_article')) { instituer_article($id_article, array('statut' => 'publie')); } } } if (!$id_article) { die("Erreur : creation d'article interdite"); } charger_generer_url(); include_spip('inc/headers'); redirige_par_entete(generer_url_article($id_article, '&')); } define('RUBRIQUE_WIKI_OK', true);
function article_import_k2($mon_article) { include_spip('joomla2spip_fonctions'); include_spip('plugins/installer'); $err = ''; // chercher si l'article n'a pas deja ete importe $ancien_id = $mon_article['id_article']; $result = sql_fetsel('id_article', 'spip_articles', 'id_article=' . intval($ancien_id)); if ($result) { return; } // chercher la rubrique $titre_rub = $mon_article['rubrique']; $result = sql_fetsel('id_rubrique', 'spip_rubriques', 'titre=' . sql_quote($titre_rub)); if ($result) { $id_rubrique = $result['id_rubrique']; } // creer article vide include_spip('action/editer_article'); $id_article = insert_article($id_rubrique); $sql = "UPDATE spip_articles SET id_article = '{$ancien_id}' WHERE id_article = '{$id_article}'"; spip_query($sql); if (spip_version_compare($GLOBALS['spip_version_branche'], '3.0.0', '>=')) { include_spip('action/editer_article'); $sql = "UPDATE spip_auteurs_liens SET id_objet = '{$ancien_id}' WHERE id_objet = '{$id_article}' AND objet = 'article'"; } else { include_spip('inc/modifier'); $sql = "UPDATE spip_auteurs_articles SET id_article = '{$ancien_id}' WHERE id_article = '{$id_article}'"; } spip_query($sql); $id_article = $ancien_id; // le remplir $c = array(); foreach (array('surtitre', 'titre', 'soustitre', 'descriptif', 'nom_site', 'url_site', 'chapo', 'texte', 'maj', 'ps', 'visites') as $champ) { $c[$champ] = $mon_article[$champ]; } revisions_articles($id_article, $c); // Modification de statut, changement de rubrique ? $c = array(); foreach (array('date', 'statut', 'id_parent') as $champ) { $c[$champ] = $mon_article[$champ]; } $c['id_parent'] = $id_rubrique; $err .= instituer_article($id_article, $c); // Un lien de trad a prendre en compte if (!spip_version_compare($GLOBALS['spip_version_branche'], '3.0.0', '>=')) { $err .= article_referent($id_article, array('lier_trad' => _request('lier_trad'))); } // ajouter les extras // les documents attachées if (isset($mon_article['document']) and count($mon_article['document']) > 0) { $ajouter_documents = charger_fonction('ajouter_documents', 'action'); $copie_local = charger_fonction('copier_local', 'action'); include_spip('inc/joindre_document'); include_spip('formulaires/joindre_document'); foreach ($mon_article['document'] as $document) { $file = url_absolue('media/k2/attachments/' . $document['fichier']); spip_log($file, 'teste'); set_request('joindre_distant', true); set_request('url', $file); $files = joindre_trouver_fichier_envoye(); $mode = joindre_determiner_mode('auto', 'new', 'article'); $nouveaux_doc = $ajouter_documents('new', $files, 'article', $id_article, $mode); spip_log($nouveaux_doc, 'teste'); $id_document = $nouveaux_doc[0]; $copie_local($id_document); $titre = isset($document['titre']) ? $document['titre'] : ''; sql_updateq('spip_documents', array('titre' => $titre), 'id_document=' . $id_document); } } return $err; }