2015-04-29 4 views
0

У меня есть разные поля и показаны в разных блоках, и я хочу применить экспонированный фильтр для всех, кроме моей проблемы, это показывает разные экспонированные фильтры для каждого отдельного блока. Я хочу сделать его общим для каждого блока.Общий экспонированный фильтр для каждой вкладки в drupal 7

Ниже приведены шаги,

  1. Я сделал 5 блоков, которые будут отображаться для каждой кнопки.
  2. Добавлен открытый фильтр для языков для каждого блока.

Теперь каждый блок показывает свой различный экспонированный фильтр. Но я хочу, чтобы открытый фильтр отображался над кнопками и должен работать для каждого отображения блока. Прикрепленный скриншот для этой проблемы.

enter image description here

Я установил Views Global Filter, но дает Session error.

ответ

0

Я как раз собирался предложить обзорный глобальный фильтр.

Другой способ - установить контекстный фильтр на всех ваших блоках, которые вытягиваются из URL-адреса, поэтому каждый из них производит одинаковое значение. Это активный вопрос в очереди просмотров вопрос, с несколькими людьми, которые сделали его работу: https://www.drupal.org/node/1587894 Комментарий # 6 имеет простой код, и что будет применяться здесь https://www.drupal.org/node/1871388

0

Через 3 дня я не нашли решения даже программным путем.

Тогда я был последний вариант (в моем уме, да) есть

  1. Я получаю все поля в одном блоке только, не создавая различные блоки для различных вкладки или кнопки.
  2. Использовал описание Better Exposed Filters, в котором я вставлял свои кнопки/вкладку UI HTML в качестве своего.
  3. Теперь при изменении языка все поля выбираются в соответствии с выбранным языком. Но в этом случае моя активная вкладка/кнопка теряют свою активность.
  4. Теперь мне нужно получить последнюю активную вкладку/buuton, чтобы я мог ее снова щелкнуть, чтобы получить активную вкладку после фильтрации моих языков.

Ниже приведен фрагмент кода, который необходим для моего js file.

// Active target element to make the tab/button active after 
// ajax responds in filter 
var activeTargetElement; 
Drupal.behaviors.events = { 
    attach: function (context, settings) { 
     $('#views-exposed-form-MY_VIEW_MACHINE_NAME-BLOCK_NAME', context).ajaxStart(function() { 
      // my tabs/button are active on the basis of data-target attribute, 
      // so need to memorise which tab/button is active before fitering any language 
      activeTargetElement = $('#MY_TABS li.active a').data('target'); 
     }).ajaxSuccess(function() { 
      // if any target is memorised, then simply click it or trigger a click event for it 
      if($('[data-target="'+activeTargetElement+'"]').length){ 
       $('[data-target="'+activeTargetElement+'"]').click(); 
      } 
     }); 
    } 
};