Answers:
我使用的两个选项是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编写了此脚本。您需要编辑Drupal 7的引导程序,并且可能还需要调整路径检查。我将其放在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
是的,请检查“ 模块过滤器”模块:它是出色的管理员帮助程序,使模块管理更加轻松。
当处理一个相当大的站点或什至只是一个打算测试正在考虑的新模块和各种模块的开发站点时,模块列表页面可能会变得很大。该模块旨在实现的功能是能够快速找到您要查找的模块,而不必依赖浏览器搜索功能,该功能经常会在浏览器的“所需者”或“取决于”部分中显示模块名称。各种模块,甚至页面上的其他位置(如菜单项)。
通过“模块过滤器”的设置页面启用选项卡时,将实现新的模块布局主题。此选项卡布局为每个软件包提供一个选项卡,以及将按字母顺序显示每个模块的选项卡。过滤器文本字段在每个选项卡上均可用,但当前不支持自动完成。
Drush Make具有原始的Makefile生成功能。要使用它,只需将目录更改为您要从中生成文件的Drupal安装,然后运行以下命令:
drush generate-makefile /path/to/make-file.make
您将获得带有模块列表的make-file.make。然后,您可以将这些模块加载到其他项目中。阅读http://www.drush.org/en/master/make/#usage
安装并启用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'
Schema模块是一个选项,而Views也可以做到这一点,尽管没有附加的Views System模块(我发现它很麻烦),但是您没有获得版本号。
drush @sites pml --no-core --type=module --status="enabled" -y
并使用grep`| some_module进行过滤。grep some_module`