Développeur Drupal – Blog d'un passionné, un peu touche à tout, dans le monde du web.
Lorsqu’on construit un formulaire à l’aide de CCK on bénéficie de conditions de validation de champs par défaut, afin de contrôler que la saisie de l’utilisateur est bien un nombre, du texte ou de type adresse mail… Prenons l’exemple du module phone qui permet de saisir des numéros de téléphone, celui-ci vérifie lors de la validation que ce qui à été tapé semble bien être un numéro.
Il peut vous arriver d’avoir besoin de vérifier autre chose, par exemple pour un numéro de série vous allez faire un contrôle sur la structure de l’information et le nombre de caractères.
Pour personnaliser la vérification de nos champs de formulaires nous allons ajouter, grâce à un form_alter, un appel à nos fonctions de vérifications.
function mymodule_form_alter($form_id, &$form) {
// Si vous voulez controler un champs pour un type de contenu en particulier
$allowed_node_types = array(
'mymodule1',
'mymodule2',
);
// On vérifie que l'on est bien sur un formulaire de type de contenu et qu'il appartient à la liste précédente.
if (substr($form_id,-10)=='_node_form' && in_array(substr($form_id, 0, strlen($form_id)-10), $allowed_node_types)) {
// Note : Vous pouvez ajouter autant de fonctions de vérification que vous en avez besoin
$form['#validate'][] = '_mymodule_form_validate';
}
}
Il ne nous reste plus qu’à construire notre fonction de vérification
function _mymodule_form_validate($form_values, $form)
{
// Vous pouvez alors vérifier votre champ et avertir l'utilisateur d'un éventuel probleme.
if ($form_values['monchamp'][0]['value'] == 'Quelque chose à vérifier') {
form_set_error('monchamp', 'Le message d'erreur pour l'utilisateur');
}
}
Voilà, en quelques lignes nous venons d’ajouter nos propres conditions de validation à notre champ CCK.
Bienvenue sur mon blog. Sur cet espace j’essaie de partager au mieux ma passion pour le web et actuellement mon engouement pour Drupal. Vous trouverez ici mes découvertes, mes problématiques et les solutions rencontrées.
2 Responses to Ajouter des conditions de validation à un champ CCK
Sylvain
août 23rd, 2010 at 18 h 16 min
Bonjour,
j’ai du mal à comprendre sans exemple surtout pour la partie concernant la fonction de vérification.
Sylvain
flyzi
juillet 15th, 2011 at 10 h 29 min
Bonjour,
je n’arrive pas à adapter vodre code à drupal 7.
Comment faire ?
J’ai placé votre code dans template.php (du thème). J’ai également créé un petit module juste avec votre code car votre fonction commence par « mymodule ».
Merci d’avance.