Комментарии

Сообщение об ошибке проверки достоверности
( 0 Голосов )

Как было показано ранее, когда пользователь вводит недействительное значение параметра count, выводится сообщение об ошибке "Invalid field: Number of Articles to Show". В нем пользователь уведомляется о том, что в поле ввода данных что-то не так, но не поясняется, что именно. Это сообщение об ошибке выводится по умолчанию, если не определить явно другое сообщение. Но это другое сообщение можно определить двумя способами.

Первый способ состоит в том, чтобы добавить атрибут message в элемент разметки field. Например, в элемент field разметки поля параметра count можно было бы ввести следующую строку кода:

message="MOD_JOOMPRO_ARTICLES_AUTHOR_COUNTINTEGER_MESSAGE"

А затем добавить приведенную ниже строку в основной файл языковой поддержки с расширением .ini.

M0D_JOOMPRO_ARTICLES_AUTHOR_COUNTINTEGER_MESSAGE="Article count must be between 1 and 10."

Если теперь попытаться ввести значение вне пределов, заданных для параметра count, то из основного файла языковой поддержки будет извлечено и выведено на экран сообщение об ошибке "Article count must be between 1 and 10" (Количество статей должно быть в пределах от 1 до 10).

Другой способ состоит в том, чтобы возвратить объект типа Jexception с сообщением из метода test () установленного правила проверки достоверности, если введенное значение окажется недействительным. Этого можно добиться следующим образом: прежде всего удалить атрибут message из элемента разметки field в XML-файле, а затем внести в метод test () следующие изменения:

function  test(& $element, $value, $group = null, & $input = 4>null, & $form = null) {
$max = (int) $element->getAttribute('maximum') ? $element->getAttribute('maximum') : 30;
$min = (int) $element->getAttribute('minimum') ? $element->getAttribute('minimum') : 1;
$result = ((int)  $value  >=  $min  &&   (int)  $value  <=  $max);
//  построить  объект  типа  JException if   ($result ===  false)   {
$result  = new JException(JText:isprintf('MOD_JOOMPRO_ARTICLES_AUTHOR_COUNTINTEGER_MESSAGE',   $min,    $max));
}
return $result;

Переменные $max и $min устанавливаются, как и прежде. Затем переменной $ result присваивается логическое значение true или false. Если это логическое значение false, то в переменной $result сохраняется новый объект типа JException с сообщением об ошибке. Следует заметить, что для вывода этого сообщения вызывается метод JText: isprintf (), что дает возможность отображать значения переменных $тах и $min в самом сообщении.

Затем возвращается значение переменной $ result, которое будет логическим значением true, если данные в поле введены правильно, а иначе — объектом типа JException с сообщением об ошибке. И наконец, в основной файл языковой поддержки с расширением . ini необходимо добавить следующую строку:

MOD_JOOMPRO_ARTICLES_AUTHOR_COUNTINTEGER_MESSAGE="Article  count  must  be between  %l$d and %2$d."

В этой строке метки-заполнители %l$d и %2$d служат для указания мест вывода значений переменных $тах и $min. Они будут вставлены в сообщение об ошибке с помощью метода JText:: sprintf (). В данном случае сообщение об ошибке, выводимое для пользователя, будет таким же, как и в предыдущем примере. Но если изменить значения атрибута minimum или maximum в XML-файле, то эти изменения автоматически появятся и в сообщении об ошибке.


Понравился материал? Пригодилась информация? Плюсани в социалки!


Вам также будет интересно:

 
Похожие новости