UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: danger от 10 Июля 2015, 09:51:04

Название: Модуль обратная связь demodizzy
Отправлено: danger от 10 Июля 2015, 09:51:04
Добрый день,помогите!!  Вот что делаю, переношу из demodizzy папку webforms к себе в шаблон сайта(в админке адрес, форма, страница созданы - в первоначальном виде все работает) т.к. каждому заполняемому полю нужно добавить свою иконку, то открываю add.xsl в папке webforms, убираю строчку:
Цитировать
<xsl:apply-templates select="groups/group" mode="webforms" />

и меняю этот кусок кода:
<xsl:template match="udata[@module = 'webforms'][@method = 'add']">
<form method="post" action="{$lang-prefix}/webforms/send/" onsubmit="site.forms.data.save(this); return site.forms.data.check(this);" enctype="multipart/form-data">
<xsl:apply-templates select="items" mode="address" />
<xsl:apply-templates select="groups/group" mode="webforms" />
<input type="hidden" name="system_form_id" value="{/udata/@form_id}" />
<input type="hidden" name="ref_onsuccess" value="{$lang-prefix}/webforms/posted/{/udata/@form_id}/" />
<div class="form_element">
<xsl:apply-templates select="document('udata://system/captcha/')/udata" />
</div>
<div class="form_element">
<input type="submit" class="button" value="Отправить" />
</div>
</form>
</xsl:template>

 на этот:

	<xsl:template match="udata[@module = 'webforms'][@method = 'add']">

<form method="post" action="{$lang-prefix}/webforms/send/" onsubmit="site.forms.data.save(this); return site.forms.data.check(this);" enctype="multipart/form-data">
<xsl:apply-templates select="items" mode="address" />

<input type="hidden" name="system_form_id" value="{/udata/@form_id}" />
<input type="hidden" name="ref_onsuccess" value="{$lang-prefix}/webforms/posted/{/udata/@form_id}/" />

  <div class="form_element">
<input name="data[new][name]"/>
</div>

<div class="form_element">
<input name="data[new][phone]"/>
</div>

<div class="form_element">   
<input name="data[new][email]" />
</div>

<div class="form_element">
<textarea name="data[new][comment]" />
</div>

<div class="form_element">
<input type="submit" class="button" value="Отправить заявку" />
</div>
</form>

</xsl:template>

что пишу не так, локально на OpenServer измененная форма работает и письма приходят, переношу на хост, форма есть, а письма не отправляются.
Название: Re: Модуль обратная связь demodizzy
Отправлено: danger от 16 Июля 2015, 16:30:40
этот кусок кода
<xsl:template match="field" mode="webforms">
<div class="form_element">
<label>
<xsl:apply-templates select="." mode="webforms_required" />
<span><xsl:value-of select="@title" /><xsl:text>:</xsl:text></span>
<xsl:apply-templates select="." mode="webforms_input_type" />
</label>
</div>
</xsl:template>
<xsl:template match="field" mode="webforms_input_type">
<input type="text" name="{@input_name}" class="textinputs" />
</xsl:template>
<xsl:template match="field[@type = 'text' or @type='wysiwyg']" mode="webforms_input_type">
<textarea name="{@input_name}"></textarea>
</xsl:template>

заменяем на этот код
<xsl:template match="field" mode="webforms">
<div class="form_element">
<xsl:apply-templates select="." mode="webforms_required" />
<xsl:apply-templates select="." mode="webforms_input_type" />
</div>
</xsl:template>
<xsl:template match="field[@title = 'Имя']" mode="webforms_input_type">
<div class=""><input type="text" name="{@input_name}" class="" placeholder="Имя"/></div>
</xsl:template>
<xsl:template match="field[@title = 'Телефон']" mode="webforms_input_type">
<div class=""><input type="text" name="{@input_name}" class="" placeholder="Телефон" /></div>
</xsl:template>
<xsl:template match="field[@title = 'E-mail']" mode="webforms_input_type">
<div class=""><input type="text" name="{@input_name}" class="" placeholder="Email"/></div>
</xsl:template>
<xsl:template match="field[@type = 'text' or @type='wysiwyg']" mode="webforms_input_type">
<div id="textarea"><textarea type="text" name="{@input_name}" class="" placeholder="Комментарий"></textarea></div>
</xsl:template>

Теперь к каждому полю можно применить свой стиль. Надеюсь, кому-нить пригодится. А у меня уже новый вопрос!!
Название: Re: Модуль обратная связь demodizzy
Отправлено: admin от 20 Июля 2015, 13:41:52
локально на OpenServer измененная форма работает и письма приходят, переношу на хост, форма есть, а письма не отправляются.

Ваш пторой пост безуловно прекрасней решают первоначальную проблему, а по поводу того, почему не работало. Скорее всего из-за того что вы потеряли вывод капчи
<div class="form_element">
<xsl:apply-templates select="document('udata://system/captcha/')/udata" />
</div>
и если вы тестируете на хостинге не под админом, то система ожидает капчи , а если у вас к тому же не выводятся ошибки при отправке формы, то вас перебрасывает обратно на страницу формы и ничего нигде не пишется.