Установлен модуль Commerce Search API, тем есть возможность создания блоков фасетного поиска.
Все это прекрасно и очень удобно.
Но мне нужно сделать, чтоб количество содержимого не отображалось для каждого фильтра
Например, вместо:
Пластиковые окна (153)
Деревянные окна (75)
должно быть просто:
Пластиковые окна
Деревянные окна
и нужно убрать скрытые маркеры к каждому фильтру <label class="element-invisible" for="facetapi-link--5--checkbox"> Apply Двойной стеклопакет filter </label>
, которые с учетом малого количества текста на страницах занимают до 50% контента, что жуть.
Я так понимаю, что мне нужно найти функцию вывода для этого модуля, отредактировать ее и поместить в template.php
Но функцию найти не удается и не удалось даже найти где формируются эти элементы.....
Комментарии
Это в настройках фасетного блока настраивается, если мне не изменяет память.
Похоже эта http://drupalcontrib.org/api/drupal/contributions!facetapi!facetapi.them...
не настраивается
за вывод отвечают theme_facetapi_link_inactive() и theme_facetapi_link_active().
переопределяйте
https://www.google.by/search?q=facetapi+hide+counter&ie=utf-8&oe=utf-8&g...
Если просто закомментировать содержимое функции и в таком виде перенести их в template.php
// return '(' . (int) $variables['count'] . ')';
}
и
//$vars = array('@text' => $variables['text']);
//$text = ($variables['active']) ? t('Remove @text filter', $vars) : t('Apply @text filter', $vars);
// Add spaces before and after the text, since other content may be displayed
// inline with this and we don't want the words to run together. However, the
// spaces must be inside the <span> so as not to disrupt the layout for
// sighted users.
//return '<span class="element-invisible"> ' . $text . ' </span>';
}
То страница визуально и ее HTML код выглядят как надо, какие реально негативные стороны у этого метода?
Чувствую что так быть не должно, но работает же.....
<?php
function theme_facetapi_tabs_inactive($variables) {
unset($variables['count']);
return theme_link($variables);
}
function theme_preprocess_facetapi_link_inactive(&$variables) {
// hide facet count
unset($variables['count']);
}
?>
Этот код убирает количество в ссылках, что прекрасно.
А как лучше избавиться от множества
<label class="element-invisible" for="facetapi-link--5--checkbox"> Apply Двойной стеклопакет filter </label>
(от аксессибилити разметки в фасетных блоках).
.element-invisible {display: none}
Визуально этот текст и так не видно, но он создает кучу мусора в HTML коде, лезет в сниппеты и т.д.
Больше того, я использую для фасетов виджет Links with checkboxes и эти инвизиблы определяются и для фасетной ссылки и для галки (т.е. по два на фильтр)!
Мне нужно вообще совсем от них избавиться на уровне сервера, а не спрятать.
1. это семантическая разметка. друпал ее всегда по умолчанию прячет.
2. прям кучу кучу.. страница в гигабайты уходит наверно..
3. да пускай определяются, они же кушать не просят.
Вам уже раза 3 дали ссылку на функцию переопределения вкл/выкл. ссылки.
думайте, пробуйте, учитесь.
если не получается, велком в коммерческий раздел форума.