我有一个内容类型,内容有些cck字段。其中一个字段有类型文本,它不是必填字段。因此,取决于用户是否想要填写此字段。
我创建了一个视图,用这个字段显示所有记录作为可选的外露过滤器。当我想从下拉列表中应用过滤器“is empty(NULL)”时,它会显示混合记录。但我打算只获取此列值为NULL / EMPTY的记录。
如何配置我的视图或应用更改以在过滤后获得所需的记录。
答案 0 :(得分:1)
回答自己的问题:
我认为当你从运营商那里选择[IS EMPTY(NULL)]时,这是drupal暴露过滤器中的一个错误。 drupal做的实际上是隐藏文本框。当您点击“应用”按钮时,由于此文本框为空,它不包含在视图查询的 where子句
中经过一番搜索和分析后发现的是 -
在此文件中 - sites / all / modules / views / js / dependent.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;
}
}
答案 1 :(得分:0)
此字段可以设置一些默认值,例如0或类似于后端的某些东西(cck manage