จะสร้างโมดูลเปล่าได้อย่างไร? [ปิด]


15

โมดูลที่ถูกต้องที่สุดพื้นฐานที่สุดที่สามารถสร้างใน Drupal คืออะไร?

มันจะมีประโยชน์หากมีพิมพ์เขียวง่ายๆสำหรับทุกคนที่เพิ่งเริ่มใช้ Drupal

คำตอบ:


26

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

Drupal 8

projectต้องอย่างน้อยมี

  1. ชื่อเครื่อง
  2. yamlไฟล์ข้อมูลการตั้งชื่อตามชื่อเครื่องในรูปแบบmodule-machine-name.info.ymlที่มีลักษณะดังต่อไปนี้:
    1. name: ชื่อที่อ่านได้อย่างมนุษย์ปุถุชน
    2. type:moduleชนิดที่กำหนดให้เป็น
    3. core:โมดูลหลักของ Drupal ที่สำคัญนั้นเข้ากันได้กับโมดูล8.xในกรณีนี้
  3. ไฟล์โมดูลว่างชื่อในแบบฟอร์ม module-machine-name.module

Drupal ค้นหาโมดูลในตำแหน่งที่ตั้งเหล่านี้ตามที่เห็นจากเว็บรูท:

  1. /modules/
  2. sites/[example.com]/modules
  3. sites/default/modules
  4. profiles/[install-profile]/modules

ในทางเทคนิค Drupal ยังมองหาโมดูลcore/modulesด้วย แต่ไม่ควรวางโมดูลไว้ที่นั่นดังนั้นจึงไม่ได้อยู่ในรายการด้านบน

ตัวอย่างโครงสร้างโมดูลสำหรับโมดูลที่มีชื่อเครื่องhelloworldจะเป็นดังนี้:

/modules/helloworld/helloworld.info.yml

/modules/helloworld/helloworld.module

ขอให้สังเกตว่าทั้งข้อมูลและไฟล์โมดูลนั้นมีชื่อเหมือนกับชื่อเครื่องซึ่งมีความสำคัญ

ไฟล์โมดูลอาจว่างเปล่า แต่ไฟล์ข้อมูลจะต้องมีค่าขั้นต่ำเพียงเล็กน้อยเพื่อให้ Drupal จดจำได้ว่าเป็นโมดูล สำหรับโมดูล helloworld ของเรานั่นอาจมีลักษณะ:

name: 'Hello world module to demonstrate module building'
core: 8.x
type: module

หากคุณทำตามคำแนะนำข้างต้นคุณควรจะสามารถรับโมดูลใหม่ที่แสดงอยู่ในเว็บไซต์ Drupal ของคุณแม้ว่าขั้นตอนนี้จะไม่ทำอะไรเลย

Drupal 7

อย่างน้อยโมดูลจะต้องมี

  1. ชื่อเครื่อง
  2. ชื่อที่อ่านได้อย่างมนุษย์ปุถุชน
  3. ไฟล์ข้อมูลตั้งชื่อตามชื่อเครื่อง
  4. ไฟล์โมดูลที่ว่างเปล่า

เพื่อให้สามารถโหลดได้โดย Drupal จะต้องกำหนดเวอร์ชันหลักที่สามารถใช้ร่วมกันได้

Drupal ค้นหาโมดูลในตำแหน่งที่ตั้งเหล่านี้เพิ่มเติม:

  1. sites/all/modules/
  2. sites/[example.com]/modules
  3. sites/default/modules
  4. profiles/[install-profile]/modules

ในทางเทคนิค Drupal ยังมองหาโมดูลmodulesด้วย แต่ไม่ควรวางโมดูลไว้ที่นั่นดังนั้นจึงไม่ได้อยู่ในรายการ

ตัวอย่างโครงสร้างโมดูลสำหรับโมดูลที่มีชื่อเครื่องhelloworldจะเป็นดังนี้:

sites/all/modules/helloworld/helloworld.info

sites/all/modules/helloworld/helloworld.module

ขอให้สังเกตว่าทั้งข้อมูลและไฟล์โมดูลนั้นมีชื่อเหมือนกับชื่อเครื่องซึ่งมีความสำคัญ

ไฟล์โมดูลอาจว่างเปล่า แต่ไฟล์ข้อมูลจะต้องมีชื่อที่อ่านได้โดยมนุษย์ของโมดูลและเวอร์ชันหลักของโมดูลนั้นเข้ากันได้กับ

สำหรับโมดูล helloworld ของเรานั่นอาจมีลักษณะ:

name = Hello world module to demonstrate module building
core = 7.x

หากคุณทำตามคำแนะนำข้างต้นคุณควรจะสามารถรับโมดูลใหม่ที่แสดงอยู่ในเว็บไซต์ Drupal ของคุณแม้ว่าขั้นตอนนี้จะไม่ทำอะไรเลย


และนอกจากนี้ยังมีsites/default/... คำพูดว่า ...
tenken

คุณพูดถูก :) ซึ่งทำให้ฉันนึกถึงฉันควรตรวจสอบการสั่งซื้อและตรวจสอบให้แน่ใจว่ามันถูกต้อง
Letharion

สำหรับ drupal 8 ตอนนี้คุณแค่ต้องการ module-machine-name.info.yml ไฟล์. โมดูลไม่จำเป็นต้องใช้อีกต่อไปเพื่อให้โมดูลที่เปิดใช้งาน ไม่ว่าจะเป็นประโยชน์อย่างมาก แต่เป็นไปได้ :)
Undersound

1
D8: .module และ. profile ไม่จำเป็นต้องใช้อีกต่อไป drupal.org/node/2217931
sobi3ch

1
Drupal 8: แล้วเรื่องอะไรdrupal generate:moduleล่ะ?
Screenack

8

สำหรับ Drupal 8 เนื่องจากคำถามพูดถึงพิมพ์เขียวฉันคิดว่าฉันพูดถึงโครงการDrupal Console

เมื่อติดตั้งแล้วสามารถสร้างรหัสโมดูล (และสิ่งอื่น ๆ เช่นนั่งร้านสำหรับเอนทิตีที่กำหนดเอง, ปลั๊กอิน, ฯลฯ )

drupal generate:moduleเพื่อสร้างโมดูลพื้นฐานจากบรรทัดคำสั่ง: หนึ่งจะได้รับแจ้งผ่านการรวบรวมข้อมูลพื้นฐานบางอย่างและทิ้งไว้กับไฟล์โมดูลในตอนท้าย:

การสร้างโมดูลคอนโซล Drupal

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