Valider 2efb6172 rédigé par esj's avatar esj
Parcourir les fichiers

Suite de [7921]: l'appel de la fonction tenant compte des options de...

Suite de [7921]: l'appel de la fonction tenant compte des options de configuration (et sa définition standard) migre dans le fichier construisant le formulaire d'édition d'article, afin d'etre disponible à partir d'un squelette.

Pour donner un exemple, voici un bout de squelette S qui fait apparaitre le
formulaire, avec des options de config perso config_S, et retour vers lui-meme:

[(#ID_ARTICLE|inc_editer_article_dist{#ID_RUBRIQUE,0,'./?page=S', config_S})]

L'ajout de champs supplémentaires dans le formulaire reste à améliorer: il
faut rajouter un filtre éliminant les balises form-/form englobantes puis 
les remettre.
parent c0179790
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+1 −27
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -27,32 +27,6 @@ function exec_articles_edit_dist()
		'articles_edit_config');
}

// http://doc.spip.org/@articles_edit_config
function articles_edit_config($row)
{
	global $champs_extra, $spip_ecran, $options, $spip_lang;

	$config = $GLOBALS['meta'];
	$config['lignes'] = ($spip_ecran == "large")? 8 : 5;
	$config['afficher_barre'] = $spip_display != 4;
	$config['langue'] = $spip_lang;
	

	if ($options != 'avancees') {
		$config['articles_surtitre'] = 'non';
		$config['articles_descriptif'] = "non";
		$config['articles_urlref'] = "non";
		$config['articles_ps'] = "non";
	}

	if ($champs_extra) {
		include_spip('inc/extra');
		$config['extra'] = true;
	} else $config['extra'] = false;

	$config['restreint'] = ($row['statut'] == 'publie');
	return $config;
}

// http://doc.spip.org/@articles_edit
function articles_edit($id_article, $id_rubrique,$lier_trad,  $id_version, $new, $config_fonc)
@@ -106,7 +80,7 @@ function articles_edit($id_article, $id_rubrique,$lier_trad, $id_version, $new,
	debut_cadre_formulaire();
	echo articles_edit_presentation($new, $row['id_rubrique'], $lier_trad, $row['id_article'], $row['titre']);
	$editer_article = charger_fonction('editer_article', 'inc');
	echo $editer_article($new, $id_rubrique, $lier_trad, generer_url_ecrire("articles"), $config_fonc($row), $row);
	echo $editer_article($new, $id_rubrique, $lier_trad, generer_url_ecrire("articles"), $config_fonc, $row);
	fin_cadre_formulaire();

	echo fin_page();
+37 −9
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -15,8 +15,8 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/actions');

// http://doc.spip.org/@inc_editer_article_dist
function inc_editer_article_dist($new, $id_rubrique=0, $lier_trad=0, $retour='', $config=array(), $row=array()) {

function inc_editer_article_dist($new, $id_rubrique=0, $lier_trad=0, $retour='', $config_fonc='articles_edit_config', $row=array(), $hidden='')
{
	// Appel en tant que filtre d'un squelette 
	if (!$row) {
		include_spip('inc/presentation');
@@ -25,15 +25,16 @@ function inc_editer_article_dist($new, $id_rubrique=0, $lier_trad=0, $retour='',
		if (!$row) return '';
		if (is_numeric($new)) $new = '';
	}

	// Gaffe: sans ceci, on ecrase systematiquement l'article d'origine
	// (et donc: pas de lien de traduction)
	$id_trad = $row['id_article'];

	$id_article = $lier_trad ? '' : $id_trad;
	$id_article = ($new OR $lier_trad) ? 'oui' : $row['id_article'];
	$id_rubrique = $row['id_rubrique'];
	$id_secteur = $row['id_secteur'];

	$aider = charger_fonction('aider', 'inc');
	$config = $config_fonc($row);

	$form = "<input type='hidden' name='editer_article' value='oui' />\n" .
		 (!$lier_trad ? '' :
@@ -55,13 +56,12 @@ function inc_editer_article_dist($new, $id_rubrique=0, $lier_trad=0, $retour='',
	. editer_article_ps($row['ps'], $config, $aider)

	. (!$config['extra'] ? '': extra_saisie($row['extra'], 'articles', $id_secteur))

	. "<div align='right'><input class='fondo' type='submit' value='"
	. $hidden
	. ("<div align='right'><input class='fondo' type='submit' value='"
	. _T('bouton_enregistrer')
	. "' /></div>";

	return generer_action_auteur("editer_article", $new ? 'oui' : $id_article, $retour, $form, " method='post' name='formulaire'");
	. "' /></div>");

	return generer_action_auteur("editer_article", $id_article, $retour, $form, " method='post' name='formulaire'");
}

// http://doc.spip.org/@editer_article_texte
@@ -294,4 +294,32 @@ function editer_article_chapo($chapo, $config, $aider)
			"</textarea></p>\n";
	}
}

// Choix par defaut des options de presentation
function articles_edit_config($row)
{
	global $champs_extra, $spip_ecran, $options, $spip_lang;

	$config = $GLOBALS['meta'];
	$config['lignes'] = ($spip_ecran == "large")? 8 : 5;
	$config['afficher_barre'] = $spip_display != 4;
	$config['langue'] = $spip_lang;
	

	if ($options != 'avancees') {
		$config['articles_surtitre'] = 'non';
		$config['articles_descriptif'] = "non";
		$config['articles_urlref'] = "non";
		$config['articles_ps'] = "non";
	}

	if ($champs_extra) {
		include_spip('inc/extra');
		$config['extra'] = true;
	} else $config['extra'] = false;

	$config['restreint'] = ($row['statut'] == 'publie');
	return $config;
}

?>