Drupal CCK字段选择选项名称,它们在哪里?
我有一个自定义内容类型,它有一个名为“位置”的字段,它是一个长选择列表(100左右的项目)。我想获得一个包含与它们相关的一段内容的所有位置的数组。此字段的数字值存储在content_type_ [my_content_type]中,但我无法在数据库中的任何位置找到存储值的名称。我希望这不是太混乱了 - 只是要清楚,我想要做这样的事情:Drupal CCK字段选择选项名称,它们在哪里?
SELECT DISTINCT(field_location_value) FROM content_type_[my_content_type]
然后
SELECT field_location_name_or_something FROM where_on_earth_are_the_names_stored
,然后做两个阵列有事找我想要的名字。
任何人都可以帮忙吗?
非常感谢。顺便说一下,Drupal 6。
如果你的意思是选择CCK的列表字段:
获取与当前节点相关联的所有位置(部分内容):
$node = node_load('YOUR content ID');
print_r($node->field_location); // $node->field_location - this will array of values.
拿到场(中定义的所有值“已允许值“):
$content_field = content_fields('field_location');
$allowed_values = content_allowed_values($content_field); // array of values
这Drupal的6码剪断将检索您的CCK字段值选项,并把它们放在$ allowed_values变量数组。与CCK字段名(名称,而不是标签)
$cck_field_name = 'YOUR_CCK_FIELD_NAME';
$cck_field = db_fetch_object(db_query("SELECT global_settings FROM {content_node_field} WHERE field_name = '%s'", $cck_field_name));
$cck_field_global_settings = unserialize($cck_field->global_settings);
$allowed_values = explode("\r\n", trim($cck_field_global_settings['allowed_values'], "\r\n"));
替换“YOUR_CCK_FIELD_NAME”我发现这一点,很多考验和磨难之后,在数据库表content_node_field_instance
,场下的窗口小部件设置字段。
在Drupal 7的,如果你有一个类型列表(文本)的领域,然后我写了下面的函数返回一组选项:
function get_drupal_select_options($field_name) {
$options = unserialize(db_query("SELECT c.data
FROM field_config_instance i
INNER JOIN field_config c ON c.id = i.field_id
WHERE i.field_name = :fieldname", array(':fieldname'=>$field_name))->fetchField());
return $options['settings']['allowed_values'];
}
谢谢。我正在寻找允许的值。出于好奇,但是,你是否知道数据库中这些信息的存储位置? – Will 2011-02-17 16:27:17