[Решено] Хлебные крошки в интернет-магазине

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

Аватар пользователя spectra spectra 12 июня 2013 в 4:02

По прошествии времени столкнулся с проблемой хлебных крошек в интернет-магазине. Реализован магазин следующим образом: имеются товары конечной ветки всего иерархического дерева и системы, включающие множество товаров посредством nodereference. То есть в основу заложено 2 типа материала. В обоих материалах имеется список (не словарь taxonomy, который, возможно, был бы более актуален), где выбирается к какой категории относится данная нода (кухня, прихожая, спальня и т.д.). Так вот, модуль Hansel (в принципе, нравящийся мне, хотя в сильно сложные дерби с ним еще не приходилось залезать), многими охарактеризованный как "всемогущий", не имеет действия, связанного с CCK типа материала.. что в данном случае было бы кстати. Вопрос к более провинутым юзерам данного направления, с помощью чего можно все-таки реализовать "крошную" иерархию?
И еще параллельный вопрос: чтобы для каждого случая не лепить один и тот же View, проще разбить странички, на которых будет отображаться один View. И чтобы не иметь ссылки а-ля "/hallway?field_species_value=Прихожая" говорят можно написать "<?php $form_state['input']['field_species_value']="Прихожая";?>" в своем модуле. Но при этом exposed filter почему-то все равно не переключается программно..

Комментарии

Аватар пользователя VasyOK VasyOK 16 июня 2013 в 12:11

Точнее даже не знаю как сказать. Сам тыкал-тыкал этот модуль в результате получилось то что мне надо.
Если бы вы сказали где вы не можете сделать крошки (ссылка на часть сайта) я бы ответил конкретнее.

Аватар пользователя spectra spectra 16 июня 2013 в 15:08

Пока, если четсно, даже никак не сооброжу с чего начать. Про Hansel написано много, а тут даже толкового описания не смог найти. По идее надо писать какой-то код, но не понятно куда. Открываю Custom breadcrumbs configuration, а там одни чекбоксы..

Аватар пользователя spectra spectra 19 июня 2013 в 13:43

Второе решилось путем задания на самой странице PHP кода вида

$view = views_get_view('ready');
$view->set_display('field_species_value');
$view->set_exposed_input(array('field_species_value' => 'Стол'));
$view->is_cacheable = FALSE;
$view->pre_execute();
$view->execute();
return $view->render();

Аватар пользователя spectra spectra 21 июня 2013 в 12:06

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

Аватар пользователя VasyOK VasyOK 21 июня 2013 в 14:02

"spectra" wrote:
В заголовках и путях можно писать только то, что предлагают токены?

не обязательно.
Например
Заголовок Статьи о слонах
путь statti-o-slonah

"spectra" wrote:
И как вытащить из нее информацию о вышестоящей ноде?

Действительно у вас более космическое чем у меня.
А как сделана вышестоящая нода? Через нод референс?

Аватар пользователя spectra spectra 21 июня 2013 в 14:39

Почему сразу космическое?
Материал "Система" имеет поле "Элементная база" типа Node reference, где множество материалов типа "Товар".

Php не пробовали в крошках прописывать?

Аватар пользователя spectra spectra 21 июня 2013 в 19:11

Весь список доступных представил в скрине начального сообщения темы.
Если все товары магазина заполнены через node reference, то каким образом таксономию туда можно приплести?
А как php код записать, чтобы работал? А то печатает сам текст <?php .. ?>.. когда в описании написано, что между можно печатать код..

Аватар пользователя spectra spectra 25 июня 2013 в 15:19

Раз никакие модули не могут подцепить node reference, помогает старый добрый блок php.. один запрос к БД, пару веток скрипта и вуаля..