Как составить список полей CCK по типу контента в Drupal - PullRequest
7 голосов
/ 07 июня 2010

Чтобы получить список полей cck типа контента, я надеялся использовать:

drupal_get_schema('content_type_mycontenttype');

но это оставляет поля с несколькими значениями. Есть ли простой вызов для получения такого списка?

Ответы [ 3 ]

3 голосов
/ 12 октября 2012

Для Drupal 7, проверьте функцию field_info_instances , чтобы получить список полей для определенного типа содержимого узла.

Вот пример использования, который будет извлекать все поля для типа содержимого узла.

$ my_content_type_fields = field_info_instances ("узел", "my_node_content_type");

3 голосов
/ 07 июня 2010

Взгляните на функцию content_fields , и, если у вас нет нужной информации, есть _content_type_info .

Кроме того, если у вас естьинформацию о полях, вы можете извлечь хранилище таблицы и имена столбцов, используя content_database_info .

1 голос
/ 21 октября 2011

Я использовал что-то подобное прежде, чтобы сделать быстрый список информации о поле CCK для типа контента:

    $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>';
...