"ไม่มีปัญหาที่สามารถแก้ไขได้โดยการแฮกแกนเท่านั้นแล้วจะทำอย่างไรดี"
เพื่อตอบคำถามนี้ใช่มีบางครั้งคุณต้องเอาชนะนั่นหมายความว่าคุณต้องแฮ็คคอร์ (หรือโมดูล contrib)
ในกรณีนี้ฉันเชื่อว่าคุณสามารถแฮ็คได้ตราบใดที่คุณใส่ความคิดเห็นจำนวนมากในโค้ดที่ถูกแฮ็กและทำเอกสารทุกอย่างที่คุณเปลี่ยนแปลง
ตัวอย่างเช่นสำหรับการเปลี่ยนแปลงแกนหรือ contrib ใด ๆ ฉันทำให้ฉันสร้างแพทช์ หากเป็นเรื่องทั่วไปและมีประโยชน์ต่อคนอื่น ๆ ฉันส่งไปที่ drupal.org ในปัญหาไม่เช่นนั้นจะเป็นของฉันเอง
จากนั้นฉันจะส่งไฟล์ปะแก้ไปที่การควบคุมเวอร์ชันของฉันพร้อมกับการเปลี่ยนรหัส
ซึ่งหมายความว่าฉันสามารถดูได้โดยค้นหาไฟล์ปะแก้หากมีบางสิ่งถูกแฮ็ก
นอกจากนั้นฉันยังเพิ่มรายการแฮ็คไปยังเอกสารสำหรับนักพัฒนาสำหรับเว็บไซต์ (คุณควรมีเอกสารสำหรับนักพัฒนาเพื่อประโยชน์ของผู้อื่นที่อาจทำงานบนไซต์และสำหรับตัวคุณเองเมื่อคุณลืมสิ่งต่าง ๆ อย่างหลีกเลี่ยงไม่ได้)
ในเอกสารแฮ็กนี้ฉันจะแสดงรายการแฮ็คแต่ละครั้งว่าแฮ็คทำอะไรและทำไมโมดูล / ไฟล์ที่ได้รับผลกระทบชื่อไฟล์แพตช์ที่มีรหัสแฮ็กและลิงก์ไปยังปัญหา drupal.org ที่เกี่ยวข้องหากมี ในกรณีของฉันมี)
จากนั้นคุณและผู้อื่นที่ทำงานบนไซต์ในอนาคตจะมีรายการแฮ็กเต็มรูปแบบและไม่ต้องกังวลกับการทำลายบางอย่างโดยไม่ตั้งใจด้วยการอัปเดต
จากนั้นสำหรับกระบวนการอัปเดตฉันจะตรวจสอบรายการแฮ็กของฉันและดูไฟล์แพทช์อย่างรวดเร็วในโมดูลทั้งหมดที่ฉันอัปเดต หากมีแฮ็คและมีปัญหา drupal.org ฉันจะตรวจสอบปัญหาเพื่อดูว่ามีเวอร์ชั่นล่าสุดที่มีแพตช์รวมอยู่หรือไม่ในกรณีที่ฉันระเบิดแฮ็คด้วยการอัปเดตและลบออกจากรายการแฮ็กของฉัน แน่นอนว่าโดยการดูที่ drupal.org จะส่งข้อความว่าสิ่งที่ได้กระทำนั้นเหมือนกับเวอร์ชั่นของแพทช์ที่คุณใช้หรืออย่างน้อยก็ใช้เหมือนกัน)
หากแพทช์ไม่ได้ทำสิ่งที่ฉันต้องทำคืออัปเดตโมดูลและนำไปใช้ใหม่ ในหลายกรณีแพตช์จะยังคงใช้งานได้อย่างสมบูรณ์และกระบวนการนั้นง่าย แต่บางครั้งคุณต้องทำการติดตั้งแพตช์ใหม่สำหรับเวอร์ชั่นใหม่จากนั้นคอมมิทแพ็ตช์เวอร์ชั่นใหม่ไปยังพื้นที่เก็บข้อมูลในพื้นที่ของคุณ ปัญหา drupal.org หากมี)
อีกสิ่งหนึ่งที่ฉันอยากทำถ้าฉันมีแพตช์หรือแพตช์ที่มีความสำคัญมากกว่าซึ่งมีปฏิสัมพันธ์กับแกนกลาง fucntionality ของโมดูล ซึ่งหมายความว่าทุกเวอร์ชันอยู่ระหว่างเวอร์ชันปัจจุบันของคุณและเวอร์ชันที่คุณกำลังอัปเดต) และตรวจสอบให้แน่ใจว่าไม่มีสิ่งใดในนั้นที่จะทำลายรหัสของคุณ หมายเหตุ: ผู้ดูแลโมดูลหลายคนเก่งในทุกวันนี้ด้วยการให้บันทึกย่อประจำรุ่นที่สมบูรณ์ แต่ยังมีอีกมากมายที่ทำบันทึกย่อประจำรุ่นขยะ ในกรณีนี้ในบางกรณีฉันอ่านข้อความที่ส่งมอบทั้งหมดตั้งแต่เวอร์ชันปัจจุบันของฉัน (ซึ่งโดยปกติจะเป็นเฉพาะในกรณีที่ฉันมีรหัสที่ซับซ้อนซึ่งมีการโต้ตอบอย่างลึกซึ้งกับโมดูลอื่น) บันทึก:
จากนั้นหลังจากอัปเดต (บนสำเนาการพัฒนาของเว็บไซต์) ให้ทดสอบอย่างละเอียด ในที่สุดคุณจะได้เรียนรู้สิ่งที่หมายถึงอย่างละเอียดหลังจากข้อบกพร่องไม่กี่ข้อผ่าน
จากนั้นเมื่อมีการทดสอบอย่างเพียงพอให้อัปเกรดไซต์สดหรืออัปเดตภายในเครื่องของคุณหรือกระบวนการปรับใช้ของคุณอาจเป็นอะไรก็ได้
เหตุผลที่ทุกคนบอกว่าไม่ทำแม้ว่ามันจะง่ายกว่า: เพราะคนส่วนใหญ่ไม่มีระบบเหมือนที่ฉันได้อธิบายไว้ดังนั้นเมื่อถึงเวลาที่ต้องทำการอัพเดทหรือเว็บไซต์ถูกส่งให้คนอื่นทำงาน ต่อไปมันจะกลายเป็นฝันร้ายและเวลา (บางครั้งมีจำนวนมหาศาล) ต้องใช้การแก้ไขข้อบกพร่องและติดตามแฮ็กลงมาและหาสาเหตุว่าทำไมถึงอยู่ที่นั่น ฯลฯ
หากคุณสืบทอดไซต์เช่นนี้คุณจะเข้าใจอย่างถ่องแท้ :)