Список всех активных модулей, используемых на сайте

21

Есть ли способ иметь список всех используемых (активных) модулей на сайте?

Я нахожусь в процессе документирования сайта и хотел бы перечислить все активные модули, я знаю, что могу взять их, admin/modulesно должен быть другой путь.

drcelus
источник

Ответы:

33

Вы можете использовать drush pm-list --type=Module --status=enabledкоманду для получения списка всех установленных модулей.

Если вы хотите исключить основные модули, используйте drush pm-list --type=Module --no-core --status=enabled

Гокул Н.К.
источник
Как упоминалось в соответствующем сообщении, вы можете перечислить все из них для многосайтовой среды с @sites , выполнив drush @sites pml --no-core --type=module --status="enabled" -yи отфильтровав, скажем, some_module, используя grep `| grep some_module`
MediaVince
21

Я использую два варианта: Drush и собственный скрипт.

Для Drush вы можете использовать drush pm-list:

$ drush help pm-list
Show a list of available extensions (modules and themes).

Options:
 --type                                    Filter by extension type. Choices:
                                           module, theme.
 --status                                  Filter by extension status. Choices:
                                           enabled, disable and/or 'not
                                           installed'. You can use multiple
                                           comma separated values. (i.e.
                                           --status="disabled,not installed").
 --package                                 Filter by project packages. You can
                                           use multiple comma separated values.
                                           (i.e. --package="Core -
                                           required,Other").
 --core                                    Filter out extensions that are not
                                           in drupal core.
 --no-core                                 Filter out extensions that are
                                           provided by drupal core.
 --pipe                                    Returns a space delimited list of
                                           the names of the resulting
                                           extensions.


Aliases: pml

Я также написал этот скрипт для Drupal 6. Вам нужно отредактировать загрузчик для Drupal 7, и вы также можете настроить проверку пути. Я поместил это в файл modules.php в моем DOCROOT и добавил ограничение доступа вокруг него, чтобы он не вызывался из дикой природы.

<?php
include_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
header('Content-Type: text/plain');

$files = drupal_system_listing('/\.module$/', 'modules', 'name', 0);

system_get_files_database($files, 'module');

ksort($files);

$core_installed = array();
$core_enabled = array();
$core_disabled = array();

$contrib_installed = array();
$contrib_enabled = array();
$contrib_disabled = array();

foreach ($files as $info) {
  $filename = $info->filename;
  $name = $info->name;
  $status = $info->status;

  $contrib = strpos($filename, "sites/all/modules/") === 0;

  if ($contrib) {
    $contrib_installed[] = $name;
    if ($status) $contrib_enabled[] = $name;
    else $contrib_disabled[] = $name;
  } else {
    $core_installed[] = $name;
    if ($status) $core_enabled[] = $name;
    else $core_disabled[] = $name;
  }
}

print "Installed Core Modules: " . join(", ", $core_installed) . "\n\n";
print "Enabled Core Modules: " . join(", ", $core_enabled) . "\n\n";
print "Disabled Core Modules: " . join(", ", $core_disabled) . "\n\n";

print "Installed Contrib Modules: " . join(", ", $contrib_installed) . "\n\n";
print "Enabled Contrib Modules: " . join(", ", $contrib_enabled) . "\n\n";
print "Disabled Contrib Modules: " . join(", ", $contrib_disabled) . "\n\n";

Этот скрипт может быть вызван с использованием drush: drush scr modules.php

mpdonadio
источник
7

Модуль Enabled Modules (enabled_modules) предоставляет списки всех включенных модулей на веб-сайте.

Или,

Вы можете использовать эту функцию API module_list для получения всех включенных модулей.

Анил Сагар
источник
4

Да, проверьте модуль Module Filter : это отличный помощник администратора, который значительно упрощает управление модулями.

Страница со списком модулей может стать довольно большой при работе с довольно большим сайтом или даже просто с сайтом разработчика, предназначенным для тестирования новых и рассматриваемых модулей. Цель этого модуля - возможность быстро найти модуль, который вы ищете, не полагаясь на функцию поиска в браузерах, которая чаще всего отображает имя модуля в разделах «Требуется» или «Зависит от» различные модули или даже какое-то другое место на странице, например, пункт меню.

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

Арам Бояджян
источник
2

Drush make обладает примитивной возможностью генерации make-файлов. Чтобы использовать его, просто измените каталог на установку Drupal, из которой вы хотите сгенерировать файл, и выполните следующую команду:

drush generate-makefile /path/to/make-file.make

Вы получаете make-file.make со списком модулей. Затем вы можете загрузить эти модули в другой проект. Читайте http://www.drush.org/en/master/make/#usage

Андрей Воскресенский
источник
2

Если у вас нет доступа к командной строке для запуска drush, возможно, вы ищете что-то, что можно сделать из веб-интерфейса. Лучшее решение, которое я смог найти, это перейти на страницу Модули, а затем запустить эту команду в консоли:

jQuery('table.sticky-enabled input[checked=checked]')
  .closest('tr')
  .find('td label strong')
  .each(function() {
    console.log(jQuery(this).text());
})

Это напечатает все включенные модули в консоли, где вы сможете скопировать и вставить их в любое место.

Энтони ДиСанти
источник
2

Самый простой способ, который я нашел, - это запрос к базе данных, который вы можете поместить в пользовательский модуль или скрипт Drush, чтобы вывести его в нужном вам формате.

$enabled_modules = db_query("SELECT name FROM {system} WHERE type = 'module' AND status = 1"); print implode("\n", $enabled_modules);

Алекс Финнарн
источник
2

Установите и активируйте модуль Forena (раскрытие, я со-сопровождающий). Затем пользователи с ролью «администратор» смогут перейти к доставленному (образцу) отчета, расположенному по адресу reports/drupaladmin.enabled_contributions, который даст вам список, к которому относится этот вопрос.

Вот как выглядит спецификация ( .FRXфайл, документ XHTML) для создания отчета:

<?xml version="1.0"?>
<!DOCTYPE root [
<!ENTITY nbsp "&#160;">
]>
<html xmlns:frx="urn:FrxReports">
<head>
<title>Enabled Modules and Themes</title>
<frx:category>Drupal Administration</frx:category>
<frx:options hidden="0" />
<frx:parameters>
</frx:parameters>
<frx:docgen>
</frx:docgen>

</head>
<body>
  <div frx:block="drupal/enabled_modules" id="forena-1">
    <table>
      <thead>
        <tr>
          <th>name</th>
          <th>owner</th>
          <th>weight</th>
        </tr>
      </thead>
      <tbody>
        <tr frx:foreach="*" id="forena-2">
          <td>{name}</td>
          <td>{owner}</td>
          <td>{weight}</td>
        </tr>
      </tbody>
    </table>
  </div>
</body>
</html>

А вот как выглядит блок данных (оператор SQL), указанный в отчете:

--ACCESS=access administration pages
SELECT name, owner, weight FROM {system}
WHERE status=1 AND 'module'=type
ORDER BY name

Это действительно "это".

PS: не стесняйтесь настраивать (адаптировать) .FRXфайл и / или блок данных в соответствии со своими потребностями.

Pierre.Vriens
источник
AND 'module'=type?! Должно бытьAND type = 'module'
ajmedway
@ajmedway вы, вероятно, правы, почему бы не "предложить редактирование"? Я был бы рад одобрить это ...
Pierre.Vriens
Это не большое дело, я полагаю, пункт работает. Это просто не принято иметь имя столбца в правой части выражения со значением слева.
Ajmedway
0

Для тех, у кого нет Drush: перейдите на страницу модулей с включенным фильтром модулей (не обязательно, но хорошо для форматирования).

Затем покажите исходную страницу, скопируйте html модулей внутри "<" table> "в" <"/ table>. Вставьте в gedit, оберните вокруг него немного html (html, body), и вы получите страницу html, включая указание неиспользуемые / отключенные модули (отмеченные флажком сняты), которые могут быть важны при перестройке сайта (поскольку могут потребоваться отключенные модули или они могут быть установлены -> удалены для очистки базы данных)

Стив
источник
0

Модуль Schema - это одна из опций, в то время как Views тоже может с этим справиться, хотя без дополнительного модуля Views System, который, как я обнаружил, глючит, вы не получите номера версий.

Cymatical
источник
ОП требует список включенных модулей, а не их версию схемы.
kiamlaluno