Хочу сменить цепочку breadcrumbs.
К примеру, если пришел на страницу admin/ata со страницы node/dd, то breadcrumbs меняются.
Начал делать через hook_preprocess(), но тут понял, что не знаю где взять данные о предыдущей страницы.
Имеются ввиду переходы только внутри Drupal.
В общем как решить?
Версия Drupal:
7.x
Вопрос задан 05.08.2015 - 07:22
Ответы
С подачи kalabro временное решение:
function MYMODULE_preprocess(&$vars, $hook) {
if ($hook == 'page') {
$destination = $_SERVER['HTTP_REFERER'];
$pattern = ''; // Тут паттерн проверки
if (preg_match('/' . $pattern . '/', $destination)) {
$breadcrumb = array();
$breadcrumb[] = l('Главная', '<front>');
$breadcrumb[] = l('Бла', 'bla');
drupal_set_breadcrumb($breadcrumb);
}
}
}
Ответ дан 05.08.2015 - 09:16
Смотри комменты под постом.
Комментарий оставлен 05.08.2015 - 10:02
Что-то типа https://www.drupal.org/project/clickpath ?
Ответ дан 05.08.2015 - 09:04
Не совсем. Пути в breadcrumbs будут не те, по которым до этого ходил юзер.
Комментарий оставлен 05.08.2015 - 09:14
breadcrumbs - должно быть тем, для чего предназначено
разумно ещё микроразметку пристроить
нафига вам такие извращения (это не вопрос)
Комментарий оставлен 05.08.2015 - 10:22
ну, если админ, то можно не париться о кеше и взять из $_SERVER['HTTP_REFERER'], проверив домен и почистив параметры.
А если не админ? Менеджер к примеру. Может быть любая учётка, но точно не анонимус.