Ошибка создания Joomla для пользовательского правила проверки

Я новичок в 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 () имя_сегмента отсутствует.

0

Решение

Есть некоторые правила, которые не соблюдаются

  1. Вы использовали имя_сегмента в качестве имени файла, но в качестве имени класса вы указали имя_сегмента. Оба должны совпадать.

  2. Не обязательно, но вы можете использовать в файле правил

    jimport ( ‘joomla.form.formrule’);

    определен (‘_ JEXEC’) или умер (‘Ограниченный доступ’);

    // импортируем библиотеку формул Joomla
    jimport ( ‘joomla.form.formrule’);

    / **

    • Класс правил формы для Joomla Framework.
      * /
      Класс JFormRuleSegment_rule расширяет JFormRule
      {
  3. В вашей форме путь addrule должен быть указан следующим образом
    <form>
<fieldset name="form_name" addrulepath="components/com_mycomponent/models/rules">
----------------fields
</fieldset>
</form>
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]