Я новичок в Joomla и пытаюсь разработать компонент, но когда я пытаюсь добавить правила в свою бэкэнд-панель, я продолжаю получать эту ошибку. Если кто-нибудь может сказать мне, что я делаю не так, буду благодарен.
Вот код для правила, которое я написал.
com_mycomponent / модели / правила / segment_name.php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
/**
* Form Rule class for the Joomla Framework.
*/
class JFormRuleSegmentName extends JFormRule
{
/**
* The regular expression.
*
* @access protected
* @var string
* @since 2.5
*/
protected $regex = '^[^0-9]+$';
}
И это мой код формы:
com_mycomponent / модель / форма / segment.xml
<?xml version="1.0" encoding="utf-8"?>
<form addrulepath="/administrator/components/com_mycomponent/models/rules">
<fieldset>
<field
name="id"type="hidden"/>
<field
name="segment_name"type="text"label="COM_MYCOMPONENT_SEGMENT_NAME_LABEL"description="COM_MYCOMPONENT_SEGMENT_NAME_DESC"size="40"class="inputbox"validate="segment_name"required="true"default=""/>
</fieldset>
</form>
Это не работает для меня, вот что я получаю, когда пытаюсь добавить или отредактировать новый сегмент:
Ошибка:
Произошла ошибка.
0 Правило JForm :: validateField () имя_сегмента отсутствует.
Есть некоторые правила, которые не соблюдаются
Вы использовали имя_сегмента в качестве имени файла, но в качестве имени класса вы указали имя_сегмента. Оба должны совпадать.
Не обязательно, но вы можете использовать в файле правил
jimport ( ‘joomla.form.formrule’);
определен (‘_ JEXEC’) или умер (‘Ограниченный доступ’);
// импортируем библиотеку формул Joomla
jimport ( ‘joomla.form.formrule’);
/ **
<form>
<fieldset name="form_name" addrulepath="components/com_mycomponent/models/rules">
----------------fields
</fieldset>
</form>
Других решений пока нет …