管理菜单

时间:2010-07-19 09:20:16

标签: drupal drupal-6 drupal-modules

我正在为drupal寻找一些初学者资源。我一直在编写自己的模块,作为一种教我自己开发基础的方法,因为我喜欢让Drupal在Wordpress无法管理的时候去做。 (虽然wordpress正在迅速变得像Drupal一样成功,但这不是关于它的问题。)

我在启用/禁用屏幕中显示模块,并且module.install文件有效。我坚持的是生成一个管理区域来编辑我正在使用的表中的条目。我在module.admin.inc中有一个module_admin_settings()函数,在module.module中有一个module.menu()。

但它没有出现在菜单中,我很难过为什么会这样。所以我希望有人知道一个很好的教程,解释如何生成管理选项。

2 个答案:

答案 0 :(得分:2)

如果您想成为Drupal开发的重点,我建议您阅读Pro Drupal developemnt书。它一直是我读过的最有用的Drupal书。

至于你的问题,创建一个管理部分与创建一个视图的地方差别不大。你需要做的是。

  1. 实施hook_menu注册您要使用的网址,在您的情况下admin/settings/name应该没问题
  2. 实现一个回叫函数,当用户转到你的时候应该调用它。在您的情况下,您不需要实现一个,因为您应该使用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;
    }
    
  3. 然后你需要为你的表单实现验证和提交处理程序,如果你使用system_settings_form,你可以为你完成很多工作。

  4. 每当您对hook_menu进行更改时,都需要清除(菜单)缓存,因为Drupal会缓存此信息以优化性能。
  5. 就是这样。现在您不需要在模块中使用不同的文件。如果模块很小,则只能进入.module文件。但是对于更大的模块,您可以将一些代码放在.inc文件中以稍微组织您的代码。用于管理员回调/功能的Fx modulename.admin.inc,用于常规回调/功能的modulename.page.inc等。

答案 1 :(得分:0)

http://drupal.org/node/206761是我用作起点的。