2016-01-13 2 views
0

Я создаю модуль для Joomla 3.x, и я хотел бы иметь пользовательские параметры. Я проверил страницу Creating a custom form field type на документах joomla, и я проверил сторонний модуль с настраиваемыми полями, но я не могу заставить его работать.Создание настраиваемых полей для модулей Joomla 3.x

Возможно, мне не хватает шага или что-то не так, но я не могу понять, что.

это то, что я сделал до сих пор:

В модули XML-файла я добавил пользовательские Fieldset и поле, как это:

<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; 
    } 
} 
?> 

это пояснит копия поля типа медиа, но это только для тестирования, очевидно, я бы не нужен настраиваемое поля для этого.

Поле появляется в админке как вкладка, как и должно быть, но в подаче нет. Чем я добавил путь addfile к <fields name="params" addfieldpath="/modules/mod_carousel/admin">, как я видел в стороннем модуле, но все равно ничего.

Что мне не хватает или что-то не так?

ответ

0

только использовать этот код, не используйте класс

<?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; 
Смежные вопросы