ฉันจะทำให้โมดูลใหม่เอี่ยมขึ้นอยู่กับรุ่นขั้นต่ำสุดของ Drupal 7 ที่ต้องใช้เพื่อให้ทำงานได้อย่างไร


10

ฉันกำลังพัฒนาโมดูลใหม่ (ไม่มีไซต์ใดที่ใช้) มันต้องมีเฉพาะรุ่น Drupal เป็นมันใช้hook_taxonomy_term_view()เบ็ดที่ถูกนำมาใช้ใน Drupal รุ่นหลัก 7.17

ฉันต้องการหลีกเลี่ยงการเปิดใช้งานโมดูลของฉันในเว็บไซต์ที่ใช้งานเช่น Drupal 7.16 หรือ Drupal core รุ่นก่อนหน้าใด ๆ Drupal เวอร์ชั่นที่สูงกว่า 7.17 ที่สูงกว่าน่าจะใช้ได้

คำถามของฉัน : ฉันจะทำให้โมดูลของฉันขึ้นอยู่กับ Drupal รุ่น 7.17 นั้นซึ่งเป็นขั้นต่ำสำหรับโมดูลของฉันได้อย่างไร

หมายเหตุ: ฉันไม่ต้องการ (ไม่ต้องกังวล) โซลูชันสำหรับไซต์ที่ติดตั้งโมดูลไว้แล้ว ดังนั้นจึงไม่จำเป็นที่จะต้องปิดการใช้งานในเวอร์ชั่น 7.17 Drupal ก่อน


คำถามถูกติดแท็กhooksเพราะเป็นเรื่องเกี่ยวกับตะขอฉันควรใช้ในรหัสของฉัน hooksไม่ได้หมายความว่าฉันกำลังมองหาตะขอที่ฉันสามารถใช้ได้ ฉันเปิดให้โซลูชันใด ๆ ที่อนุญาตให้ฉันหลีกเลี่ยงการติดตั้งโมดูลบนไซต์ที่ไม่ได้ใช้ Drupal 7.17 หรือสูงกว่า
kiamlaluno

คุณสามารถต้องการโมดูลอื่น ๆ ได้dependencies[] = mymodule (1.12)แต่ดูเหมือนว่านี่จะไม่ทำงานสำหรับคอร์
AyeshK

@ AyeshK เอ๊ะ! ตอนนี้อาจเป็นเรื่องที่น่าสนใจถ้าคุณสามารถชี้ให้ฉันไปที่โมดูลหลักของ Drupal ที่เปิดใช้งานอยู่เสมอ
kiamlaluno

ฉันลองด้วยdependencies[] = taxonomy (>7.17)และหมายเลขรุ่นอื่น ๆ ที่เป็นไปได้ แต่ไม่ทำงาน
AyeshK

คำตอบ:


11

เคล็ดลับที่เห็นได้ชัดคือการใช้โมดูลระบบเช่น:

dependencies[] = system (>=7.17)

4
นี่คือสิ่งที่ถูกต้อง ที่มา: dww และฉันเขียนตัวตรวจสอบการพึ่งพาเวอร์ชัน ฉัน blogged เกี่ยวกับเรื่องนี้ที่drupal4hu.com/node/274และตอนนี้เพิ่มไปยังหน้าคู่มือที่เกี่ยวข้องที่drupal.org/node/542202เช่นกัน

7

hook_requirements() มีอยู่สำหรับวัตถุประสงค์ประเภทนั้น

ตรวจสอบข้อกำหนดการติดตั้งและทำรายงานสถานะ

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

เอกสารประกอบค่อนข้างละเอียดสิ่งหนึ่งที่ควรค่าแก่การกล่าวถึงในที่นี้คือต้องขอ hook ในไฟล์. install ของโมดูล


นี่ไม่ใช่คำตอบที่ถูกต้องฉันไม่รู้ว่าทำไมมันถึงได้รับการอัปเดตอย่างหนัก

@chx ฉันจะใช้คำของคุณ แต่ในกรณีนี้คำอธิบายของฟังก์ชั่น"ตรวจสอบข้อกำหนดการติดตั้งและทำการรายงานสถานะ" มันค่อนข้างจะทำให้เข้าใจผิดใช่ไหม? เรากำลังพูดคุยกันโดยเฉพาะเกี่ยวกับการตรวจสอบข้อกำหนดของโมดูลเมื่อทำการติดตั้ง :)
Clive

1
@Chapabu ไม่เป็นไปตามเอกสาร :) มันพูดถึงโมดูลโดยเฉพาะและโดยทั่วไปบอกว่าใช้ hook นั้นเพื่อกลับมาREQUIREMENT_ERRORเพื่อให้แน่ใจว่าโมดูลจะไม่ได้รับการติดตั้งหากไม่ผ่านข้อกำหนด ฉันคิดว่าการตรวจสอบรุ่นของ Drupal เป็นกรณีการใช้งานที่ถูกต้อง (เอกสารไม่ได้กล่าวถึงไม่ได้ทำ) แต่ฉันคิดว่าฉันพลาดอะไรบางอย่างไป อาจเป็นแค่การปฏิบัติที่ไม่ดีหรือบางสิ่งบางอย่างที่ฉันไม่รู้
Clive

1
@Clive แปลก dunno ที่ฉันมีที่มาจาก then..maybe D8 ก็ควรจะเป็นเอกสารอัพเกรด ;-)
Chapabu

1
@chx คุณจะต้องแก้ตัวความไม่รู้ของฉันไม่เคยทำสิ่งนี้มาก่อน ... ปัญหาของ D8 นั้นผิดพลาดหรือไม่ ในความเห็นของคุณข้อความทั้งหมดจำเป็นต้องเปลี่ยนแปลงหรือไม่ก็แค่ต้องการทราบว่าไม่ใช้ตะขอนี้เพื่อตรวจสอบรุ่นโมดูล / หลักเฉพาะข้อกำหนดห้องสมุด ฯลฯ (พร้อมลิงค์ไปยังเอกสารที่คุณกล่าวถึง)? ขอบคุณ
Clive

2

คุณสามารถใช้hook_enabled

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

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