it-swarm.com.de

Liste aller aktiven Module, die auf einer Site verwendet werden

Gibt es eine Möglichkeit, eine Liste aller verwendeten (aktiven) Module auf einer Site zu haben?

Ich bin gerade dabei, eine Site zu dokumentieren und möchte alle aktiven Module auflisten. Ich weiß, dass ich sie aus admin/modules Übernehmen kann, aber es muss einen anderen Weg geben.

21
drcelus

Mit dem Befehl drush pm-list --type=Module --status=enabled Können Sie eine Liste aller installierten Module abrufen.

Wenn Sie die Kernmodule ausschließen möchten, verwenden Sie drush pm-list --type=Module --no-core --status=enabled

35
Gokul N K

Die beiden Optionen, die ich verwende, sind Drush und ein benutzerdefiniertes Skript.

Für Drush können Sie drush pm-list Verwenden:

$ 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 das bootstrap für Drupal 7) bearbeiten, und Sie können auch Ich möchte dies in eine Datei namens modules.php in meinem DOCROOT einfügen und eine Zugriffsbeschränkung hinzufügen, um zu verhindern, dass es aus der Wildnis 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 aufgerufen werden mit: drush scr modules.php

22
mpdonadio

Das Modul Enabled Modules (enabled_modules) enthält Listen aller aktivierten Module auf einer Website.

Oder,

Mit dieser API-Funktion module_list können Sie alle aktivierten Module abrufen.

7
Anil Sagar

Ja, überprüfen Sie das Modul Modulfilter : Es ist ein ausgezeichneter Administrator-Helfer, der die Verwaltung von Modulen erheblich vereinfacht.

Die Modullistenseite kann ziemlich groß werden, wenn es sich um eine ziemlich große Site oder auch nur um eine Dev-Site handelt, die zum Testen neuer und verschiedener in Betracht gezogener Module gedacht ist. Ziel dieses Moduls ist es, das gesuchte Modul schnell zu finden, ohne sich auf die Suchfunktion des Browsers verlassen zu müssen, 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 die Registerkarten über die Einstellungsseite des Modulfilters aktiviert sind, wird ein neues Modullayout-Thema implementiert. Dieses Registerkartenlayout enthält eine Registerkarte für jedes Paket sowie eine Registerkarte, auf der jedes Modul alphabetisch angezeigt wird. Das Filtertextfeld ist auf jeder Registerkarte verfügbar, unterstützt jedoch derzeit keine automatische Vervollständigung.

4
Aram Boyajyan

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

3
Alex Finnarn

Wenn Sie keinen Befehlszeilenzugriff haben, um drush auszuführen, suchen Sie möglicherweise nach etwas, das Sie über die Web-Benutzeroberfläche tun können. Die beste Lösung, die ich finden konnte, war, zur Seite "Module" zu navigieren und dann diesen 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.

2
Anthony DiSanti

Installieren und aktivieren Sie das Modul Forena (Offenlegung Ich bin Co-Betreuer). Benutzer mit der Rolle "Administrator" können dann zu dem gelieferten (Beispiel-) Bericht unter reports/drupaladmin.enabled_contributions Navigieren, der Ihnen die Liste mit dieser Frage gibt.

So sieht die Spezifikation (.FRX - Datei, ein XHTML-Dokument) zum Erstellen des Berichts aus:

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

Und so sieht der Datenblock (SQL-Anweisung) aus, auf den im Bericht verwiesen wird:

--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 Datei .FRX Und/oder den Datenblock an Ihre eigenen Bedürfnisse anpassen.

2
Pierre.Vriens

Drush make verfügt über eine primitive Makefile-Generierungsfunktion. Um es zu verwenden, ändern Sie einfach Ihr Verzeichnis in die Installation Drupal, 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

<?php
$files = system_rebuild_module_data();
$modules_list = [];

foreach ($files as $filename => $file) {
  // Hidden modules and Themes will be excluded.
  if (!empty($file->info['hidden']) || $file->type != 'module') {
    continue;
  }

  // Get module type.
  $type = 'Contrib';
  if ($file->info['package'] == 'Core') {
    $type = 'Core';
  }
  elseif (strpos($file->uri, "sites/all/modules/custom/") !== false) {
    $type = 'Custom';
  }

  // Check module installed or not.
  if ($file->status) {
    $modules_list[$type]['installed'][] = $file->name;  
  }
  else {
    $modules_list[$type]['disabled'][] = $file->name;
  }

}

foreach ($modules_list as $type => $module_info) {
  print $type . " Modules:\n\n";
  print "Enabled " . $type . " Modules: " . count($module_info['installed']) . "\n\n";
  print "Disabled " . $type . " Modules: " . count($module_info['disabled']) . "\n\n";
}

Der obige Code hilft dabei, die Module auf der Website Drupal 7) zu installieren.

1
Arunkumar K

Für diejenigen ohne Drush: Gehen Sie zur Modulseite mit aktiviertem Modulfilter (nicht unbedingt erforderlich, aber gut für die Formatierung).

Zeigen Sie dann die Quellseite an, kopieren Sie das HTML-Modul in "<" table> "nach" <"/ table>. Fügen Sie es in gedit ein, wickeln Sie etwas HTML darum (HTML, Body), und Sie erhalten eine HTML-Seite mit Angabe von Nicht verwendete/deaktivierte Module (Kontrollkästchen nicht aktiviert), die beim Neuerstellen einer Site wichtig sein können (sofern die deaktivierten Module möglicherweise benötigt werden oder installiert werden können -> deinstalliert werden, um die Datenbank zu bereinigen)

0
Steve

Das Schemamodul ist eine Option, während Ansichten auch den Trick ausführen können, obwohl Sie ohne das zusätzliche Ansichtssystemmodul, das ich als fehlerhaft empfunden habe, keine Versionsnummern erhalten.

0
Cymatical