如何在模块中创建自定义表单字段类型



我使用joomla 2.5,我想创建一个自定义表单字段类型that stored in the same module.

在XML中:

 <fieldset  name="basic" addfieldpath="/modules/mod_royalslider/fields"></fields>
      <fieldset name="basic">
           <field name="title" type="City" label="anythging" description=""   />
      </fieldset>
 </fields>

文件/modules/mod_royalslider/fields/city.php

<?php
// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die('Restricted access');
jimport('joomla.form.formfield');
class JFormFieldCity extends JFormField {
    protected $type = 'City';
    // getLabel() left out
    public function getInput() {
            return '<select id="'.$this->id.'" name="'.$this->name.'">'.
                   '<option value="1" >New York</option>'.
                   '<option value="2" >Chicago</option>'.
                   '<option value="3" >San Francisco</option>'.
                   '</select>';
    }
}

现在显示错误,当我删除<fieldset name="basic" addfieldpath="/modules/mod_royalslider/fields"></fields>

错误消失,字段显示为文本字段。

您忘记在addfieldpath中指定模型

<fields name="params">
   <fieldset name="basic" addfieldpath="/modules/mod_royalslider/models/fields">
       <field name="title" type="City" label="anythging" description=""   />
   </fieldset>
</fields>

将fields文件夹放入models文件夹中,并像上面那样放置路径。

你只要用你给的代码就行了,很简单:

 <fields>
      <fieldset name="basic" addfieldpath="/modules/mod_royalslider/fields">
           <field name="title" type="City" label="anythging" description=""   />
      </fieldset>
 </fields>

在字段中使用addfieldpath,如::

<fields name="params" addfieldpath="/modules/mod_royalslider/models/fields" >
       <fieldset name="basic">
         <field name="title" type="City" label="anything" description="" />
       </fieldset>
 </fields>

您可以尝试使用此代码。

<fieldset addfieldpath="/modules/mod_royalslider/models/fields" name="basic">
   <field name="title" type="City" label="anything" description=""  />
</fieldset>

相关内容

  • 没有找到相关文章

最新更新