Risposte:
Le due opzioni che utilizzo sono Drush e uno script personalizzato.
Per Drush, puoi usare 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
Ho anche scritto questo script per Drupal 6. Devi modificare il bootstrap per Drupal 7 e potresti anche voler modificare il controllo del percorso. L'ho inserito in un file chiamato modules.php nel mio DOCROOT e ho aggiunto una restrizione d'accesso per impedirgli di essere richiamato dalla natura.
<?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";
Questo script può essere chiamato con drush usando: drush scr modules.php
Il modulo Enabled Modules (enabled_modules) fornisce elenchi di tutti i moduli abilitati su un sito Web.
O,
È possibile utilizzare questa funzione API module_list per ottenere tutti i moduli abilitati.
Sì, controlla il modulo Modulo filtro : è un eccellente aiuto dell'amministratore che semplifica la gestione dei moduli.
La pagina dell'elenco dei moduli può diventare piuttosto grande quando si ha a che fare con un sito abbastanza grande o anche solo un sito di sviluppo pensato per testare moduli nuovi e vari considerati. Ciò che questo modulo mira a realizzare è la capacità di trovare rapidamente il modulo che stai cercando senza dover fare affidamento sulla funzione di ricerca del browser che più volte ti mostra il nome del modulo nelle sezioni 'Richiesto da' o 'Dipende da' di i vari moduli o anche qualche altra posizione sulla pagina come una voce di menu.
Quando le schede sono abilitate tramite la pagina delle impostazioni del Filtro modulo, viene implementato un nuovo tema di layout del modulo. Questo layout di scheda fornisce una scheda per ciascun pacchetto e una scheda che mostrerà ogni modulo in ordine alfabetico. Il campo di testo del filtro è disponibile su ogni scheda ma al momento non supporta il completamento automatico.
Drush make ha una capacità di generazione di makefile primitiva. Per usarlo, basta cambiare la directory nell'installazione di Drupal da cui si desidera generare il file ed eseguire il comando seguente:
drush generate-makefile /path/to/make-file.make
Ottieni make-file.make con un elenco di moduli. Quindi è possibile caricare questi moduli in altri progetti. Leggi http://www.drush.org/en/master/make/#usage
Se non si dispone dell'accesso alla riga di comando per eseguire drush, è possibile che si stia cercando qualcosa che è possibile fare dall'interfaccia utente Web. La migliore soluzione che ho trovato è stata la navigazione nella pagina Moduli e quindi l'esecuzione di questo comando nella console:
jQuery('table.sticky-enabled input[checked=checked]')
.closest('tr')
.find('td label strong')
.each(function() {
console.log(jQuery(this).text());
})
Questo stamperà tutti i moduli abilitati nella console, dove puoi copiarli incollandoli dove vuoi.
Il modo più semplice che ho trovato è una query di database che potresti inserire in un modulo personalizzato o in uno script Drush per emetterlo nel formato che desideri.
$enabled_modules = db_query("SELECT name FROM {system} WHERE type = 'module' AND status = 1");
print implode("\n", $enabled_modules);
Installa e abilita il modulo Forena (informativa che sono un co-manutentore). Gli utenti con ruolo di "amministratore" saranno quindi in grado di accedere al rapporto (campione) consegnato in reports/drupaladmin.enabled_contributions
cui si trova l'elenco che fornisce questa domanda.
Ecco come appare la specifica ( .FRX
file, un documento XHTML) per creare il rapporto:
<?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>
Ed ecco come appare il blocco dati (istruzione SQL) indicato nel report:
--ACCESS=access administration pages
SELECT name, owner, weight FROM {system}
WHERE status=1 AND 'module'=type
ORDER BY name
Questo è davvero "tutto".
PS: sentiti libero di ottimizzare (adattare) il .FRX
file e / o il blocco dati per adattarlo alle tue esigenze.
AND 'module'=type
?! Dovrebbe essereAND type = 'module'
Per quelli senza drush: vai alla pagina dei moduli, con il filtro del modulo abilitato (non assolutamente necessario, ma buono per la formattazione).
Quindi mostra la pagina di origine, copia i moduli html all'interno di "<" tabella> "in" <"/ tabella>. Incolla in gedit, avvolgici un po 'di html (html, body) e avrai una pagina html, inclusa l'indicazione di moduli inutilizzati / disabilitati (che mostra la casella di controllo deselezionata) che possono essere importanti durante la ricostruzione di un sito (nella misura in cui i moduli disabilitati potrebbero essere necessari o possono essere installati -> disinstallati per motivi di pulizia del database)
Il modulo Schema è un'opzione mentre Views può fare anche il trucco, anche se senza il modulo aggiuntivo Views System, che ho trovato buggy, non ottieni i numeri di versione.
drush @sites pml --no-core --type=module --status="enabled" -y
e filtrando su say some_module usando grep `| grep some_module`