Вы здесь

Переписать breadcrumbs в зависимости от страницы пришествия

0

Хочу сменить цепочку breadcrumbs.

К примеру, если пришел на страницу admin/ata со страницы node/dd, то breadcrumbs меняются.
Начал делать через hook_preprocess(), но тут понял, что не знаю где взять данные о предыдущей страницы.

Имеются ввиду переходы только внутри Drupal.

В общем как решить?

Версия Drupal: 
7.x
Вопрос задан 05.08.2015 - 07:22
Аватар пользователя SAM
SAM
212

ну, если админ, то можно не париться о кеше и взять из $_SERVER['HTTP_REFERER'], проверив домен и почистив параметры.

Комментарий оставлен 05.08.2015 - 07:38

А если не админ? Менеджер к примеру. Может быть любая учётка, но точно не анонимус.

Комментарий оставлен 05.08.2015 - 08:30

Ответы

0

С подачи 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
Аватар пользователя SAM
SAM
212

Смотри комменты под постом.

Комментарий оставлен 05.08.2015 - 10:02
0
Ответ дан 05.08.2015 - 09:04

Не совсем. Пути в breadcrumbs будут не те, по которым до этого ходил юзер.

Комментарий оставлен 05.08.2015 - 09:14

breadcrumbs - должно быть тем, для чего предназначено
разумно ещё микроразметку пристроить

нафига вам такие извращения (это не вопрос)

Комментарий оставлен 05.08.2015 - 10:22