Antworten:
Die beiden Optionen, die ich verwende, sind Drush und ein benutzerdefiniertes Skript.
Für Drush können Sie verwenden 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
Ich habe dieses Skript auch für Drupal 6 geschrieben. Sie müssen den Bootstrap für Drupal 7 bearbeiten und möchten möglicherweise auch die Pfadprüfung optimieren. Ich füge dies in eine Datei namens modules.php in meinem DOCROOT ein und füge eine Zugriffsbeschränkung hinzu, um zu verhindern, dass es aus dem Nichts aufgerufen wird.
<?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";
Dieses Skript kann mit drush folgendermaßen aufgerufen werden: drush scr modules.php
Das Modul Aktivierte Module (enabled_modules) enthält Listen aller aktivierten Module auf einer Website.
Oder,
Sie können diese API-Funktion module_list verwenden , um alle aktivierten Module abzurufen .
Ja, überprüfen Sie das Modul Filter : Es ist ein hervorragender Administrator-Helfer, der die Verwaltung von Modulen erheblich vereinfacht.
Die Seite mit der Modulliste kann sehr umfangreich werden, wenn es sich um eine relativ große Site oder auch nur um eine Entwickler-Site handelt, die zum Testen neuer und in Betracht gezogener Module gedacht ist. Ziel dieses Moduls ist es, das gesuchte Modul schnell zu finden, ohne auf die Suchfunktion des Browsers angewiesen zu sein, die Ihnen mehrmals den Modulnamen in den Abschnitten "Erforderlich von" oder "Abhängig von" von anzeigt die verschiedenen Module oder sogar eine andere Stelle auf der Seite wie ein Menüpunkt.
Wenn Registerkarten über die Einstellungsseite des Modulfilters aktiviert werden, wird ein neues Thema für das Modullayout implementiert. Dieses Registerkartenlayout enthält eine Registerkarte für jedes Paket sowie eine Registerkarte, auf der jedes Modul in alphabetischer Reihenfolge angezeigt wird. Das Filtertextfeld ist auf jeder Registerkarte verfügbar, unterstützt jedoch derzeit keine automatische Vervollständigung.
Drush Make hat eine primitive Makefile-Generierungsfunktion. Ändern Sie dazu einfach Ihr Verzeichnis in die Drupal-Installation, aus der Sie die Datei generieren möchten, und führen Sie den folgenden Befehl aus:
drush generate-makefile /path/to/make-file.make
Sie erhalten make-file.make mit einer Liste von Modulen. Dann können Sie diese Module in ein anderes Projekt laden. Lesen Sie http://www.drush.org/en/master/make/#usage
Wenn Sie keinen Befehlszeilenzugriff zum Ausführen von drush haben, suchen Sie möglicherweise nach einer Möglichkeit, die Sie über die Web-Benutzeroberfläche ausführen können. Die beste Lösung, die ich finden konnte, war, zur Seite "Module" zu navigieren und den folgenden Befehl in der Konsole auszuführen:
jQuery('table.sticky-enabled input[checked=checked]')
.closest('tr')
.find('td label strong')
.each(function() {
console.log(jQuery(this).text());
})
Dadurch werden alle aktivierten Module in der Konsole gedruckt, wo Sie sie kopieren und an einer beliebigen Stelle einfügen können.
Der einfachste Weg, den ich gefunden habe, ist eine Datenbankabfrage, die Sie in ein benutzerdefiniertes Modul oder Drush-Skript einfügen können, um sie in einem gewünschten Format auszugeben.
$enabled_modules = db_query("SELECT name FROM {system} WHERE type = 'module' AND status = 1");
print implode("\n", $enabled_modules);
Installieren und aktivieren Sie das Forena- Modul (Offenlegung, dass ich Mitbetreuer bin). Benutzer mit der Rolle "Administrator" können dann zu dem übermittelten (Beispiel-) Bericht unter navigieren, in dem reports/drupaladmin.enabled_contributions
die Liste angezeigt wird, um die es bei dieser Frage geht.
So sieht die Spezifikation ( .FRX
Datei, ein XHTML-Dokument) zum Erstellen des Berichts aus:
<?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>
Und so sieht der Datenblock (SQL-Anweisung) aus, auf den sich der Bericht bezieht:
--ACCESS=access administration pages
SELECT name, owner, weight FROM {system}
WHERE status=1 AND 'module'=type
ORDER BY name
Das ist wirklich "es".
PS: Sie können die .FRX
Datei und / oder den Datenblock jederzeit an Ihre Bedürfnisse anpassen .
AND 'module'=type
?! Sollte seinAND type = 'module'
Für diejenigen ohne Drush: Gehen Sie zur Modulseite mit aktiviertem Modulfilter (nicht unbedingt erforderlich, aber gut zum Formatieren).
Zeigen Sie dann die Quellseite an, kopieren Sie die HTML-Dateien in "<" table> "nach" <"/ table>. Fügen Sie sie in gedit ein, umschließen Sie sie mit HTML (body), und Sie erhalten eine HTML-Seite mit der Angabe von unbenutzte / deaktivierte Module (Kontrollkästchen nicht markiert), die beim Neuerstellen einer Site wichtig sein können (sofern die deaktivierten Module möglicherweise benötigt werden oder installiert werden können -> deinstalliert, um die Datenbank zu bereinigen)
Das Schema-Modul ist eine Option, während Views ebenfalls den Trick ausführen kann, obwohl Sie ohne das zusätzliche Views-System-Modul, das ich als fehlerhaft empfunden habe, keine Versionsnummern erhalten.
drush @sites pml --no-core --type=module --status="enabled" -y
und Filter auf etwa some_module mit grep `| grep some_module`