Example #1
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;
}
Example #2
0
/**
 * Modifier un article
 * 
 * Appelle toutes les fonctions de modification d'un article
 * 
 * @param int $id_article
 *     Identifiant de l'article à modifier
 * @param array|null $set
 *     Couples (colonne => valeur) de données à modifier.
 *     En leur absence, on cherche les données dans les champs éditables
 *     qui ont été postés (via _request())
 * @return string|null
 *     Chaîne vide si aucune erreur,
 *     Null si aucun champ à modifier,
 *     Chaîne contenant un texte d'erreur sinon.
 */
function article_modifier($id_article, $set = null)
{
    // unifier $texte en cas de texte trop long
    trop_longs_articles();
    include_spip('inc/modifier');
    include_spip('inc/filtres');
    $c = collecter_requests(objet_info('article', 'champs_editables'), array('date', 'statut', 'id_parent'), $set);
    // Si l'article est publie, invalider les caches et demander sa reindexation
    $t = sql_getfetsel("statut", "spip_articles", "id_article=" . intval($id_article));
    $invalideur = $indexation = false;
    if ($t == 'publie') {
        $invalideur = "id='article/{$id_article}'";
        $indexation = true;
    }
    if ($err = objet_modifier_champs('article', $id_article, array('nonvide' => array('titre' => _T('info_nouvel_article') . " " . _T('info_numero_abbreviation') . $id_article), 'invalideur' => $invalideur, 'indexation' => $indexation, 'date_modif' => 'date_modif'), $c)) {
        return $err;
    }
    // Modification de statut, changement de rubrique ?
    $c = collecter_requests(array('date', 'statut', 'id_parent'), array(), $set);
    $err = article_instituer($id_article, $c);
    return $err;
}