รายการของโมดูลที่ใช้งานทั้งหมดที่ใช้ในเว็บไซต์


21

มีวิธีที่จะมีรายการของโมดูลที่ใช้ (ใช้งาน) ทั้งหมดบนเว็บไซต์หรือไม่?

ฉันอยู่ในขั้นตอนการจัดทำเอกสารของเว็บไซต์และต้องการแสดงรายการโมดูลที่ใช้งานอยู่ทั้งหมดฉันรู้ว่าฉันสามารถพาพวกเขาไปได้admin/modulesแต่ต้องมีวิธีอื่น

คำตอบ:


33

คุณสามารถใช้drush pm-list --type=Module --status=enabledคำสั่งเพื่อรับรายการของโมดูลที่ติดตั้งทั้งหมด

หากคุณต้องการยกเว้นโมดูลหลักที่ใช้ drush pm-list --type=Module --no-core --status=enabled


ดังที่ได้กล่าวไว้ในโพสต์ที่เกี่ยวข้องคุณสามารถแสดงรายการทั้งหมดของพวกเขาสำหรับสภาพแวดล้อมแบบหลายไซต์ด้วย@sitesโดยทำdrush @sites pml --no-core --type=module --status="enabled" -yและกรองว่า some_module โดยใช้ grep `| grep some_module`
MediaVince

21

สองตัวเลือกที่ฉันใช้คือ Drush และสคริปต์ที่กำหนดเอง

สำหรับ Drush คุณสามารถใช้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

ฉันเขียนสคริปต์นี้สำหรับ Drupal 6 คุณต้องแก้ไข bootstrap สำหรับ Drupal 7 และคุณอาจต้องการปรับแต่งการตรวจสอบเส้นทาง ฉันใส่สิ่งนี้ลงในไฟล์ชื่อ modules.php ใน DOCROOT ของฉันและเพิ่มการ จำกัด การเข้าถึงโดยรอบเพื่อป้องกันไม่ให้ถูกเรียกจาก wild

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

สคริปต์นี้สามารถเรียกด้วย drush โดยใช้: drush scr modules.php



4

ใช่ตรวจสอบโมดูลตัวกรองโมดูล: เป็นผู้ช่วยผู้ดูแลระบบที่ยอดเยี่ยมซึ่งทำให้การจัดการโมดูลง่ายขึ้นมาก

หน้ารายการโมดูลอาจมีขนาดค่อนข้างใหญ่เมื่อจัดการกับไซต์ที่มีขนาดใหญ่พอสมควรหรือแม้แต่ไซต์ dev ที่มีไว้สำหรับการทดสอบโมดูลใหม่และโมดูลต่าง ๆ ที่กำลังพิจารณา สิ่งที่โมดูลนี้มีจุดมุ่งหมายเพื่อให้บรรลุคือความสามารถในการค้นหาโมดูลที่คุณกำลังมองหาได้อย่างรวดเร็วโดยไม่ต้องพึ่งพาคุณลักษณะการค้นหาของเบราว์เซอร์ซึ่งหลายครั้งกว่าจะไม่แสดงชื่อโมดูลในส่วน 'ต้องการโดย' หรือ ' โมดูลต่างๆหรือแม้กระทั่งตำแหน่งอื่น ๆ ในหน้าเหมือนรายการเมนู

เมื่อเปิดใช้งานแท็บผ่านหน้าการตั้งค่าของโมดูลตัวกรองโมดูลชุดรูปแบบโมดูลใหม่จะถูกนำไปใช้ เลย์เอาต์แท็บนี้จัดเตรียมแท็บสำหรับแต่ละแพ็คเกจรวมถึงแท็บที่จะแสดงโมดูลทุกตัวอักษร ฟิลด์ข้อความตัวกรองพร้อมใช้งานในแต่ละแท็บ แต่ขณะนี้ไม่สนับสนุนการเติมข้อความอัตโนมัติ


2

Drush make มีความสามารถในการสร้างไฟล์ดั้งเดิม หากต้องการใช้งานเพียงแค่เปลี่ยนไดเรกทอรีเป็นการติดตั้ง Drupal ที่คุณต้องการสร้างไฟล์และเรียกใช้คำสั่งต่อไปนี้:

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

คุณจะได้รับ make-file.make พร้อมรายการโมดูล จากนั้นคุณสามารถโหลดโมดูลเหล่านี้ในโครงการอื่น อ่านhttp://www.drush.org/en/master/make/#usage


2

หากคุณไม่มี commandline access เพื่อรัน drush คุณอาจกำลังมองหาบางสิ่งที่คุณสามารถทำได้จาก Web UI ทางออกที่ดีที่สุดที่ฉันหาได้คือไปที่หน้าโมดูลแล้วเรียกใช้คำสั่งนี้ในคอนโซล:

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

สิ่งนี้จะพิมพ์โมดูลที่เปิดใช้งานทั้งหมดในคอนโซลซึ่งคุณสามารถคัดลอกวางได้ทุกที่ที่คุณต้องการ


2

วิธีที่ง่ายที่สุดที่ฉันพบคือแบบสอบถามฐานข้อมูลที่คุณสามารถใส่ในโมดูลที่กำหนดเองหรือสคริปต์ Drush เพื่อแสดงผลในรูปแบบที่คุณต้องการ

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


2

ติดตั้งและเปิดใช้งานโมดูลForena (การเปิดเผยฉันเป็นผู้ดูแลร่วม) ผู้ใช้ที่มีบทบาท "ผู้ดูแลระบบ" จะสามารถนำทางไปยังรายงานที่จัดส่ง (ตัวอย่าง) ซึ่งตั้งอยู่ที่reports/drupaladmin.enabled_contributionsซึ่งจะให้รายการที่คำถามนี้เกี่ยวกับคุณ

นี่คือลักษณะข้อมูลจำเพาะ ( .FRXไฟล์, เอกสาร XHTML) ที่จะสร้างรายงาน:

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

และนี่คือลักษณะที่บล็อกข้อมูล (คำสั่ง SQL) ที่อ้างถึงในรายงานดูเหมือนว่า:

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

นั่นคือ "มัน" จริงๆ

PS: อย่าลังเลที่จะปรับ (ปรับ) .FRXไฟล์และ / หรือบล็อกข้อมูลให้เหมาะกับความต้องการของคุณ


AND 'module'=type?! ควรเป็นAND type = 'module'
ajmedway

@ajmedway คุณอาจพูดถูกทำไมไม่ "แนะนำให้แก้ไข"? ฉันยินดีที่จะอนุมัติ ...
Pierre.Vriens

ฉันคิดว่ามันไม่ใช่เรื่องใหญ่อะไร - ประโยคนี้ใช้ได้ผล ไม่ใช่เรื่องธรรมดาที่จะมีชื่อคอลัมน์ทางด้านขวามือของนิพจน์ด้วยค่าทางด้านซ้าย
ajmedway

0

สำหรับผู้ที่ไม่มี drush: ไปที่หน้าโมดูลโดยเปิดใช้งานตัวกรองโมดูล (ไม่จำเป็นอย่างยิ่ง แต่ก็ดีสำหรับการจัดรูปแบบ)

จากนั้นแสดงหน้าซอร์สให้คัดลอกโมดูล html ใน "<" table> "ถึง" <"/ table> วางลงใน gedit แล้วห่อ html ที่อยู่รอบ ๆ มัน (html, body) และคุณจะมีหน้า html รวมถึงตัวบ่งชี้ โมดูลที่ไม่ได้ใช้ / ถูกปิดใช้งาน (แสดงเครื่องหมายถูกที่กล่องกาเครื่องหมาย) ซึ่งอาจมีความสำคัญเมื่อสร้างไซต์ขึ้นใหม่ (ตราบเท่าที่อาจจำเป็นต้องใช้โมดูลที่ปิดใช้งานหรือสามารถติดตั้งได้ -> ถอนการติดตั้งเพื่อถอนการติดตั้งฐานข้อมูล


0

โมดูล Schema เป็นตัวเลือกหนึ่งในขณะที่ Views สามารถทำเคล็ดลับได้เช่นกันแม้ว่าจะไม่มีโมดูลระบบ Views เพิ่มเติมซึ่งฉันพบว่าเป็นบั๊กคุณก็ไม่ได้รับหมายเลขเวอร์ชัน


OP ต้องการรายชื่อของโมดูลที่เปิดใช้งานไม่ใช่เวอร์ชันของสคีมา
kiamlaluno
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.