Joomla - Поле с календарем для simpleForm 2



Внимание!!! Данная инструкция по видимому не подходит для более новых версий этого модуля.

Joomla имеет большое количество модулей и компонентов для отправки данных из форм на электронную почту. Но большинство из них имеют ограниченное количество типов полей, а те которые имеют необходимые поля состоят из компонента, модули и иногда плагина. И всё это необходимо установить для того .чтобы отправить письмо!

Необходимо открыть файл \modules\mod_simpleform\simpleform.class.php
найти строку 153, там где идет проверка на элементы с помощью функции switch и добавить примерно такое:

case 'date':$onchange = @$elem->onchange;
if(count($elem->requests))
$default = $elem->requests[0];
$result.= JHtml::calendar($default, $name, $id, '%Y-%m-%d'); // Поле даты с необходимым календарем
break;

 

В этом же файле в функцию check необходимо добавить проверку поля. Вставил всего одно слово:

function check(&$form,$request){
$checkVal = $this->getParam($request,$this->name,null);
if(in_array($this->type,array('text','textarea','date')))

 

Затем в файлик modules\mod_simpleform\elements\sfsimplecode.php
Вставляем такую штуку примерно в строку 80, в html код

else if(type=="date"){
html+= "<p>'.JText::_('Required').': <input name=\"'.$control_name.'[el_"+sfNums+"_required]\" value=\"0\" "+(dataObj.required==1?"":"checked=\"checked\"")+" type=\"radio\">'.JText::_('No').' <input name=\"'.$control_name.'[el_"+sfNums+"_required]\" value=\"1\" "+(dataObj.required==1?"checked=\"checked\"":"")+" type=\"radio\">'.JText::_('Yes').'</p>"; html+= "<div class=\"sf2cols\">";

html+= "<div>'.JText::_('Title').' *:<br /><input type=\"text\" name=\"'.$control_name.'[el_"+sfNums+"_label]\" value=\""+dataObj.label+"\" /></div>";
html+= "<div>'.JText::_('Default value').':<br /><input type=\"text\" name=\"'.$control_name.'[el_"+sfNums+"_value]\" value=\""+dataObj.value+"\" /></div>";
html+= "</div>";
html+= "<div class=\"sf2cols\">";
html+= "<div><span class=\"hasTip\" title=\"'.JText::_('Regular expression info').'\">'.JText::_('Regular expression').'</span>:<br /><input type=\"text\" name=\"'.$control_name.'[el_"+sfNums+"_regex]\" value=\""+dataObj.regex+"\" /></div>"; html+= "<div>'.JText::_('Error text').':<br /><input type=\"text\" name=\"'.$control_name.'[el_"+sfNums+"_error]\" value=\""+dataObj.error+"\" /></div>";
html+= "</div>";
html+= "<div class=\"sf2cols\">";
html+= "<div>'.JText::_('CSS class').':<br /><input type=\"text\" name=\"'.$control_name.'[el_"+sfNums+"_class]\" value=\""+dataObj.class+"\" size=\"30\" /></div>";
html+= "<div>'.JText::_('Onchange attribute').':<br /><input type=\"text\" name=\"'.$control_name.'[el_"+sfNums+"_onchange]\" value=\""+dataObj.onchange+"\" size=\"30\" /></div>"; html+= "</div>";
}

Для модуля simpleForm для joomla 1.5 необходимо вставить еще одну строку. В этом же файле modules\mod_simpleform\elements\sfsimplecode.php Находим строку и вставляем еще один элемент массива (вставил последней строкой)

$options = array(
JHTML::_('select.option', 'text', JText::_('Text field')),
JHTML::_('select.option', 'textarea', JText::_('Text area')),
JHTML::_('select.option', 'select', JText::_('Select list')),
JHTML::_('select.option', 'radio', JText::_('Radio list')),
JHTML::_('select.option', 'checkbox', JText::_('Check list')),
JHTML::_('select.option', 'file', JText::_('File')),
JHTML::_('select.option', 'captcha', JText::_('Captcha')),
JHTML::_('select.option', 'button', JText::_('Button')),
JHTML::_('select.option', 'reset', JText::_('Reset button')),
JHTML::_('select.option', 'submit', JText::_('Submit button')),
JHTML::_('select.option', 'date', JText::_('Time')));

И в некоторых случаях необходимо добавить такую строчку в файл index.php вашего шаблона

<?php JHTML::_('behavior.calendar') ?>

А и чуть не забыл, могут быть конфликты между jQuery и Mootools.






comments powered by Disqus