Ejemplo n.º 1
0
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;
}
Ejemplo n.º 3
0
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;
}