В методе subscribe () для проверки достоверности данных вызывался метод validate () . Ниже приведен исходный код этого метода.
/**
* Проверяет достоверность данных
* @return boolean Истинно, если данные достоверны, а иначе — ложно. */
protected function validate() {
$арр = JFactory::getApplication();
$model = $this->getModel();
$data = JRequest:rgetVar('jform', array(), 'post', 'array'); $form = $model->getForm($data, false); $validData = $model->validate($form, $data); $recordId = JRequest::getlnt('sub_id');
// выявить ошибки в результате проверки достоверности данных
if ($validData === false) {
// получить сообщения о проверке достоверности
$errors = $model->getErrors();
// выдать пользователю до трех сообщений об ошибках
for ($i =0, $n = count($errors); $i < $n && $i < 3; $i++)
{
if (JError::isError($errors[$i])) {
$app->enqueueMessage($errors[$i]->getMessage(), 'warning');
}
else {
$app->enqueueMessage($errors[$i], 'warning');
} }
// сохранить данные в текущем сеансе работы if (isset($data[0])) {
$app->setUserState($context.'.data', $data); }
// переадресовать обратно к экрану редактирования $this->setRedirect(JRoute::_('index.php?option='. $this->option.'&view='.$this->view_item.> $this->getRedirectToIteraAppend($recordId, 'sub_id'), false)); return false; }
return true; }
} // конец класса.
В этом методе сначала получаются данные формы из запроса, а затем из модели вызывается метод validate (). Напомним, что при этом выполняются методы filter () и validate () из объекта формы. Если в любом из этих методов будет обнаружена ошибка, то метод validate () из модели возвратит логическое значение false. В этом случае метод validate () из контроллера выведет на экран до трех сообщений об ошибках, а затем установит переадресацию обратно к форме редактирования подписки.
Понравился материал? Пригодилась информация? Плюсани в социалки!
← Модель для формы в Joomla 2.5
|
|
Задача подписки в Joomla 2.5 →
|
|