Respostas:
As duas opções que eu uso são Drush e um script personalizado.
Para Drush, você pode usar 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
Também escrevi este script para o Drupal 6. Você precisa editar a auto-inicialização do Drupal 7 e também pode querer ajustar a verificação do caminho. Coloquei isso em um arquivo chamado modules.php no meu DOCROOT e adicionei restrição de acesso ao redor para impedir que ele fosse chamado do nada.
<?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";
Este script pode ser chamado com drush usando: drush scr modules.php
O módulo Módulos ativados (enabled_modules) fornece listas de todos os módulos ativados em um site.
Ou,
Você pode usar esta função da API module_list para obter todos os módulos ativados.
Sim, verifique o módulo Module Filter : é um excelente auxiliar de administrador que facilita o gerenciamento de módulos.
A página da lista de módulos pode se tornar bastante grande quando se lida com um site bastante grande ou mesmo apenas com um site de desenvolvimento destinado a testar novos e vários módulos sendo considerados. O que este módulo pretende realizar é a capacidade de encontrar rapidamente o módulo que você está procurando, sem ter que confiar no recurso de pesquisa de navegadores, que mais vezes mostra o nome do módulo nas seções 'Necessário por' ou 'Depende de' os vários módulos ou até algum outro local da página como um item de menu.
Quando as guias são ativadas na página de configurações do Filtro de módulo, um novo tema de layout do módulo é implementado. Esse layout de guia fornece uma guia para cada pacote, bem como uma guia que mostra todos os módulos em ordem alfabética. O campo de texto do filtro está disponível em cada guia, mas atualmente não suporta o preenchimento automático.
O Drush make possui um recurso de geração de makefile primitivo. Para usá-lo, basta alterar o diretório para a instalação do Drupal a partir da qual você deseja gerar o arquivo e execute o seguinte comando:
drush generate-makefile /path/to/make-file.make
Você obtém make-file.make com uma lista de módulos. Então você pode carregar esses módulos em outro projeto. Leia http://www.drush.org/en/master/make/#usage
Se você não tiver acesso à linha de comando para executar drush, pode estar procurando algo que possa fazer na interface da Web. A melhor solução que encontrei foi navegando até a página Módulos e executando este comando no console:
jQuery('table.sticky-enabled input[checked=checked]')
.closest('tr')
.find('td label strong')
.each(function() {
console.log(jQuery(this).text());
})
Isso imprimirá todos os módulos ativados no console, onde você pode copiar e colá-los em qualquer lugar que desejar.
A maneira mais simples que encontrei é uma consulta ao banco de dados que você pode colocar em um módulo personalizado ou em um script Drush para produzi-lo no formato desejado.
$enabled_modules = db_query("SELECT name FROM {system} WHERE type = 'module' AND status = 1");
print implode("\n", $enabled_modules);
Instale e ative o módulo Forena (divulgação sou co-mantenedor). Usuários com a função "administrador" poderão navegar para o relatório (amostra) entregue localizado emreports/drupaladmin.enabled_contributions
, que fornecerá a lista desta questão.
Aqui está a aparência da especificação ( .FRX
arquivo, um documento XHTML) para criar o relatório:
<?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>
E aqui está como o bloco de dados (instrução SQL) referido no relatório se parece com:
--ACCESS=access administration pages
SELECT name, owner, weight FROM {system}
WHERE status=1 AND 'module'=type
ORDER BY name
Isso é realmente "isso".
PS: fique à vontade para ajustar (adaptar) o .FRX
arquivo e / ou o bloco de dados para atender às suas próprias necessidades.
AND 'module'=type
?! Deverá serAND type = 'module'
Para aqueles sem drush: vá para a página de módulos, com o filtro de módulo ativado (não é absolutamente necessário, mas é bom para formatação).
Em seguida, mostre a página de origem, copie os módulos html dentro de "<" table> "para" <"/ table>. Cole no gedit, envolva algum html em torno dele (html, body) e você terá uma página html, incluindo a indicação de módulos não utilizados / desabilitados (mostrando a caixa de seleção desmarcada), que pode ser importante ao reconstruir um site (na medida em que os módulos desabilitados possam ser necessários ou possam ser instalados -> desinstalados para limpar o banco de dados)
O módulo Schema é uma opção, enquanto o Views também pode executar o truque, embora sem o módulo Views System adicional, que eu achei buggy, você não obtém os números da versão.
drush @sites pml --no-core --type=module --status="enabled" -y
e filtrando digamos some_module usando grep `| grep some_module`