为Joomla 3.x模块创建自定义字段

问题描述:

我为Joomla 3.x创建了一个模块,我想要一个自定义参数。我检查了joomla文档上的Creating a custom form field type页面,并且检查了一个有自定义字段的第三方模块,但是我无法使其工作。为Joomla 3.x模块创建自定义字段

也许我错过了一步或做错了什么,但我无法弄清楚什么。

这是我做的,到目前为止:

在我添加的自定义字段集和现场像这样的模块XML文件:

<fielset name="TITLE" addfieldpath="/modules/mod_mymodule/admin"> 
    <field type="customfield" name="custom" /> 
</fieldset> 

比我创建了一个名为customfield.php并在文件我有这样的:

<?php 
defined('_JEXEC') or die; 
jimport('joomla.form.formfield'); 

class JFormFieldCustomfield extends JFormField { 
    protected $type = 'customfield'; 

    public function getInput(){ 
     $custom_form = '<div class="input-prepend input-append">'; 
     $custom_form .= '<div class="media-preview add-on"><span title="" class="hasTipPreview"><span class="icon-eye"></span></span></div>'; 
     $custom_form .= '<input type="text" id="jform_params_backgroundimage" class="input-small hasTipImgpath" readonly value="" aria-invalid="false" name="jform[params][backgroundimage]" />'; 
     $custom_form .= '<a rel="{handler: \'iframe\', size: {x: 800, y: 500}}" href="index.php?option=com_media&amp;view=images&amp;tmpl=component&amp;asset=com_modules&amp;author=&amp;fieldid=jform_params_backgroundimage&amp;folder=" title="'.JText::_('JSELECT').'" class="modal btn">'.JText::_('JSELECT').'</a>'; 
     $custom_form .= '<a onclick="jInsertFieldValue('', \'jform_params_backgroundimage\'); return false;" href="#" title="" class="btn hasTooltip" data-original-title="'.JText::_('JCLEAR').'"><span class="icon-remove"></span></a>'; 
     $custom_form .= '</div>'; 

     return $custom_form; 
    } 
} 
?> 

这是basicly媒体字段类型的副本,但这只是用于测试,很明显,我就不需要自定义字段这一点。

该字段集显示在管理员作为选项卡,因为它应该是,但该字段不。正如我在第三方模块中看到的,我添加了addfilepath到<fields name="params" addfieldpath="/modules/mod_carousel/admin">,但仍然没有任何结果。

我在想什么或做错了什么?

仅使用此代码,请不要使用类

<?php 
defined('_JEXEC') or die; 
$custom_form = '<div class="input-prepend input-append">'; 
     $custom_form .= '<div class="media-preview add-on"><span title="" class="hasTipPreview"><span class="icon-eye"></span></span></div>'; 
     $custom_form .= '<input type="text" id="jform_params_backgroundimage" class="input-small hasTipImgpath" readonly value="" aria-invalid="false" name="jform[params][backgroundimage]" />'; 
     $custom_form .= '<a rel="{handler: \'iframe\', size: {x: 800, y: 500}}" href="index.php?option=com_media&amp;view=images&amp;tmpl=component&amp;asset=com_modules&amp;author=&amp;fieldid=jform_params_backgroundimage&amp;folder=" title="'.JText::_('JSELECT').'" class="modal btn">'.JText::_('JSELECT').'</a>'; 
     $custom_form .= '<a onclick="jInsertFieldValue('', \'jform_params_backgroundimage\'); return false;" href="#" title="" class="btn hasTooltip" data-original-title="'.JText::_('JCLEAR').'"><span class="icon-remove"></span></a>'; 
     $custom_form .= '</div>'; 

     echo $custom_form;