Comment récupérer les champs cck

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour à toutes et à tous,

Dernièrement j'ai développé un module sur drupal (ben oui c'est le forum de drupal ^^). Et je bloque sur un appel de fonction. J'ai l'impression que c'est tout bête mais je ne vois pourquoi je bloque.
Objectif : Récupérer les field_name de tous les champs CCK et l'intégrer dans une autre fonction.

Il s'agit d'appeler la fonction content_fields_list qui chope tous les champs champs CCK.

voici mon code :
if (drupal_strlen($node->field_text1[0]['value']), '') > 5) {
form_set_error('field_text1', t('champ ckk trop grand.'));

En gros je souhaiterais remplacer field_text1 (qui est un champ CCK) par un appel de tous les champs CCK.

Je vous remercie tout ceux qui peuvent m'aider.

Forum : 
Version de Drupal : 

Déjà il y a une parenthèse de trop :
if (drupal_strlen($node->field_text1[0]['value']), '') > 5) { devrait être
if (drupal_strlen($node->field_text1[0]['value'], '') > 5) {

;-)

Bonjour

Est ce que tu es sûr que $node->field_text1[0]['value'] te renvois bien quelque chose ?
La fonction pour avoir la taille d'une chaine de caractères est drupal_strlen($text)

Essais donc :

if (isset($node->field_text1[0]['value']) && drupal_strlen($node->field_text1[0]['value']) > 5) {
  form_set_error('field_text1', t('champ ckk trop grand.'));
}

Oui tu as raison, j'aurai du vérifier. En fait le field_text1 est un champ cck que j'ai créé. L'objectif était d'en créer plusieurs. Et de pouvoir les récupérer pour les insérer dans la script.

En tout cas je te remercie.

ps : emerya :D

la solution je ne l'ai pas encore trouvé. Le vrai problème c'est de pouvoir récupérer tous les champs cck. exemple :

Soit x champs CCK (field_text1 et field_text2 et ... field_textx)
Au lieu de :

if (isset($node->field_text1[0]['value']) && drupal_strlen($node->field_text1[0]['value']) > 5) {
form_set_error('field_text1', t('champ ckk trop grand.'));
}
if (isset($node->field_text2[0]['value']) && drupal_strlen($node->field_text2[0]['value']) > 5) {
form_set_error('field_text2', t('champ ckk trop grand.'));
}

...

if (isset($node->field_textx[0]['value']) && drupal_strlen($node->field_textx[0]['value']) > 5) {
form_set_error('field_textx', t('champ ckk trop grand.'));
}

Je souhaite pouvoir appeler tous ses champs cck en une seule fois de la façon suivante :

if (isset($node->field_(liste des champs cck)[0]['value']) && drupal_strlen($node->field_(liste des champs cck)[0]['value']) > 5) {
form_set_error('field_(liste des champs cck)', t('champ ckk trop grand.'));
}

Ce n'est pas forcément la bonne methode mais en tout cas c'est l'idée.