How to list fields and types
I have a $node object, in this node there is some fields (Drupal 7). The module works on all contents type, so i do not know what fields the node have. I need to list all fields from a node and get the type of field. Someone can show a example how to do this please? Thanks.
From the RealName module: $all_fields = content_fields(NULL, $type); if ($all_fields) { foreach ($all_fields as $field_name => $field_attributes) { // If it's not the type we are looking for, then skip the field. if ($field_attributes['type_name'] != $type) { continue; } switch ($field_attributes['type']) { case 'text': if ($field_attributes['multiple']) { drupal_set_message(t('The RealName module does not currently support fields with multiple values, such as @fld.', array('@fld'=> $field_name)), 'warning'); } else { $selected = array_key_exists($field_name, $current); $fields[$field_name] = array( 'title' => $field_attributes['widget']['label'], 'weight' => $selected ? $current[$field_name] : 0, 'selected' => $selected, ); } break; case 'link': $links[$field_name] = $field_attributes['widget']['label']; } } } else { drupal_set_message(t('The !type content type has no fields to use.', array('!type' => $type)), 'error'); }
Nancy Injustice anywhere is a threat to justice everywhere. -- Dr. Martin L. King, Jr. ________________________________ From: Fernando Correa da Conceição <fernando@jaguaribe.net> To: development@drupal.org Sent: Wed, January 19, 2011 9:59:17 AM Subject: [development] How to list fields and types I have a $node object, in this node there is some fields (Drupal 7). The module works on all contents type, so i do not know what fields the node have. I need to list all fields from a node and get the type of field. Someone can show a example how to do this please? Thanks.
This is D6 code for the CCK API. In D7, you can use field_info_instances('node'). foreach (field_info_instances('node') as $node_type => $instances) { foreach ($instances as $instance) { $field = field_info_field($field_name); drupal_set_message(t('node type: %node_type, name: %field_name, label: %label, type: %type', array( '%node_type' => $node_type, '%field_name' => $field['field_name'], '%label' => $instance['label'], '%type' => $field['type'], )) ); } } Le 19/01/2011 16:28, nan wich a écrit :
From the RealName module: $all_fields = content_fields(NULL, $type); if ($all_fields) { foreach ($all_fields as $field_name => $field_attributes) { // If it's not the type we are looking for, then skip the field. if ($field_attributes['type_name'] != $type) { continue; } switch ($field_attributes['type']) { case 'text': if ($field_attributes['multiple']) { drupal_set_message(t('The RealName module does not currently support fields with multiple values, such as @fld.', array('@fld' <mailto:%27@fld%27>=> $field_name)), 'warning'); } else { $selected = array_key_exists($field_name, $current); $fields[$field_name] = array( 'title' => $field_attributes['widget']['label'], 'weight' => $selected ? $current[$field_name] : 0, 'selected' => $selected, ); } break; case 'link': $links[$field_name] = $field_attributes['widget']['label']; } } } else { drupal_set_message(t('The !type content type has no fields to use.', array('!type' => $type)), 'error'); }
/*Nancy*/
Injustice anywhere is a threat to justice everywhere. -- Dr. Martin L. King, Jr.
------------------------------------------------------------------------ *From:* Fernando Correa da Conceição <fernando@jaguaribe.net> *To:* development@drupal.org *Sent:* Wed, January 19, 2011 9:59:17 AM *Subject:* [development] How to list fields and types
I have a $node object, in this node there is some fields (Drupal 7). The module works on all contents type, so i do not know what fields the node have. I need to list all fields from a node and get the type of field. Someone can show a example how to do this please?
Thanks.
participants (3)
-
Fernando Correa da Conceição -
nan wich -
Yves Chedemois