Sho*_*waz 10 drupal drupal-6 drupal-modules
我很想知道如何将Drupal模块分解为多个包含文件.链接的一些钩子支持包括组件,如hook_menu,hook_theme等.
一旦我计划简化我的一个复杂模块,它已经达到2.3K的行,其中一半的功能集.由于缺乏关于包容范围的知识,我必须回滚所有这些步骤.
如果有一些详细信息,请帮助我.
kia*_*uno 10
什么Nikit 说是正确的.
我将添加一些允许定义需要加载的文件的钩子.这种钩子的例子是hook_theme(),和hook_menu().
模块永远不应无条件地module_load_include()从函数外部加载需要调用的文件.
function book_menu() {
$items['admin/content/book'] = array(
'title' => 'Books',
'description' => "Manage your site's book outlines.",
'page callback' => 'book_admin_overview',
'access arguments' => array('administer book outlines'),
'file' => 'book.admin.inc',
);
$items['admin/content/book/list'] = array(
'title' => 'List',
'type' => MENU_DEFAULT_LOCAL_TASK,
);
$items['admin/content/book/settings'] = array(
'title' => 'Settings',
'page callback' => 'drupal_get_form',
'page arguments' => array('book_admin_settings'),
'access arguments' => array('administer site configuration'),
'type' => MENU_LOCAL_TASK,
'weight' => 8,
'file' => 'book.admin.inc',
);
// …
}
function user_theme() {
return array(
'user_picture' => array(
'arguments' => array('account' => NULL),
'template' => 'user-picture',
),
'user_profile' => array(
'arguments' => array('account' => NULL),
'template' => 'user-profile',
'file' => 'user.pages.inc',
),
// …
'user_admin_perm' => array(
'arguments' => array('form' => NULL),
'file' => 'user.admin.inc',
),
// …
);
}
Run Code Online (Sandbox Code Playgroud)
使用更多文件只需要在同一个文件中将类似的东西组合在一起,以使其更易于管理.使用的典型文件是
.admin.inc 适用于所有管理内容,菜单回调,表单等..pages.inc 用于前端菜单回调..theme.inc 用于主题函数,预处理挂钩等.forms.inc 对于非管理员表单及其处理程序.这更像是一种编码风格.所以这只是为了帮助你自己维护你编写的代码.