function action_referencer_traduction_dist() { $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); if (preg_match(",^(\d+)$,", $arg, $r) AND $trad = intval(_request('lier_trad'))) { include_spip('action/editer_article'); if ($err = article_referent($r[1], array('lier_trad' => $trad))) redirige_par_entete(urldecode(_request('redirect')) . $err); } elseif (preg_match(",^(\d+)\D-(\d+)$,", $arg, $r)) { // supprimer le lien de traduction sql_updateq("spip_articles", array("id_trad" => 0), "id_article=" . $r[1]); // Verifier si l'ancien groupe ne comporte plus qu'un seul article. Alors mettre a zero. $cpt = sql_countsel("spip_articles", "id_trad=" . $r[2]); if ($cpt == 1) sql_updateq("spip_articles", array("id_trad" => 0), "id_trad=" . $r[2]); } elseif (preg_match(",^(\d+)\D(\d+)\D(\d+)$,", $arg, $r)) { // modifier le groupe de traduction de $r[1] (SQL le trouvera) sql_update('spip_articles', array("id_trad" => $r[3]), "id_trad=" . $r[2]); } elseif (preg_match(",^(\d+)\D(\d+)$,", $arg, $r)) { instituer_langue_article($r[1],$r[2]); } else { spip_log("action_referencer_traduction_dist $arg pas compris"); } }
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; }
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; }