Модуль выдает ошибку

Главные вкладки

Аватар пользователя Netstat Netstat 7 октября 2009 в 16:01

По этой ссылке учебник http://www.williamspublishing.com/PDF/978-5-8459-1356-2/part.pdf
Я скопировал из него в модуль annotate код внизу.И включил его в модулях.Он должен выдать форму при заходе по ссылке
http://localhost/drupal/admin/settings/annotate
но там ее нет-просто вкладка settings
И также выдает ошибку
warning: Missing argument 1 for annotate_menu() in Z:\home\localhost\www\drupal\sites\all\modules\mymodulename\annotate.module on line 5.

<?
/**
* Реализация hook_menu().
*/
function annotate_menu($may_cache) {
$items = array();
if ($may_cache) {
$items[] = array(
'path' => 'admin/settings/annotate',
'title' => t('Annotation settings'),
'description' => t('Change how annotations behave.'),
'callback' => 'drupal_get_form',
'callback arguments' => array('annotate_admin_settings'),
'access' => user_access('administer site configuration')
);
}
return $items;
}
/**
* Определяем форму параметров настройки.
*/
function annotate_admin_settings() {
$form['annotate_nodetypes'] = array(
'#type' => 'checkboxes',
'#title' => t('Users may annotate these node types'),
'#options' => node_get_types('names'),
'#default_value' => variable_get('annotate_nodetypes',
array('story')),
'#description' => t('A text field will be available on these
node types to make user-specific notes.'),
);
$form['array_filter'] = array('#type' => 'hidden');
return system_settings_form($form);
}
?>

Комментарии

Аватар пользователя pazitiff pazitiff 24 марта 2012 в 16:40

Если кому актуально, переписал функцию вот таким образом и всё заработало.

function annotate_menu() {
$items['admin/settings/annotate'] = array(
'title' => 'Annotation settings',
'page arguments' => array('annotate_admin_settings'),
'access arguments' => array('access annotate'),
'page callback' => 'drupal_get_form',
'type' => MENU_NORMAL_ITEM,
'file' => 'annotate.admin.inc',
);
return $items;
}

Как я понял, в книге приведен пример для 5 версии друпал Smile Под 6 надо сообразить и переделать)))