Ответы:
Вы можете использовать drush pm-list --type=Module --status=enabled
команду для получения списка всех установленных модулей.
Если вы хотите исключить основные модули, используйте drush pm-list --type=Module --no-core --status=enabled
Я использую два варианта: 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
Модуль Enabled Modules (enabled_modules) предоставляет списки всех включенных модулей на веб-сайте.
Или,
Вы можете использовать эту функцию API module_list для получения всех включенных модулей.
Да, проверьте модуль Module Filter : это отличный помощник администратора, который значительно упрощает управление модулями.
Страница со списком модулей может стать довольно большой при работе с довольно большим сайтом или даже просто с сайтом разработчика, предназначенным для тестирования новых и рассматриваемых модулей. Цель этого модуля - возможность быстро найти модуль, который вы ищете, не полагаясь на функцию поиска в браузерах, которая чаще всего отображает имя модуля в разделах «Требуется» или «Зависит от» различные модули или даже какое-то другое место на странице, например, пункт меню.
Когда вкладки активируются на странице настроек модуля Filter, реализуется новая тема макета модуля. Этот макет вкладки предоставляет вкладку для каждого пакета, а также вкладку, которая отображает каждый модуль в алфавитном порядке. Текстовое поле фильтра доступно на каждой вкладке, но в настоящее время не поддерживает автозаполнение.
Drush make обладает примитивной возможностью генерации make-файлов. Чтобы использовать его, просто измените каталог на установку Drupal, из которой вы хотите сгенерировать файл, и выполните следующую команду:
drush generate-makefile /path/to/make-file.make
Вы получаете make-file.make со списком модулей. Затем вы можете загрузить эти модули в другой проект. Читайте http://www.drush.org/en/master/make/#usage
Если у вас нет доступа к командной строке для запуска drush, возможно, вы ищете что-то, что можно сделать из веб-интерфейса. Лучшее решение, которое я смог найти, это перейти на страницу Модули, а затем запустить эту команду в консоли:
jQuery('table.sticky-enabled input[checked=checked]')
.closest('tr')
.find('td label strong')
.each(function() {
console.log(jQuery(this).text());
})
Это напечатает все включенные модули в консоли, где вы сможете скопировать и вставить их в любое место.
Самый простой способ, который я нашел, - это запрос к базе данных, который вы можете поместить в пользовательский модуль или скрипт Drush, чтобы вывести его в нужном вам формате.
$enabled_modules = db_query("SELECT name FROM {system} WHERE type = 'module' AND status = 1");
print implode("\n", $enabled_modules);
Установите и активируйте модуль Forena (раскрытие, я со-сопровождающий). Затем пользователи с ролью «администратор» смогут перейти к доставленному (образцу) отчета, расположенному по адресу reports/drupaladmin.enabled_contributions
, который даст вам список, к которому относится этот вопрос.
Вот как выглядит спецификация ( .FRX
файл, документ XHTML) для создания отчета:
<?xml version="1.0"?>
<!DOCTYPE root [
<!ENTITY nbsp " ">
]>
<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
файл и / или блок данных в соответствии со своими потребностями.
AND 'module'=type
?! Должно бытьAND type = 'module'
Для тех, у кого нет Drush: перейдите на страницу модулей с включенным фильтром модулей (не обязательно, но хорошо для форматирования).
Затем покажите исходную страницу, скопируйте html модулей внутри "<" table> "в" <"/ table>. Вставьте в gedit, оберните вокруг него немного html (html, body), и вы получите страницу html, включая указание неиспользуемые / отключенные модули (отмеченные флажком сняты), которые могут быть важны при перестройке сайта (поскольку могут потребоваться отключенные модули или они могут быть установлены -> удалены для очистки базы данных)
Модуль Schema - это одна из опций, в то время как Views тоже может с этим справиться, хотя без дополнительного модуля Views System, который, как я обнаружил, глючит, вы не получите номера версий.
drush @sites pml --no-core --type=module --status="enabled" -y
и отфильтровав, скажем, some_module, используя grep `| grep some_module`