Drupal → Изменения веса модуля при его установке
Добавить в modulename.install
:
Drupal 7
/** * Implements hook_install(). */ function modulename_install() { db_update('system') ->fields(array('weight' => 123)) ->condition('name', 'modulename') ->execute(); }
Drupal 6
/** * Implements hook_install() */ function modulename_install() { db_query("UPDATE {system} SET weight = 123 WHERE name = 'modulename'"); }
Комментарии
было бы неплохо написать тут, как используется вес модуля в друпале. =)
хуки выполняются в порядке веса модулей
По какой причине hook_url_inbound_alter более "легкого" модуля(с отрицательным значением веса -20) может выполняться позднее чем hook_url_inbound_alter модуля с весом 0 ?
hook_module_implements_alter
Спасибо, не знаю это подсказка к решению или очень конкретный ответ на вопрос, но выяснил что по факту hook_module_implements_alter эти модули не используют(могут ли другие модули их двигать, не себя а конкретно их?), а сортировка модулей по факту выполняется по модулю числа веса без учета знака, баг? новейшая версия Drupal7 стабильная.
Это только в 1-ый раз, когда модуля не было, сработает.
Отключение – включение модуля эту функцию не запустит – нужно сначала делать "удаление" модуля после его отключения, и потом заново включать.
Для D8: module_set_weight('module_name', 1001);
Оставить комментарий