Tutorial - FLEXIcontent แม่ - Part2: ชนิดเขตข้อมูล
FLEXIcontent ช่วยให้คุณสามารถสร้างเขตข้อมูลที่กำหนดเองสำหรับชนิดของเนื้อหาที่แต่ละคนที่คุณต้องการใช้ นี้จะช่วยให้การบังคับให้ผู้ใช้ป้อนข้อมูลที่แตกต่างกันในพื้นที่ที่เฉพาะเจาะจงมากที่ฉันสามารถโพสต์ในภายหลังที่ฉันเห็นพอดี ฉันยังสามารถเปิดเขตข้อมูลเหล่านี้ลงไปในเงื่อนไขการค้นหาหรือกรอง ... ดังนั้นด้วยจินตนาการน้อยคุณได้อย่างรวดเร็วสามารถทำให้แม่แบบทั้งหมดที่คุณต้องการและอีกครั้งที่ประตูปิดเปิดที่เหลือ Joomla
ชนิดเขตข้อมูลที่มีอยู่: ช่องทำเครื่องหมายภาพที่ช่องทำเครื่องหมาย, วันที่, อีเมล, ไฟล์, ภาพ, ปุ่ม, วิทยุภาพปุ่มเลือกหลายข้อความที่เลือก, textarea และเว็บลิงค์ พอเพียงที่จะกล่าวว่ามันขาดเล็กน้อยเพื่อให้คุณมีความสุข
นอกจากฟิลด์ที่กำหนดเอง FLEXIcontent ยังช่วยให้คุณสามารถใช้คุณลักษณะเพิ่มเติมสำหรับเนื้อหาในแต่ละ:
การจัดการรุ่น -
- ระบบบูรณาการของการลงคะแนน
- Power เก็บรายการโปรด
- แจ้ง
- การจัดการของคำหลัก
- การกำหนดประเภทหลายเนื้อหาเดียว
คุณลักษณะทั้งหมดที่ปรากฏเป็นเขตของตนได้รับมอบหมายโดยอัตโนมัติไปยังชนิดเนื้อหาเมื่อสร้างขึ้นและด้านฐานข้อมูล (ชื่อ, คำอธิบาย, ผู้เขียน, วันที่สร้าง, วันที่แก้ไขสถานะของสิ่งพิมพ์)
ฉันจะยังคงสร้างแม่แบบของฉันโดยการกำหนดค่าเขตข้อมูลทั่วไปบางและการเพิ่มฟิลด์ที่กำหนดเอง ตัวอย่างนี้เป็นของคอนกรีตไม่มีอะไรแน่นอนเขาก็ตั้งใจที่จะแสดงให้เห็นถึงคุณสมบัติต่างๆ
ข้อมูลอย่างย่อของการกวดวิชา:
- ข้อมูลทั่วไป FLEXIcontent เขต
- เขตข้อมูลทั่วไป
- ฟิลด์ที่กำหนดเองและการใช้ปลั๊กอิน
- สร้างชนิดของเขตข้อมูลของคุณเอง
- เขตข้อมูลตำแหน่งในแม่แบบ
ข้อมูลทั่วไป FLEXIcontent เขต
FLEXIcontent ในคุณสามารถเชื่อมโยงกับเขตข้อมูลหนึ่งหรือมากกว่าหนึ่งชนิดของเนื้อหา แต่ละคนมีกำหนดขึ้นเองของตัวเลือกเขตข้อมูล ในความเป็นจริงชนิดเขตข้อมูล (textarea, ช่องทำเครื่องหมายรายการ ... ) ถูกสร้างขึ้นผ่านทางปลั๊กอินที่เฉพาะเจาะจงดังนั้นหากคุณต้องการไม่มีอะไรป้องกันให้คุณสามารถสร้างชนิดของเขตข้อมูลของคุณเอง
สำหรับแต่ละประเภทของฟิลด์มีตัวเลือกบางอย่างที่พบได้บ่อยคือ:
- ป้ายชื่อ: ชื่อที่จะปรากฏ (หรือไม่) ในด้านหน้าของเขตข้อมูลของคุณในแม่คือสิ่งที่ ระวังถ้าคุณต้องการเปลี่ยนป้ายชื่อของเขตข้อมูลรายละเอียดและต้องการที่จะแยกความแตกต่างไปตามประเภทของเนื้อหาที่เป็นที่นิยมในเวลานี้เพื่อเปลี่ยนค่านี้ได้โดยตรงในการตั้งค่าที่ตัวเลือกดังกล่าวมีไว้เพื่อจุดประสงค์นี้
- ชื่อ: ชื่อที่ใช้ในการระบุเขตข้อมูลของคุณเป็นสิ่งสำคัญที่จะใช้อักขระเพียง AZ, az และ 0-9 โดยไม่ต้องเว้นวรรคเพราะมันเป็นชื่อที่จะช่วยให้เราสามารถอ้างอิงเขตของเราในแม่แบบ โดยค่าเริ่มต้นเมื่อคุณสร้างเขตข้อมูลที่เรียกว่า FLEXIcontent "fieldxx" ฉันขอให้คุณมีการเปลี่ยนแปลงที่จะได้รับแบริ่งของคุณหลังจากนั้น
- ตอบเมื่อ: เปิดหรือไม่ด้าน บางเขต (ชื่อ, คำอธิบาย, สร้างที่สร้างขึ้นโดย, แก้ไขล่าสุดแก้ไขโดย) ไม่สามารถdépubliésเพราะพวกเขาเป็นสิ่งจำเป็นสำหรับเวอร์ชันที่เหมาะสม แต่มีเคล็ดลับถ้าคุณไม่ต้องการให้ปรากฏเมื่อมีการสร้างเนื้อหาใหม่ก็ไม่ได้ส่งผลกระทบต่อเขตข้อมูลไปยังประเภทเนื้อหาในคำถามและปัญหาของเราจะแก้ไขคือ
- ค้นหา: ระบุว่าเนื้อหาของเขตข้อมูลจะถูกจัดทำดัชนีสำหรับการค้นหาหรือไม่
- การค้นหาขั้นสูง: ฟังก์ชันนี้จะถูกใช้จากรุ่น 1.7 FLEXIcontent ซึ่งมีกำหนดสิ้นเดือนมีนาคม
- กรอง: ระบุว่าเขตข้อมูลจะแสดงเป็นตัวกรองในการแสดงผลโหมดหมวดหมู่เนื้อหา ถ้าคุณต้องการที่จะใช้คุณลักษณะนี้คุณเริ่มต้องตั้งค่าเป็นใช่ในเขตข้อมูลที่คุณจะกรอง ข้อควรระวัง! เฉพาะเขตข้อมูลที่มีค่าที่กำหนดไว้ล่วงหน้า (Checkbox ภาพ Checkbox, เลือก, เลือกหลายรูปวิทยุวิทยุ) สามารถใช้เป็นตัวกรอง แล้วอย่าลืมที่จะเปิดใช้งานตัวกรองภายในพารามิเตอร์ของประเภทและเลือกจากรายการเขตข้อมูลที่เหมาะสม
- ระดับการเข้าถึงระดับของการเข้าถึงข้อมูลในระดับพื้นฐานที่เกี่ยวข้องกับ Joomla ACL
- สั่งซื้อ: กำหนดลำดับการแสดงของเขตข้อมูลเมื่อเข้าสู่เนื้อหา
- คำอธิบาย: ระบุคำแนะนำที่ใช้สำหรับการป้อนข้อมูล ในลักษณะเดียวกับที่สำหรับป้ายชื่อถ้าคุณต้องการที่จะเรียนรู้คำอธิบายที่แตกต่างกันสำหรับ "คำอธิบาย" ฟิลด์คุณจะได้เรียนรู้ในพารามิเตอร์ชนิด
- ประเภท: เลือกประเภทที่นี่คุณต้องการเกี่ยวข้องกับเขตข้อมูลของคุณ (กด Ctrl เพื่อเลือกหลายประเภท)
- ให้แสดงฉลาก: อนุญาตให้คุณใส่พารามิเตอร์ที่สามารถใช้ในแม่แบบที่กำหนดหรือไม่จะแสดงป้ายชื่อเขตข้อมูล
- คำนำหน้าและคำต่อท้าย: เพิ่มเติมที่มีจำหน่ายในเขตข้อมูลส่วนใหญ่ (แต่ไม่ทั้งหมด) ทั้งสองพารามิเตอร์ช่วยให้คุณสามารถเพิ่มมูลค่าก่อนและหลังเนื้อหาของเขตข้อมูลของคุณ คุณสามารถเพิ่มตัวอย่างเช่นคำต่อท้ายสัญลักษณ์€ถ้าคุณต้องการแสดงเขตข้อมูลสกุลเงิน พวกเขาสามารถใช้ด้วยเพื่อเพิ่มรหัส html หรือแม้กระทั่งการใช้พวกเขาที่จะใช้ปลั๊กอิน (เห็นส่วนสุดท้ายของการกวดวิชานี้)
- ปลั๊กอินเฉพาะ: รายการนี้จะแสดงเนื้อหาทั้งหมดปลั๊กอินที่ติดตั้งในเว็บไซต์ของคุณ Joomla คุณสามารถเลือกปลั๊กอินที่ระบุในรายการหรือเว้นว่างไว้เพื่อให้เนื้อหาเข้ากันได้กับปลั๊กอินใด ๆ คุณลักษณะนี้จะเป็นประโยชน์ในบางกรณีเพื่อหลีกเลี่ยงความขัดแย้งหรือแสดงหลายลดภาระ โปรดจำไว้ว่าเมื่อปลั๊กอินที่ใช้อยู่บนสนามโดยอัตโนมัติจะทำงานในเขตข้อมูลทั้งหมดในวง
เขตข้อมูลทั่วไป
บางเขตมีการกำหนดโดยอัตโนมัติเมื่อมีการสร้างรูปแบบใหม่เหล่านี้ชนิดของเขตข้อมูลที่มี FLEXIcontent
บางที่เกี่ยวข้องโดยตรงกับแกน Joomla:
- Title: ชื่อเรื่องของเนื้อหาของคุณ
- รายละเอียด: เป็นเนื้อหาของบทความของคุณใน Joomla อะไร ถ้าคุณต้องการที่จะทำให้เข้ากันได้กับ Joomla ปลั๊กอินเนื้อหาจะไม่ใช้เวลาที่คุณลืมที่จะตรวจสอบในการตั้งค่าของกล่องนี้ตัวเลือก "Execute ปลั๊กอินเนื้อหา"
- * ที่สร้าง: วันที่เนื้อหา
- สร้างโดย: ผู้เขียนเนื้อหา
- * แก้ไขครั้งสุดท้าย: วันที่แก้ไขครั้งล่าสุดของเนื้อหา
- แก้ไขเพิ่มเติมโดย: ชื่อของผู้ใช้ที่แก้ไขล่าสุดเนื้อหา
- Hits: จำนวนครั้งที่เนื้อหาได้รับการโพสต์ (โดยปกติแล้วมันมีคำต่อท้ายของข้อมูล: "มุมมอง")
- ประเภทของเอกสาร: ประเภทของเนื้อหา
- เวอร์ชัน: version ของเนื้อหา
- State: รัฐของการเผยแพร่เนื้อหา
* สำหรับฟิลด์วันที่มันเป็นไปได้ที่จะเปลี่ยนรูปแบบการแสดงผลในการตั้งค่าของเขตข้อมูลที่ผ่านรายการของค่าที่กำหนดไว้ล่วงหน้าหรือสร้างรูปแบบการแสดงที่กำหนดเองโดยใช้การตั้งค่าของ PHP strftime ( HTTP :/ / php.net / คู่มือ / en / function.strftime.php )
สาขาอื่น ๆ ที่สอดคล้องกับคุณลักษณะเฉพาะของ FLEXIcontent:
- การออกเสียงลงคะแนน:
ฟังก์ชั่นการประเมินตั้งแต่เดือนมกราคมถึงพฤษภาคมเนื้อหา การลงคะแนนเสียงคือสัญลักษณ์ของภาพ 25 × 75 (com_flexicontent สินทรัพย์ / / images / star.gif) แบ่งออกเป็นสามภาพย่อยที่เป็นตัวแทนของหุ้น-: ไม่มีการเลือก, เลือกและโฉบ คุณสามารถสร้างภาพของคุณเองแล้วเปลี่ยนเส้นทางในเขตการตั้งค่าไปยังจุดเส้นทางไปยังแฟ้มของคุณ ดังนั้นผมจึงตระหนักถึงภาพเล็ก ๆ น้อย ๆ ของฉันกับลูกโป่งก็สนุกมากขึ้นในการประเมินขั้นตอน นอกจากนี้คุณยังสามารถเปลี่ยนขนาดการแสดงผลของค่าเริ่มต้นของภาพถึง 16 พิกเซล - ความนิยมชมชอบ:
ช่วยให้ผู้ใช้ลงทะเบียนในการจัดอันดับหน้านี้ในรายการโปรดของเขา - หมวดหมู่: ร้านค้าประเภทที่เนื้อหาจะถูกจัดอยู่ในกลุ่ม ตัวเลือกเพื่อเลือกตัวคั่นที่จะแสดงภายหลังในส่วนหน้า (แถบแนวตั้งตัวแบ่งบรรทัด, จุลภาค, เว้นวรรค)
- Tags: แท็กร้านซึ่งในเนื้อหาจะถูกจัดอยู่ในกลุ่ม ตัวเลือกเพื่อเลือกตัวคั่นที่จะแสดงภายหลังในส่วนหน้า (แถบแนวตั้งตัวแบ่งบรรทัด, จุลภาค, เว้นวรรค)
เขตข้อมูลแบบกำหนดเอง
ที่ผมกล่าวไว้ก่อนหน้านี้ FLEXIcontent ให้เราเป็นไปได้มากที่จะปรับแต่งรายการแสดงเนื้อหาของพวกเขา แต่ยังผ่านช่องที่กำหนดเอง ฉันจะตอนนี้ได้กลับมาทำงานในขณะที่ตัวอย่างของฉันในการสร้างแม่แบบที่จะนำเสนอขั้นตอนของฟุตบอลฝรั่งเศสคุณมีชนิดของฟิลด์ที่กำหนดเอง ฉันจะไม่ใช้เขตข้อมูลสำหรับการตั้งค่าของพารามิเตอร์ที่มีให้กัน แต่ผ่านการกวดวิชาทั่วฉันจะครอบคลุมคุณสมบัติทั้งหมดที่มี
จำเอาไว้สำหรับแต่ละเขตข้อมูลเพื่อเลือกชนิดได้รับผลกระทบในประเภทของเรา "สนามกีฬา"
- ข้อความ:
ฉันจะเริ่มต้นด้วยการเพิ่มเขตข้อมูลแบบกำหนดเองครั้งแรกของฉันฉันต้องการแสดงที่อยู่ของสนามกีฬา แต่นั่นไม่ใช่ทั้งหมดที่ฉันจะสนุกกับการใช้ที่อยู่ที่คุณป้อนในการแสดงตำแหน่งของ GoogleMap เวทีของฉัน
ก่อนอื่นฉันได้ติดตั้งและเปิดใช้งานรุ่นล่าสุดของ GoogleMap ปลั๊กอิน ( http://www.kksou.com/php-gtk2/Joomla-Gadgets/googleMaps-plugin.php # ดาวน์โหลด )
ฉันจะเพิ่มเขตข้อมูลของฉันที่มีค่าต่อไปนี้:
ผมเรียกว่าป้ายชื่อและเขตข้อมูลชื่อ "ที่อยู่" จากนั้นฉันเลือกชนิดของเขตข้อมูลของฉัน: "ข้อความ" ฉันกรอกรายละเอียดของฉันบอกผู้ใช้ว่ามันควรแจ้งเนื้อหา "ป้อนที่อยู่ของสนามกีฬาที่มีรูปแบบต่อไปนี้:. ชื่อถนน 'ถนนจำนวน' '', 'เมือง'"
ฉันต้องการใช้ปลั๊กอิน GoogleMap บนสนามที่ดังนั้นฉันเปลี่ยนค่าของ "Execute ปลั๊กอินเนื้อหา" ระบุค่า "ใช่"
ฉันใช้เวลาคำนำหน้าของฉันในการเริ่มต้นของแท็กของปลั๊กอิน GoogleMap ฉัน: {addr = GoogleMaps "
แล้วต่อท้ายที่ฉันจะปิดสัญญาณของฉันและฉันจะเพิ่มบางพารามิเตอร์เฉพาะปลั๊กอิน: "width = 100 height = 190% = lang = th maptype} G_HYBRID_MAP
ที่อยู่ที่ฉันสามารถป้อนในภายหลังจะถูกรวมโดยตรงเป็นพารามิเตอร์สำหรับปลั๊กอินของฉัน
สำคัญ! จนถึงขณะนี้เป็นไปไม่ได้ที่จะใช้ปลั๊กอินที่ใช้ตัวท่อ "|" ในการตั้งค่าเพราะสร้างปัญหา
- textarea
ตอนนี้ผมจะเพิ่มพื้นที่ที่จะให้ฉันไปป้อนที่อยู่เพิ่มเติมที่มีค่าต่อไปนี้:
ฉันตัดสินใจที่จะไม่เปิดใช้งานโปรแกรมแก้ไข HTML และฉันลดพื้นที่ที่ห้าเส้นเพื่อไม่ให้เกินหน้ารายการของฉัน (พื้นที่ "ความสูงของสำนักพิมพ์" เท่านั้นสอดคล้องกับความสูงของพิกเซลแก้ไข HTML)
- วันที่
ตอนนี้ผมจะเพิ่มเขตข้อมูลที่จะบันทึกวันที่มีการเปิดของสนามกีฬา เขตข้อมูลนี้จะให้ฉันไปเลือกวันที่ผ่านปฏิทินที่แสดงอยู่ด้านข้างของช่องของฉันแบบไดนามิก
ฉันต้องการรูปแบบการแสดงที่ไม่มีอยู่ในรายการดังนั้นฉันเลือก "ขนาดกำหนดเอง" และฉันจะใช้รูปแบบของฉัน: "% m D /% /% Y" เพื่อแสดงวันที่ซึ่งจะมีลักษณะเช่นนี้ '14 / 07/1979 ' ฉันยังปิดการใช้งานได้หลายค่า
ฉันจะเพิ่มอีเมล zome ที่ฉันสามารถเข้าใจที่อยู่ที่ติดต่อที่แตกต่างกัน
ผมเรียกว่าเขตข้อมูล "ติดต่อ" ฉันฉันบ่งบอกถึงคำแนะนำการใช้ป้อนในคำอธิบาย ฉันจะอนุญาตให้มีค่าหลายที่จำนวนสูงสุด 5 รายชื่อ ฉันยังตัดสินใจที่จะแสดงค่าในแม่ของฉันแยกด้วยเครื่องหมายจุลภาค
ระวังจะมีการควบคุมรูปแบบไม่มีเมื่อป้อนค่าที่ผู้ใช้สามารถใส่สิ่งที่พวกเขาต้องการ (บางสิ่งบางอย่างเช่นอื่นนอกเหนือจากที่อยู่อีเมล) ในแม่, FLEXIcontent ก็จะเพิ่ม "mailto:"
- เว็บลิงค์
ฉันต้องการแสดงสำหรับแต่ละชื่อบนเวทีของฉันและเว็บไซต์ของสโมสรอย่างเป็นทางการเล่นบนสนามหญ้า
ผมเรียกว่า "เขต site_stade" ของฉันและฉันกล่าวว่าในรายละเอียดไม่ควรใส่ "http://" ในที่อยู่ของฉัน (ถึงแม้ว่าเราจะได้เห็นต่อไปว่าจะจัดการ FLEXIcontent) ผมขยายบิตขนาดของเขตข้อมูลของฉันเป็นที่อยู่เว็บจะใช้เวลาพักน้อยมาก
ฉันยังใช้ชื่อของการเชื่อมโยงของฉันแทนการแสดงที่อยู่เว็บไซต์ ซึ่งจะช่วยให้ฉันเพื่อแสดงชื่อของสโมสรมากกว่าชื่อของเว็บไซต์ของตน
ในที่สุดฉันไม่ต้องการให้ผู้ใช้ใบเว็บไซต์ของฉันถ้าหากพวกเขาคลิกที่ลิงค์เพื่อให้ฉันส่งในหน้าต่างใหม่
- ภาพ
ตอนนี้ผมจะเพิ่มเขตข้อมูลภาพเพื่อดูภาพของการฝึกงานของฉัน ฉันใช้พารามิเตอร์ดังต่อไปนี้:
ผมเรียกว่า "เขต image_stade" ฉันฉันจากนั้นจะแจ้งรายละเอียดโดยบอกว่าฉันอนุญาตเฉพาะไฟล์ jpg และ png ฉันตัดสินใจที่จะไม่แสดงฉลากฟิลด์เป็นภาพที่ควรแสดงหน้าเว็บของฉันฉันไม่เห็นจุด
ฉันจะแสดงชนิดของส่วนขยายการอนุญาตให้ระวังเป็นสิ่งสำคัญที่จะเข้าสู่การขยายในตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ฉัน จำกัด ขนาดไฟล์ของฉันสูงสุดถึง 500 กิโลไบต์ (500,000 ไบต์)
ที่มีคุณภาพขนาดย่อคืออัตราการบีบอัดที่ไม่ทำงานกับจำนวนมากของภาพที่ฉันชอบในการรักษาที่มีคุณภาพดี (ค่าที่เป็นไปได้ 1 -> 100)
ฉันเปลี่ยนเส้นทางไปยังรูปขนาดย่อที่ไดเรกทอรีที่จะรวมศูนย์ภาพของฉันทั้งหมดในภายหลังในไดเรกทอรีเดียวกันสำหรับ FLEXIcontent ผมสามารถระบุภาพ / FLEXIcontent / รูป
เรามีความสามารถในการจัดการลายน้ำ (ภาพที่ฝังอยู่ในภาพต้นฉบับเพื่อให้แน่ใจว่าสิทธิในการใช้งาน) ดังนั้นฉันจะใช้ประโยชน์จากมัน ฉันออกจากความทึบถึง 100% เพราะผมโดยตรงจะจัดการความโปร่งใสในแฟ้มภาพของฉัน ผมวางตำแหน่งลายน้ำของฉันในด้านล่างขวา
FLEXIcontent อัตโนมัติจะสร้างสามประเภทของภาพขนาดเล็กเมื่ออัปโหลดภาพของเรา จากนั้นเราจะสามารถใช้ต่อไปในแม่แบบที่แตกต่างกันภาพที่ขนาดของเราจึงเพิ่มประสิทธิภาพเวลาในการโหลด
สำหรับแต่ละขนาดที่ผมกำหนดความกว้างความสูงและจำนวนสูงสุดของฉัน สำหรับขนาดใหญ่และขนาดกลางขนาดเล็ก, ขนาดฉันปล่อยให้ภาพและฉันตัดสินใจที่จะฝังลายน้ำของตัวเองของฉันที่ฉันเก็บตำแหน่งต่อไปนี้: ภาพ / FLEXIcontent หลัก / / watermark.png ![]()
สำหรับสนามเล็ก ๆ ของฉันฉันจะไม่ใช้ลายน้ำให้มีขนาดเล็ก ๆ ของภาพของฉัน
ในที่สุดก็ยังเป็นไปได้ที่จะเชื่อมโยงโดยอัตโนมัติมินิของฉันกับภาพต้นฉบับของฉันผ่านทางป๊อปอัพจะปรากฏขึ้นโดยอัตโนมัติในแม่แบบของฉัน คุณสามารถเลือกระหว่างผล Rockbox หรือ multibox
- คิว
ตอนนี้ผมต้องการที่จะเพิ่มพื้นที่ที่ฉันสามารถทำให้ทรัพยากรต่างๆที่มีอยู่บนเวที: ฟอรั่มแผนบริการที่มีโบรชัวร์ ... ดังนั้นฉันจะเพิ่มประเภทของโซน "ไฟล์" ของฉันที่ฉันเรียกว่า "ทรัพยากร"
บริเวณนี้จะช่วยให้ฉันเพื่อเพิ่มหลายไฟล์โดยอัตโนมัติ เลือกประเภทของตัวคั่นระหว่างไฟล์ที่แตกต่างกัน
"ใช้ไอคอน MIME 'ช่วยให้คุณสามารถแสดงบนส่วนหน้าไอคอนขนาดเล็กที่ด้านหน้าของชื่อไฟล์ซึ่งขึ้นอยู่โดยตรงกับชนิด MIME ของแฟ้มของคุณ
"ใช้ปุ่มดาวน์โหลด" นี้ช่วยให้คุณแสดงปุ่ม "Download" มากกว่าการเชื่อมโยงไปยังแฟ้ม ความกังวลก็คือว่าถ้าผมเปิดใช้งานคุณลักษณะนี้ฉันไม่สามารถจัดการไฟล์จึงไม่สนใจฉัน
- เลือก
สำหรับแต่ละขั้นตอนที่ฉันต้องการที่จะเชื่อมโยงเพลงที่เล่นระหว่างทางเข้าของผู้เล่นในสนาม ฉันจะใช้รายการที่โดยตรงจะขึ้นอยู่กับไฟล์ FLEXIcontent ก่อนที่ฉันทำการเปลี่ยนแปลงบางอย่างในการตั้งค่าทั่วไปของ FLEXIcontent ผมอนุมัติ mp3 ไฟล์การอัปโหลดและจากนั้นฉันจะเปลี่ยนอัปโหลด "images / FLEXIcontent / ไฟล์ /" เส้นทาง ฉันสามารถติดตั้งปลั๊กอิน JosDewPlayer ที่จะช่วยให้ฉันไปอ่านไฟล์ mp3 ได้อย่างถูกต้อง
ผมเรียกว่าเขตข้อมูล "เพลง" ของฉัน ฉันเปิดใช้งานการดำเนินปลั๊กอินเกี่ยวกับเนื้อหาและฉันเลือก josdewplayer เดียวที่จะเพิ่มประสิทธิภาพการดำเนินงาน
ฉันยังมีการกำจัดของช่องว่างในชื่อเพื่อหลีกเลี่ยงข้อผิดพลาดในที่อยู่ของแฟ้ม
เมื่อต้องการตั้งค่าการอ่านไฟล์ของฉันฉันคำนำหน้าข้อมูล: {} เล่นภาพ / FLEXIcontent ไฟล์ / / จากนั้นต่อท้าย {เล่น /}
ฉันต้องการใช้ SQL เพื่อแจ้งรายชื่อของฉันโดยตรงจาก FLEXIcontent ไฟล์ ฉันกรอกแบบสอบถาม SQL ของฉัน:
2 3 | value , filename AS text เลือกค่าเป็นชื่อไฟล์ข้อความชื่อไฟล์ AS จากที่สาย # flexicontent_files __ ext = "mp3" AND fi . published = 1 WHERE สาย. Ext = "mp3" และสาย. เผยแพร่ = 1 |
ต้องดำเนินการสืบค้นที่มีสองช่องเพื่อแสดงว่าจำเป็นต้องต้องเชื่อมโยงนามแฝง "ค่า" และ "ข้อความ" ซึ่งแน่นอนสอดคล้องกับมูลค่าและข้อความของรายการ โปรดทราบว่าค่าเริ่มต้นที่จะถูกส่งกลับเมื่อดูแม่แบบจะเป็น "ข้อความ" ฉันกรองแฟ้มโดยการเลือก mp3 เท่านั้นที่มีการเผยแพร่
- เลือกหลาย
ฉันต้องการที่จะเชื่อมโยงและแสดงพันธมิตรต่างๆของสโมสร ฉันจะตั้งค่า "หลายเลือก" ที่จะเชื่อมโยงกับส่วนของแบนเนอร์ใน Joomla เพื่อให้คุณสามารถเลือกคู่นอนหลายคน ผมเรียกว่าเขตของฉัน "พันธมิตร"
ฉันจะใช้ปลั๊กอินที่จะแสดงแบนเนอร์ของฉันฉันไม่ลืมที่จะเรียกใช้ปลั๊กอินแม้เนื้อหาและฉันเลือกปลั๊กอินของฉัน " ป้ายโฆษณามอส 0.4 "ที่ติดตั้งไว้ก่อนหน้านี้ ฉันจะลบช่องว่าง ฉันใช้เวลาแท็กคำนำหน้าของฉัน "mosbanner {: id =" แล้วคำต่อท้ายของฉัน "}"
ฉันจะเชื่อมโยงรายการไปยังรายการของแบนเนอร์ Joomla เผยแพร่เพื่อให้ฉันและฉันหันไปในแบบสอบถาม SQL ของฉัน:
2 3 4 | value , name AS text เลือก BID AS มูลค่าชื่อเป็นข้อความ ตั้งแต่วันที่ # BA แบนเนอร์ __ showBanner = 1 WHERE BA. ShowBanner = 1 name ORDER BY BA. ชื่อ |
สุดท้ายผมเลือกค่าที่คั่นด้วยจุลภาคเพราะมันเป็นตัวละครที่ใช้โดยปลั๊กอินของฉัน
เราจะได้เห็นต่อไปว่าผลที่ได้คือไม่ได้จริงๆคนที่คุณต้องการและฉันต้องสร้างชนิดของเขตข้อมูลของตัวเอง (ดูในส่วนถัดไป)
- Checkbox ภาพ Checkbox ปุ่มวิทยุและวิทยุภาพปุ่ม
เขตข้อมูลเหล่านี้จะถูกจัดการในลักษณะเดียวกันนอกเหนือจากข้อเท็จจริงที่ว่าในบางที่เราอาจจะเพิ่มภาพ
ฉันจะเลือก "ภาพเช็คบ๊อก" และเรียนรู้องค์ประกอบในรูปแบบ
"ฉลากคุ้มค่า ::::%% ภาพ" ค่าของฉัน "ดื่มเครื่องดื่ม :: :: :: WC%%%% Toilets wc.gif boissons.gif :: ร้านอาหาร :: ร้านอาหารที่จอดรถ ::% resto.gif% ที่จอดรถ parking.gif ::::%% :: สูบบุหรี่ :: fumer.gif บ้านสูบบุหรี่ "
อย่าวางอัตราร้อยละสองครั้งในตอนท้ายของรายการ
ผมแก้ไขแล้วเส้นทางไปยังภาพของฉัน "images / FLEXIcontent / core /" นอกจากนี้ยังเป็นไปได้ที่จะตรวจสอบค่าเริ่มต้นโดยใช้ค่าเริ่มต้น มันพอเพียงที่จะจับ "ค่า" คั่นด้วยเครื่องหมายจุลภาค
ฟิลด์ที่กำหนดเองของฉันตอนนี้เสร็จสมบูรณ์
สร้างชนิดของเขตข้อมูลของคุณเอง
FLEXIcontent ช่วยให้คุณสามารถสร้างรูปแบบของเขตข้อมูลของคุณเองที่เราสามารถจินตนาการทำเช่นเขตกับเคาน์เตอร์ที่เพิ่มขึ้น (+, -) หรือแม้กระทั่งการเลื่อนการกำหนดค่า ฉันเพิ่งจะนำเสนอความเป็นไปได้สำหรับฉันเพราะฉันเพิ่งจะทำสำเนาของ "เลือกหลาย" ที่จะเปลี่ยนการแสดงผลซึ่งขณะนี้อยู่ในฟอร์มนี้: ในรูปแบบใหม่นี้ ... ที่ฉันต้องการ: [prefixe_plugin] [value1] [คั่น] [value2] [คั่น] ... [suffixe_plugin]
ชนิดของเขตข้อมูลใน FLEXIcontent เป็นจริงปลั๊กอิน, ปลั๊กอินที่ติดตั้งโดยอัตโนมัติในปลั๊กอิน / flexicontent_fields / และประกอบด้วยแฟ้มที่สอง [nom_plugin]. Xml [nom_plugin]. ไฟล์ PHP และภาษาที่เกี่ยวข้อง
แฟ้ม XML
ฉันแล้วทำสำเนาของ selectmultiple.xml เดิมผมเปลี่ยนชื่อ selectmultiple.php. ไฟล์นี้ติดตั้ง Joomla มาตรฐานมีเป็นครั้งแรกตามกฎหมายและคำอธิบายฉันเพียงแค่การชดเชย ชื่อของปลั๊กอินของฉันที่จะแยกแยะปลั๊กอินเดิมผมเข้ามาที่ผู้เขียนและฉันจะอัปเดตรุ่น:
2 3 4 5 6 7 8 9 10 11 | encoding = "utf-8" ?> <? รุ่น Xml = เข้ารหัส "1.0" = "UTF-8"?> type = "plugin" group = "flexicontent_fields" method = "upgrade" > <install รุ่น "1.5" = ประเภท = กลุ่ม = "plugin" "flexicontent_fields" "upgrade" วิธี => <name> เลือกขั้นสูงหลายรายการ </ name> <author> Emmanuel Danan, Maxime ปรับปรุง Danjou (NetAssoPro) <ผู้เขียน /> <creationDate> มีนาคม 2009 </ creationDate> <copyright> Copyright (C) 2009 Emmanuel Danan <ลิขสิทธิ์ /> <license> ลิขสิทธิ์ GNU / GPL v2 </ ใบอนุญาต> <authorEmail> emmanuel@vistamedia.fr </ authorEmail> <authorUrl> www.vistamedia.fr </ authorUrl> <version> 1.1 <รุ่น /> <description> FLEXI_FIELD_SELECTMULTIPLE <คำอธิบาย /> |
ผมหมายถึงชื่อไฟล์ของปลั๊กอินของฉัน:
12 13 14 | <Files> > selectmultiplead.php </filename > <filename "selectmultiplead" ปลั๊กอิน => selectmultiplead.php </ ชื่อไฟล์> <ไฟล์ /> |
จากนั้นเราจะพบค่าปลั๊กอิน ฉันจะเพิ่มสองพารามิเตอร์แรกที่ผมเรียกว่า "postext_mode" ที่จะให้ฉันไปบอกว่าเราจะใช้คำนำหน้าและคำต่อท้ายของแต่ละค่าหรือเพียงจุดเริ่มต้นและจุดสิ้นสุดของค่าทั้งหมด พารามิเตอร์ตัวที่สองของฉัน "value_mode" กำหนดว่าจะแสดงค่าหรือป้ายชื่อของฉันของฉัน
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
ในส่วนสุดท้ายของไฟล์ xml ผมโหลดไฟล์ภาษาของฉัน (ซึ่งนอกจากนี้ยังมีสำเนาของต้นฉบับ), ฉันเพิ่มไฟล์ของฉันในแต่ละตัวแปรต่อไปนี้: FLEXI_FIELD_VALUE_MODE, FLEXI_FIELD_VALUE_MODE_DESC, FLEXI_FIELD_VALUE, FLEXI_FIELD_POSTEXT_MODE, FLEXI_FIELD_POSTEXT_MODE_DESC
58 59 60 61 62 | <languages> <language tag = "en-GB" > en-GB.plg_flexicontent_fields_selectmultiplead.ini </language > <language tag = "fr-FR" > fr-FR.plg_flexicontent_fields_selectmultiplead.ini </language > </languages > </install > |
Le fichier PHP
Le fichier est une classe composé de 5 événements :
- onDisplayField : Affichage du champ dans la saisie du contenu
- onDisplayFieldValue : Affichage du champ formaté pour le frontend
- onBeforeSaveField : Formate la valeur du champ avant qu'elle soit enregistré
- onAfterSaveField : N'est pas encore utilisé pour le moment, mais dans un futur proche il permettra d'effectuer des interactions avec les autres composants.
- onDisplayFilter : Affiche les filtres dans la vue du template catégorie. Par défaut c'est des listes.
Je vais pour ma part uniquement modifier l'événement onDisplayFieldValue pour rajouter les conditions qui dépendent de mes 2 nouveaux paramètres.
Je commence par modifier le nom de ma classe et mon constructeur que je nomme : plgFlexicontent_fieldsSelectmultiplead.
Puis ensuite dans la première ligne de chaque événement, je modifie le code de la manière suivante :
if ( $field -> field_type != 'selectmultiplead' ) return ; |
Je rajoute donc les conditions dans mon code et j'enlève également les dans mes séparateurs afin de ne pas créer de bug avec mon plugin.
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | function onDisplayFieldValue ( & $field , $item , $values = null , $prop = 'display' ) { // execute the code only if the field type match the plugin type if ( $field -> field_type != 'selectmultiplead' ) return ; $values = $values ? $values : $field -> value ; // some parameter shortcuts $remove_space = $field -> parameters -> get ( 'remove_space' , 0 ) ; $pretext = $field -> parameters -> get ( 'pretext' , '' ) ; $posttext = $field -> parameters -> get ( 'posttext' , '' ) ; $field_elements = $field -> parameters -> get ( 'field_elements' , '' ) ; $sql_mode = $field -> parameters -> get ( 'sql_mode' , 0 ) ; $separatorf = $field -> parameters -> get ( 'separatorf' ) ; $opentag = $field -> parameters -> get ( 'opentag' , '' ) ; $closetag = $field -> parameters -> get ( 'closetag' , '' ) ; // j'ajoute mes deux nouveaux paramètres $value_mode = $field -> parameters -> get ( 'value_mode' , '' ) ; $postext_mode = $field -> parameters -> get ( 'postext_mode' , '' ) ; // je retire dans les séparateurs le switch ( $separatorf ) { case 0 : $separatorf = ' ' ; break ; case 1 : $separatorf = '<br />' ; break ; case 2 : $separatorf = '|' ; break ; case 3 : $separatorf = ',' ; break ; case 4 : $separatorf = $closetag . $opentag ; break ; default : $separatorf = ' ' ; break ; } if ( $pretext ) { $pretext = $remove_space ? $pretext : $pretext . ' ' ; } if ( $posttext ) { $posttext = $remove_space ? $posttext : ' ' . $posttext ; } if ( $sql_mode ) { // SQL mode $db = & JFactory :: getDBO ( ) ; $query = preg_match ( '#^select#i' , $field_elements ) ? $field_elements : '' ; $db -> setQuery ( $query ) ; $results = $db -> loadObjectList ( ) ; if ( ! $results ) { $field -> { $prop } = '' ; } else { $display = array ( ) ; foreach ( $results as $result ) { for ( $n = 0 , $c = count ( $values ) ; $n < $c ; $n ++ ) { if ( $result -> value == $values [ $n ] ) { // selon qu'on décide d'afficher la valeur ou l'étiquette if ( $value_mode == 0 ) { $thevalue = $result -> text ; } else { $thevalue = $result -> value ; } // selon qu'on décide d'utiliser le plugin pour toutes les valeurs ou pour l'ensemble des valeurs if ( $postext_mode == 0 ) { $display [ ] = $pretext . $thevalue . $posttext ; } else { $display [ ] = $thevalue ; } } } } } } else { // Elements mode // initialise property $listelements = explode ( " %% " , $field_elements ) ; $listarrays = array ( ) ; foreach ( $listelements as $listelement ) { $listarrays [ ] = explode ( "::" , $listelement ) ; } $display = array ( ) ; foreach ( $listarrays as $listarray ) { for ( $n = 0 , $c = count ( $values ) ; $n < $c ; $n ++ ) { if ( $values [ $n ] == $listarray [ 0 ] ) { // selon qu'on décide d'afficher la valeur ou l'étiquette if ( $value_mode == 0 ) { $thevalue = $listarray [ 1 ] ; } else { $thevalue = $listarray [ 0 ] ; } // selon qu'on décide d'utiliser le plugin pour toutes les valeurs ou pour l'ensemble des valeurs if ( $postext_mode == 0 ) { $display [ ] = $pretext . $thevalue . $posttext ; } else { $display [ ] = $thevalue ; } } } } } $field -> { $prop } = implode ( $separatorf , $display ) ; // selon qu'on décide d'utiliser le plugin pour toutes les valeurs ou pour l'ensemble des valeurs if ( $postext_mode == 1 ) { $field -> { $prop } = $pretext . $field -> { $prop } . $posttext ; } $field -> { $prop } = $opentag . $field -> { $prop } . $closetag ; } |
// some parameter shortcuts
$remove_space = $field->parameters->get('remove_space', 0) ;
$pretext = $field->parameters->get('pretext', ») ;
$posttext = $field->parameters->get('posttext', ») ;
$field_elements = $field->parameters->get('field_elements', ») ;
$sql_mode = $field->parameters->get('sql_mode', 0) ;
$separatorf = $field->parameters->get('separatorf') ;
$opentag = $field->parameters->get('opentag', ») ;
$closetag = $field->parameters->get('closetag', ») ;
$value_mode = $field->parameters->get('value_mode', ») ;
$postext_mode = $field->parameters->get('postext_mode', ») ;
switch ($separatorf) {
case 0:
$separatorf = ' ';
break;
case 1:
$separatorf = '<br />';
break;
case 2:
$separatorf = '|';
break;
case 3:
$separatorf = ',';
break;
case 4:
$separatorf = $closetag . $opentag;
break;
default:
$separatorf = ' ';
break;
}
if ($pretext) {
$pretext = $remove_space ? $pretext : $pretext . ' ';
}
if ($posttext) {
$posttext = $remove_space ? $posttext : ' ' . $posttext;
}
if ($sql_mode) { // SQL mode
$db = &JFactory::getDBO();
$query = preg_match('#^select#i', $field_elements) ? $field_elements : »;
$db->setQuery($query);
$results = $db->loadObjectList();
if (!$results) {
$field-> {
$prop} = »;
} else {
$display = array();
foreach($results as $result) {
for($n = 0, $c = count($values); $n < $c; $n++) {
if ($result->value == $values[$n]) {
if ($value_mode == 0) {
$thevalue = $result->text ;
} else {
$thevalue = $result->value ;
}
if ($postext_mode == 0) {
$display[] = $pretext . $thevalue . $posttext;
} else {
$display[] = $thevalue ;
}
}
}
}
}
} else { // Elements mode
// initialise property
$listelements = explode( »%% « , $field_elements);
$listarrays = array();
foreach ($listelements as $listelement) {
$listarrays[] = explode( »:: », $listelement);
}
$display = array();
foreach ($listarrays as $listarray) {
for($n = 0, $c = count($values); $n < $c; $n++) {
if ($values[$n] == $listarray[0]) {
if ($value_mode == 0) {
$thevalue = $listarray[1];
} else {
$thevalue = $listarray[0];
}
if ($postext_mode == 0) {
$display[] = $pretext . $thevalue . $posttext;
} else {
$display[] = $thevalue ;
}
// end of modification
}
}
}
}
$field-> {$prop} = implode($separatorf, $display);
if ($postext_mode == 1) {
$field-> {$prop} = $pretext . $field-> {$prop} . $posttext;
}
$field-> {$prop} = $opentag . $field-> {$prop} . $closetag;
}
Une fois toutes mes modifications effectuées je n'ai plus qu'à créer mon fichier zip afin de réaliser le package de mon plugin que je pourrais installer via Joomla.
Vous pouvez télécharger l'exemple que j'ai réalisé ici : plg_flexicontent_selectmultiplead .
Je vais donc changer maintenant mon type de champ pour mon champ « partenaires » afin de lui affecter mon nouveau type : « Select Multiple Advanced ». Au niveau des options pour « Type d'information à afficher (frontend) », je sélectionne « valeur », puis pour « Multi Suffixe, préfixe » je le laisse sur « non ».
Positionner les champs dans le template
Dans ce dernier chapitre de la 2ème partie du tutoriel de la créations de template sous FLEXIcontent, je vais vous montrer comment positionner ses champs dans son propre template via l'interface du back office.
Je me rends dans la section Template de FLEXIcontent puis au niveau de la ligne de mon template « Stade » je clique sur l'icône associé à la Vie Item.
Le positionnement des champs se fait alors par un simple glisser/déposer. Je met en place mes champs de la manière suivante :
Dans une prochaine version de FLEXIcontent il sera également possible de créer ses propres zones directement via l'interface graphique… plutôt intéressant.
Je vous montrerez également dans la quatrième partie de ce tutoriel comment insérer des champs fixes directement dans le template.
Voilà c'est tout pour cette fois-ci, dans la prochaine partie j'aborderais la partie de la saisie d'un contenu à travers notre type personnalisé . Cela vous permettra d'avoir un aperçu de l'agencement des différents champs et de leur mode de saisie.














Le 27/01/2010 à 20:51 , NetAssoBlog | Tutoriel – Template FLEXIcontent – Part1 : la structure a dit:
[...] Part2 : Les types de champs disponibles pour créer son template [...]