Réponses:
Les deux options que j'utilise sont Drush et un script personnalisé.
Pour Drush, vous pouvez utiliser 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
J'ai également écrit ce script pour Drupal 6. Vous devez modifier le bootstrap pour Drupal 7, et vous pouvez également modifier la vérification du chemin. Je mets cela dans un fichier appelé modules.php dans mon DOCROOT et j'ajoute une restriction d'accès autour de lui pour l'empêcher d'être appelé de la nature.
<?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";
Ce script peut être appelé avec drush en utilisant: drush scr modules.php
Le module Modules activés (enabled_modules) fournit des listes de tous les modules activés sur un site Web.
Ou,
Vous pouvez utiliser cette fonction API liste_modules pour obtenir tous les modules activés.
Oui, vérifiez le module Module Filter : c'est un excellent assistant administrateur qui facilite la gestion des modules.
La page de liste des modules peut devenir assez grande lorsqu'il s'agit d'un site assez volumineux ou même d'un site de développement destiné à tester des modules nouveaux et variés. Ce que ce module vise à accomplir, c'est la capacité de trouver rapidement le module que vous recherchez sans avoir à compter sur la fonction de recherche des navigateurs qui vous montre plus souvent qu'autrement le nom du module dans les sections «Requis par» ou «Dépend de» de les différents modules ou même un autre emplacement sur la page comme un élément de menu.
Lorsque les onglets sont activés via la page des paramètres du filtre de module, un nouveau thème de disposition de module est implémenté. Cette disposition d'onglet fournit un onglet pour chaque package ainsi qu'un onglet qui affichera chaque module par ordre alphabétique. Le champ de texte du filtre est disponible sur chaque onglet mais ne prend actuellement pas en charge la saisie semi-automatique.
Drush make a une capacité de génération de makefile primitive. Pour l'utiliser, changez simplement votre répertoire en l'installation Drupal à partir de laquelle vous souhaitez générer le fichier et exécutez la commande suivante:
drush generate-makefile /path/to/make-file.make
Vous obtenez make-file.make avec une liste de modules. Ensuite, vous pouvez charger ces modules dans un autre projet. Lisez http://www.drush.org/en/master/make/#usage
Si vous ne disposez pas d'un accès en ligne de commande pour exécuter drush, vous recherchez peut-être quelque chose que vous pouvez faire à partir de l'interface utilisateur Web. La meilleure solution que j'ai pu trouver était de naviguer sur la page Modules puis d'exécuter cette commande dans la console:
jQuery('table.sticky-enabled input[checked=checked]')
.closest('tr')
.find('td label strong')
.each(function() {
console.log(jQuery(this).text());
})
Cela imprimera tous les modules activés dans la console, où vous pourrez les copier-coller où vous le souhaitez.
Le moyen le plus simple que j'ai trouvé est une requête de base de données que vous pouvez placer dans un module personnalisé ou un script Drush pour le produire dans le format que vous souhaitez.
$enabled_modules = db_query("SELECT name FROM {system} WHERE type = 'module' AND status = 1");
print implode("\n", $enabled_modules);
Installez et activez le module Forena (divulgation, je suis un co-responsable). Les utilisateurs avec le rôle "administrateur" pourront alors accéder au rapport livré (exemple) situé dans reports/drupaladmin.enabled_contributions
, qui vous donnera la liste de cette question.
Voici à quoi .FRX
ressemble la spécification ( fichier, un document XHTML) pour créer le rapport:
<?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>
Et voici à quoi ressemble le bloc de données (instruction SQL) mentionné dans le rapport:
--ACCESS=access administration pages
SELECT name, owner, weight FROM {system}
WHERE status=1 AND 'module'=type
ORDER BY name
C'est vraiment "ça".
PS: n'hésitez pas à régler (adapter) le .FRX
fichier et / ou le bloc de données pour l'adapter à vos propres besoins.
AND 'module'=type
?! Devrait êtreAND type = 'module'
Pour ceux sans drush: allez à la page des modules, avec le filtre de module activé (pas absolument nécessaire, mais bon pour le formatage).
Ensuite, affichez la page source, copiez les modules html à l'intérieur de "<" table> "vers" <"/ table>. Collez dans gedit, enveloppez du html autour de lui (html, body), et vous aurez une page html, y compris une indication de modules inutilisés / désactivés (affichant la case à cocher décochée) qui peuvent être importants lors de la reconstruction d'un site (dans la mesure où les modules désactivés peuvent être nécessaires ou peuvent être installés -> désinstallés pour le nettoyage de la base de données)
Le module de schéma est une option tandis que Views peut faire l'affaire aussi bien que sans le module supplémentaire de Views System, que j'ai trouvé bogué, vous n'obtenez pas les numéros de version.
drush @sites pml --no-core --type=module --status="enabled" -y
et filtrer sur say some_module using grep `| grep some_module`