使用起來基本都有固定格式,在此不多說,這裡主要說說xml在建立表單中的應用.表單的作用不言而喻,在模組配置裡面有表單,組件裡面也有表單,這裡的配置裡面的參數設定就是xml產生的表單,相對於通過直接建表單方便不少,這裡通過編輯文章表單的使用過程來說,在使用之前,我們先來瞭解一下表單元素的類型,joomla提供了產生多種表單元素樣式.
複製代碼 代碼如下:
//產生日曆時間
//得到單元列表
//其他組件單元列表
//編輯器挑選清單
//檔案清單 html表示顯示副檔名為html
//資料夾清單
//隱藏欄位
未分類
中國
美國
//密碼
//單選
No
Yes
//單元選擇
//水平線
//SQL產生列表
//文字框
//文本域無樣式
//文本域有樣式
//產生時區列表
上邊就是提供的一些產生元素,但是如何使用呢,我們首先建立一個form.xml,在組件的models檔案夾內
複製代碼 代碼如下:
這裡只有一個隱藏元素其實我們可以建立更多的元素,就是上邊的那些產生元素類型,當然還可以自訂,這裡的addpath就是自訂元素類型,位置就是在組建的elements檔案夾內,上邊的是內建的,筆者在這裡定義了如下類型
複製代碼 代碼如下:
//自訂控制項
//數群組轉換成列表 不寫下標從0開始
//產生是否單選
//上傳控制項
//數組複選
//無限分類 注意添加section父類為0
使用方法如上,元素的自訂檔案在下載裡面提供.接著我們在views檔案夾下面你的視圖檔案夾內的view.html.php增加如下語句
複製代碼 代碼如下:
$form = new JParameter('',JPATH_COMPONENT.DS.'models'.DS.'form.xml');
$form->set('m1','預設值');
$html=$form->render('details', 'html'); //details是元素名數組
$this->assignRef('html',$html);
上邊第二句就是賦值,把隱藏欄位賦值,相當於編輯裡面取值,第三四句是把表單html輸出到模版,details是元素名稱數組名,產生的m1的name就是details[m1],接著就是form.php調用如下
複製代碼 代碼如下:
這樣一個表單就產生了,相對於直接寫表單元素,這種方法更容易修改風格或者內容,修改只需要改xml檔案即可,在joomla2.5版本中,基本上都是通過這種方式實現的,不過變化比較大,xml檔案寫法大不相同,通過xml是可以調用其他組件裡面表單元素的.
表單元素的這些類型在模版配置參數,模組參數都是可以使用的,特別是可以自己擴充表單元素的樣式,你完全可以定義出其他樣式類型,筆者定義了比較常用的幾種但是內建沒有提供的,比如數群組轉換列表,數群組轉換複選,無限分類等樣式.這裡的類型其實就是api的JElement類,裡面的源檔案可以參考libraries\joomla\html\parameter\element,這裡自訂表格單元素怎麼寫呢這裡給個例子或者參考源檔案就明白了,檔案名稱custom.php,類型也就是custom了,調用方法
複製代碼 代碼如下:
// 自訂顯示
//
defined('_JEXEC') or die('Restricted access');
class JElementCustom extends JElement{
var $_name = 'Custom';
function fetchElement($name, $value, &$node, $control_name) {
$html=<<自訂
EOF;
return $html;
}
}
好了,就不多講了,其實這隻是一種建立表單的方法,如果你不喜歡,完全可以使用寫表單元素,不過既然joomla提供了這些我們為什麼不用呢?
下載自訂元素: elements_jb51.rar
http://www.bkjia.com/PHPjc/325610.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/325610.htmlTechArticle使用起來基本都有固定格式,在此不多說,這裡主要說說xml在建立表單中的應用.表單的作用不言而喻,在模組配置裡面有表單,組件裡面也有表單...