Jawaban:
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
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.
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.
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
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.
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);
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 " ">
]>
<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.
AND 'module'=type?! SeharusnyaAND type = 'module'
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)
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.
drush @sites pml --no-core --type=module --status="enabled" -ydan memfilter pada say some_module menggunakan grep `| grep some_module`