How to list CCK fields by content type in Drupal

泄露秘密 提交于 2019-12-07 00:58:58

问题


To get a list of a content type's cck fields, I was hoping to use:

drupal_get_schema('content_type_mycontenttype');

but that leaves out fields with multiple values. Is there a simple call to use to get such a list?


回答1:


Take a look at the content_fields function, and if doesn't that have the information you need, there is _content_type_info.

Additionally, once you have the field information, you can extract the table storage and column names using content_database_info.




回答2:


For Drupal 7, check out the field_info_instances function to retrieve a list of fields for a particular node content type.

Here is an example usage that will retrieve all the fields for a node content type.

$my_content_type_fields = field_info_instances("node", "my_node_content_type");




回答3:


I've used something like this before to do a quick list of CCK Field information for a content type:

    $mytype = 'article';
    $contentinfo = _content_type_info();
    $output .= "<ul>";
    foreach($contentinfo['fields'] as $field) {
        if ($field['type_name'] == $mytype) {
            $output .= '<li id="field-' . $field['field_name'] . '">' . $field['widget']['label'] . '<br>';

            if ($field['widget']['description']) {
                $output .= $field['widget']['description'] . '<br>';
            }    

            $output .= '<ul>
                    <li>Content Types: ' . $field['type_name'] . '</li>
                    <li>Type: ' . $field['type'] . '</li>
                    <li>' . $field['field_name'] . '</li>
                </ul>';
        }
    }
    $output .= '</ul>';


来源:https://stackoverflow.com/questions/2992134/how-to-list-cck-fields-by-content-type-in-drupal

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!