Odpowiedzi:
Dwie opcje, których używam, to Drush i własny skrypt.
W przypadku Drush możesz użyć 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
Napisałem również ten skrypt dla Drupala 6. Musisz zmodyfikować bootstrap dla Drupala 7 i możesz również ulepszyć sprawdzanie ścieżki. Umieszczam to w pliku o nazwie module.php w moim DOCROOT i dodam ograniczenie dostępu wokół niego, aby zapobiec wywoływaniu go z natury.
<?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";
Ten skrypt można wywołać za pomocą drush, używając: drush scr modules.php
Moduł Enabled Modules (enabled_modules) udostępnia listy wszystkich włączonych modułów na stronie internetowej.
Lub,
Możesz użyć tej funkcji API lista_modułów, aby uzyskać wszystkie włączone moduły.
Tak, sprawdź moduł Filter Module : Jest to doskonały pomocnik administratora, który znacznie ułatwia zarządzanie modułami.
Strona z listą modułów może stać się dość duża, gdy mamy do czynienia z dość dużą witryną lub nawet tylko stroną deweloperską przeznaczoną do testowania nowych i różnych rozważanych modułów. Moduł ten ma na celu szybkie znalezienie modułu, którego szukasz, bez konieczności korzystania z funkcji wyszukiwania w przeglądarkach, która częściej niż nie pokazuje nazwę modułu w sekcjach „Wymagane przez” lub „Zależy od” różne moduły lub nawet inne miejsce na stronie, takie jak element menu.
Po włączeniu kart za pomocą strony ustawień filtru modułu wdrażany jest nowy motyw układu modułu. Ten układ zakładek zapewnia zakładkę dla każdego pakietu, a także zakładkę, która pokaże każdy moduł alfabetycznie. Pole tekstowe filtru jest dostępne na każdej karcie, ale obecnie nie obsługuje autouzupełniania.
Drush make ma pierwotną funkcję generowania makefile. Aby go użyć, po prostu zmień katalog na instalację Drupal, z której chcesz wygenerować plik, i uruchom następującą komendę:
drush generator-makefile /path/to/make-file.make
Otrzymasz make-file.make z listą modułów. Następnie możesz załadować te moduły w innym projekcie. Przeczytaj http://www.drush.org/en/master/make/#usage
Jeśli nie masz dostępu do wiersza poleceń, aby uruchomić drush, być może szukasz czegoś, co możesz zrobić z internetowego interfejsu użytkownika. Najlepszym rozwiązaniem, jakie mogłem znaleźć, było przejście do strony Moduły, a następnie uruchomienie tego polecenia w konsoli:
jQuery('table.sticky-enabled input[checked=checked]')
.closest('tr')
.find('td label strong')
.each(function() {
console.log(jQuery(this).text());
})
Spowoduje to wydrukowanie wszystkich włączonych modułów w konsoli, gdzie można je skopiować i wkleić w dowolnym miejscu.
Najprostszym sposobem, jaki znalazłem, jest zapytanie do bazy danych, które można umieścić w niestandardowym module lub skrypcie Drush, aby uzyskać wynik w żądanym formacie.
$enabled_modules = db_query("SELECT name FROM {system} WHERE type = 'module' AND status = 1");
print implode("\n", $enabled_modules);
Zainstaluj i włącz moduł Forena (ujawnienie, że jestem współobsługą ). Użytkownicy z rolą „administrator” będą mogli przejść do dostarczonego (przykładowego) raportu znajdującego się pod adresem reports/drupaladmin.enabled_contributions, który da ci listę, o którą chodzi.
Oto jak wygląda specyfikacja ( .FRXplik, dokument XHTML) do utworzenia raportu:
<?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>
A oto jak wygląda blok danych (instrukcja SQL), o którym mowa w raporcie:
--ACCESS=access administration pages
SELECT name, owner, weight FROM {system}
WHERE status=1 AND 'module'=type
ORDER BY name
To naprawdę „to”.
PS: możesz dostroić (dostosować) .FRXplik i / lub blok danych, aby dopasować go do własnych potrzeb.
AND 'module'=type?! Powinien byćAND type = 'module'
Dla osób bez drush: przejdź do strony modułów, z włączonym filtrem modułów (nie jest to absolutnie konieczne, ale dobre do formatowania).
Następnie pokaż stronę źródłową, skopiuj moduły HTML wewnątrz "<" table> "do" <"/ table>. Wklej do gedit, owiń wokół niego trochę html (html, body), a otrzymasz stronę html, w tym wskazanie nieużywane / wyłączone moduły (pokazujące pole wyboru niezaznaczone), które mogą być ważne podczas przebudowy strony (o ile mogą być potrzebne wyłączone moduły lub mogą zostać zainstalowane -> odinstalowane w celu wyczyszczenia bazy danych)
Moduł schematu jest jedną z opcji, podczas gdy Widoki mogą również załatwić sprawę, chociaż bez dodatkowego modułu Widoku Systemu, w którym znalazłem błąd, nie otrzymujesz numerów wersji.
drush @sites pml --no-core --type=module --status="enabled" -yi filtrując powiedz some_module za pomocą grep `| grep some_module`