Программно добавить пункт меню / ссылку в меню Drupal? - PullRequest
1 голос
/ 02 августа 2010

У меня есть меню Drupal, которое я создал через интерфейс.Я хочу добавить запись, которая говорит

Привет, Джон Доу

Где "Джон Доу" является ссылкой на страницу профиля пользователя.Я хотел бы сделать это программно или, если это можно сделать через интерфейс, это было бы здорово.

1 Ответ

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

Вы не можете добавлять элементы с указанием HTML в меню.Пункты меню всегда заключаются в якорный тег и отфильтровывают HTML.Изменение этого поведения технически возможно, но может вызвать много неизвестных побочных эффектов.

То, что вы хотите, это либо простое переопределение темы , либо пользовательский блок (потенциально без заголовка)и с некоторыми другими пулями).

Вы можете создать блок с помощью hook_block или просто набрав HTML с небольшим количеством PHP в новый блок, используя фильтр ввода PHP.Этот последний вариант быстрый, но многие не одобряют его по причинам производительности и «хороших практик»: вам не следует хранить php в вашей базе данных.

РЕДАКТИРОВАТЬ: После комментария о «только имя»:

Чтобы вставить «просто имя», вам просто нужно создать модуль с hook_menu.

global $user;
$items['path/%uid'] = array(
  'title'            => $user->name,
  'description'      => 'description',
  'page callback'    => 'drupal_get_form', //Fill in the callback here: function that renders the page content.
  'page arguments'   => array(''),
  'access callback'  => '',
  'access arguments' => array(''),
  'weight'           => 0,
  'menu_name'        => 'Navigation',
  'type'             => MENU_NORMAL_ITEM,
);

Это то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...