Yanıtlar:
Kullandığım iki seçenek Drush ve özel bir komut dosyasıdır.
Drush için şunları kullanabilirsiniz 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
Ben de bu yazıyı Drupal 6 için yazdım. Drupal 7 için önyüklemeyi düzenlemelisiniz ve ayrıca yol denetimini ince ayar yapmak isteyebilirsiniz. Bunu DOCROOT'umda module.php adlı bir dosyaya koydum ve vahşi ortamdan çağrılmasını önlemek için etrafına erişim kısıtlaması ekledim.
<?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";
Bu komut dosyası kullanarak drush ile çağrılabilir: drush scr modules.php
Etkin Modüller (enabled_modules) modülü bir web sitesindeki tüm etkin modülleri listelerini içerir.
Veya,
Tüm etkin modülleri elde etmek için bu API işlevini module_list kullanabilirsiniz.
Evet, Modül Filtresi modülünü kontrol edin : Modülleri yönetmeyi kolaylaştıran mükemmel bir yönetici yardımcısıdır.
Modüller listesi sayfası oldukça büyük bir siteyle ya da yalnızca yeni ve çeşitli modülleri test etmek için tasarlanmış dev bir siteyle uğraşırken oldukça büyük olabilir. Bu modülün gerçekleştirmeyi amaçladığı, tarayıcıların arama özelliğine güvenmek zorunda kalmadan aradığınız modülü hızlı bir şekilde bulma yeteneğidir; çeşitli modüller veya hatta bir menü öğesi gibi sayfadaki başka bir yer.
Modül Filtresi ayarları sayfasında sekmeler etkinleştirildiğinde, yeni bir modül düzeni teması uygulanır. Bu sekme düzeni her paket için bir sekme ve her modülü alfabetik olarak gösterecek bir sekme sağlar. Filtre metin alanı her sekmede bulunur ancak şu anda otomatik tamamlamayı desteklememektedir.
Drush make, ilkel bir makefile oluşturma özelliğine sahiptir. Kullanmak için dizini, dosyayı oluşturmak istediğiniz Drupal kurulumuna getirin ve aşağıdaki komutu çalıştırın:
drush-makefile /path/to/make-file.make
Make-file.make'yi bir modül listesiyle alırsınız. O zaman bu modülleri başka bir projeye yükleyebilirsiniz. oku http://www.drush.org/en/master/make/#usage
Sarhoş çalıştırmak için komut satırı erişiminiz yoksa, Web Arayüzünden yapabileceğiniz bir şey arıyor olabilirsiniz. Bulabildiğim en iyi çözüm, Modüller sayfasına göz atmak ve ardından bu komutu konsolda çalıştırmaktı:
jQuery('table.sticky-enabled input[checked=checked]')
.closest('tr')
.find('td label strong')
.each(function() {
console.log(jQuery(this).text());
})
Bu, konsoldaki tüm etkin modülleri yazdırır; burada istediğiniz yere yapıştırabilirsiniz.
Bulduğum en basit yol, istediğiniz biçimde çıktısını almak için özel bir modüle veya Drush betiğine koyabileceğiniz bir veritabanı sorgusudur.
$enabled_modules = db_query("SELECT name FROM {system} WHERE type = 'module' AND status = 1");
print implode("\n", $enabled_modules);
Forena modülünü kurun ve etkinleştirin (ortak koruyucuyum ). "Yönetici" rolüne sahip kullanıcılar, reports/drupaladmin.enabled_contributions
size bu sorunun hakkında bir liste verecek şekilde teslim edilen (örnek) raporda gezinebileceklerdir .
.FRX
Rapor oluşturma şartnamesi ( dosya, bir XHTML belgesi) şöyle görünür:
<?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>
Ve işte raporda belirtilen veri bloğunun (SQL ifadesi) nasıl olduğu:
--ACCESS=access administration pages
SELECT name, owner, weight FROM {system}
WHERE status=1 AND 'module'=type
ORDER BY name
Bu gerçekten "o".
Not: .FRX
Kendi ihtiyacınıza göre dosyayı ve / veya veri bloğunu ayarlamaktan (uyarlamaktan) çekinmeyin .
AND 'module'=type
?! OlmalıAND type = 'module'
Sarhoş olmayanlar için: modül filtresi etkinken modüller sayfasına gidin (kesinlikle gerekli değil, formatlama için iyi).
Ardından kaynak sayfasını gösterin, "<" table> ">" <"/ table> içine html modüllerini kopyalayın. Gedit'e yapıştırın, etrafına bir miktar html sarın (html, body) ve göstergesini içeren bir html sayfası olacak Kullanılmayan / devre dışı bırakılmış modüller (onay kutusunun işaretlenmemiş olarak gösterilmesi), bir siteyi yeniden oluştururken önemli olabilir (devre dışı bırakılmış modüller gerekebildiği veya yüklenebileceği sürece -> veritabanını temizlemek için kaldırıldı)
Şema modülü bir seçenektir, ancak buggy bulduğum ek Görüntüleme Sistemi modülü olmadan sürüm numaralarını bulamazsınız.
drush @sites pml --no-core --type=module --status="enabled" -y
`grep kullanarak diyelim some_module üzerinde ve filtre | grep some_module`