2014-02-06 51 views
1

我已經創建了一個下拉選擇列表自定義字段,就像在joomla文檔中所教導的那樣,但我不知道在組件模板中調用此字段的想法。如何在joomla組件視圖模板中使用自定義字段

代碼的文件中建議是這樣的,

//Get custom field 
JFormHelper::addFieldPath(JPATH_COMPONENT . '/models/fields'); 
$cities = JFormHelper::loadFieldType('City', false); 
$cityOptions=$cities->getOptions(); // works only if you set your field getOptions on public!! 

,但怎樣才能讓像一個選擇的形式?像

<select> 
     <option></option> 
     <option></option> 
     <option></option> 
</select> 

字段定義代碼是這樣的:

<?php 
// Check to ensure this file is included in Joomla! 
defined('_JEXEC') or die('Restricted access'); 

jimport('joomla.form.formfield'); 

// The class name must always be the same as the filename (in camel case) 
class JFormFieldRank extends JFormField { 

    //The field class must know its own type through the variable $type. 
    protected $type = 'Rank'; 

    public function getLabel() { 
      // code that returns HTML that will be shown as the label 
    } 

    public function getInput() { 
      // code that returns HTML that will be shown as the form field 
      return '<select id="'.$this->id.'" name="'.$this->name.'">'. 
        '<option value="0" >00 President</option>'. 
        '<option value="1" >01 Vice President</option>'. 
        '<option value="10" >10 General Secretary</option>'. 
        '<option value="20" >20 Financial Chair</option>'. 
        '<option value="21" >21 Financial Deputy Chair</option>'. 
        '<option value="30" >30 Academics Chair</option>'. 
        '<option value="31" >31 Academics Deputy Chair</option>'. 
        '<option value="40" >40 Public Relation Chair</option>'. 
        '<option value="41" >41 Public Relation Deputy Chair</option>'. 
        '<option value="50" >50 Publicity Chair</option>'. 
        '<option value="51" >51 Publicity Deputy Chair</option>'. 
        '<option value="60" >60 Social and Sports Chair</option>'. 
        '<option value="61" >61 Social and Sports Deputy Chair</option>'. 
        '<option value="70" >70 Logistics and Welfare Chair</option>'. 
        '<option value="71" >71 Logistics and Welfare Deputy Chair</option>'. 
        '<option value="80" >80 IPSSSCB Advisor</option>'.      
        '</select>'; 

    } 
} 

其次,在表單文件夾中的XML文件,應該是什麼名字?與自定義字段名稱相同?這是rank.xml

並在xml文件中,如下所示:我可以更改名稱,標籤,描述標籤嗎?

<field name="title" type="Rank" label="JGLOBAL_TITLE" 
    description="JFIELD_TITLE_DESC" 
    required="true" /> 

<fieldset addfieldpath="/administrator/components/com_committee/models/fields"> 

謝謝!

回答

0

這看起來像一個完全正常的列表字段給我,你爲什麼定義它作爲一個自定義字段?這就是說type =「list」,然後將XML放入xml文件中,就像任何列表字段一樣(核心表單中有幾十個示例)。

<field name="title" type="list" label="COM_MYCOMPONENT_FIELD_TITLE_LABEL" 
     description="COM_MYCOMPONNET_TITLE_DESC" 
     required="true" > 
     <option value="0" >00 President</option> 
     <option value="1" >01 Vice President</option> 
     <option value="10" >10 General Secretary</option> 
     <option value="20" >20 Financial Chair</option> 
     <option value="21" >21 Financial Deputy Chair</option> 
     <option value="30" >30 Academics Chair</option> 
     ... 
     <option value="80" >80 IPSSSCB Advisor</option> 
</field> 

當然,你可以改變文本,這是有那些爲字符串鍵的整點,你讓你的組件語言文件自己的鑰匙。再次查看核心表單中的任何表單字段。最好的做法是爲這些值使用語言鍵。

+0

但是,我想在網站模板中使用該字段,我該如何在xml中調用該字段? – Soya

+0

「在網站模板中」是什麼意思?這不是一個模板參數,它是關於像「背景顏色」這樣的模板的東西,它看起來是某些個人的東西。你不希望你的網站的每一個頁面上的這個領域呢? 如果您製作了自己的組件,您是否擁有表單視圖的MVC三元組? – Elin

+0

對不起,我構建了一個組件,並在一個視圖default.php中,有一個表單,我想要一個名爲'rank'的輸入框使用自定義字段。 – Soya

相關問題