Улучшение advanced catalog

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

Аватар пользователя Dimm Dimm 21 января 2011 в 11:59

Захотелось чтоб в 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) > && count($row1) < $columns) {
      if (
count($cat_rows) >= 1) {
        
$row1 array_merge($row1array_fill(count($row1), $columns count($row1), array('data' => '&nbsp;''class' => 'category')));
      }
      
$cat_rows[] = $row1;
    }
    
$output .= $catalog->description;
    
$output .= theme('table', array(), $cat_rows, array('class' => 'category'));

//My end

?>

Комментарии

Аватар пользователя Artu Artu 25 января 2011 в 11:05

Кто знает почему не выводится раскрытый фильтр в представлениях созданных через advanced catalog и как его все- таки можно вывести?

Аватар пользователя annya annya 25 января 2011 в 15:09

Artu wrote:
Кто знает почему не выводится раскрытый фильтр в представлениях созданных через advanced catalog и как его все- таки можно вывести?

Потому что там вюшка програмно создается. А вывести можно не используя advanced catalog, а свою вьюшку. Чесно говоря не особенно понимаю смысл этого модуля, все это разве не легче вывести обычными вьюшками?

Аватар пользователя Artu Artu 25 января 2011 в 16:46

со своими там другие вопросы возникают. Хотя придется делать для отображения брендов.

Как сделать:

Показаны товары с 1 по S из N
Показать N товаров на странице

Аватар пользователя Dimm Dimm 5 февраля 2011 в 12:02

В предыдущем варианте пропадал пейджер advanced_catalog.
Код исправил, вот новый рабочий вариант:

<?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) > && count($row1) < $columns) {
      if (
count($cat_rows) >= 1) {
        
$row1 array_merge($row1array_fill(count($row1), $columns count($row1), array('data' => '&nbsp;''class' => 'category')));
      }
      
$cat_rows[] = $row1;
    }
    
$output .= $catalog->description;
    
$output .= theme('table', array(), $cat_rows, array('class' => 'category'));

//My end
?>
Аватар пользователя chel chel 7 мая 2011 в 14:48

Добрый совет.

А не подскажите ли как перенаправить клик на все термины таксономии на представление uc_advanced_catalog?
Например таксономию использую для свойств товаров.

Аватар пользователя Dimm Dimm 7 мая 2011 в 19:40

Во вьюес есть возможность заменить поле своим значением.
Или используйте модуль PHP-поля для вьюес.

Аватар пользователя chel chel 7 мая 2011 в 20:51

у меня views не используется, только uc_advanced_catalog и стандартная таксономия. uc_advanced_catalog позволяет назначит словарь как главный каталог товаров. Если я кликаю по термину(каталога), то попадаю в uc_advanced_catalog, а если кликаю по обычному термину, то тоже хочется чтобы отправляло на uc_advanced_catalog

Аватар пользователя chel chel 9 мая 2011 в 19:48

в 6.x-2.x-dev я не нашел вьюсов
или вы про 6.x-1.x-dev (пробовал перенаправить термины словаря на этот самый вьюс, но тогда этот вьюст показывается без видов отображения, кол-ва на страницу,...)?