Почему я получаю страницу не найдена ошибка после создания нового пункта меню?
В моем файле модуля я создал новый пункт меню
function xmlproject_menu()
{
$items = array();
//more items here
$items['system/xml/cfa/initialize/%/%/%/%/%'] = array(
'page callback' => 'xmlproject_initialize_cf',
'page arguments' => array(4, 5, 6, 7, 8,),
'access callback' => TRUE,
'type' => MENU_CALLBACK,
);
return $items;
}
function xmlproject_initialize_cf($session_id, $cart_id, $pid, $rid, $partner_id)
{
//some code here
}
Я попытался зайти в admin/build/modules, devel/menu/reset и admin/settings/performance, чтобы очистить кеш. Я могу видеть пункт меню в базе данных (menu_router).
Когда я захожу на http://example.com/system/xml/cfa/initialize/1/2/3/4/5 я получаю "Страница не найдена".
3 ответа
Ваш код кажется просто денди, но я полагаю, что обратный вызов вашей страницы "xmlproject_initialize_cf" должен действительно что-то возвращать.
Попробуй это:
function xmlproject_initialize_cf($session_id, $cart_id, $pid, $rid, $partner_id)
{
// Your Code
return 'Hello world!';
}
Имя модуля называется "xmlproject"?
Похоже, что-то не так с вашим кодом. Просто любопытно, почему вы сохранили последний элемент массива как "пустой" (запятая после числа 8)
'page arguments' => array(4, 5, 6, 7, 8,),
Также в массиве есть дополнительный пустой элемент (дополнительная запятая после MENU_CALLBACK)
'type' => MENU_CALLBACK,
Как вы видите в своей базе данных number_part
столбец, который содержит Количество частей в пути к маршрутизатору, устанавливается на 7(максимально доступная часть), но ваши части обратного вызова меню равны 9. Что больше, чем MENU_MAX_PARTS, доступных в drupal 6. Вот почему вы получаете Page not found
Просто уменьшите размер вашего пункта меню, и вы готовы. Например:
$items['initialize/%/%/%/%/%'] = array(
'page callback' => 'xmlproject_initialize_cf',
'page arguments' => array(4, 5, 6, 7, 8),
'access callback' => TRUE,
'type' => MENU_CALLBACK,
);