Daftar semua modul aktif yang digunakan di situs

21

Apakah ada cara untuk memiliki daftar semua modul (aktif) yang digunakan di situs?

Saya sedang dalam proses mendokumentasikan suatu situs dan ingin mendaftar semua modul yang aktif, saya tahu saya dapat mengambilnya, admin/modulestetapi harus ada cara lain.

drcelus
sumber

Jawaban:

33

Anda dapat menggunakan drush pm-list --type=Module --status=enabledperintah untuk mendapatkan daftar semua modul yang diinstal.

Jika Anda ingin mengecualikan penggunaan modul inti drush pm-list --type=Module --no-core --status=enabled

Gokul NK
sumber
Seperti yang disebutkan pada posting terkait, Anda dapat mendaftar semuanya untuk lingkungan multi-situs dengan @sites dengan melakukan drush @sites pml --no-core --type=module --status="enabled" -ydan memfilter pada say some_module menggunakan grep `| grep some_module`
MediaVince
21

Dua opsi yang saya gunakan adalah Drush dan skrip khusus.

Untuk Drush, Anda dapat menggunakan 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

Saya juga menulis skrip ini untuk Drupal 6. Anda perlu mengedit bootstrap untuk Drupal 7, dan Anda mungkin juga ingin mengubah jalur memeriksa. Saya meletakkan ini dalam file yang disebut modules.php di DOCROOT saya dan menambahkan batasan akses di sekitarnya untuk mencegahnya dipanggil dari alam.

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

Script ini bisa disebut dengan drush menggunakan: drush scr modules.php

mpdonadio
sumber
7

The Diaktifkan Modul (enabled_modules) modul menyediakan daftar semua modul diaktifkan pada sebuah situs web.

Atau,

Anda dapat menggunakan fungsi API ini module_list untuk mendapatkan semua modul yang diaktifkan.

Anil Sagar
sumber
4

Ya, periksa modul Filter modul: Ini pembantu administrator yang luar biasa yang membuat mengelola modul jauh lebih mudah.

Halaman daftar modul bisa menjadi sangat besar ketika berhadapan dengan situs yang cukup besar atau bahkan hanya situs pengembang yang dimaksudkan untuk menguji modul baru dan beragam yang sedang dipertimbangkan. Apa yang ingin dicapai modul ini adalah kemampuan menemukan modul yang Anda cari dengan cepat tanpa harus bergantung pada fitur pencarian peramban yang lebih sering menampilkan nama modul di bagian 'Dibutuhkan oleh' atau 'Tergantung pada' pada berbagai modul atau bahkan beberapa lokasi lain di halaman seperti item menu.

Ketika tab diaktifkan melalui halaman pengaturan Filter Modul, tema tata letak modul baru diimplementasikan. Tata letak tab ini menyediakan tab untuk setiap paket serta tab yang akan menampilkan setiap modul secara alfabet. Bidang teks filter tersedia di setiap tab tetapi saat ini tidak mendukung pelengkapan otomatis.

Aram Boyajyan
sumber
2

Drush make memiliki kemampuan generasi makefile primitif. Untuk menggunakannya, cukup ubah direktori Anda ke instalasi Drupal dari mana Anda ingin menghasilkan file, dan jalankan perintah berikut:

drush menghasilkan-makefile /path/to/make-file.make

Anda mendapatkan make-file.make dengan daftar modul. Kemudian Anda dapat memuat modul-modul ini di proyek lain. Baca http://www.drush.org/en/master/make/#usage

Andrey Voskresenskiy
sumber
2

Jika Anda tidak memiliki akses commandline untuk menjalankan drush, Anda mungkin mencari sesuatu yang dapat Anda lakukan dari UI Web. Solusi terbaik yang bisa saya temukan adalah menjelajah ke halaman Modul dan kemudian menjalankan perintah ini di konsol:

jQuery('table.sticky-enabled input[checked=checked]')
  .closest('tr')
  .find('td label strong')
  .each(function() {
    console.log(jQuery(this).text());
})

Ini akan mencetak semua modul yang diaktifkan di konsol, tempat Anda dapat menyalinnya di mana saja yang Anda inginkan.

Anthony DiSanti
sumber
2

Cara paling sederhana yang saya temukan adalah permintaan basis data yang dapat Anda masukkan ke dalam modul khusus atau skrip Drush untuk menampilkannya dalam format yang Anda inginkan.

$enabled_modules = db_query("SELECT name FROM {system} WHERE type = 'module' AND status = 1"); print implode("\n", $enabled_modules);

Alex Finnarn
sumber
2

Instal dan aktifkan modul Forena (pengungkapan saya rekan pengelola). Pengguna dengan peran "administrator" kemudian akan dapat menavigasi ke laporan (sampel) yang dikirim di reports/drupaladmin.enabled_contributions, yang akan memberi Anda daftar pertanyaan ini.

Berikut adalah bagaimana spesifikasi ( .FRXfile, dokumen XHTML) untuk membuat laporan terlihat seperti:

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

Dan di sini adalah bagaimana blok data (pernyataan SQL) yang dimaksud dalam laporan terlihat seperti:

--ACCESS=access administration pages
SELECT name, owner, weight FROM {system}
WHERE status=1 AND 'module'=type
ORDER BY name

Itu benar-benar "itu".

PS: jangan ragu untuk mencari (menyesuaikan) .FRXfile dan / atau blok data agar sesuai dengan kebutuhan Anda.

Pierre
sumber
AND 'module'=type?! SeharusnyaAND type = 'module'
ajmedway
@ajmedway Anda mungkin benar, mengapa tidak "menyarankan edit"? Saya akan dengan senang hati menyetujuinya ...
Pierre.Vriens
Kurasa itu bukan masalah besar - klausa itu bekerja. Hanya saja tidak konvensional untuk memiliki nama kolom di sisi kanan ekspresi dengan nilai di sebelah kiri.
ajmedway
0

Untuk yang tanpa drush: buka halaman modul, dengan filter modul diaktifkan (tidak mutlak diperlukan, tetapi bagus untuk memformat).

Kemudian tunjukkan halaman sumber, salin modul html di dalam "<" table> "ke" <"/ table>. Tempel ke gedit, bungkus beberapa html di sekitarnya (html, badan), dan Anda akan memiliki halaman html, termasuk indikasi dari modul yang tidak digunakan / dinonaktifkan (menunjukkan kotak centang tidak dicentang) yang dapat menjadi penting ketika membangun kembali sebuah situs (sejauh mungkin modul yang dinonaktifkan diperlukan, atau dapat diinstal -> dihapus untuk kepentingan pembersihan basis data)

Steve
sumber
0

Modul skema adalah salah satu pilihan sementara Views dapat melakukan trik juga walaupun tanpa modul Sistem Views tambahan, yang saya temukan bermasalah, Anda tidak mendapatkan nomor versi.

Cymatic
sumber
OP membutuhkan daftar modul yang diaktifkan, bukan versi skema mereka.
kiamlaluno