При разработке настраиваемого модуля, какой правильный способ установить вес модуля?Установить Вес модуля модуля
11
A
ответ
19
Стандартный способ - сделать это в запросе в установочном крюке.
От модуля разви:
/**
* 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'");
...
}
4
, если по какой-то причине вы должны придерживаться его в крюке обновления, вам нужно будет правильно возвращать результат из update_sql, чтобы вы получите неприятные прогнозные безобидные ошибки.
function mymodule_update_6000(&$sandbox) {
$res[] = update_sql("UPDATE {system} SET weight = 1 WHERE name = 'mymodule'");
return $res;
}
25
Это правильный способ сделать это в Drupal 7
/**
* Implements hook_enable()
*/
function YOUR_MODULE_enable() {
db_update('system')
->fields(array('weight' => 1))
->condition('type', 'module')
->condition('name', 'YOUR_MODULE')
->execute();
}
+0
Должен быть помещен в файл your_module.install. – duru
Это выглядит правильно, но вызов drupal_install_schema(), необходимое только для установки веса? – markdorison
Вы также можете установить вес вручную ... вызов drupal_install_schema() существует, потому что установочный крючок devel должен установить свою схему. –
Примите во внимание, что установка веса - это не всегда все, что вам нужно. В некоторых случаях я столкнулся с необходимостью установки «начальной загрузки», а модули с более низким весом, но с «начальной загрузкой» загружаются до «стандартных» модулей - учтите это ... – Shushu