8

我使用 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>

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

4

4 回答 4

13

您忘记addfieldpath

<fields name="params">
   <fieldset name="basic" addfieldpath="/modules/mod_royalslider/models/fields">

       <field name="title" type="City" label="anythging" description=""   />

   </fieldset>
</fields>

只需将字段文件夹放在模型文件夹中,然后像上面一样放置路径。

于 2013-01-07T14:10:51.707 回答
1

您只需使用您提供的代码即可,很简单:

 <fields>
      <fieldset name="basic" addfieldpath="/modules/mod_royalslider/fields">
           <field name="title" type="City" label="anythging" description=""   />
      </fieldset>
 </fields>
于 2013-01-07T13:47:34.703 回答
1

在字段中使用addfieldpath,例如 ::

<fields name="params" addfieldpath="/modules/mod_royalslider/models/fields" >

       <fieldset name="basic">

         <field name="title" type="City" label="anything" description="" />

       </fieldset>
 </fields>
于 2013-01-08T13:26:14.907 回答
-1

您可以尝试使用此代码。我的这项工作

<fieldset addfieldpath="/modules/mod_royalslider/models/fields" name="basic">

   <field name="title" type="City" label="anything" description=""  />

</fieldset>
于 2015-07-20T07:05:04.933 回答