[PHP]joomla3 撰寫新的欄位外掛時的注意事項

日期:2016/01/24

大家好
 
因為本身是專門開發joomla3外掛的人
那所以也會需要開發新的欄位格式
這東西是用在哪裡呢?
 
例如在一些設定黨的xml之中
有些
<field name="username" type="mytext" default="" label="使用者名稱" />
 
可以讓使用者方便配置設定所需要的欄位
用在設定功能之中
包含:元件設定,外掛設定,模板設定...之類的
甚至你也可以自行呼叫from表單來呼叫這些欄位
 
那在開發時有幾點要注意
1.type名稱最好是英文小寫
例如不要有空白,底線之類
 
2.類別名稱
使用 JFormFieldEmoImgInput 與 JElementEmoImgInput
然後分別要下
var $type = 'emoimginput';
var $_name = 'emoimginput';


函數進去
 
3.檔案名稱必須跟type一樣
例如在這範例中,檔案名稱必須為 mytext.php
 
4.在設定檔案需要額外指定element位置
<fieldset name="fields" label="JCONFIG_FIELDS_LABEL" description="JCONFIG_FIELDS_DESC" addfieldpath="/administrator/components/com_mycom/elements" >
 
 
可以參考以下範例
 
<?php
defined('_JEXEC') or die ;

class ZoearthElementInsertTestBtn extends JFormField
{
    function fetchElement($name, $value, &$node, $control_name)
    {
        //$name 陣列的key值,因為同類型欄位可能被重複呼叫,所以實際呈現應該類似 jform[params][username]
        //$value 輸入的值
        $html = '';//要輸出的html
        $html .= '<input type="text" name="'.$name.'" value="'.$value.'">';
        return $html;
    }
   
    function getInput()
    {
        return $this->fetchElement($this->name, $this->value, $this->element, $this->options['control']);
    }
}

class JFormFieldEmoImgInput extends ZoearthElementInsertTestBtn
{
    var $type = 'emoimginput';
}

class JElementEmoImgInput extends ZoearthElementInsertTestBtn
{
    var $_name = 'emoimginput';
}

?>


 
有問題都可以發問喔
感恩

相關文章

[K2標籤模組問題]joomla產生的 error code 0 錯誤

[joomla][元件][evernote]幫助匯入evernote文章元件功能

留言板

歡迎留下建議與分享!希望一起交流!感恩!

comments powered by Disqus