По прошествии времени столкнулся с проблемой хлебных крошек в интернет-магазине. Реализован магазин следующим образом: имеются товары конечной ветки всего иерархического дерева и системы, включающие множество товаров посредством nodereference. То есть в основу заложено 2 типа материала. В обоих материалах имеется список (не словарь taxonomy, который, возможно, был бы более актуален), где выбирается к какой категории относится данная нода (кухня, прихожая, спальня и т.д.). Так вот, модуль Hansel (в принципе, нравящийся мне, хотя в сильно сложные дерби с ним еще не приходилось залезать), многими охарактеризованный как "всемогущий", не имеет действия, связанного с CCK типа материала.. что в данном случае было бы кстати. Вопрос к более провинутым юзерам данного направления, с помощью чего можно все-таки реализовать "крошную" иерархию?
И еще параллельный вопрос: чтобы для каждого случая не лепить один и тот же View, проще разбить странички, на которых будет отображаться один View. И чтобы не иметь ссылки а-ля "/hallway?field_species_value=Прихожая" говорят можно написать "<?php $form_state['input']['field_species_value']="Прихожая";?>" в своем модуле. Но при этом exposed filter почему-то все равно не переключается программно..
Комментарии
custom breadcrumbs - с его помощью можно.
А точнее, если можно.
Точнее даже не знаю как сказать. Сам тыкал-тыкал этот модуль в результате получилось то что мне надо.
Если бы вы сказали где вы не можете сделать крошки (ссылка на часть сайта) я бы ответил конкретнее.
Пока, если четсно, даже никак не сооброжу с чего начать. Про Hansel написано много, а тут даже толкового описания не смог найти. По идее надо писать какой-то код, но не понятно куда. Открываю Custom breadcrumbs configuration, а там одни чекбоксы..
Уточнение:
Смысл вывести так: Система (ссылка) / Товар когда находишься в каком-либо товаре.
Не уверен что именно следует прописать в Node Type.
Второе решилось путем задания на самой странице 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();
http://presents.kiev.ua/sumki/chemodany-i-sumki-na-kolesah/chemodan-wanl...
Вот так подходит? Или что-то более космическое надо?
Да, именно так.
Вот скрины с настройками. Что не понятно спрашивайте.
В настройках отметил галочками мои типы материалов.
В заголовках и путях можно писать только то, что предлагают токены? Но там, видимо, вся информация сводится только к текущей ноде. И как вытащить из нее информацию о вышестоящей ноде?
не обязательно.
Например
Заголовок Статьи о слонах
путь statti-o-slonah
Действительно у вас более космическое чем у меня.
А как сделана вышестоящая нода? Через нод референс?
Почему сразу космическое?
Материал "Система" имеет поле "Элементная база" типа Node reference, где множество материалов типа "Товар".
Php не пробовали в крошках прописывать?
А для нод референс там нет токенов?
А через таксономию нельзя сделать то что вы хотите?
Весь список доступных представил в скрине начального сообщения темы.
Если все товары магазина заполнены через node reference, то каким образом таксономию туда можно приплести?
А как php код записать, чтобы работал? А то печатает сам текст <?php .. ?>.. когда в описании написано, что между можно печатать код..
Кухня, прихожая, гостинная - это должны быть не ноды, а термины таксономии. Тогда все намного легче.
Это да, я понял как это делается, но следующий уровень углубления идет через node reference.
Раз никакие модули не могут подцепить node reference, помогает старый добрый блок php.. один запрос к БД, пару веток скрипта и вуаля..