Вы здесь

Как добавить таб на странице пользователя?

0

Пытаюсь добавить свои кастомные табы на странице пользователя.

function themename_menu_local_tasks_alter(&$data, $router_item, $root_path) {

      $data['tabs'][0]['output'][] = array(
          '#theme' => 'menu_local_task',
          '#link' => array(
              'title' => t('New tab'),
              'href' => 'path/to/somewhere',
              'access_callback' => TRUE,
          ),
      );

    }

В итоге на странице пользователя получаю ошибку: Undefined index: path

Подскажите что делаю не так.

Версия Drupal: 
7.x
Категория: 
Menu API
Вопрос задан 11.03.2017 - 04:12

Приведу более подробный код, который уже написан для модуля.

function theme_menu_local_tasks_alter(&$data, $router_item, $root_path) {

  if (strpos($root_path, 'user/%') === 0 && isset($data['tabs'][0]['output'])) {
    foreach ($data['tabs'][0]['output'] as $key => $val) {
      switch ($val['#link']['path']) {

        case 'user/%/account':
          $data['tabs'][0]['output'][$key]['#link']['options'] = array('attributes' => array('class' => array('account')));
          break;

        case 'user/%/agent':
          $data['tabs'][0]['output'][$key]['#link']['options'] = array('attributes' => array('class' => array('agent')));
          break;

        case 'user/%/edit':
          $data['tabs'][0]['output'][$key]['#link']['options'] = array('attributes' => array('class' => array('password')));
          break;

        case 'user/%/orders':
        case 'user/%/addressbook':
        case 'user/%/my-files':
        case 'user/%/cart':
          unset($data['tabs'][0]['output'][$key]);
          break;
      }
    }
  }
}

Пытаюсь добавить в этот код тот что выше, чтобы добавить новый таб на страницу.
Новый таб будет линковать пользователя на страницу views. Каким образом можно сделать так, чтобы на странице views были видны табы пользователя сверху?

Комментарий оставлен 11.03.2017 - 04:48

Ответы

0

Нашёл решение без кода, изи.

Follow this walk-through to create a user profile tab which displays a view when selected.

  1. Create your views. Add a "page" display.
  2. Add an argument "Uid" then under settings "provide default argument" and "user id from url".
  3. Select the "page" display. add a "menu tab" under "page settings".

You're done.

https://www.drupal.org/node/656414

Ответ дан 11.03.2017 - 05:04