Пользовательские вкладки меню на странице профиля пользователя Drupal - PullRequest
3 голосов
/ 16 ноября 2010

Я хочу добавить пункт меню рядом со ссылками на меню [view] [edit] [files] ... вверху страницы профиля пользователя.Когда пользователь щелкает по нему, он должен вести себя так же, как и другие, в том смысле, что он не просто запускает новую страницу, а пункт меню, по которому он щелкнул (назовем его «Funky Button»), становится серым, а пользователь остаетсяобласть профиля пользователя.

Я создал хук, как показано ниже:

function my_module_funky() {
    // TODO: what to do?
}


function my_module_menu() {

    $items['user/%user/funky'] = array(
        'title' => t('Funky Button'),
        'page callback' => 'my_module_funky',
        'page arguments' => array(1),
        'access callback' => TRUE,
        'access arguments' => array('access funky button'),
        'type' => MENU_LOCAL_TASK,
    );

    return $items;
}

Так что этот фрагмент кода выше добавляет кнопку - но я не могу понять, как ее получитьотображать как кнопки просмотра и редактирования отображать их содержание.Спасибо!

1 Ответ

0 голосов
/ 17 ноября 2010

Ваш обратный вызов должен вернуть строку, содержащую HTML-код страницы для отображения, например:

<code>function my_module_funky($user){
 drupal_set_title('Funky page');
 return 'This is the $user value: <pre>'.var_export($user, true).'
';}

$user происходит из строки 'page arguments' => array(1) вашей реализации hook_menu , которая передает значение группового символа %user в качестве первого аргумента обратного вызова вашей страницы.


Если это сложная страница, вы можете создать функцию темы с файлом шаблона, таким образом вы можете сохранить код страницы в файле .tpl.php, что упрощаетподдерживать (особенно если ваш модуль создает много таких пользовательских страниц).

Это также имеет преимущество, позволяя темам настраивать вывод страницы, предоставляя свою собственную версию файла .tpl.php, если ваш модуль становится популярным.или другие модули могут предварительно обработать страницу для добавления / изменения переменных.

...