มีวิธีที่จะมีรายการของโมดูลที่ใช้ (ใช้งาน) ทั้งหมดบนเว็บไซต์หรือไม่?
ฉันอยู่ในขั้นตอนการจัดทำเอกสารของเว็บไซต์และต้องการแสดงรายการโมดูลที่ใช้งานอยู่ทั้งหมดฉันรู้ว่าฉันสามารถพาพวกเขาไปได้admin/modules
แต่ต้องมีวิธีอื่น
มีวิธีที่จะมีรายการของโมดูลที่ใช้ (ใช้งาน) ทั้งหมดบนเว็บไซต์หรือไม่?
ฉันอยู่ในขั้นตอนการจัดทำเอกสารของเว็บไซต์และต้องการแสดงรายการโมดูลที่ใช้งานอยู่ทั้งหมดฉันรู้ว่าฉันสามารถพาพวกเขาไปได้admin/modules
แต่ต้องมีวิธีอื่น
คำตอบ:
คุณสามารถใช้drush pm-list --type=Module --status=enabled
คำสั่งเพื่อรับรายการของโมดูลที่ติดตั้งทั้งหมด
หากคุณต้องการยกเว้นโมดูลหลักที่ใช้ drush pm-list --type=Module --no-core --status=enabled
สองตัวเลือกที่ฉันใช้คือ 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
เปิดใช้งานโมดูล (enabled_modules) โมดูลให้รายการของโมดูลที่เปิดใช้งานบนเว็บไซต์
หรือ,
คุณสามารถใช้ฟังก์ชัน API module_list นี้เพื่อรับโมดูลที่เปิดใช้งานทั้งหมด
ใช่ตรวจสอบโมดูลตัวกรองโมดูล: เป็นผู้ช่วยผู้ดูแลระบบที่ยอดเยี่ยมซึ่งทำให้การจัดการโมดูลง่ายขึ้นมาก
หน้ารายการโมดูลอาจมีขนาดค่อนข้างใหญ่เมื่อจัดการกับไซต์ที่มีขนาดใหญ่พอสมควรหรือแม้แต่ไซต์ dev ที่มีไว้สำหรับการทดสอบโมดูลใหม่และโมดูลต่าง ๆ ที่กำลังพิจารณา สิ่งที่โมดูลนี้มีจุดมุ่งหมายเพื่อให้บรรลุคือความสามารถในการค้นหาโมดูลที่คุณกำลังมองหาได้อย่างรวดเร็วโดยไม่ต้องพึ่งพาคุณลักษณะการค้นหาของเบราว์เซอร์ซึ่งหลายครั้งกว่าจะไม่แสดงชื่อโมดูลในส่วน 'ต้องการโดย' หรือ ' โมดูลต่างๆหรือแม้กระทั่งตำแหน่งอื่น ๆ ในหน้าเหมือนรายการเมนู
เมื่อเปิดใช้งานแท็บผ่านหน้าการตั้งค่าของโมดูลตัวกรองโมดูลชุดรูปแบบโมดูลใหม่จะถูกนำไปใช้ เลย์เอาต์แท็บนี้จัดเตรียมแท็บสำหรับแต่ละแพ็คเกจรวมถึงแท็บที่จะแสดงโมดูลทุกตัวอักษร ฟิลด์ข้อความตัวกรองพร้อมใช้งานในแต่ละแท็บ แต่ขณะนี้ไม่สนับสนุนการเติมข้อความอัตโนมัติ
Drush make มีความสามารถในการสร้างไฟล์ดั้งเดิม หากต้องการใช้งานเพียงแค่เปลี่ยนไดเรกทอรีเป็นการติดตั้ง Drupal ที่คุณต้องการสร้างไฟล์และเรียกใช้คำสั่งต่อไปนี้:
drush generate-makefile /path/to/make-file.make
คุณจะได้รับ make-file.make พร้อมรายการโมดูล จากนั้นคุณสามารถโหลดโมดูลเหล่านี้ในโครงการอื่น อ่านhttp://www.drush.org/en/master/make/#usage
หากคุณไม่มี 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());
})
สิ่งนี้จะพิมพ์โมดูลที่เปิดใช้งานทั้งหมดในคอนโซลซึ่งคุณสามารถคัดลอกวางได้ทุกที่ที่คุณต้องการ
วิธีที่ง่ายที่สุดที่ฉันพบคือแบบสอบถามฐานข้อมูลที่คุณสามารถใส่ในโมดูลที่กำหนดเองหรือสคริปต์ Drush เพื่อแสดงผลในรูปแบบที่คุณต้องการ
$enabled_modules = db_query("SELECT name FROM {system} WHERE type = 'module' AND status = 1");
print implode("\n", $enabled_modules);
ติดตั้งและเปิดใช้งานโมดูลForena (การเปิดเผยฉันเป็นผู้ดูแลร่วม) ผู้ใช้ที่มีบทบาท "ผู้ดูแลระบบ" จะสามารถนำทางไปยังรายงานที่จัดส่ง (ตัวอย่าง) ซึ่งตั้งอยู่ที่reports/drupaladmin.enabled_contributions
ซึ่งจะให้รายการที่คำถามนี้เกี่ยวกับคุณ
นี่คือลักษณะข้อมูลจำเพาะ ( .FRX
ไฟล์, เอกสาร XHTML) ที่จะสร้างรายงาน:
<?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>
และนี่คือลักษณะที่บล็อกข้อมูล (คำสั่ง 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'
สำหรับผู้ที่ไม่มี drush: ไปที่หน้าโมดูลโดยเปิดใช้งานตัวกรองโมดูล (ไม่จำเป็นอย่างยิ่ง แต่ก็ดีสำหรับการจัดรูปแบบ)
จากนั้นแสดงหน้าซอร์สให้คัดลอกโมดูล html ใน "<" table> "ถึง" <"/ table> วางลงใน gedit แล้วห่อ html ที่อยู่รอบ ๆ มัน (html, body) และคุณจะมีหน้า html รวมถึงตัวบ่งชี้ โมดูลที่ไม่ได้ใช้ / ถูกปิดใช้งาน (แสดงเครื่องหมายถูกที่กล่องกาเครื่องหมาย) ซึ่งอาจมีความสำคัญเมื่อสร้างไซต์ขึ้นใหม่ (ตราบเท่าที่อาจจำเป็นต้องใช้โมดูลที่ปิดใช้งานหรือสามารถติดตั้งได้ -> ถอนการติดตั้งเพื่อถอนการติดตั้งฐานข้อมูล
โมดูล Schema เป็นตัวเลือกหนึ่งในขณะที่ Views สามารถทำเคล็ดลับได้เช่นกันแม้ว่าจะไม่มีโมดูลระบบ Views เพิ่มเติมซึ่งฉันพบว่าเป็นบั๊กคุณก็ไม่ได้รับหมายเลขเวอร์ชัน
drush @sites pml --no-core --type=module --status="enabled" -y
และกรองว่า some_module โดยใช้ grep `| grep some_module`