我有一个内容类型,内容一些cck字段。其中一个字段有type text,它不是必填字段。因此,这取决于用户是否想要填写这个字段。
我已经创建了一个视图来显示这个字段的所有记录作为可选的暴露过滤器。当我想应用过滤器"是空的(NULL)"从下拉菜单显示我混合记录。但是我打算只获取这些列值为NULL/EMPTY的记录。
我如何配置我的视图或应用更改,以获得所需的记录后过滤器。
回答自己的问题:
我认为这是drupal暴露过滤器的一个bug,当你从操作符中选择[IS EMPTY (NULL)]。drupal所做的是隐藏文本框。当你点击应用按钮时,因为这个文本框是空的,它不包含在视图查询的where子句
经过一番搜索和分析,我发现-
在这个文件中- sites/all/modules/views/js/dependencies .js
如果你修改了我放置注释的地方
var setChangeTrigger = function(trigger_id, bind_id) {
var changeTrigger = function() {
.....
if (rel_num <= len) {
// Show if the element if criteria is matched
$(object).children(':input').val('');
// EMPTYING THE TARGETED DROPDOWN ON CHANGE
object.show(0);
object.addClass('dependent-options');
}
else {
// Otherwise hide
$(object).children(':input').val('uw');
// PUTTING ANY CHARACTER, WHEN CHANGED EVENT IS CALLED
// AND FROM OPERATOR YOU CHOSE IS EMPTY (NULL).
// IN MY CASE I JUST PUT "uw"
object.hide(0);
}
你会得到我想要的结果。
你可以使用hook__views_pre_execute()
来验证这个function myModule_views_pre_execute(&$view){
switch($view->name)
{
case 'YOUR VIEW NAME':
drupal_set_message($view->build_info['query']);
break;
}
}
该字段可以设置一些默认值,例如0或类似的后端(cck manage