การเพิ่มแถบเครื่องมือเริ่มต้นของ joomla ในหน้ามุมมององค์ประกอบ


10

ฉันกำลังพัฒนาส่วนประกอบ mvc สำหรับทั้ง joomla 2.5 และ 3. ในหลาย ๆ องค์ประกอบฉันเห็นว่าพวกเขาเพิ่มปุ่มคำสั่งเริ่มต้นของ joomla เช่นใหม่, แก้ไข, เผยแพร่, ถังขยะ, ตัวเลือกที่ด้านบนของหน้าการตั้งค่าในด้านผู้ดูแลระบบ เช่น. ถ้าใครไปส่วนประกอบ -> weblinks-> หน้าลิงค์ฉันกำลังพูดถึงปุ่มคำสั่งเหล่านั้นที่ด้านบนขวา

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

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

คำตอบ:


12

แนวปฏิบัติที่เหมาะสมที่สุดคือการสร้างaddToolBar()วิธีการภายในคลาสมุมมองของคุณแล้วใช้JToolBarHelperคลาสเพื่อสร้างปุ่มคำสั่ง:

protected function addToolBar()
{
  JToolBarHelper::addNew('yourcontroller.add');
  JToolBarHelper::editList('yourcontroller.edit');
}

ดังนั้นสิ่งเหล่านี้จะเรียกงาน / ฟังก์ชั่น "เพิ่ม" / "แก้ไข" ในตัวควบคุมที่คุณระบุ จากนั้นเรียกใช้วิธีการ$this->addToolBar()ในมุมมองของdisplay()คุณ

การอ้างอิงการสร้างแถบเครื่องมือสำหรับองค์ประกอบของคุณ


ฉันมีเพียงไฟล์คอนโทรลเลอร์ controller.php ในองค์ประกอบของฉันและภายในฉันมีฟังก์ชั่นfunction add() { JRequest::setVar('view', 'entry'); JRequest::setVar('layout', 'form'); parent::display(); }ดังนั้นในไฟล์ view.html.php ของฉันฉันเพิ่ม JToolBarHelper :: addNewX ('controller.add'); ปุ่มใหม่จะปรากฏขึ้น แต่เมื่อคลิกแล้วมันจะไม่ไปที่แบบฟอร์มการดูของฉันแทนการเพิ่ม # ไปยัง url
dev-m

พยายามที่จะละเว้นcontroller.task-JToolBarHelper::addNewX();
Dmitry Rekun

เพิ่มเฉพาะ JToolBarHelper :: addNewX (); แต่ไม่ได้ผล
dev-m

จากนั้นคุณต้องสร้างตัวควบคุมที่เหมาะสมภายใต้controllersไดเรกทอรี โปรดดูการเพิ่มการทำงานแบ็กเอนด์
Dmitry Rekun

5

คุณต้องแน่ใจว่ามุมมองที่แสดงปุ่มนั้นมีแบบฟอร์มที่จะส่ง ชื่อฟอร์มควรเป็น adminForm แบบฟอร์มควรมีเขตข้อมูลที่ซ่อนชื่องานและโทเค็นที่สร้างขึ้นแบบไดนามิก ฉันจำ API ไม่ได้จากส่วนบนสุดของหัวฉัน แต่มีบางอย่างที่เหมือนกันJHtml::_('form.token');(บางคนโปรดแก้ไขสิ่งนี้ถ้าฉันเข้าใจผิด)

เคล็ดลับนี้ทำ


ปัญหาที่ฉันค้นพบก่อนหน้านี้คือฉันใช้ชื่อฟอร์มเป็น adminform แทน adminForm.it ดูเหมือนว่าเป็นตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ของ Joomla!
dev-m

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