На сайте строго выдержана структура URL: каталог, в нем категории, в категориях ноды.
Поэтому заманчиво отразить именно эту структуру в хлебных крошках.
Например, для
domain/catalog/plastic/okno.htm
должно получиться
Главная / Каталог / Пластиковые окна / Окно такое-то
Категорий всего 10, поэтому прописать все вручную в template.php не должно быть проблемой.
Я пытаюсь получить путь к ноде и проверить вхождение в него ключа категории.
Но почему-то у меня не работает. Пример:
if (arg(0) == 'node') {
if (is_numeric(arg(1))) {
$node = node_load(arg(1));
$path = drupal_get_path_alias($_GET['q']);
$key = strpos($path, 'plastic');
if ($node->type == 'product_display' and $key === true) { // Проверям тип ноды и категорию по URL
$variables['breadcrumb'][0] = '<a href="/">Главная</a>'; // Ссылка на главную
$variables['breadcrumb'][1] = '<a href="/catalog/">Каталог</a>'; // Ссылка на Каталог
$variables['breadcrumb'][2] = '<a href="/catalog/plastic/">Пластиковые окна</a>'; // Ссылка на категорию
$variables['breadcrumb'][3] = $node->title; // Текущая страница без ссылки
}
}
}
return theme_breadcrumb($variables);
}
Если же проверять соответствие пути целиком, то ХК строятся, но это невозможно т.к. тогда пришлось бы описывать ХК для каждой страницы.
Помогите найти ошибку. Спасибо!
Комментарии
Меня всегда удивляют такие темы, зачем велосипед изобретать, если у вас простой сайт, поставьте path_breadcrumbs и не парьтесь.
Если была бы структура сложная или сайты высоко нагруженный, тогда можно было свое писать...
Path Breadcrumbs works only with non-aliased path (i.e. use node/1 (node/%node) instead of news/my-news-title).
Может быть подскажете, что не так с моим кодом? Вопрос целесообразности - дело десятое. )
Со всем он работает, и с node/%node и contact.
Поставьте модуль devel и в разных местах функции выводите dpm($variables) и смотрите какая там структура.