Да вот не хочется делать что-то руками. Делаю модуль для "О компании". Поставил галочки типа "Добавить в примари-линкс" и "Добавить в главное меню". А получается, что могу только в одно добавить
модуль, который добавляет несколько полей в /admin/settings/site-information, и добавляет страничку на сайт, куда всю инфу из этих полей выливает. Ну и опционно, предлагаю галками отметить типа "добавить пункт меню в примари-линкс" и "добавить пункт меню в навигейшн" с сылкой на эту страничку. А получается, что через hook_menu() могу только в одно меню добавить
Стоп-стоп-стоп.
Давайте начнем с самого начала: зачем вам это нужно?
Вы можете просто отредактировать одно из меню (скажем, создать свое меню и использовать его в качестве Primary links), и добавить туда свой элемент?
Все-таки hook_menu позволяет работать с системными меню. Для пользовательских лучше воспользоваться обычным web-интерфейсом.
Комментарии
Добавить пункт в административное меню, а в главное меню(через админку).
Да вот не хочется делать что-то руками. Делаю модуль для "О компании". Поставил галочки типа "Добавить в примари-линкс" и "Добавить в главное меню". А получается, что могу только в одно добавить
Ясно, великие гуру бессильны
Что вы делаете?
модуль, который добавляет несколько полей в /admin/settings/site-information, и добавляет страничку на сайт, куда всю инфу из этих полей выливает. Ну и опционно, предлагаю галками отметить типа "добавить пункт меню в примари-линкс" и "добавить пункт меню в навигейшн" с сылкой на эту страничку. А получается, что через hook_menu() могу только в одно меню добавить
В массив элемента меню полагаю нужно добавлять то, куда определён этот пункт, иначе он по умолчанию будет попадать в системное меню
Что то вроде:
<?php 'menu_name' => 'primary-links'; ?>
Я так и сделал) а как еще и в Navig добавить? для одного урла можно указать только одно меню, получается (
Код, который вы написали запостите
<?php
/*
* hook_menu()
*/
function jkhkabout_menu() {
$items = array();
//Добавим страничку
$items[ values_get_jkhkabout('jkhkabout_page_url') ] = array(
'title' => values_get_jkhkabout('jkhkabout_page_title'),
'page callback' => 'jkhkabout_page',
'access callback' => 'user_access',
'access arguments' => array('access jkhkabout'),
'menu_name' => 'primary-links'
);
return $items;
}
?>
Собственно, такой же пункт надо добавить и в Nav-меню
Если попробовать перечислить названия меню в массиве?
ни в массиве, ни через пробел в строке ни через запятую (
Продублировать тот же элемент, но с другим меню?
Возвращается ассоциативный массив ключ 'menu_name' просто перепишется во втором объявлении и будет добавлен в одно меню, все равно
Стоп-стоп-стоп.
Давайте начнем с самого начала: зачем вам это нужно?
Вы можете просто отредактировать одно из меню (скажем, создать свое меню и использовать его в качестве Primary links), и добавить туда свой элемент?
Все-таки hook_menu позволяет работать с системными меню. Для пользовательских лучше воспользоваться обычным web-интерфейсом.
Ну почему, достаточно нередкое использование может быть.
Мне непонятно, почему там что-то переписывается
Мы же добавляем совершенно другой пункт меню, только с таким же УРЛ
<?php
$items[ values_get_jkhkabout('jkhkabout_page_url') ] = array(
function jkhkabout_menu() {
$items = array();
//Добавим страничку
$items[ values_get_jkhkabout('jkhkabout_page_url') ] = array(
'title' => values_get_jkhkabout('jkhkabout_page_title'),
'page callback' => 'jkhkabout_page',
'access callback' => 'user_access',
'access arguments' => array('access jkhkabout'),
'menu_name' => 'primary-links'
);
'title' => values_get_jkhkabout('jkhkabout_page_title'),
'page callback' => 'jkhkabout_page',
'access callback' => 'user_access',
'access arguments' => array('access jkhkabout'),
'menu_name' => 'navigation'
);
return $items;
?>
и что не понятно?
видимо, так и придется делать
<?php
function module_menu() {
$items = array();
$items['item_1'] = array(
'title' => 'Title 1',
'page callback' => 'jkhkabout_page',
'access callback' => 'user_access',
'access arguments' => array('access jkhkabout'),
'menu_name' => 'primary-links'
);
$items['item_2'] = array(
'title' => 'Same with Title 1',
'page callback' => 'jkhkabout_page',
'access callback' => 'user_access',
'access arguments' => array('access jkhkabout'),
'menu_name' => 'navigation'
);
return $items;
?>
2 ссылки на одну страницу в 2-х меню. Неужели не будет работать?
У вас 2 разных страницы с адресом item1 и item2. А топикастеру нужно чтобы был только 1 страница с адресом item1.
Используйте функцию http://api.drupal.org/api/drupal/includes--menu.inc/function/menu_link_s...
спасибо
Насколько я понял нужно было 2 ссылки в разных меню, ведущих на одну страницу
угу, но страницы с разным урл это разные страницы. И очень плохо что у них содержимое одинаковое