Liste de tous les modules actifs utilisés dans un site

21

Existe-t-il un moyen d'avoir une liste de tous les modules utilisés (actifs) sur un site?

Je suis en train de documenter un site et j'aimerais lister tous les modules actifs, je sais que je peux les reprendre admin/modulesmais il doit y avoir une autre voie.

drcelus
la source

Réponses:

33

Vous pouvez utiliser la drush pm-list --type=Module --status=enabledcommande pour obtenir une liste de tous les modules installés.

Si vous souhaitez exclure les modules principaux, utilisez drush pm-list --type=Module --no-core --status=enabled

Gokul NK
la source
Comme mentionné dans un article connexe, vous pouvez tous les répertorier pour un environnement multi-sites avec @sites en faisant drush @sites pml --no-core --type=module --status="enabled" -yet filtrer sur say some_module using grep `| grep some_module`
MediaVince
21

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

mpdonadio
la source
7

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.

Anil Sagar
la source
4

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.

Aram Boyajyan
la source
2

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

Andrey Voskresenskiy
la source
2

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.

Anthony DiSanti
la source
2

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

Alex Finnarn
la source
2

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 .FRXressemble la spécification ( fichier, un document XHTML) pour créer le rapport:

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

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 .FRXfichier et / ou le bloc de données pour l'adapter à vos propres besoins.

Pierre.Vriens
la source
AND 'module'=type?! Devrait êtreAND type = 'module'
ajmedway
@ajmedway vous avez probablement raison, pourquoi ne pas "suggérer une modification"? Je serais heureux de l'approuver ...
Pierre.Vriens
Ce n'est pas un gros problème, je suppose - l'article fonctionne. Ce n'est tout simplement pas conventionnel d'avoir le nom de colonne sur le côté droit de l'expression avec la valeur sur la gauche.
ajmedway
0

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)

Steve
la source
0

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.

Cymatique
la source
L'OP a besoin de la liste des modules activés, pas de leur version de schéma.
kiamlaluno