在我的自定义模块中,我有一个这样的表:
aid | int(10) unsigned
message | mediumtext
variables | mediumtext
这类似于看门狗的架构。
我希望将消息字段公开给视图(hook_views_data),但是通过一个处理程序将它与变量字段进行转换。像这样:
t($message, unserialize($variables))
任何人都知道如何组合两个字段并使用字段处理程序来执行此操作吗?
这是我的hook_views_data
/**
* Implementation of hook_views_data().
*/
function mymodule_views_data() {
$data['gccsi_activity']['aid'] = array(
'title' => t('Unique ID'),
'help' => t('The unique id'),
'sort' => array(
'handler' => 'views_handler_sort',
),
);
$data['gccsi_activity']['message'] = array(
'title' => t('Message'),
'help' => t('The message...'),
'sort' => array(
'handler' => 'views_handler_sort',
)
//here is where I want to create a handler that combines two fields
);
return $data;
}
由于
答案 0 :(得分:1)
如果您已实现hook_views_data,则可以设置使用的处理程序。
$data['table']['column']['id']['field'] = array(
'handler' => 'yourmodule_handler_field_column',
);
然后实现hook_views_handlers来注册使用过的处理程序。
然后编写处理程序并执行以下步骤。假设您有一条消息
a)在方法构造中你做
$this->additional_fields['variables'] = 'variables';
b)在方法渲染中做你以前的事情
t($values->{$this->field_alias}, unserialize($values->{$this->aliases['variables']}));
视图高级帮助部分是查找有关viewsapi
的一般信息的好地方答案 1 :(得分:0)
据我所知,处理程序类必须存在于它自己的文件中。