Il y a quelques temps lors d’un Apéro SPIP, Jean-Marie me demandait :

Comment obliger les visiteurs à remplir le champ nom du formulaire de forum ?

On pourrait surcharger le fichier squelettes-dist/formulaires/forum.php mais ce n’est pas une solution pérenne, car il faudrait le mettre à jour à chaque modification du fichier orignal fourni par SPIP.

Pour faire les choses proprement, on va utiliser le pipeline formulaire_verifier pour insérer notre vérification supplémentaire dans le formulaire de forum.

Ci-dessous, le code à coller dans config/mes_options.php :

// on ajoute notre fonction dans le pipeline de verification des formulaires
// http://programmer.spip.org/Qu-est-ce-qu-un-pipeline
$GLOBALS['spip_pipeline']['formulaire_verifier'] .= '|nom_obligatoire';

// la fonction qui verifie que le nom n'est pas vide
function nom_obligatoire($flux){
        $form = $flux['args']['form'];
        if ($form=='forum'){
                if (!sinon($GLOBALS['visiteur_session']['nom'],$GLOBALS['visiteur_session']['session_nom'])){
                        $flux['data']['message_erreur'] .= _T('nom_obligatoire');
                        $flux['data']['session_nom'] = _T('nom_obligatoire');
                        unset($flux['data']['previsu']);
                }
        }
        return $flux;
}

Il nous reste à définir la chaîne de langue nom_obligatoire dans un fichier squelettes/local_fr.php et hop "ça poutre" ;)