サイトで使用されているすべてのアクティブなモジュールのリスト


21

サイトで使用されているすべての(アクティブな)モジュールのリストを作成する方法はありますか?

私はサイトを文書化する過程にあり、すべてのアクティブなモジュールをリストしたいと思います。それらを取得することはできますが、admin/modules別の方法が必要です。

回答:


33

drush pm-list --type=Module --status=enabledコマンドを使用して、インストールされているすべてのモジュールのリストを取得できます。

コアモジュールを除外する場合は、 drush pm-list --type=Module --no-core --status=enabled


mentionnedとして、関連のポストにあなたが持つマルチサイト環境のためにそれらのすべてを一覧表示することがあり@sites行うことでdrush @sites pml --no-core --type=module --status="enabled" -yはgrepを使用して`言うのsome_module上とフィルタ| grep some_module`
MediaVince

21

私が使用する2つのオプションは、Drushとカスタムスクリプトです。

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用にこのスクリプトを作成しました。Drupal7のブートストラップを編集する必要があり、パスチェックを微調整することもできます。これをDOCROOTのmodules.phpというファイルに配置し、その周囲にアクセス制限を追加して、野生から呼び出されないようにします。

<?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で呼び出すことができます。 drush scr modules.php



4

はい、モジュールフィルターモジュールを確認してください。モジュールの管理をはるかに簡単にする優れた管理者ヘルパーです。

モジュールリストページは、かなり大きなサイトや、検討中の新しいモジュールやさまざまなモジュールをテストするための開発サイトだけを扱う場合、かなり大きくなる可能性があります。このモジュールが達成しようとしているのは、ブラウザの検索機能に依存せずに、探しているモジュールをすばやく見つける機能です。さまざまなモジュール、またはメニュー項目のようなページ上の他の場所。

モジュールフィルターの設定ページでタブを有効にすると、新しいモジュールレイアウトテーマが実装されます。このタブレイアウトは、各パッケージのタブと、すべてのモジュールをアルファベット順に表示するタブを提供します。フィルターテキストフィールドは各タブで使用できますが、現在はオートコンプリートをサポートしていません。


2

Drush makeには、基本的なメイクファイル生成機能があります。それを使用するには、ファイルを生成したいDrupalインストールにディレクトリを変更し、次のコマンドを実行します。

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

モジュールのリストを含むmake-file.makeを取得します。その後、これらのモジュールを他のプロジェクトにロードできます。http://www.drush.org/en/master/make/#usageを読む


2

drushを実行するためのコマンドラインアクセスがない場合は、Web UIからできることを探しているかもしれません。私が見つけた最良の解決策は、モジュールページを参照し、コンソールでこのコマンドを実行することでした。

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あなたはおそらく正しいでしょう、なぜ「編集を提案」しませんか?私はそれを承認させて
いただき

私が思うに大したことではない-句が機能します。式の右側に列名を置き、左側に値を置くのは慣例ではありません。
ajmedway

0

ブラシなしの場合:モジュールフィルターを有効にしてモジュールページに移動します(絶対に必要というわけではありませんが、書式設定に適しています)。

次に、ソースページを表示し、「<"table>"内のモジュールhtmlを "<" / table>にコピーします。geditに貼り付け、その周りにhtmlをラップします(html、body)。サイトを再構築するときに重要になる可能性のある未使用/無効化モジュール(チェックボックスはオフ)を表示します(無効化されたモジュールが必要な場合や、データベースのクリーンアップのためにインストール->アンインストール可能)


0

スキーマモジュールはオプションの1つですが、Viewsはトリックを行うこともできますが、追加のViews Systemモジュールがないとバグが見つかり、バージョン番号を取得できません。


OPには、スキーマバージョンではなく、有効なモジュールのリストが必要です。
キアムルノ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.