Lista de todos os módulos ativos usados ​​em um site


21

Existe uma maneira de ter uma lista de todos os módulos usados ​​(ativos) em um site?

Estou no processo de documentação de um site e gostaria de listar todos os módulos ativos, sei que posso retirá-los, admin/modulesmas deve haver outra maneira.

Respostas:


33

Você pode usar o drush pm-list --type=Module --status=enabledcomando para obter uma lista de todos os módulos instalados.

Se você deseja excluir os módulos principais, use drush pm-list --type=Module --no-core --status=enabled


Como mencionado em um post relacionado, você pode listar todos eles para um ambiente de vários sites com @sites fazendo drush @sites pml --no-core --type=module --status="enabled" -ye filtrando digamos some_module usando grep `| grep some_module`
MediaVince

21

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



4

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.


2

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


2

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.


2

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


2

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 ( .FRXarquivo, um documento XHTML) para criar o relatório:

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

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 .FRXarquivo e / ou o bloco de dados para atender às suas próprias necessidades.


AND 'module'=type?! Deverá serAND type = 'module'
ajmedway

@ajmedway você provavelmente está certo, por que não "sugerir uma edição"? Eu ficaria feliz em aprová-lo ...
Pierre.Vriens

Acho que não é grande coisa - a cláusula funciona. Não é apenas convencional ter o nome da coluna no lado direito da expressão com o valor à esquerda.
ajmedway

0

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)


0

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.


O OP precisa da lista dos módulos ativados, não da versão do esquema.
kiamlaluno
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.