You are here

5把页面回调放在inc文件中

admin 的头像
Submitted by admin on 星期一, 2015-06-01 03:40

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

如果我们没有特别指定,那么Drupal会假定我们把页面回调函数放在了module文件中。在Drupal7中,对于每个页面请求,系统通常都会加载所有的module文件,为了尽可能的降低所加载的module文件大小,我们可以把很多回调函数放置在inc文件中。可以使用菜单项中的file键,来指定哪个文件包含了它的回调函数,这样回调函数就不需要放在当前的module文件中了。我们在前面一章中,就曾提到过file键。

 

如果我们定义了file键,那么Drupal默认将会在当前模块目录下查找该文件。如果页面回调函数是由其它模块提供的,也就是说该文件不在当前模块目录中,那么我们需要告诉Drupal在查找该文件时所用的文件路径,这里使用file path键,就可以轻松的实现这一点了。我们在前面一章中,就曾用到过file path键。

 

   我们新建一个menu_abc.pages.inc文件,将我们的回调函数剪切过去,然后修改菜单项中的代码,添加file键。

 

function menu_abc_menu() {

 

  $items['menu_abc'] = array(

    'title' => '菜单ABC',

    'description' => '一个简单的菜单项.',

    'page callback' => 'menu_abc_callback_page',

'file' => 'menu_abc.pages.inc',

    'access callback' => TRUE,

'weight' => 10,

'menu_name' => 'main-menu',

  );

 

   return $items;

}

    保存好module文件和inc文件后,清空缓存数据,我们看到了相同的结果。如果我们修改inc文件中的返回内容,我们会看到相应的变化。此时回调函数已经放在inc文件中了。


Drupal版本: