Esempio n. 1
0
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);

}
Esempio n. 2
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;
}
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);
}
Esempio n. 4
0
    }
}
// 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;
}