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.

drcelus
fonte

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

Gokul NK
fonte
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

mpdonadio
fonte
7

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.

Anil Sagar
fonte
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.

Aram Boyajyan
fonte
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

Andrey Voskresenskiy
fonte
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.

Anthony DiSanti
fonte
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);

Alex Finnarn
fonte
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.

Pierre.Vriens
fonte
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)

Steve
fonte
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.

Cymatical
fonte
O OP precisa da lista dos módulos ativados, não da versão do esquema.
kiamlaluno