Page 1 of 2

Почтовая форма

Posted: Tue Oct 19, 2010 7:42 am
by vad47
Господа, помогите бестолковому. Второй день бьюсь, не могу установить почтовую форму. Дайте пожалуйста пример готового кода, чотбы на странице я смог увидеть простейшую форму для отправки email.

Re: Почтовая форма

Posted: Tue Oct 19, 2010 9:16 am
by Fenik17
Нужно установить модуль FormBuilder (Конструктор форм), вместе с ним есть и примеры.
Там есть довольно подробная справка по работе с модулем.
Модуль здесь: http://dev.cmsmadesimple.org/projects/formbuilder/
Читать для начала это: http://www.icms.info/website-addons/contact-form

Re: Почтовая форма

Posted: Tue Oct 19, 2010 11:43 am
by vad47
Спасибо, кажется разобрался, форма появилась, правда письма еще не доходят  :).

Re: Почтовая форма

Posted: Tue Oct 19, 2010 12:33 pm
by Fenik17
Чтобы приходили, нужно правильно настроить CMSMailer.

Re: Почтовая форма

Posted: Wed Oct 20, 2010 10:20 am
by vad47
Еще раз спасибо, все работает. Единственное не понял как перевести название полей на русский. Команда ‘ru_RU’ ничего не решает. Пробовал переименовывать поля вручную, пропадает часть функций.

Re: Почтовая форма

Posted: Wed Oct 20, 2010 11:11 am
by Fenik17
В "Имя поля:" надо вводить русские названия полей.

Re: Почтовая форма

Posted: Wed Oct 20, 2010 12:20 pm
by vad47
К сожалению этот вариант не решает задачи полного перевода всех граф почтовой формы, к тому-же у меня нарушается работа страницы уведомления (по умолчанию, появляется после отправки сообщения), отчет по тем полям которые были переименованы на русский, остаются пустыми.

Re: Почтовая форма

Posted: Wed Oct 20, 2010 12:30 pm
by hippycore
Какая версия модуля у вас стоит?

Re: Почтовая форма

Posted: Wed Oct 20, 2010 12:34 pm
by Fenik17
Полям формы нужно присваивать алиасы (Field Alias), которые уже использовать в шаблоне формирования письма (Email Template) для поля Send To.

К примеру, в форме http://domeko-ural.ru/kontakty/ используется такой шаблон письма:

Code: Select all

<p>Сообщение, отправленное через форму обратной связи на сайте {$sub_host}</p>
<strong>Дата:</strong>: {$sub_date}<br />
<strong>IP-адрес отправителя</strong>: {$sub_source_ip}<br />
<br /> 

<hr />
{if $sender != "" && $sender != "[unspecified]" }<strong>ФИО</strong>: {$sender}<br />{/if}
{if $firm != "" && $firm != "[unspecified]" }<strong>Фирма</strong>: {$firm}<br />{/if}
{if $phone != "" && $phone != "[unspecified]" }<strong>Телефон</strong>: {$phone}<br />{/if}
{if $frommail != "" && $frommail != "[unspecified]" }<strong>Эл. почта</strong>: {$frommail}<br />{/if}
{if $message != "" && $message != "[unspecified]" }<strong>Текст сообщения</strong>:<br /> {$message}{/if}
<hr />
Как видно - все поля заданы алиасами, все корректно подставляются.

Re: Почтовая форма

Posted: Thu Oct 21, 2010 9:50 am
by vad47
hippycore wrote: Какая версия модуля у вас стоит?
FormBuilder 0.6.4

Re: Почтовая форма

Posted: Thu Oct 21, 2010 9:51 am
by vad47
Fenik17 wrote: Полям формы нужно присваивать алиасы (Field Alias), которые уже использовать в шаблоне формирования письма (Email Template) для поля Send To.

К примеру, в форме http://domeko-ural.ru/kontakty/ используется такой шаблон письма:

Code: Select all

<p>Сообщение, отправленное через форму обратной связи на сайте {$sub_host}</p>
<strong>Дата:</strong>: {$sub_date}<br />
<strong>IP-адрес отправителя</strong>: {$sub_source_ip}<br />
<br /> 

<hr />
{if $sender != "" && $sender != "[unspecified]" }<strong>ФИО</strong>: {$sender}<br />{/if}
{if $firm != "" && $firm != "[unspecified]" }<strong>Фирма</strong>: {$firm}<br />{/if}
{if $phone != "" && $phone != "[unspecified]" }<strong>Телефон</strong>: {$phone}<br />{/if}
{if $frommail != "" && $frommail != "[unspecified]" }<strong>Эл. почта</strong>: {$frommail}<br />{/if}
{if $message != "" && $message != "[unspecified]" }<strong>Текст сообщения</strong>:<br /> {$message}{/if}
<hr />
Как видно - все поля заданы алиасами, все корректно подставляются.
Спасибо за подробное разъяснение, попробую, отпишусь по результатам.

Re: Почтовая форма

Posted: Fri Oct 22, 2010 6:57 pm
by Dominikus
Если бы пример еще шаблончика самой формы, легче новичкам было бы разобраться :)
Буду признателен!
Fenik17 wrote: Полям формы нужно присваивать алиасы (Field Alias), которые уже использовать в шаблоне формирования письма (Email Template) для поля Send To.

К примеру, в форме http://domeko-ural.ru/kontakty/ используется такой шаблон письма:

Code: Select all

<p>Сообщение, отправленное через форму обратной связи на сайте {$sub_host}</p>
<strong>Дата:</strong>: {$sub_date}<br />
<strong>IP-адрес отправителя</strong>: {$sub_source_ip}<br />
<br /> 

<hr />
{if $sender != "" && $sender != "[unspecified]" }<strong>ФИО</strong>: {$sender}<br />{/if}
{if $firm != "" && $firm != "[unspecified]" }<strong>Фирма</strong>: {$firm}<br />{/if}
{if $phone != "" && $phone != "[unspecified]" }<strong>Телефон</strong>: {$phone}<br />{/if}
{if $frommail != "" && $frommail != "[unspecified]" }<strong>Эл. почта</strong>: {$frommail}<br />{/if}
{if $message != "" && $message != "[unspecified]" }<strong>Текст сообщения</strong>:<br /> {$message}{/if}
<hr />
Как видно - все поля заданы алиасами, все корректно подставляются.

Re: Почтовая форма

Posted: Mon Oct 25, 2010 7:46 am
by Fenik17

Code: Select all

<p id="form_header">Напишите нам</p>
{$fb_form_header}
{if $fb_form_done == 1}
	{* This first section is for displaying submission errors *}
	{if isset($fb_submission_error) && $fb_submission_error}
		<div class="error_message">{$fb_submission_error}</div>
		{if isset($fb_show_submission_errors) && $fb_show_submission_errors}
			<div class="error">
			<ul>
			{foreach from=$fb_submission_error_list item=thisErr}
				<li>{$thisErr}</li>
			{/foreach}
			</ul>
		</div>
		{/if}
	{/if}
{else}
	{* this section is for displaying the form *}
	{* we start with validation errors *}
	{if isset($fb_form_has_validation_errors) && $fb_form_has_validation_errors}
		<div class="error_message">
		<ul>
		{foreach from=$fb_form_validation_errors item=thisErr}
			<li>{$thisErr}</li>
		{/foreach}
		</ul>
		</div>
	{/if}
	{if isset($captcha_error) && $captcha_error}
		<div class="error_message">{$captcha_error}</div>
	{/if}

	{* and now the form itself *}
	{$fb_form_start}
	<div>{$fb_hidden}</div>
	<div{if $css_class != ''} class="{$css_class}"{/if}>
	{if $total_pages gt 1}<span>{$title_page_x_of_y}</span>{/if}
	{foreach from=$fields item=entry}
		{if $entry->display == 1}
        	{strip}
         	{if $entry->needs_div == 1}
            	<div
            	{if $entry->required == 1 || $entry->css_class != '' || $entry->valid == 0} class="
              		{if $entry->required == 1}required{/if}
              		{if $entry->css_class != ''} {$entry->css_class}{/if}
                    {if $entry->valid == 0} fb_invalid{/if}
              		"
            	{/if}
				{if $entry->css_class == 'text'} id="text"{/if}
            	>
         	{/if}
         	{if $entry->hide_name == 0}
            	<label{if $entry->multiple_parts != 1} for="{$entry->input_id}"{/if}>{$entry->name}
            	{if $entry->required_symbol != ''}
               		{$entry->required_symbol}
            	{/if}
            	</label>
         	{/if}
         	{if $entry->multiple_parts == 1}
            	{section name=numloop loop=$entry->input}
               		{if $entry->label_parts == 1}
               			<div>{$entry->input[numloop]->input} {$entry->input[numloop]->name}</div>
               		{else}
               			{$entry->input[numloop]->input}
               		{/if}
               		{if isset($entry->input[numloop]->op) && $entry->input[numloop]->op}{$entry->input[numloop]->op}{/if}
            	{/section}
         	{else}
            	{if $entry->smarty_eval == '1'}{eval var=$entry->input}{else}{$entry->input}{/if}
         	{/if}
         	{if $entry->valid == 0} <--- {$entry->error}{/if}
         	{if $entry->needs_div == 1}
            	</div>
         	{/if}
         	{/strip}
     	{/if}
	{/foreach}
	{if $has_captcha == 1}
		<div class="captcha">{$graphic_captcha}{$title_captcha}<br />{$input_captcha}</div>
	{/if}
	<div class="submit">{$prev}{$submit}</div>
	</div>
	{$fb_form_end}
{/if}
{$fb_form_footer}
Стили примерно такие, если надо (но, скорее всего, зависят от основных, не помню уже):

Code: Select all

/* contact form */

form {margin:0 0 0 0;}
form, td, th, li { font-size: 100%}
form div {margin: 0 0 8px 0; padding: 0;}
.contactform input, textarea {border: 1px solid #888;}
.submit {margin-top:0.5em}
.contactform input {margin-left: 10px;width: 350px;}
.contactform input.checkbox {border: none;}
.contactform label {float: left;width: 70px;color: #777;}
#text label {display: block;width: 100%;margin-bottom: 6px;}
.contactform textarea {height: 180px;width: 430px;}
.formbuilderform .message {line-height: 16px;padding: 0 0 8px 0;}
textarea:focus, input:focus {border-color: red;}
.submit {margin-top:10px;}
.submit input {width: 110px;margin-left: 0;border-width: 0;height: 29px;cursor: pointer;}
#form_header {display: block;margin: 20px 0 15px 0;width: 421px;}
#form_header, .submit input {font-family:  Arial, Tahoma, Verdana, sans-serif;vertical-align: middle;
padding: 4px 7px;font-size: 1.3em;font-weight: bold;color: #fff;background-color: #649700;}

Re: Почтовая форма

Posted: Sat Feb 01, 2014 10:29 pm
by booka
подскажите, пожалуйста

при ошибке в заполнении формы, выводится вторая форма в другом месте по коду (там где стоит первый блок content) с указанием того, какие поля не заполненны...

Re: Почтовая форма

Posted: Mon Feb 03, 2014 10:55 am
by guro
Очень сумбурно описана проблема!
Но, попробуйте в
"Pасширения" => "Конструктор форм" => "Ваша форма" => "Основные настройки" => "Main Form Details" => "Показывать форму встроенной?:" поставить галочку