ฉันจะหลีกเลี่ยงการตรวจสอบการอัปเดตสำหรับโมดูลเฉพาะได้อย่างไร


35

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

ที่ถูกกล่าวว่าเมื่อแอปมอบให้กับลูกค้าจะสามารถเข้าถึง (ผู้ใช้ 1) เต็มระบบและดังนั้นจึงจะได้รับการเตือนเมื่อโมดูลเหล่านี้มีการปรับปรุงพร้อมใช้งาน และพวกเขาจะอัปเดตพวกเขาไม่ว่าฉันจะขอร้องพวกเขาไม่กี่ครั้งก็ตาม (โอ้ชีวิตง่ายแค่ไหนที่ปราศจากลูกค้า!)

มีวิธี (อาจใน.infoไฟล์โมดูล) เพื่อโน้มน้าวให้ผู้จัดการการปรับปรุงไม่ตรวจสอบการปรับปรุงสำหรับโมดูลเหล่านี้หรือไม่

แก้ไข

ฉันทราบถึงproject status urlกุญแจที่ใช้ได้สำหรับ.infoไฟล์ดังนั้นฉันเดาว่าฉันสามารถตั้งค่าให้เป็น URL ที่ไม่มีอยู่จริง แต่ฉันควรทำอย่างนี้ค่อนข้างสะอาดถ้าเป็นไปได้

คำตอบ:


31

hook_update_projects_alter()คุณจำเป็นต้องใช้

แก้ไขรายการโครงการก่อนดึงข้อมูลและเปรียบเทียบเวอร์ชัน

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


19

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

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


นี่คือ downvoted เพราะไม่ถูกต้องหรือเหตุผลอื่น ๆ ?
mpdonadio

นี่คือ IMO วิธีที่ดีที่สุดและง่ายที่สุด!
AyeshK

1
@MPD การใช้งานprojectด้วยตนเองไม่ได้รับการสนับสนุนในเอกสารซึ่งอาจเป็นสาเหตุของการลงคะแนน
Mołot

นี่เป็นวิธีเดียวที่ฉันสามารถหยุดตรวจสอบธีมที่กำหนดเองได้ แน่นอนว่าฉันต้องการจะทำในสิ่งที่ "ถูกต้อง" แต่วิธีนี้ใช้งานได้และนำรหัสของ npc กลับมาใช้ใหม่ แต่ด้วย THEMENAME_update_projects_alter
nedwardss

3
@nedwardss ที่ใช้MYMODULE_หรือTHEMENAME_ระบุตำแหน่งที่ควรวางโค้ดนี้เท่านั้น โดยการใช้รหัสนี้ในไฟล์ฟังก์ชั่นธีมแทนโมดูลที่กำหนดเองมันอาจถูกประมวลผลในขั้นตอนที่แตกต่างกันและอาจไม่ทำงานตามที่คาดไว้ ธีมควรรวมอยู่ใน$projectsตัวแปร
emc

14

เพียงแค่ให้ตัวอย่างรหัสเพื่อช่วยให้คำตอบที่เลือก:

function MYMODULE_update_projects_alter(&$projects){
    unset($projects['slug_of_the_module_you_want_to_disable']);
    //dsm($projects);  // view a list of projects
}

ป้อนชื่อโมดูลใน$projects[]ตัวแปรที่จะปิดการใช้งาน หากคุณไม่แน่ใจว่าตัวบุ้งคืออะไร (จะเป็นตัวพิมพ์เล็กและขีดล่าง) ให้ใช้การdsm()เรียกนั้นหรือprint_r()พิมพ์รายการโมดูล


1
One note - slugเป็นเพียงชื่อทางเทคนิคของโมดูลซึ่งเหมือนกับชื่อของ.infoไฟล์โมดูล ดังนั้นคุณไม่จำเป็นต้องถ่ายโอนอาเรย์โครงการเพียงแค่มองเข้าไปในโฟลเดอร์โมดูล ในกรณีส่วนใหญ่ชื่อจะเหมือนกันกับชื่อของโฟลเดอร์โมดูล
Nux

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

คำที่ใช้จาก Drupal ไม่ได้กระสุนแต่ชื่อเครื่อง กระสุนถูกนำมาใช้จากบางส่วนของ CMS เท่ากับURL ที่ยอมรับหรือเส้นทางนามแฝง ,
kiamlaluno

12

คุณสามารถทำได้สองวิธี

  • drush pm-updatecode --lock = module_to_ignore
  • ใช้โมดูล update_advanced อนุญาตให้คุณทำเครื่องหมายโมดูลที่คุณต้องการข้ามในหน้าการจัดการโมดูล

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


คำสั่ง drush เป็นสิ่งที่ฉันกำลังมองหาขอบคุณมาก!
Waqar Lim

drush help upcจะให้นี้สำหรับ--lockความช่วยเหลือ: --lock = <foo, บาร์> เพิ่มล็อคถาวรที่จะเอาโครงการที่ระบุจากการพิจารณาในระหว่างการปรับปรุง การล็อคอาจถูกลบด้วยพารามิเตอร์ --unlock หรือแทนที่โดยการตั้งชื่อโครงการเป็นพารามิเตอร์เพื่อ pm-update หรือ pm-updatecode การล็อคไม่มีผลต่อการดาวน์โหลด pm
Yzmir Ramirez

2

ฉันได้รับปัญหาเดียวกันกับการอัปเดตโมดูลฉันติดตั้งโมดูลปิดการใช้งานการปรับปรุงดูเหมือนว่าใช้งานได้ดี

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

ป้อนคำอธิบายรูปภาพที่นี่


0

โดยพื้นฐานแล้วคุณทำส้อมใช่ไหม? ดังนั้นคุณควร:

  1. เปลี่ยนชื่อเพื่อรวมเครื่องหมายแยกของคุณ
  2. ในไฟล์ข้อมูลให้ตั้งค่าproject status urlเป็นที่เก็บของโมดูลนั้น

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


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