Відповіді:
Другі варіанти, які я використовую, - "Друш" та користувацький сценарій.
Для 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, і ви також можете налаштувати перевірку шляху. Я поміщую це у файл під назвою module.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 scr modules.php
Модуль Enabled Modules (enable_modules) надає списки всіх включених модулів на веб-сайті.
Або,
Ви можете використовувати цей API-функцію module_list, щоб отримати всі включені модулі.
Так, перевірте модуль фільтрів модулів: це чудовий помічник адміністратора, який значно спрощує управління модулями.
Сторінка списку модулів може стати досить великою, якщо мати справу з досить великим сайтом або навіть просто сайтом розробників, призначеним для тестування нових та різних модулів, що розглядаються. Що цей модуль має на меті досягти - це можливість швидко знайти потрібний модуль, не покладаючись на функцію пошуку в браузерах, яка більше разів не показує вам ім'я модуля в розділах "Потрібно" або "Залежно від" різні модулі або навіть якесь інше розташування на сторінці, наприклад, пункт меню.
Коли вкладки ввімкнено на сторінці налаштувань фільтра модуля, реалізується нова тема компонування модуля. Цей макет вкладки містить вкладку для кожного пакету, а також вкладку, яка відображатиме кожен модуль в алфавітному порядку. Текстове поле фільтра доступне на кожній вкладці, але наразі не підтримує автозаповнення.
Drush make має можливість примітивної генерації makefile. Для його використання просто змініть каталог на інсталяцію Drupal, з якої ви хочете генерувати файл, та запустіть таку команду:
drush create-makefile /path/to/make-file.make
Ви отримуєте make-file.make зі списком модулів. Потім ви можете завантажити ці модулі в інший проект. Читайте http://www.drush.org/en/master/make/#usage
Якщо у вас немає доступу до командного рядка, щоб запустити барабан, ви можете шукати щось, що можна зробити з веб-інтерфейсу. Найкращим рішенням, який я міг знайти, є перегляд сторінки Модулі, а потім виконання цієї команди в консолі:
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'
Для тих, хто не має друку: перейдіть на сторінку модулів з увімкненим фільтром модулів (не зовсім необхідним, але добре для форматування).
Потім покажіть сторінку джерела, скопіюйте модулі html всередині "<" table> "в" <"/ table>. Вставте в gedit, оберніть навколо нього трохи html (html, body), і у вас з'явиться сторінка html, включаючи вказівку на невикористані / відключені модулі (без прапорців відображається прапорець), що може бути важливим під час відновлення сайту (наскільки можуть бути потрібні відключені модулі або можуть бути встановлені -> видалено для очищення бази даних)
Модуль схеми - це один варіант, в той час як Views також може зробити трюк, хоча без додаткового модуля Views System, який я виявив помилку, ви не отримуєте номери версій.
drush @sites pml --no-core --type=module --status="enabled" -y
та відфільтрувавши скажіть some_module за допомогою grep `| grep some_module`