Добрый день.
Ситуация такая:
каталог уберкарт,
выставляю фильтр Configure filter criterion: Содержимое: Фильтр1 (field_filter1) (selective).
при просмотре страницы в фильтрах выдает два значения "-Все-" и "Actual values will be available at run-time".
При выборе "-Все-", появляются актуальные фильтры, но почему то они цифрами(id таксономии фильтра), а не словами.
Вопрос: как сделать что бы при просмотре страницы сразу же выводились актуальные значения и как выводить фильтр словами?
Комментарии
скажите пж, не нашли ли решение? у меня та же проблема
Аналогичная проблема. Решение пока не найдено.
вот блин(
http://drupal.org/node/1572138
решение нашел в пятом ответе этого обсуждения
извините за, наверное тупой, вопрос - но как применить этот код для 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['']); ?>
Добавить с 17-ой строки этого файла.
будет следующий вид первой функции:
<?php class views_handler_filter_selective extends views_handler_filter_in_operator {
static $results;
function
get_value_options() {$this->value_options = array(0 => 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['']);
}
} ?>
Большое спасибо
у меня падает сайтик с этим доп кодом. ыы
и вообще при включение дизаин опускается на 25 px
и вообще а как включить функционал который был в 6ке. что бы значение в фильтре фильтровались у поля?
перед $result = db_query необходимо поставить if (count($keys)>0) {
после $term->name; поставить }
это проверка на ненулевое значение
Все работает с патчем http://drupal.org/node/1572138! Есть вопрос как теперь скрыть данный фильтр при условии, - нет данных! Пустая страница и фильтр где нельзя нечего выбрать смотрится не очень!
собственно и не только фильтр данного типа но и др. раскрытая форма, помнится мне в D6 этот вопрос решался "одной галочкой"
Добавил код в views_handler_filter_selective.inc но в списке выбора параметров попрежнему -Все- и Actual values will be available at run-time при выборе -все- появляются актуальные значения. Подскажите в чем может быть проблема?
Решили данную проблему ?
если не секрет, куда это поставить?
Тоже интересно. Прогресс есть по этому поводу?
http://bouteillenicolas.com/expertise-drupal/views-ajax-dynamic-dependen...
Вот еще пишут
Долго копался с патчами этого модуля. Словил похожую проблему, но я выводил не термины в фильтр, а значения поля. В итоге помог вот этот патч https://drupal.org/comment/7819431#comment-7819431
Теперь выводит актуальные значения в фильтр, но нельзя сделать этот фильт обязательным, т.к. значения из фильтра пропадают. Плюсом к этому при выборе нужного значения в филтре, отсальные значения пропадают, т.е. остается текущее значение + "все". При выборе "все" в фильтре выводится полный список значений.
Кто ни будь сталкивался? Как можно побороть?