如何查找包含特定字段的所有节点类型?
假设我有两个节点类型,“mybio”和“myresume”,并且两个nodetypes都包含一个字段“myphoto”。是否有一个函数将我的字段名称作为输入(“myphoto”)并返回包含该字段的节点类型的名称(“mybio”和“myresume”)?
答案 0 :(得分:2)
我不认为有一个功能但是查看CCK的数据库结构会有这样的伎俩:
function content_field_get_node_types($field_name) {
$query = db_query("SELECT DISTINCT type_name FROM {content_node_field_instance} WHERE field_name = '%s'", $field_name);
$node_types = array();
while ($row = db_fetch_array($query)) {
$node_types[] = $row['type_name'];
}
return $node_types;
}
答案 1 :(得分:-1)
CCK提供了一个管理页面,您可以在其中查看内容类型和字段之间的关联:管理>内容类型>字段(路径:www.example.com/admin/content/types/fields
)
如果你看一下源代码,你会发现在这个函数中content_fields_list()
(sites\all\modules\cck\includes\content.admin.inc
)是神奇发生的地方。
您可以在此处查看源代码中的SQL:http://drupalcontrib.org/api/drupal/contributions--cck--includes--content.admin.inc/function/content_fields_list/6