ในฐานะนักพัฒนาส่วนขยายฉันยังคงสับสนว่าจะใช้ Bootstrap เวอร์ชันใดในส่วนขยายที่กำลังจะมาถึง
- ในการสนทนาหลายครั้งฉันพบว่า Joomla 3.x จะไม่ใช้ bootstrap-3.0
- ผู้ให้บริการแม่แบบส่วนใหญ่ใช้ bootstrap v3
- ส่วนขยายจำนวนมากยังใช้ bootstrap v3
จะเลือกอะไรดี?
ในฐานะนักพัฒนาส่วนขยายฉันยังคงสับสนว่าจะใช้ Bootstrap เวอร์ชันใดในส่วนขยายที่กำลังจะมาถึง
จะเลือกอะไรดี?
คำตอบ:
Joomla 3.x มาพร้อมกับไฟล์สำหรับ Bootstrap 2 และเนื่องจากความเข้ากันได้แบบย้อนหลังจึงไม่น่าจะมีการเปลี่ยนแปลงใน Joomla 3.x series
สิ่งสำคัญคือต้องรู้ว่า Bootstrap ประกอบด้วยสองส่วนหลัก:
CSS
Joomla มีไฟล์เหล่านั้นรวมทั้งเป็นไฟล์ LESS ต้นฉบับและไฟล์ CSS ที่คอมไพล์แล้ว Joomla เองไม่โหลดไฟล์ Bootstrap CSS ขึ้นอยู่กับเทมเพลตเพื่อตัดสินใจว่าต้องการใช้ไฟล์เหล่านั้นหรือส่งมาพร้อมกับไฟล์ CSS ของตัวเองหรือไม่
ในส่วนหลังเทมเพลตที่ใช้งานมักจะเป็น "Isis" ซึ่งใช้ไฟล์ Bootstrap 2 อย่างหนัก ดังนั้นจึงเหมาะสมที่จะใช้ประโยชน์จาก Bootstrap 2 ในส่วนเสริมแบ็กเอนด์ของคุณ โดยเฉพาะอย่างยิ่งเนื่องจากไม่มีเทมเพลตการดูแลระบบทางเลือกมากมาย
ส่วนหน้า แต่เป็นหัวข้อที่แตกต่างอย่างสิ้นเชิง คุณไม่มีเงื่อนงำว่าแม่แบบใดที่ผู้ใช้จะใช้และกรอบใดที่จะใช้ โดยส่วนตัวแล้วฉันใช้การใส่สไตล์ Bootstrap 2 ที่นี่ด้วยเหตุผลเดียวที่คอร์เอาท์พุตนั้นใช้เช่นกัน มีโอกาสสูงที่เทมเพลตจะสนับสนุนคลาสเหล่านั้น มิฉะนั้นจะมีการแทนที่สำหรับการส่งออก หากใช้การแทนที่สำหรับคอร์ส่วนขยายของคุณน่าจะต้องการการแทนที่ด้วยเช่นกัน
แน่นอนคุณสามารถเพิ่มการรองรับ Bootstrap 3 ได้เช่นกัน แต่นั่นหมายถึงการเพิ่มงานของคุณเป็นสองเท่า อย่างไรก็ตามฉันไม่เพียง แต่จะให้รูปแบบ Bootstrap 3 โดยไม่มีตัวเลือกให้โหลดรูปแบบ Bootstrap 2
JavaScript
Joomla มีวิธีโหลดโค้ด Bootstrap JavaScript เช่นคำแนะนำเครื่องมือหรือแท็บ รหัสนี้สามารถและควรใช้โดยส่วนขยาย เพียงตรวจสอบให้แน่ใจว่าได้โหลดพวกเขาในเลย์เอาต์ของคุณเพื่อให้เทมเพลตสามารถข้ามได้หากจำเป็น
ตามที่คุณได้ระบุไว้แล้ว Joomla 3.x จะไม่ใช้ Bootstrap 3.x ดังนั้นหากคุณตัดสินใจที่จะใช้ Bootstrap 3 ผู้ใช้จะโหลด Bootstrap 2 เวอร์ชันซึ่งอาจทำให้เกิดความขัดแย้งและจะลดลง ความเร็วในการโหลดหน้า
สิ่งที่คุณสามารถทำได้คือเขียนสคริปต์ขนาดเล็กเพื่อตรวจสอบ Bootstrap เวอร์ชันใดที่เปิดใช้งานเทมเพลตและใช้เวอร์ชันนั้นเพื่อกำหนดสไตล์ส่วนขยายของคุณ ฉันคิดว่า NoNumber หรือ Akeeba ให้ความสามารถในการเลือก bwteen ซึ่งเป็นรุ่น Bootstrap ที่คุณต้องการใช้ ฉันจำไม่ได้ว่าสิ่งไหน แต่อาจคุ้มค่าที่จะดูว่าพวกเขาทำได้อย่างไร
แต่แทนที่จะใช้ Bootstrap เพื่อกำหนดสไตล์ส่วนขยายของคุณทำไมไม่เลือกสไตล์ที่กำหนดเองเป็นตัวเลือกอื่น ไม่ใช่เทมเพลตทั้งหมดที่ใช้ Bootstrap
หวังว่านี่จะช่วยให้คุณมีความรู้ความเข้าใจเล็กน้อย
ในส่วนขยายคุณควรมองหาที่จะใช้ไวยากรณ์ Bootstrap 2 ในส่วนขยายของคุณโดยเฉพาะในส่วนหลัง นี่เป็นรุ่นที่ได้รับการสนับสนุนอย่างเป็นทางการจาก Joomla core ดังนั้นหมายความว่าคุณจะต้องจัดแต่งทรงผมตามที่คาดไว้เสมอและคุณไม่ต้องใช้ bootstrap กับเทมเพลตของคุณ ส่วนขยายที่มาพร้อมกับ Bootstrap 3 จะต้องรวมสิ่งนี้ไว้ (โปรดสังเกตคลาส Akeeba Strapper ขนาดใหญ่ที่มาพร้อมกับผลิตภัณฑ์ Akeeba เป็นต้น)
ผู้ให้บริการเทมเพลตที่ใช้ Bootstrap 3 จะอนุญาตให้ใช้ไวยากรณ์ของ bootstrap 2 โดยการแก้ไขไฟล์ที่น้อยกว่าเพื่อให้ bootstrap ทั้งสองเวอร์ชันคำนึงถึง ผู้ที่ไม่ควรคาดหวังว่าจะต้องใช้เทมเพลตแทนที่ แต่อย่างใด
จุดประสงค์ของการส่ง Joomla ด้วย Bootstrap 2 และไม่ย้ายไปที่ Bootstrap 3 คือมีเฟรมเวิร์ก CSS / JS แบบข้ามส่วนขยาย AB / c ในซีรีย์ Joomla ทั้งหมด
หากคุณจำเป็นต้องใช้ Bootstrap 3 ในความคิดของฉันคุณควรตั้งชื่อ Bootstrap 3 CSS ทั้งหมด (เช่น Community Builder V2) เช่นฟังก์ชันหลัก joomla เพื่อแก้ไขเมนูและโมดูลในส่วนหน้าเสียถ้าคุณใช้ BS3 สำหรับส่วนหน้า
อ้างจากฟอรัม Community Builder:
แต่ CB2.0 จะใช้ Bootstrap 2 หรือ 3 หรือไม่
Bootstrap 3
และ CB จะโหลดไลบรารี Bootstrap ที่สมบูรณ์อยู่เสมอหรือถ้าเป็นเพียงแค่โมดูลเข้าสู่ระบบในเว็บไซต์) เพราะ Bootstrap กำลังโหลดสิ่งที่ไม่จำเป็นขนาดใหญ่เช่นกัน
ไม่เราไม่ใช้ Twitter Bootstrap JS
เราใช้ CSS ของมันในเวลานี้เท่านั้น (เรามีปลั๊กอินอื่น ๆ ที่ดีกว่า jQuery ที่ให้การทำงานของ JS) นอกจากนี้เรายังโหลด Twitter Bootstrap ด้วยเนมสเปซดังนั้นจึงเป็นไปไม่ได้ที่มันจะขัดแย้งหรือดัดแปลงสไตล์ภายนอกเนมสเปซ ตอนนี้เราไม่โหลดตลอดเวลา เราโหลด template.css และ fontawesome.css ของเราตลอดเวลาเมื่อโหลดเทมเพลต CBs เท่านั้น หมายเหตุโมดูล CBs ไม่ใช้การกำหนดสไตล์ CB พวกเขาถูกออกแบบมาเพื่อให้ตรงกับ Joomla 1: 1 ดังนั้นโมดูลที่เหมาะสมกับเว็บไซต์ของคุณ
อีกวิธีหนึ่งคือใช้เฟรมเวิร์กเช่น Skeleton หรือ Foundation เพื่อหลีกเลี่ยงปัญหาดังกล่าว