Сообщение об ошибке проверки достоверности |
Как было показано ранее, когда пользователь вводит недействительное значение параметра 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-файле, то эти изменения автоматически появятся и в сообщении об ошибке.
Понравился материал? Пригодилась информация? Плюсани в социалки!
Теги:
|
Похожие новости | |