Список усіх активних модулів, що використовуються на сайті


21

Чи існує спосіб наявності списку всіх використаних (активних) модулів на сайті?

Я перебуваю в процесі документування сайту і хотів би перерахувати всі активні модулі, я знаю, що можу взяти їх, admin/modulesале повинен бути інший шлях.

Відповіді:


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 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


7

Модуль Enabled Modules (enable_modules) надає списки всіх включених модулів на веб-сайті.

Або,

Ви можете використовувати цей API-функцію module_list, щоб отримати всі включені модулі.


4

Так, перевірте модуль фільтрів модулів: це чудовий помічник адміністратора, який значно спрощує управління модулями.

Сторінка списку модулів може стати досить великою, якщо мати справу з досить великим сайтом або навіть просто сайтом розробників, призначеним для тестування нових та різних модулів, що розглядаються. Що цей модуль має на меті досягти - це можливість швидко знайти потрібний модуль, не покладаючись на функцію пошуку в браузерах, яка більше разів не показує вам ім'я модуля в розділах "Потрібно" або "Залежно від" різні модулі або навіть якесь інше розташування на сторінці, наприклад, пункт меню.

Коли вкладки ввімкнено на сторінці налаштувань фільтра модуля, реалізується нова тема компонування модуля. Цей макет вкладки містить вкладку для кожного пакету, а також вкладку, яка відображатиме кожен модуль в алфавітному порядку. Текстове поле фільтра доступне на кожній вкладці, але наразі не підтримує автозаповнення.


2

Drush make має можливість примітивної генерації makefile. Для його використання просто змініть каталог на інсталяцію Drupal, з якої ви хочете генерувати файл, та запустіть таку команду:

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

Ви отримуєте make-file.make зі списком модулів. Потім ви можете завантажити ці модулі в інший проект. Читайте http://www.drush.org/en/master/make/#usage


2

Якщо у вас немає доступу до командного рядка, щоб запустити барабан, ви можете шукати щось, що можна зробити з веб-інтерфейсу. Найкращим рішенням, який я міг знайти, є перегляд сторінки Модулі, а потім виконання цієї команди в консолі:

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файл та / або блок даних відповідно до власних потреб.


AND 'module'=type?! Має бутиAND type = 'module'
ajmedway

@ajmedway ви, мабуть, праві, чому б не "запропонувати змінити"? Я був би радий схвалити це ...
Pierre.Vriens

Думаю, це не велика справа - пункт працює. Просто не є звичайним назви стовпця праворуч від виразу зі значенням зліва.
ajmedway

0

Для тих, хто не має друку: перейдіть на сторінку модулів з увімкненим фільтром модулів (не зовсім необхідним, але добре для форматування).

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


0

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


ОП потребує переліку включених модулів, а не їх версії схеми.
kiamlaluno
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.