formulaire_verifier

Ce pipeline est appelé dans ecrire/public/aiguiller.php au moment de la vérification des données soumises d’un formulaire CVT. Il permet de compléter le tableau d’erreurs renvoyé par la fonction verifier du formulaire en question.

Il reçoit les mêmes arguments que le pipeline formulaire_charger, à savoir le nom du formulaire ainsi que les paramètres transmis dans les fonctions charger, verifier et traiter. Il retourne le tableau des erreurs.

$verifier = charger_fonction("verifier","formulaires/$form/",true);
$post["erreurs_$form"] = pipeline('formulaire_verifier', array(
	'args' => array(
		'form'=>$form,
		'args'=>$args),
	'data'=>$verifier 
		? call_user_func_array($verifier, $args) 
		: array()));

Exemple

Exemple 1

Le plugin « OpenID » se sert de ce pipeline pour vérifier, lorsqu’un auteur édite ses informations, que l’URL OpenID indiquée est correcte et dans le cas contraire indique une erreur sur le champ en question.

function openid_formulaire_verifier($flux){
	if ($flux['args']['form'] == 'editer_auteur'){
		if ($openid = _request('openid')){
			include_spip('inc/openid');
			$openid = nettoyer_openid($openid);
			if (!verifier_openid($openid))
				$flux['data']['openid'] = _T('openid:erreur_openid');
		}
	}
	// [...]
	return $flux;
}

Exemple 2

Renforcer le plugin « nospam » en bloquant les inscriptions d’internautes ayant un mail en @xxx.com.

// bloquer l'inscription des comptes avec un mail en @xxx.com
if (!isset($GLOBALS['spip_pipeline']['formulaire_verifier'])) {
	$GLOBALS['spip_pipeline']['formulaire_verifier'] = '';
}
$GLOBALS['spip_pipeline']['formulaire_verifier'] .= "|spam_xxx";
function spam_xxx($flux) {
	if ($flux['args']['form'] == 'inscription'){
        if (strpos(_request('mail_inscription'), '@xxx.com')) {
            $flux['data']['mail_inscription'] = 'spam detected';
        }
    }
    return $flux;
}

Vous pouvez insérer ce code dans le fichier d’options de votre site ou de votre plugin.
N’oubliez pas, ensuite, de passer sur la page d’administration des plugins, afin de mettre à jour le cache des pipelines.

Auteur Matthieu Marcillaud Publié le : Mis à jour : 14/07/22

Traductions : English, français