Формы

Создавать веб-формы и встраивать их на страницы достаточно просто, потребуется минимум знаний html

Стандартная форма обратной связи

Форма обратной связи обычно используется на странице Контакты. В большинстве шаблонов она расположена в файле pages/feedback.html

Для работы формы используются следующие элементы

 

Код Обязательное Описание
<input name="fb[name]" type="text" /> нет Имя отправителя
<input name="fb[phone]" type="tel" /> нет Телефон
<input name="fb[email]" type="email" /> нет Эл.почта
<textarea name="fb[message]" rows="5"></textarea> нет Текст сообщения
{include file="pages/captcha.html"} нет Каптча, защитная картинка, для защиты от спама. Лучше настройку внешнего вида каптчи выводить в отдельный файл и подключать его. Для работы каптчи требуется включение элемента sys_captcha. 
<input name="fb[from_page]" type="hidden" value="{$uri.site}{$uri.path}" /> нет С какой страницы вызывается форма
<input type=" hidden"name="fb[redirect]" value="{$uri.site}{$uri.path}" /> нет Страница, на которую перейдет посетитель после отправки формы
<input name="fb[type]" type="hidden" value="feedback" /> да Тип формы, по которому можно различать, какая из форм на странице была заполнена (если их несколько)
<input name="fb[when]" type="hidden" value="{ $site.formkey }" /> да Ключ, автоматически устанавливаемое значение
<input name="fb[feedback]" type="hidden" value="1" /> нет Служебное поле
<input name="fb[phone]" required="" type="tel" value="{$simpla.POST.fb.phone}" /> нет Пример обязательного поля с заполненным значением в случае возврата формы

Для создания своих полей, нужно добавить поле любого типа в массив name="fb[your_value]", например, <input name="fb[age]" type="text" /> - добавив такое поле, можно предложить посетителю указать свой возраст.

Просмотр отправленных форм

В панели администратора  в разделе Запросы (/?action=feedback) можно увидеть все формы, которые отправлялись с сайта. Открыв нужную форму, можно увидеть все заполненные посетителем поля и изменить статус запроса.

Добавление формы на страницу

В панедли администратора - настройки - блоки - можно найти пункт Веб-формы. Если он пуст, то можно добавить веб-форму, которая должна содержать все необходимые поля в виде html. Важно заполнить название формы на латинском языке - эта метка будет использоваться для показа формы на страницах сайта.

Например, мы создадим форму form1 и заполним поле html необходимыми полями. Таким образом, на любой странице в редакторе вы сможете вставить эту форму, указав %form1%

Пример формы

В примере после отправки формы происходит редирект на страницу /?sent=1 и вместо формы показывается сообщение, что форма отправлена.

{if empty($simpla.GET.sent)}

 {if !empty($page.error)}<h4 style="color:red;">{$page.error}</h4>{/if}
 <form method="post">
       <input type="hidden" name="fb[when]" value="{ $site.formkey }">
       <input type="hidden" name="fb[from_page]" value="{$uri.site}{$uri.path}">
       <input type="hidden" name="fb[type]" value="form1">

       <input type="hidden" name="fb[redirect]" value="{$uri.site}{$uri.path}?sent=1">
       <input type="hidden" name="fb[subject]" value="Request">
       <input type="hidden" name="skip_captcha" value="{$simpla[NOW]}">

       Телефон:
       <input type="text" name="fb[phone]" required>

       E-mail:
       <input type="text" name="fb[email]" required>

       Имя
       <input type="text" name="fb[name]" required>

       Сообщение
       <textarea rows="5" name="fb[message]" required></textarea>

       {include file="pages/captcha.html"}
       <input type="submit" value="Отправить">

 </form>

{else}
 <p>Форма успешно отправлена!</p>
{/if}
Список пуст
Список пуст