Drupal получить информацию о модуле?

Есть ли какая-либо функция в Drupal, как get_module_info('MODULE_NAME') или я должен разобрать info файл?

4 ответа

Решение

drupal_parse_info_file() является ближайшей функцией, но она принимает путь к файлу, а не имя модуля, поэтому сначала нужно преобразовать имя в путь:

$path = drupal_get_path('module', $name) . '/' . $name . '.info';
$info = drupal_parse_info_file($path);

Несколько более простой метод (drupal 7 и выше) - использовать функцию system_get_info.

Если вы используете модуль Features, он создал надежную структуру для взаимодействия с системной таблицей, которая легко адаптируется для любого сбора информации о модуле.

Чтобы получить информацию о модуле, используйте features_get_modules($module_name), Это отправляет специфичный для модуля запрос features_get_info() на линии 475 фич. модуля.

Информация кэшируется, и вы можете использовать hook_system_info_alter() для изменения нужных вам значений. Обратите внимание, что эта функциональность не затрагивается ничем в ядре Drupal и полезна только для ваших собственных функциональных возможностей модуля.

Для Друпала 8.6+:

      $info = \Drupal::service("extension.list.module")->getExtensionInfo('mymodule');
Другие вопросы по тегам