我正在为drupal寻找一些初学者资源。我一直在编写自己的模块,作为一种教我自己开发基础的方法,因为我喜欢让Drupal在Wordpress无法管理的时候去做。 (虽然wordpress正在迅速变得像Drupal一样成功,但这不是关于它的问题。)
我在启用/禁用屏幕中显示模块,并且module.install文件有效。我坚持的是生成一个管理区域来编辑我正在使用的表中的条目。我在module.admin.inc中有一个module_admin_settings()函数,在module.module中有一个module.menu()。
但它没有出现在菜单中,我很难过为什么会这样。所以我希望有人知道一个很好的教程,解释如何生成管理选项。
答案 0 :(得分:2)
如果您想成为Drupal开发的重点,我建议您阅读Pro Drupal developemnt书。它一直是我读过的最有用的Drupal书。
至于你的问题,创建一个管理部分与创建一个视图的地方差别不大。你需要做的是。
admin/settings/name
应该没问题实现一个回叫函数,当用户转到你的时候应该调用它。在您的情况下,您不需要实现一个,因为您应该使用drupal_get_form
,而是需要使用form API创建用户应该看到的表单。
您需要将此信息放在hook_menu
中,如下所示:
function modulename_menu() {
$items = array();
$items['admin/settings/modulename'] = array(
'title' => 'Menu item',
'description' => 'The description of the menu item. It is used as title attribute and on the administration overview page.',
'page callback' => 'drupal_get_form',
'page arguments' => array('form_id'),
'access arguments' => array('administer modulename'), // access restriction to admins only
);
return $items;
}
然后你需要为你的表单实现验证和提交处理程序,如果你使用system_settings_form
,你可以为你完成很多工作。
hook_menu
进行更改时,都需要清除(菜单)缓存,因为Drupal会缓存此信息以优化性能。就是这样。现在您不需要在模块中使用不同的文件。如果模块很小,则只能进入.module
文件。但是对于更大的模块,您可以将一些代码放在.inc
文件中以稍微组织您的代码。用于管理员回调/功能的Fx modulename.admin.inc
,用于常规回调/功能的modulename.page.inc
等。
答案 1 :(得分:0)
http://drupal.org/node/206761是我用作起点的。