我正在构建一个Drupal 7模块来创建一个定制字段类型。我已经实现了所有必需的钩子。我的hook_field_formatter_view()
函数如下所示:
function MYMODULE_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
$element = array();
switch ($display['type']) {
case 'default':
foreach ($items as $delta => $item) {
$element[$delta] = array(
'#theme' => 'test',
'#item' => $item,
);
}
break;
}
return $element;
}
然后,我定义了theme()
以下函数:
function theme_test($variables) {
return '<h1>Hello World</h1>';
}
但是,当我查看页面时,什么也不会输出。如果查看最近的日志条目,则会看到以下消息:
Theme key 'test' not found.
如果我将MYMODULE_field_formatter_view渲染数组'#theme'的值更改为内置的主题功能,例如'item_list',则它可以工作。但是由于某种原因,我的自定义主题功能没有被使用。
我已经重建了主题注册表数百次,并清除了缓存。