【发布时间】:2011-01-12 16:37:32
【问题描述】:
在开发自定义模块时,设置模块权重的正确方法是什么?
【问题讨论】:
标签: drupal drupal-modules
在开发自定义模块时,设置模块权重的正确方法是什么?
【问题讨论】:
标签: drupal drupal-modules
这是在 Drupal 7 中正确的做法
/**
* Implements hook_enable()
*/
function YOUR_MODULE_enable() {
db_update('system')
->fields(array('weight' => 1))
->condition('type', 'module')
->condition('name', 'YOUR_MODULE')
->execute();
}
【讨论】:
标准方法是在安装钩子的查询中进行。
来自开发模块:
/**
* Implementation of hook_install()
*/
function devel_install() {
drupal_install_schema('devel');
// New module weights in core: put devel as the very last in the chain.
db_query("UPDATE {system} SET weight = 88 WHERE name = 'devel'");
...
}
【讨论】:
如果由于某种原因您必须将其粘贴在更新挂钩中,您将希望从 update_sql 正确返回结果,以免出现看起来令人讨厌的无害错误。
function mymodule_update_6000(&$sandbox) {
$res[] = update_sql("UPDATE {system} SET weight = 1 WHERE name = 'mymodule'");
return $res;
}
【讨论】: