Помогите с selective exposed filters

Главные вкладки

Аватар пользователя bonzik bonzik 19 июня 2012 в 15:57

Добрый день.
Ситуация такая:
каталог уберкарт,
выставляю фильтр Configure filter criterion: Содержимое: Фильтр1 (field_filter1) (selective).
при просмотре страницы в фильтрах выдает два значения "-Все-" и "Actual values will be available at run-time".
При выборе "-Все-", появляются актуальные фильтры, но почему то они цифрами(id таксономии фильтра), а не словами.
Вопрос: как сделать что бы при просмотре страницы сразу же выводились актуальные значения и как выводить фильтр словами?

Комментарии

Аватар пользователя umkasanki umkasanki 21 июня 2012 в 9:58

извините за, наверное тупой, вопрос - но как применить этот код для views_handler_filter_selective.inc..?

<?php
17
,31d16
<         // Add lost tid titles
<       $keys array_keys($this->value_options);
<       foreach (
$keys as $k => $v) {
<         if (!
preg_match('/^\d+$/'$v)) {
<           unset(
$keys[$k]);
<         }
<       }
<       
$result db_query('SELECT tid, name FROM {taxonomy_term_data} WHERE tid IN ('.implode(','$keys).')');
<       foreach (
$result as $term) {
<         if (
$this->value_options[$term->tid]) {
<           
$this->value_options[$term->tid] = $term->name;
<         }
<       }
<         
// Strange empty value - remove
<       unset($this->value_options['']);

?>
Аватар пользователя semasping semasping 21 июня 2012 в 11:11

Добавить с 17-ой строки этого файла.
будет следующий вид первой функции:


<?php

class views_handler_filter_selective extends views_handler_filter_in_operator {
  static 
$results;

  function 

get_value_options() {
    
$this->value_options = array(=> t('Actual values will be available at run-time'));
    if (empty(
$this->view->selective_oids) && !empty($this->view->inited)) {
      
$handler _views_filters_selective_get_handler($this->definition['proxy']);
      
$oids $this->get_oids();
      
$options = empty($oids) ? array() : call_user_func($handler$this$oids);
      
sort($options);
      if (!empty(
$options)) {
        
// Encode the values to keep special chars.
        
$this->value_options array_combine(array_map('urlencode'array_values($options)), array_values($options));
      }
         
// Add lost tid titles
       
$keys array_keys($this->value_options);
       foreach (
$keys as $k => $v) {
         if (!
preg_match('/^\d+$/'$v)) {
           unset(
$keys[$k]);
         }
       }
       
$result db_query('SELECT tid, name FROM {taxonomy_term_data} WHERE tid IN ('.implode(','$keys).')');
       foreach (
$result as $term) {
         if (
$this->value_options[$term->tid]) {
           
$this->value_options[$term->tid] = $term->name;
         }
       }
         
// Strange empty value - remove
       
unset($this->value_options['']);
    }
  }

?>
Аватар пользователя iNFerNo iNFerNo 20 июля 2012 в 12:08

у меня падает сайтик с этим доп кодом. ыы

и вообще при включение дизаин опускается на 25 px

и вообще а как включить функционал который был в 6ке. что бы значение в фильтре фильтровались у поля?

Аватар пользователя valero222 valero222 13 ноября 2012 в 19:25

Все работает с патчем http://drupal.org/node/1572138! Есть вопрос как теперь скрыть данный фильтр при условии, - нет данных! Пустая страница и фильтр где нельзя нечего выбрать смотрится не очень!

собственно и не только фильтр данного типа но и др. раскрытая форма, помнится мне в D6 этот вопрос решался "одной галочкой"

Аватар пользователя IIISpikerIII IIISpikerIII 25 марта 2013 в 11:58

Добавил код в views_handler_filter_selective.inc но в списке выбора параметров попрежнему -Все- и Actual values will be available at run-time при выборе -все- появляются актуальные значения. Подскажите в чем может быть проблема?

Аватар пользователя VasyOK VasyOK 21 июня 2013 в 14:43

"respectclub" wrote:

перед $result = db_query необходимо поставить if (count($keys)>0) {
после $term->name; поставить }

если не секрет, куда это поставить?

"valero222" wrote:
как теперь скрыть данный фильтр при условии, - нет данных!

Тоже интересно. Прогресс есть по этому поводу?

Аватар пользователя Sanco2 Sanco2 9 января 2014 в 23:12

Долго копался с патчами этого модуля. Словил похожую проблему, но я выводил не термины в фильтр, а значения поля. В итоге помог вот этот патч https://drupal.org/comment/7819431#comment-7819431
Теперь выводит актуальные значения в фильтр, но нельзя сделать этот фильт обязательным, т.к. значения из фильтра пропадают. Плюсом к этому при выборе нужного значения в филтре, отсальные значения пропадают, т.е. остается текущее значение + "все". При выборе "все" в фильтре выводится полный список значений.
Кто ни будь сталкивался? Как можно побороть?