Захотелось чтоб в Ubercart advanced catalog при выборе категории отображались товары из вложенных подкатегорий, а список категорий отображался картинками.
Результат можно посмотреть здесь: http://www.krasmebel.ru/shop/catalog/ofisnaya-mebel
Для этого
1. В представлении advanced_catalog заменил Аргумент Таксономия: ID Термина на
Таксономия: ID Термина (с глубиной)
2. Поправил
/sites/all/modules/uc_advanced_catalog/uc_advanced_catalog.module
Обновлено (исправленный вариант):
<?php
if ($count > 0) {
/* if (count($links)) {
$output .= theme('links', $links, array('class' => 'links inline uc-categories')) ."<br />\n";
}
// creating pager
ksort($row);
$rows[] = $row;
$pager = theme('table', array(), $rows, array('class' => 'pager-field'));
// output construction
$output .= $catalog->description;
*/
//My begin
// creating pager
ksort($row);
$rows[] = $row;
$pager = theme('table', array(), $rows, array('class' => 'pager-field'));
// original code
// Display table of child categories similar to an osCommerce site's front page.
$columns = variable_get('uc_catalog_category_columns', 3);
$cat_rows = array();
$row1 = array();
$i = 1;
foreach ($child_list as $cell) {
$row1[] = array('data' => $cell, 'class' => 'category');
if ($i % $columns == 0) {
$cat_rows[] = $row1;
$row1 = array();
}
$i++;
}
if (count($row1) > 0 && count($row1) < $columns) {
if (count($cat_rows) >= 1) {
$row1 = array_merge($row1, array_fill(count($row1), $columns - count($row1), array('data' => ' ', 'class' => 'category')));
}
$cat_rows[] = $row1;
}
$output .= $catalog->description;
$output .= theme('table', array(), $cat_rows, array('class' => 'category'));
//My end
?>
Комментарии
Неплохо было бы привести скриншот того, что получилось.
да
Кто знает почему не выводится раскрытый фильтр в представлениях созданных через advanced catalog и как его все- таки можно вывести?
Потому что там вюшка програмно создается. А вывести можно не используя advanced catalog, а свою вьюшку. Чесно говоря не особенно понимаю смысл этого модуля, все это разве не легче вывести обычными вьюшками?
со своими там другие вопросы возникают. Хотя придется делать для отображения брендов.
Как сделать:
Показаны товары с 1 по S из N
Показать N товаров на странице
Как выглядит: http://www.krasmebel.ru/shop/catalog/mebel-v-detskuyu
пригодится
В предыдущем варианте пропадал пейджер advanced_catalog.
Код исправил, вот новый рабочий вариант:
<?php
// original code
if ($count > 0) {
/* if (count($links)) {
$output .= theme('links', $links, array('class' => 'links inline uc-categories')) ."<br />\n";
}
// creating pager
ksort($row);
$rows[] = $row;
$pager = theme('table', array(), $rows, array('class' => 'pager-field'));
// output construction
$output .= $catalog->description;
*/
//My begin
// creating pager
ksort($row);$rows[] = $row;
$pager = theme('table', array(), $rows, array('class' => 'pager-field'));
// Display table of child categories similar to an osCommerce site's front page.
$columns = variable_get('uc_catalog_category_columns', 3);
$cat_rows = array();
$row1 = array();
$i = 1;
foreach ($child_list as $cell) {
$row1[] = array('data' => $cell, 'class' => 'category');
if ($i % $columns == 0) {
$cat_rows[] = $row1;
$row1 = array();
}
$i++;
}
if (count($row1) > 0 && count($row1) < $columns) {
if (count($cat_rows) >= 1) {
$row1 = array_merge($row1, array_fill(count($row1), $columns - count($row1), array('data' => ' ', 'class' => 'category')));
}
$cat_rows[] = $row1;
}
$output .= $catalog->description;
$output .= theme('table', array(), $cat_rows, array('class' => 'category')); //My end
?>
Добрый совет.
А не подскажите ли как перенаправить клик на все термины таксономии на представление uc_advanced_catalog?
Например таксономию использую для свойств товаров.
Во вьюес есть возможность заменить поле своим значением.
Или используйте модуль PHP-поля для вьюес.
у меня views не используется, только uc_advanced_catalog и стандартная таксономия. uc_advanced_catalog позволяет назначит словарь как главный каталог товаров. Если я кликаю по термину(каталога), то попадаю в uc_advanced_catalog, а если кликаю по обычному термину, то тоже хочется чтобы отправляло на uc_advanced_catalog
uc_advanced_catalog работает через вьюес
в 6.x-2.x-dev я не нашел вьюсов
или вы про 6.x-1.x-dev (пробовал перенаправить термины словаря на этот самый вьюс, но тогда этот вьюст показывается без видов отображения, кол-ва на страницу,...)?