Как составить список полей CCK по типу контента в Drupal
Чтобы получить список полей cck типа контента, я надеялся использовать:
drupal_get_schema('content_type_mycontenttype');
но это оставляет поля с несколькими значениями. Есть простой вызов, чтобы использовать, чтобы получить такой список?
3 ответа
Посмотрите на функцию content_fields, и, если у вас нет нужной информации, есть _content_type_info.
Кроме того, когда у вас есть информация о поле, вы можете извлечь хранилище таблицы и имена столбцов с помощью content_database_info.
Для Drupal 7 проверьте функцию field_info_instances, чтобы получить список полей для определенного типа содержимого узла.
Вот пример использования, которое будет извлекать все поля для типа содержимого узла.
$ my_content_type_fields = field_info_instances ("узел", "my_node_content_type");
Я использовал что-то вроде этого прежде, чтобы сделать быстрый список информации поля 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>';