Создать динамическую ссылку в drupal - PullRequest
0 голосов
/ 03 августа 2010

Может кто-нибудь сказать мне, как создать динамическую ссылку в Drupal?

Я хочу создать ссылку на список участников группы.Я создал представление с аргументом.Как создать ссылку на пункт меню для представления?Это будет отличаться в зависимости от группы.

Спасибо

Ответы [ 3 ]

1 голос
/ 25 января 2013

Я создаю ссылку для перенаправления для таких ситуаций. Например, если я хочу, чтобы ссылка меню направляла пользователя на его страницу редактирования, я реализую hook_menu () следующим образом:

function my_module_menu()
{
  $menu['user/cp'] = array
  (
    'title' => 'User Control Panel',
    'page callback' => 'user_cp_redirect_page',
    'access callback' => 'user_is_logged_in',
    'type' => MENU_CALLBACK,
  );

  return $menu;
}

Затем я установил обратный вызов страницы так:

function user_cp_redirect_page()
{
  global $user;

  drupal_goto('user/' . $user->uid . '/edit');
}
0 голосов
/ 03 августа 2010

Похоже, вам может понадобиться использовать аргументы представлений для фильтрации ваших результатов, если вы выбираете разные «группы» на основе одного представления. Я бы начал здесь, чтобы узнать больше об аргументах views: http://drupal.org/node/54455,, если это действительно то, чего вы пытаетесь достичь.

EDIT:

Полагаю, было бы полезно, если бы я полностью прочитал вопрос. Похоже, вы уже используете аргументы для вашего взгляда. В этом случае вы уже создали динамические ссылки на свою страницу. Попробуйте поместить аргументы для каждой «группы» в конце URL. Например, если вы создали страницу с новостями пути, вы можете передать аргумент, добавив его в конец URL-адреса. Таким образом, если вы создали аргумент с помощью «Узел: год создания», вы можете отфильтровать этот контент, добавив что-то вроде example.com/news/2009 для доступа только к тем узлам, которые были созданы в 2009 году. То, что вы передаете, зависит от типа аргумент, который вы создали.

0 голосов
/ 03 августа 2010

Короче, ты не можешь.Система меню Drupal кэширует все меню: пункты меню не могут выглядеть по-разному для разных пользователей (хотя вы можете установить для них права доступа).Если вы хотите, чтобы пункты меню появлялись, вы должны либо зарегистрировать их в hook_menu() (который вызывается только при перестроении меню), либо добавить их вручную в администрировании меню.

Страница справочникав Система меню предоставляет дополнительную информацию об этом.

Однако вы можете создать поддельное меню, используя отображение блока в вашем представлении и стиль строки списка HTML.Это полезно, если вы хотите иметь блок списка категорий вне структуры главного меню.

...