2014-02-06 3 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

Смежные вопросы