回答:
私が使用する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
対応モジュール(enabled_modules)モジュールは、ウェブサイト上のすべての有効なモジュールのリストを提供します。
または、
このAPI関数module_listを使用して、有効なすべてのモジュールを取得できます。
はい、モジュールフィルターモジュールを確認してください。モジュールの管理をはるかに簡単にする優れた管理者ヘルパーです。
モジュールリストページは、かなり大きなサイトや、検討中の新しいモジュールやさまざまなモジュールをテストするための開発サイトだけを扱う場合、かなり大きくなる可能性があります。このモジュールが達成しようとしているのは、ブラウザの検索機能に依存せずに、探しているモジュールをすばやく見つける機能です。さまざまなモジュール、またはメニュー項目のようなページ上の他の場所。
モジュールフィルターの設定ページでタブを有効にすると、新しいモジュールレイアウトテーマが実装されます。このタブレイアウトは、各パッケージのタブと、すべてのモジュールをアルファベット順に表示するタブを提供します。フィルターテキストフィールドは各タブで使用できますが、現在はオートコンプリートをサポートしていません。
Drush makeには、基本的なメイクファイル生成機能があります。それを使用するには、ファイルを生成したいDrupalインストールにディレクトリを変更し、次のコマンドを実行します。
drush generate-makefile /path/to/make-file.make
モジュールのリストを含むmake-file.makeを取得します。その後、これらのモジュールを他のプロジェクトにロードできます。http://www.drush.org/en/master/make/#usageを読む
drushを実行するためのコマンドラインアクセスがない場合は、Web UIからできることを探しているかもしれません。私が見つけた最良の解決策は、モジュールページを参照し、コンソールでこのコマンドを実行することでした。
jQuery('table.sticky-enabled input[checked=checked]')
.closest('tr')
.find('td label strong')
.each(function() {
console.log(jQuery(this).text());
})
これにより、有効化されたすべてのモジュールがコンソールに印刷され、任意の場所にコピーして貼り付けることができます。
私が見つけた最も簡単な方法は、カスタムモジュールまたはDrushスクリプトに入れて、必要な形式で出力できるデータベースクエリです。
$enabled_modules = db_query("SELECT name FROM {system} WHERE type = 'module' AND status = 1");
print implode("\n", $enabled_modules);
Forenaモジュールをインストールして有効にします(開示は共同管理者です)。「管理者」ロールを持つユーザーは、にある配信済み(サンプル)レポートに移動できreports/drupaladmin.enabled_contributions
ます。このレポートは、この質問の対象リストを提供します。
.FRX
レポートを作成するための仕様(ファイル、XHTMLドキュメント)は次のようになります。
<?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>
そして、レポートで参照されるデータブロック(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'
drush @sites pml --no-core --type=module --status="enabled" -y
はgrepを使用して`言うのsome_module上とフィルタ| grep some_module`