| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Sumo 24.01.2018 08:26 / 24.01.2018 11:49
Замените свою непрерывную последовательность операторов на логические части — функции. Вывод, проверка, обработка и возврат результата — это разные задачи, которые можно и нужно разнести по функциям.@main[][locals]
^try{
^if(^request:method.lower[] eq "post"){
$lErrors[^validateForm[$form:fields]]
^if(!$lErrors){
^processForm[$form:fields]
^redirectTo[/form/action/result]
}
}
^printForm[$form:fields;$lErrors]
}{
^if($exception.type eq "http.redirect"){
$exception.handled(true)
$response:status[$exception.source]
$response:location[$exception.comment]
}
}
@redirectTo[aURL]
^throw[http.redirect;302;$aURL]
@printForm[aData;aErrors]
$aData[^hash::create[$aData]]
$aErrors[^hash::create[$aErrors]]
<form method="post">
<label class="^if(def $aErrors.field1){error}">Поле 1
<input type="text" name="field1" value="$aData.field1">
</label>
^if(def $aErrors.[field1]){
<p class="error-message">$aErrors.field1</p>
}
<input type="submit" />
</form>
@validateForm[aFormData]
$result[^hash::create[]]
^if(!def $aFormData.field1){
$result.field1[Заполните поле.]
}
@processForm[aFormData]
...