Bir sitede kullanılan tüm aktif modüllerin listesi


21

Bir sitede kullanılan tüm (aktif) modüllerin bir listesine sahip olmanın bir yolu var mı?

Bir siteyi belgeleme sürecindeyim ve tüm aktif modülleri listelemek istiyorum, bunları alabileceğimi biliyorum admin/modulesama başka bir yol olmalı.

Yanıtlar:


33

drush pm-list --type=Module --status=enabledKurulu tüm modüllerin bir listesini almak için komutu kullanabilirsiniz .

Çekirdek modülleri hariç tutmak istiyorsanız drush pm-list --type=Module --no-core --status=enabled


Mentionned ilgili yayında sizinle bir çok site ortamı için hepsini listeleyebilir @sites yaparak drush @sites pml --no-core --type=module --status="enabled" -y`grep kullanarak diyelim some_module üzerinde ve filtre | grep some_module`
MediaVince

21

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


7

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.


4

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.


2

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


2

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.


2

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


2

Forena modülünü kurun ve etkinleştirin (ortak koruyucuyum ). "Yönetici" rolüne sahip kullanıcılar, reports/drupaladmin.enabled_contributionssize bu sorunun hakkında bir liste verecek şekilde teslim edilen (örnek) raporda gezinebileceklerdir .

.FRXRapor oluşturma şartnamesi ( dosya, bir XHTML belgesi) şöyle görünür:

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

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: .FRXKendi ihtiyacınıza göre dosyayı ve / veya veri bloğunu ayarlamaktan (uyarlamaktan) çekinmeyin .


AND 'module'=type?! OlmalıAND type = 'module'
ajmedway

@ ajmedway muhtemelen haklısınız, neden "bir düzenleme önerisi" değil?
Onaylamaktan

Sanırım önemli bir şey değil - fıkra işe yarıyor. Sütun adının ifadenin sağ tarafında soldaki değere sahip olması geleneksel değildir.
ajmedway

0

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


0

Ş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.


OP, şema sürümüne değil etkin modüllerin listesine ihtiyaç duyar.
kiamlaluno
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.