php – Joomla! 在 xml 中自訂欄位
範例元件名稱 com_todolist
添加我們自訂的 xml
- name=”clickme” 名稱是作為 tmpl 渲染使用,代表你的欄位叫什麼名字。
- type=”mybutton” 會去尋找 models/fields/mybutton.php
1 2 3 4 5 6 7 8 9 |
<?xml version="1.0" encoding="utf-8"?> <!-- components/com_todolist/models/forms/upload.xml --> <form> <fieldset name="others" addfieldpath="components/com_todolist/models/fields/"> <field name="cliekme" type="mybutton" label="我是自訂欄位" /> </fieldset> </form> |
自訂欄位的物件邏輯
我們要自訂一個類型叫做 mybutton 的 HTML <button> 元件。
- JFormFieldMybutton 為 JFormField{首字大寫你的類型名稱}
- $type 設定首字大寫你的類型名稱
- 務必指定 protected function getInput(),這是為了覆寫 JFormField 的方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php // components/com_todolist/models/fields/mybutton.php defined('JPATH_BASE') or die; class JFormFieldMybutton extends JFormField { protected $type = 'Mybutton'; protected function getInput() { return '<button onclick="alert()">我是按鈕</button>'; } } |
在 tmpl 中渲染
1 2 3 4 |
<!-- C:\www\joomla\components\com_todolist\views\upload\tmpl\main.php --> <?=$this->form->renderField('cliekme')?> |
Comments