Установлен модуль Administration menu, версия ядра Drupal'а 7.16.
Создаю свой модуль он отображается во вкладке админки "модули" включаю его, сохраняю настройки, добавляю права чтоб его мог использовать админ, очищаю кэш, но он не появляется в меню админки.
Если создавать в ручную пнкт в management-меню, то приходится указывать абра-кадабру в ссылке, что-то вроде #overlay=%3Fq%3D/admin/имя_модуля. Тогда все замечательно работает, однако, на мой взгляд это полный бред и неправильно.
На сколько я понял, #overlay - это то, что создает эффект отображения страниц админ-меню над содержимым сайта и с серым прозрачным фоном по краям. Исходя из этого возникла идея что мой модуль не получил прав на ее использование, но я не нашел где можно их указать.
Еще у меня есть предположение и догадки что нужно как-то указать Drupal'у что мой модуль является частью функционала админки чтоб он сам генерил и приставлял эту абра-кадабру к ссылке и соответственно показывал сам пункт меню в админке.
Код имя_модуля.module я уже по разному писал и по примеру из commerc'a
<?phpfunction ex_mod_menu() {
$items = array();
// Top level "Store" container.
$items['admin/ex_mod'] = array(
'title' => 'Eampel module',
'description' => 'страница ex_mod.',
'page callback' => 'system_admin_menu_block_page',
'access arguments' => array('access administration pages'),
'file path' => drupal_get_path('module', 'system'),
'file' => 'system.admin.inc',
);
}?>
и свой варинант
<?php$items['admin/ex_mod'] = array(
'title' => 'Title',
'description' => 'Description.',
'position' => 'left',
'page callback' => 'ex_mod_myform',
'access callback' => TRUE,
'expanded' => TRUE,
);
return $items;
}?>
Где ex_mod_myform функция вывода моей формы.
Результат всегда один и тот же в админ-меню нет нужного пункта (он должен отображаться на основном уровне с "структура", "содержимое", "модули" и т.д.). Если набирать в адресной строке ссылку
имя_сайта/#overlay=%3Fq%3D/admin/имя_модуля то открывается нужная страничка с формой.
В чем проблема и как ее решить?
Комментарии
Определись в каком разделе админки ты хочешь разместить свой модуль. Например в разделе конфигурация -> система. Тогда твой код будет выглядеть так:
{
$items = array();
$items['admin/config/system/you_module'] = array(
'title' => 'Title',
'description' => "Desc.",
'page callback' => 'ex_mod_myform',
'page arguments' => array('you_module_admin'),
'access arguments' => array('admin_acess'), //Тут нужно еще объявить допустимые права для модуля отдельно и указать их.
'file' => 'you_module.inc',
);
return $items;
}
У меня должен быть свой раздел, например как у модуля комерц, на планке админской менюшки.
"Содержимое", "структура", "мой пункт меню", "магазин", "оформление", "пользователи", "модули", "конфигурация", "отчет", "справка".
Тогда будет
У меня вроде также написано, разве нет?...
<?php$items['admin/ex_mod'] = array(
'title' => 'Title',
'description' => 'Description.',
'position' => 'left',
'page callback' => 'ex_mod_myform',
'access callback' => TRUE,
'expanded' => TRUE,
);
return $items;
}?>
Возможно нужно еще что-то где-то включить/"поставить галочку" чтоб система это приняла как часть функционала?
Нет, ничего нигде не нужно включать. Только что на чистом 7м друпале последнем вписал свой код и получил искомую ссылку http://screencast.com/t/s1wbtqSXfyb
кэширование включено?
Если про "конфигурация"->"разработка"->"Производительность"->"пара галочек" то они сняты, минимальное/максимальное время жизни кэша не установлено. На "чистом" друпале аналогично.