+38(044) 592 85 49
+38(066) 734 18 81

Статьи

[Метод 2] Замена Ubercart, с помощью Views, вывода категорий, подкатегорий и списка товаров

Метод 2.

 

Отличие от Метода 1, построение категорий, подкатегорий и списка товаров с помощью модуля views_catalog.

 

В данной статье описывается как заменить вывод категорий и подкатегорий и списка товаров Ubercart, с помощью Views. Адаптирован вывод exposed filters при наличии товаров и без.

 

Решение для система Drupal 6.х (в данном случае испытывалось на версии 6.22)

 

Цель:

Более гибкий вывод списка товаров, а именно:

  • Корректное применение Views Exposed filters для списка товаров категории.
  • и другие приятные возможности Views

 

Для реализации задачи нужны такие модули:

 

Ubercart (с рекомендованными дополнительными модулями)

Views 2

Taxonomy redirect

views_catalog

 

Устанавливаем Ubercart. Создаем Категории и подкатегории и вносим туда товары.

 

В данном примере сделали универсальную задачу, когда каталог такого вида:

 

 Катагория1 (есть товары)
 Категория2 (нет товаров)
 ---подкатегория1 (есть товары)

 

 

----------------------------------------------------

Настройки модуля Taxonomy redirect

 

Cсылки терминов таксономии у нас выгледят так - taxonomy/term/[tid]

А ссылки меню каталога catalog/% ( где % - это номер термина таксономии)

 

Модуль pathauto может помочь, но если указать "красивые" адреса catalog/[cat-raw] для путей каталога Ubercart- и адреса catalog/[tid] для терминов таксономии - то будет соперничество с адресами каталога

и в результате адреса терминов таксономии будут похожи на catalog/1-0 так как модуль уже думает что есть такой адрес.

Вот сдесь нам нужен модуль taxonomy redirect - в котором делаем перенаправление терминов таксономии по адресу catalog/!tid

 

 

----------------------------------------------------

 

Далее создаем Два вида View

 

Создаем Первый View для вывода подкаталогов (child term или дочерние термины) категории:

 

этот View я назвал term_child

 

При создании View указываем тип Term (Taxonomy terms are attached to nodes.)

Как показано на рисунке

 

[Метод 2] Замена Ubercart, с помощью Views, вывода категорий, подкатегорий и списка товаров

 

Далее указываем Аргумент и поля:

 

Аргумент: Таксономия: Parent term

  • Action to take if argument is not present: Display all values
  • Validator options - Validator: Basic Validator
  • Action to take if argument does not validate: hide view...

 

Рисунок настроек аргумента сдесь:

 

 

 

Поля:

Таксономия: Term Term
Таксономия: Term description Term description

 

Стиль вывода

Style: Сетка

 

 

 

 

Второй основной View, который заменяет адрес меню каталога catalog/% с такими параметрами:

 

Вид Catalog Page (при установленом модуле views_catalog есть такой вид), с адресом catalog/%

 

Аргумент: Таксономия: Term ID

  • Заголовок: %1
  • Action to take if argument is not present: Display all values
  • Validator options - Validator: Термин таксономии
  • Словари: Catalog
  • Argument type: Term ID
  • Action to take if argument does not validate: hide view...
  • Set the breadcrumb for the term parents: True
  • Use Drupal's taxonomy term path to create breadcrumb links: True

 

 

Поля (к примеру, можно указать и другие нужные поля):

  • Материал: Заголовок Заголовок
Товар: Цена продажи Цена продажи

 

 

 

Переключаемся на вид Catalog page и в настройках Catalog page settings указваем:
 
Адрес: catalog/%
Меню: No menu
Child view: term_child   // это наш Первый вид View дял вывода подкаталогов (shild term)
Child view argument: Term ID  // это аргумент, который передается виду term_child
 
Теперь при выводе подкатегорий будет уччавствовать вид term_child, а если будут товары - то Второй вид.
 
Все работает.
 
----------------------------------------------------
Вспомогательные задачи:
----------------------------------------------------
 
Вывести описание категории
 
Если нужно также вывести описание категории товаров, то в Заголовок: Второго вида вставляем PHP код
 
<?php
$vid = 1; // id словаря Catalog Ubercart
$arg_pos = 1; // номер позиции аргумента, в нашем случает 1

if (is_numeric(arg($arg_pos))) {
   $tid = arg($arg_pos);
$maincategory = taxonomy_get_term($tid, $vid);
print $maincategory->description;

}
 


Описание основной категории будет видно и на страницах с подкаталогами и на странице с товарами.

 

----------------------------------------------------

 

Exposed filters

 

Если учавствуют Exposed filters во Втором основном виде view, то при выводе подкатегорий, нет товаров, и будет выводиться пустая форма.

Нужно ее убрать.

Вариант решения:

В tpl формы заключить всю форму в div id = allfilters например

 

в методе 1 есть более детально описано, как называть tpl файл формы

 

в этом примере второй основной вид у меня называется prodvget2, то и имя файла будет views-exposed-form--prodvget2.tpl.php

полный код можно взять в общих tpl формы vews /sites/all/modules/views/theme/views-exposed-form.tpl.php

 

и далее просто прописываем цсс стиль и прячем форму при выводе.

Вот часть кода на проверку массива цен, код прописываю в заголовке вида prodvget2

 

$view = views_get_current_view();

foreach ($view->result as $result)
  {
   $prices[] =$result->uc_products_sell_price;
  }

   if (!empty($prices))
{

// тут определение максимальной цены, и прописывание слайдеру значений,,, все это было в статье слайдера exposed filters и определение максимальной/минимальной цены категории товаров

}

else

{

echo '<style type="text/css">#allprodgetform {display:none;}</style>';

}

 

 

 

Индивидуальный дизайн сайтаИндивидуальный дизайн

Разработка индивидуального дизайна сайта, логотипов, баннеров, иконок...

Стилизация сайтов, создание стилевых шаблонов (Новый Год, 8 марта...), брендирование сайтов, Flash-анимация.

Сайт любого уровня сложностиНикаких ограничений!

Современный, быстрый и надежный движок сайта, позволяющий наращивать функциональность. Регулярное обновление ядра и модулей. Разработка новых модулей, позволяющих решать индивидуальные задачи клиента

Оптимизация производительности сайтаТехническая оптимизация

Оптимизация компонентов сайта позволяет добиться стабильной и быстрой работы, а также экономит ресурсы системы.
В достижении этой цели нам помогают:
• современные методы программирования
• профессиональная верстка
• оптимизация изображений

Автоматизация сайтаАвтоматизация сайта

Максимальный уровень автоматизации для облегчения наполнения и обслуживания сайта!
Автоматическая обработка изображений, обновление карты сайта для быстрой индексации поисковиками, автоматическая проверка обновлений и другие полезные функции.
Поисковая оПоисковая оптимизацияптимизация

Начальная поисковая оптимизация уже включена в любой создаваемый нами сайт! Автоматическая карта сайта для Google, Yandex, Bing, а также панель Google analytics входит в стоимость всех наших сайтов.
Простое и удобное администрированиеАдминистративная часть сайта

Удобная и интуитивная админка. Создание и правка контента прямо с административной страницы. Простой и добный редактор (похож на MS Word). Разграничение прав доступа пользователей, возможность оперативно менять дизайн сайта (темы оформления) и др.
Техническая поддержка сайтаПоддержка сайтов

Оперативное устрание неполадок, консультация пользователей, техническое обслуживание и контент менеджмент. Мы можем взять все заботы о вашем сайте на себя.
 
ГаранГарантия качестватия качества

Мы гарантируем стабильность и надежность созданных нами сайтов. Полную гарантию работоспособности мы предоставляем лишь при условии использования нашего хостинга.

 

Украина онлайн Rambler's Top100