web-dev-qa-db-fra.com

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

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 je voudrais lister tous les modules actifs, je sais que je peux les prendre depuis admin/modules mais il doit y avoir un autre moyen.

21
drcelus

Vous pouvez utiliser drush pm-list --type=Module --status=enabled commande 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

35
Gokul N K

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 for Drupal 7, et vous pouvez également Je veux modifier la vérification du chemin. Je l'ai mis 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é depuis 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

22
mpdonadio

Le module Enabled Modules (enabled_modules) fournit des listes de tous les modules activés sur un site Web.

Ou,

Vous pouvez utiliser cette fonction API module_list pour obtenir tous les modules activés.

7
Anil Sagar

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 divers envisagés. Ce que ce module vise à accomplir, c'est la capacité de trouver rapidement le module que vous recherchez sans avoir à vous fier à 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.

4
Aram Boyajyan

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

3
Alex Finnarn

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.

2
Anthony DiSanti

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 (exemple) livré situé dans reports/drupaladmin.enabled_contributions, qui vous donnera la liste de cette question.

Voici comment la spécification (.FRX fichier, un document XHTML) pour créer le rapport ressemble à:

<?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 .FRX fichier et/ou le bloc de données pour répondre à vos propres besoins.

2
Pierre.Vriens

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. Lire http://www.drush.org/en/master/make/#usage

2
<?php
$files = system_rebuild_module_data();
$modules_list = [];

foreach ($files as $filename => $file) {
  // Hidden modules and Themes will be excluded.
  if (!empty($file->info['hidden']) || $file->type != 'module') {
    continue;
  }

  // Get module type.
  $type = 'Contrib';
  if ($file->info['package'] == 'Core') {
    $type = 'Core';
  }
  elseif (strpos($file->uri, "sites/all/modules/custom/") !== false) {
    $type = 'Custom';
  }

  // Check module installed or not.
  if ($file->status) {
    $modules_list[$type]['installed'][] = $file->name;  
  }
  else {
    $modules_list[$type]['disabled'][] = $file->name;
  }

}

foreach ($modules_list as $type => $module_info) {
  print $type . " Modules:\n\n";
  print "Enabled " . $type . " Modules: " . count($module_info['installed']) . "\n\n";
  print "Disabled " . $type . " Modules: " . count($module_info['disabled']) . "\n\n";
}

Le code ci-dessus vous aidera à installer les modules sur le site Web Drupal 7.

1
Arunkumar K

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

0
Steve

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.

0
Cymatical