วิธีการที่เหมาะสมสำหรับการอัพเดตเทมเพลตคืออะไร?


12

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

มีวิธีการที่ดีกว่าสำหรับการจัดการการอัพเดตเทมเพลตที่กำจัดไซต์ออฟไลน์หรือไม่


คุณกำลังทำการเปลี่ยนแปลงประเภทใดในเทมเพลต เทมเพลตที่กำหนดเองเหล่านี้หรือจากผู้ให้บริการบุคคลที่สามหรือไม่
David Fritsch

@DavidFritsch แม่แบบที่เราทำงานด้วยนั้นเป็นแบบกำหนดเองสำหรับไซต์ของเรา การเปลี่ยนแปลงมักจะรวมถึงการแก้ไข JavaScript หรือ CSS เช่นการอัพเกรดเป็น Twitter Bootstrap หรือกรอบงานอื่น ๆ
Zachary Draper

ฉันใหม่กับ Joomla ดังนั้นบางทีฉันอาจจะพลาด แต่ก็ดูเหมือนว่าฉันจะข้ามขั้นตอนส่วนใหญ่ไปเมื่อทำการแก้ไขเทมเพลตของฉัน (เทมเพลตที่กำหนดเองทั้งหมดด้วย CSS / JS เป็นต้น) - ซึ่งฉันเชื่อว่าคุณกำลังทำอยู่ - แทนที่จะอัปเดตเทมเพลตของบุคคลที่สาม เมื่อแรกสร้างและติดตั้งใน Joomla ฉันไม่ "ใช้ Joomla" เลย ฉันแก้ไขไฟล์บนเซิร์ฟเวอร์การพัฒนาของฉันโดยตรง (รีเฟรชเบราว์เซอร์เพื่อตรวจสอบ) และกดไปที่ไซต์สดเมื่อเสร็จสิ้น ไม่มีการถอนการติดตั้งติดตั้งใหม่เปลี่ยนการตั้งค่าหรือหยุดทำงาน มันแย่ใช่ไหม? ฉันพลาดอะไรไป (นี่ควรเป็นคำถามอื่นหรือไม่!)
MrWhite

คำตอบ:


12

การอัพเกรดเทมเพลตนั้นง่ายพอ ๆ กับการใช้ตัวติดตั้ง Joomla เพื่ออัปโหลดและติดตั้งเทมเพลตรุ่นที่ปรับปรุงแล้ว

แม้ว่าจะใช้งานได้ไฟล์ templateDetails.xml จะต้องกำหนด 'เมธอด' เป็น 'อัปเกรด' แทนที่จะเป็น 'ติดตั้ง'

คุณสามารถตรวจสอบได้โดยการแตกไฟล์ติดตั้งเทมเพลตเปิดไฟล์ templateDetails.xml และตรวจสอบสิ่งต่อไปนี้ที่หรือรอบ ๆ บรรทัดที่ 3:

<extension version="2.5" type="template" method="upgrade" client="site">

หากmethod="install"เปลี่ยนให้method="upgrade"เป็นและบันทึกไฟล์ ซิปแพ็กเกจขึ้นและชี้ตัวติดตั้งแล้วคุณน่าจะไปได้ดี

หมายเหตุเกี่ยวกับการปรับแต่ง: กระบวนการนี้จะอัปโหลดเทมเพลตเต็มซึ่งอาจเขียนทับการปรับแต่งใด ๆ ที่คุณทำ ด้วยเหตุนี้จึงเป็นความคิดที่ดีที่จะเพิ่มการปรับแต่งใด ๆ และทั้งหมดที่คุณอาจต้องการทำกับไฟล์เดียวเพื่อการสำรองและเพิ่มใหม่ได้ง่าย ฉันชอบที่จะใช้ไฟล์ CSS ที่ฉันชื่อ 'custom.css' และโหลดไฟล์นี้เป็นครั้งสุดท้ายเพื่อให้การปรับแต่งของฉันแทนที่ค่าเริ่มต้น


การเพิ่ม method = "upgrade" เป็นสิ่งที่ฉันพลาด ขอบคุณ!
Zachary Draper

ยินดีที่ได้ช่วย. มีความสุข!
Zaridan

กระบวนการแตกต่างกันระหว่างรุ่น Joomla หรือไม่?
MrWhite

method = "upgrade" เหมือนกันกับทุกเวอร์ชั่นของ Joomla (ขออภัยฉันพลาดคำถามไป)
Zaridan

3

หากคุณไม่มีการเปลี่ยนแปลงที่กำหนดเองในแม่แบบ - เพียงแค่ติดตั้งใหม่มากกว่าหนึ่งในปัจจุบัน

หากคุณทำการเปลี่ยนแปลงที่กำหนดเองคุณจะต้องทำการเปลี่ยนแปลงซ้ำหรือรหัสเทมเพลตปัจจุบันของคุณและรหัสเทมเพลตใหม่


ฉันไม่แน่ใจว่าฉันค่อนข้างเข้าใจ ฉันไม่เชื่อว่าคุณสามารถติดตั้งเทมเพลตเวอร์ชันใหม่กว่าทับหน้าเก่าได้ Joomla! ส่งกลับ "คำเตือนการติดตั้งเทมเพลต: มีเทมเพลตที่ใช้ไดเรกทอรีที่มีชื่ออยู่แล้ว: ติดตั้งคุณกำลังพยายามติดตั้งเทมเพลตเดิมอีกครั้งหรือไม่?" จากนั้น "เกิดข้อผิดพลาดในการติดตั้งเทมเพลต"
Zachary Draper

5
หากคุณได้รับคำเตือนดังกล่าวเป็นไปได้มากที่สุดเนื่องจากไฟล์รายการไม่ได้กำหนดวิธีการที่เหมาะสม ตรวจสอบไฟล์ xml ของเทมเพลตสำหรับวิธีการที่กำหนดไว้และตั้งเป็น 'อัพเกรด' หากตั้งเป็น 'ติดตั้ง' ข้อมูลเพิ่มเติมเกี่ยวกับไฟล์ Manifest ที่นี่: docs.joomla.org/Manifest_files
Zaridan

1
@Zaridan ฉันคิดว่าคุณได้ตีประเด็นสำคัญ คุณควรเพิ่มนี่เป็นคำตอบและใส่รหัสที่เกี่ยวข้องบางส่วนเพื่อให้ใช้งานได้
David Fritsch

1

มีตัวเลือกการจัดเตรียมขั้นสูงบางอย่าง ฉันคิดว่าพื้นที่ไซต์มีบางสิ่งเช่นนี้ มีหลายวิธีในการแทนที่บางส่วนของไซต์โดยไม่แทนที่ตาราง db ทั้งหมดดังนั้นหากคุณมีเวลาและทรัพยากรในการค้นหาสิ่งนี้คุณสามารถทำได้ ... ใช้เวลาในการตั้งค่าที่ดี (และคุณมี เพื่อให้สมองของคุณอยู่รอบ ๆ มัน)

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

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