formulaire_fond

Le pipeline formulaire_fond permet de personnaliser le code HTML d’un formulaire.

Il permet, par exemple, de modifier le code généré pour un formulaire uniquement dans l’espace privé, ou dans une certaine rubrique, ou selon d’autres conditions.

Exemple

Changer un label de saisie seulement dans un secteur donné :

function exemple_formulaire_fond($fond) {
	if (
		$fond['args']['form'] == 'editer_article'
		and $id_parent = $fond['args']['contexte']['id_parent'];
		and $id_secteur = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique=' . intval($id_parent)
		and $id_secteur === 7
	) {
		$fond['data'] = str_replace(_T('info_sous_titre'), _T('exemple:label_exemple'), $fond['data']);
	}
	return $fond;
}

Dans le plugin albums :

Le plugin album se sert de ce pipeline (source) pour insérer un message d’avertissement après le titre au cas où l’ajout des documents aux albums est désactivé :

function albums_formulaire_fond($flux) {
	if ($flux['args']['form'] == 'configurer_documents'
	and $avertissement = albums_message_cfg_documents(true)) {
		// On cherche le titre du formulaire : <h3 class="titrem">...</h3>
		// et on le fait suivre du message
		$cherche = "/(<h3[^>]\s*class\s?=\s?['\"]titrem.*<\/h3>)/is";
		$remplace = "<!--extra-->$avertissement";
		$flux['data'] = preg_replace($cherche, $remplace, $flux['data']);
	}
	return $flux;
}

Auteur JLuc Publié le :