Я хочу добавить пользовательскую проверку формы в Joomla 3.4.8. (похожий на этот вопрос и этот вопрос). Я просто пытаюсь сделать недействительной полевую серверную часть сайта (а не серверную часть). Я использую:
компоненты / com_comp / модель / правила / sqlcheckbox.php
<?php
defined('_JEXEC') or die('Restricted access');
jimport('joomla.form.formrule');
class JFormRuleSqlCheckbox extends JFormRule
{
public function test(SimpleXMLElement $element, $value, $group = null, JRegistry $input = null, JForm $form = null)
{
return false;
}
}
компоненты / com_comp / модель / форма / aform.xml
<?xml version="1.0" encoding="utf-8"?>
<form>
<fieldset id="aForm" name="aForm" addrulepath="components/com_comp/models/rules" addfieldpath="components/com_comp/models/fields" label="COM_DBJOBS_FORM_LABEL">
<field
id="1234567"name="1234567"type="text"label="COM_COMP_LABEL"description="COM_COMP_DESCRIPTION"validate="sqlcheckbox"required="true" />
</fieldset>
</form>
компоненты / com_comp / просмотров / AView / TMPL / default.php
<?php
$this->form = JForm::getInstance('register', JPATH_COMPONENT.'/models/forms/aform.xml');
defined( '_JEXEC' ) or die( 'Restricted access' );
JHTML::_('behavior.formvalidator');
?>
<form id="someform" name="someform" action="" method="post" class="form-validate">
<?php foreach ($this->form->getFieldsets() as $fieldset): ?>
<div id="<?php echo $fieldset->name; ?>">
<?php foreach($this->form->getFieldset($fieldset->name) as $field): ?>
<div class="form-group">
<?php
if ( strcasecmp($field->type, 'checkbox') == 0 ) {
echo $field->input;
echo $field->label;
} else {
echo $field->label;
echo $field->input;
}
?>
</div>
<?php endforeach; ?>
</div>
<?php endforeach;?>
<div class="btn-group" id="somebutton">
<button class="arrow validate" type="submit">Submit</button>
</div>
</form>
Функция JFormRuleSqlCheckbox-> test () никогда не вызывается. Что я делаю неправильно?
Заранее спасибо.
Задача ещё не решена.
Других решений пока нет …