Respuestas:
Las dos opciones que uso son Drush y un script personalizado.
Para Drush, puedes 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
También escribí este script para Drupal 6. Necesitas editar el bootstrap para Drupal 7, y es posible que también quieras modificar la comprobación de ruta. Puse esto en un archivo llamado modules.php en mi DOCROOT y agrego restricciones de acceso a su alrededor para evitar que se llame desde la naturaleza.
<?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 se puede llamar con drush usando: drush scr modules.php
El módulo Enabled Modules (enabled_modules) proporciona listas de todos los módulos habilitados en un sitio web.
O,
Puede usar esta función API module_list para obtener todos los módulos habilitados.
Sí, verifique el módulo Módulo de filtro : es un excelente ayudante de administrador que facilita la administración de módulos.
La página de la lista de módulos puede llegar a ser bastante grande cuando se trata de un sitio bastante grande o incluso solo un sitio de desarrollo destinado a probar módulos nuevos y varios que se están considerando. Lo que este módulo pretende lograr es la capacidad de encontrar rápidamente el módulo que está buscando sin tener que depender de la función de búsqueda de navegadores que la mayoría de las veces le muestra el nombre del módulo en las secciones 'Requerido por' o 'Depende de' los diversos módulos o incluso alguna otra ubicación en la página como un elemento de menú.
Cuando las pestañas se habilitan a través de la página de configuración del Filtro de módulo, se implementa un nuevo tema de diseño de módulo. Este diseño de pestaña proporciona una pestaña para cada paquete, así como una pestaña que mostrará cada módulo alfabéticamente. El campo de texto del filtro está disponible en cada pestaña, pero actualmente no es compatible con el autocompletado.
Drush make tiene una capacidad primitiva de generación de archivos make. Para usarlo, simplemente cambie su directorio a la instalación de Drupal desde la que desea generar el archivo y ejecute el siguiente comando:
drush generate-makefile /path/to/make-file.make
Obtiene make-file.make con una lista de módulos. Luego puede cargar estos módulos en otro proyecto. Lea http://www.drush.org/en/master/make/#usage
Si no tiene acceso a la línea de comandos para ejecutar drush, es posible que esté buscando algo que pueda hacer desde la interfaz de usuario web. La mejor solución que pude encontrar fue navegar a la página de Módulos y luego ejecutar este comando en la consola:
jQuery('table.sticky-enabled input[checked=checked]')
.closest('tr')
.find('td label strong')
.each(function() {
console.log(jQuery(this).text());
})
Esto imprimirá todos los módulos habilitados en la consola, donde puede copiarlos y pegarlos en cualquier lugar que desee.
La forma más simple que he encontrado es una consulta de base de datos que podría poner en un módulo personalizado o script de Drush para generarlo en el formato que desee.
$enabled_modules = db_query("SELECT name FROM {system} WHERE type = 'module' AND status = 1");
print implode("\n", $enabled_modules);
Instale y habilite el módulo Forena (divulgación soy un co-mantenedor). Los usuarios con el rol de "administrador" podrán navegar hasta el informe entregado (muestra) ubicado en reports/drupaladmin.enabled_contributions
, que le dará la lista de la que trata esta pregunta.
Así es como se ve la especificación ( .FRX
archivo, documento XHTML) para crear el informe:
<?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>
Y así es como se ve el bloque de datos (instrucción SQL) mencionado en el informe:
--ACCESS=access administration pages
SELECT name, owner, weight FROM {system}
WHERE status=1 AND 'module'=type
ORDER BY name
Eso es realmente "eso".
PD: siéntase libre de ajustar (adaptar) el .FRX
archivo y / o el bloque de datos para satisfacer sus propias necesidades.
AND 'module'=type
?! Debería serAND type = 'module'
Para aquellos sin drush: vaya a la página de módulos, con el filtro de módulo habilitado (no es absolutamente necesario, pero es bueno para formatear).
Luego muestre la página de origen, copie los módulos html dentro de "<" table> "a" <"/ table>. Pegue en gedit, envuelva algunos html a su alrededor (html, body), y tendrá una página html, que incluye la indicación de módulos no utilizados / deshabilitados (mostrando la casilla de verificación desmarcada) que pueden ser importantes al reconstruir un sitio (en la medida en que los módulos deshabilitados pueden ser necesarios o pueden instalarse -> desinstalados para limpiar la base de datos)
El módulo de esquema es una opción, mientras que las vistas también pueden hacer el truco, aunque sin el módulo adicional del sistema de vistas, que encontré defectuoso, no obtienes números de versión.
drush @sites pml --no-core --type=module --status="enabled" -y
y filtrando en say some_module usando grep `| grep some_module`