UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: Sumrakrnd от 28 Февраля 2016, 19:38:20

Название: Своя форма отправки заявки
Отправлено: Sumrakrnd от 28 Февраля 2016, 19:38:20
Есть форма для записи на прием.
Я создала форму по шаблону обратной связи,
На странице 244, в которой форма %webforms add(138)%

			<a href="#x" class="overlay" id="win1"></a>
<div class="popup">
  <div class="popup-block">
<xsl:apply-templates select="document('udata://webforms/add/138')/udata"/>
  </div>
<a class="close" title="Закрыть" href="#close"></a>
</div>

Но теперь я не могу понять как ее изменить, добавить свои блоки и классы, а форма у меня сложная, честно в ужасе от того, что с ней надо что то делать... Т____Т
Думала сперва ее просто закинуть в шаблон, и сделать привязку полей в input и т.д., самое сложное это select, не представляю как вытащить туда список направления, хотя поставила назначение его как справочника. Но это еще как и отправить то надо -_-

				<form action="#" class="form form-sign">
<h4>Записаться</h4>
<div class="tabs-select">
<input id="tab-select3" class="tab-select" type="radio" name="tabs" checked="checked" />
<label for="tab-select3" title="Первичная запись">Первичная запись</label>

<input id="tab-select4" class="tab-select" type="radio" name="tabs" />
<label for="tab-select4" title="Вторичная запись">Вторичная запись</label>

<section id="content-select3" class="content-select">
<hr noshade="noshade" />
<fieldset>
<label>Ваше имя</label>
<input name="" type="text" required="required" placeholder="Фамилия Имя Отчество" />
</fieldset>
<fieldset class="one-line">
<label>E-mail</label>
<input name="" type="text" required="required" placeholder="Адрес электронной почты" />
<label class="tel">Телефон</label>
<input name="" type="text" required="required" placeholder="Контактный телефон" />
</fieldset>
<fieldset>
<label>Направление</label>
<div class="stylized_select">
<select name="" onchange="this.parentNode.getElementsByTagName('input')[0].value = this.options[this.selectedIndex].innerHTML;">
<option value="1">Тест</option>
<option value="2">Тест</option>
<option value="3">Тест</option>
<option value="4">Тест</option>
</select>
<div class="input_wrapper">
<input type="text" name="noname" value="" />
</div>
</div>
</fieldset>
<fieldset>
<label>Фамилия</label>
<input name="" type="text" required="required" placeholder="Фамилия" />
</fieldset>
<fieldset>
<label class="data_text">Дата и время</label>
<input type="text" id="datepicker" name="" placeholder="3 декабря 2015" class="data"/>
<input type="text" name="amount-time" id="amount-time1" class="time with" value="12:00" />
<div id="slider-time" class="time-runner"></div>
<input type="text" name="amount-time" id="amount-time2" class="time to" value="18:30" />
</fieldset>
<hr noshade="noshade" />
<fieldset>
<img src="images/recaptcha.png" alt="reCAPTCHA" />
<img src="images/5_discount.png" alt="Скидка 5%" />
</fieldset>
<fieldset>
<input type="button" name="" value="Записаться" class="button" />
</fieldset>
</section>

<section id="content-select4" class="content-select">
<hr noshade="noshade" />
<fieldset>
<label>Ваше ID</label>
<input name="" type="text" required="required" placeholder="Ваше ID" />
</fieldset>
<fieldset class="one-line">
<label>E-mail</label>
<input name="" type="text" required="required" placeholder="Адрес электронной почты" />
<label class="tel">Телефон</label>
<input name="" type="text" required="required" placeholder="Контактный телефон" />
</fieldset>
<fieldset>
<label>Направление</label>
<div class="stylized_select">
<select name="" onchange="this.parentNode.getElementsByTagName('input')[0].value = this.options[this.selectedIndex].innerHTML;">
<option value="1">Тест</option>
<option value="2">Тест</option>
<option value="3">Тест</option>
<option value="4">Тест</option>
</select>
<div class="input_wrapper">
<input type="text" name="noname" value="" />
</div>
</div>
</fieldset>
<fieldset>
<label>Фамилия</label>
<input name="" type="text" required="required" placeholder="Фамилия" />
</fieldset>
<fieldset>
<label class="data_text">Дата и время</label>
<input type="text" id="datepicker" name="" placeholder="3 декабря 2015" class="data"/>
<input type="text" name="amount-time" id="amount-time1" class="time with" value="12:00" />
<div id="slider-time" class="time-runner"></div>
<input type="text" name="amount-time" id="amount-time2" class="time to" value="18:30" />
</fieldset>
<hr noshade="noshade" />
<fieldset>
<img src="images/recaptcha.png" alt="reCAPTCHA" />
<img src="images/5_discount.png" alt="Скидка 5%" />
</fieldset>
<fieldset>
<input type="button" name="" value="Записаться" class="button" />
</fieldset>
</section>
</div>
</form>
Вот такая форма
Название: Re: Своя форма отправки заявки
Отправлено: Sumrakrnd от 29 Февраля 2016, 15:32:10
Доброе время суток.
На странице прописано в административной части umi (в блоке для контента): %webforms add(138)%

На странице шаблона прописано обращение:
				<a href="#x" class="overlay" id="win1"></a>
<div class="popup">
  <div class="popup-block">
<xsl:apply-templates select="document('udata://webforms/add/138')/udata"/>
  </div>
<a class="close" title="Закрыть" href="#close"></a>
</div>


Попробовала я сделать изменения на основание add_popup.xsl
Получается что он мне каждый label и input прописывает в блоке fieldset, но у меня есть fieldset со своими классами и по несколько input/label.
Как разбить-то такую форму :(((

    <xsl:template match="udata[@module = 'webforms'][@method = 'add']">
<form class="form form-sign" method="post" action="/webforms/send/" onsubmit="site.forms.data.save(this); return site.forms.data.check(this);" enctype="multipart/form-data">
<h4>Записаться</h4>
<div class="tabs-select">
<input id="tab-select3" class="tab-select" type="radio" name="tabs" checked="checked" />
<label for="tab-select3" title="Первичный прием">Первичная запись</label>

<input id="tab-select4" class="tab-select" type="radio" name="tabs" />
<label for="tab-select4" title="Вторичный прием">Вторичная запись</label>

<section id="content-select3" class="content-select">
<hr noshade="noshade" />

<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="/webforms/posted/{/udata/@form_id}/" />
<fieldset>
<xsl:apply-templates select="document('udata://system/captcha/')/udata" />
</fieldset>
<fieldset>
<input type="submit" class="button" value="Записаться" />
</fieldset>
</section>

<section id="content-select4" class="content-select">
<hr noshade="noshade" />
тест
</section>
</div>
</form>
    </xsl:template>

Например вот так:
							<fieldset class="one-line">
<label>E-mail</label>
<input name="" type="text" required="required" placeholder="Адрес электронной почты" />
<label class="tel">Телефон</label>
<input name="" type="text" required="required" placeholder="Контактный телефон" />
</fieldset>

Или так:
							<fieldset>
<label class="data_text">Дата и время</label>
<input type="text" id="datepicker" name="" placeholder="3 декабря 2015" class="data"/>
<input type="text" name="amount-time" id="amount-time1" class="time with" value="12:00" />
<div id="slider-time" class="time-runner"></div>
<input type="text" name="amount-time" id="amount-time2" class="time to" value="18:30" />
</fieldset>
Название: Re: Своя форма отправки заявки
Отправлено: Rodogor от 29 Февраля 2016, 15:51:33
Что-то я в целом задачу понял - "кастомизировать" (в терминах документации UMI.CMS) форму - а вот остальное описание не понял.

Предположим, что нам нужно кастомизировать форму, вызываемую в XSLT шаблоне таким образом:

<xsl:apply-templates select="document('udata://webforms/add/138')/udata"/>

1. Находим в коде шаблона, где у нас описывается шаблон для webforms::add.

Как правило, это .../xslt/modules/webforms/add.xsl в стандартных шаблонах.
Если что - в стандартных шаблонах файло .../xslt/modules/webforms/add_popup.xsl как правило не подключается. Можно убедиться, зайдя в файло .../xslt/modules/webforms/common.xsl

2. Находим шаблон. Он будет приблизительно такой

<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.errors.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>

Копируем этот код, добавляем mode="myForm"
<xsl:template match="udata[@module = 'webforms'][@method = 'add']" mode="myForm"> .....</xsl:template>
И добавляем в "точку вызова" - <xsl:apply-templates select="document('udata://webforms/add/138')/udata" mode="myForm"/>

Теперь добавляем какую-нибудь метку, что бы понять, что теперь у нас "код пошёл по ветке с mode myForm", и далее кастомизируем....

P.S. если в админке написать %webforms add(138)% и вывести этот код, то будет использован TPL шаблон, а не XSLT, поэтому рекомендую сначала определиться "с точкой входа" - где именно вызывается вывод формы и что именно нужно кастомизировать.
Название: Re: Своя форма отправки заявки
Отправлено: Sumrakrnd от 29 Февраля 2016, 16:05:18
Получается так? Вроде форма 138 вывелась

	<xsl:template match="udata[@module = 'webforms'][@method = 'add'][@pageId='244']" mode="initial_reception" >
<form method="post" action="{$lang-prefix}/webforms/send/" onsubmit="site.forms.data.save(this); return site.forms.errors.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']" mode="initial_reception" >
<xsl:apply-templates select="document('udata://webforms/add/138')/udata" mode="initial_reception"/>
</xsl:template>


Я вроде оборачиваю input и label в fieldset, но тут получается они по парно находятся в fieldset, а у меня вот такие например блоки.
Как к ним сделать по нескольку в fieldset или чтобы у fieldset был свой класс.... и т.д.

							<fieldset class="one-line">
<label>E-mail</label>
<input name="" type="text" required="required" placeholder="Адрес электронной почты" />
<label class="tel">Телефон</label>
<input name="" type="text" required="required" placeholder="Контактный телефон" />
</fieldset>
<fieldset>
<label>Отделение</label>
<div class="stylized_select">
<select name="" onchange="this.parentNode.getElementsByTagName('input')[0].value = this.options[this.selectedIndex].innerHTML;">
<option value="1">Отделение</option>
<option value="2">Отделение</option>
<option value="3">Отделение</option>
<option value="4">Отделение</option>
</select>
<div class="input_wrapper">
<input type="text" name="noname" value="" />
</div>
</div>
</fieldset>
<fieldset>
<label class="data_text">Дата и время</label>
<input type="text" id="datepicker" name="" placeholder="3 декабря 2015" class="data"/>
<input type="text" name="amount-time" id="amount-time1" class="time with" value="12:00" />
<div id="slider-time" class="time-runner"></div>
<input type="text" name="amount-time" id="amount-time2" class="time to" value="18:30" />
</fieldset>
Название: Re: Своя форма отправки заявки
Отправлено: Sumrakrnd от 29 Февраля 2016, 16:13:33
а черт, не могу сделать изменений..
несмотря на то, что я убрала из контента %webforms add(138)%, форма все равно вызывается, но свой мод не подключился...
Название: Re: Своя форма отправки заявки
Отправлено: Rodogor от 29 Февраля 2016, 16:17:14
а черт, не могу сделать изменений..
несмотря на то, что я убрала из контента %webforms add(138)%, форма все равно вызывается, но свой мод не подключился...

Даю подсказку -

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

Сдаётся мне, что понимание XSLT ещё не появилось. :)
Попробуйте разобраться зачем именно нужен выделенный "элемент" и получиться ли его увидеть, если udata://webforms/add/138 выполнить в адресной строке


Название: Re: Своя форма отправки заявки
Отправлено: Sumrakrnd от 29 Февраля 2016, 16:30:55
Ну грубо говоря, он приписывает вывод информации на странице с данным id?
хотя еще надо было бы тогда прописать result, да?

Но для веб формы походу это не применимо, так?

нужно больше времени, при том спокойного для полного понимания Т___Т

Получается у меня сейчас вызывает мою форму вот это блок:
	<xsl:template match="udata[@module = 'webforms'][@method = 'add']">
<form class="form form-sign" method="post" action="{$lang-prefix}/webforms/send/" onsubmit="site.forms.data.save(this); return site.forms.errors.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>

И я правильно поняла вот так надо прописать mode?
	<xsl:template match="udata[@module = 'webforms'][@method = 'add']" mode="initial_reception" >
<form method="post" action="{$lang-prefix}/webforms/send/" onsubmit="site.forms.data.save(this); return site.forms.errors.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']" mode="initial_reception" >
<xsl:apply-templates select="document('udata://webforms/add/138')/udata" mode="initial_reception"/>
</xsl:template>

но в этом блоке изменения на сайте не отражаются (честно, сперва думала сложность в том, что форма в сплывающем окне)
Название: Re: Своя форма отправки заявки
Отправлено: Rodogor от 29 Февраля 2016, 16:45:19
1. Вызов шаблона.


<xsl:template match="...."/> - описывает шаблон,
<xsl:apply-templates select="... /> - "вызывает" шаблон.



Нужно найти точку вызова шаблона и удостовериться, что это именно она и только потом уже переходить к редактированию шаблона. К примеру, можно обрамить её какими-нибудь символами, что бы понять, что выводится. Всё, что выведется внутри этих символов - результат работы шаблона.


|<xsl:apply-templates select="document('udata://webforms/add/138')/udata" mode="initial_reception"/>|
и после этого смотреть на всё то, что выводится внутри ||

2.  ...И я правильно поняла вот так надо прописать mode?...
[b][u]это не правильно[/u][/b]
<xsl:template match="udata[@module = 'webforms'][@method = 'add']" mode="initial_reception" >
<xsl:apply-templates select="document('udata://webforms/add/138')/udata" mode="initial_reception"/>
</xsl:template>

Это будет зацикленный код, тот самый "бесконечный цикл".

Нужно так, заодно добавим метку, что бы было видно, что "заработало":

<xsl:template match="udata[@module = 'webforms'][@method = 'add']" mode="initial_reception" >
<form method="post" action="{$lang-prefix}/webforms/send/" onsubmit="site.forms.data.save(this); return site.forms.errors.check(this);" enctype="multipart/form-data">
[b]<b>!!!! НАКОНЕЦ-ТО ЗАРАБОТАЛО!!!</b>[/b]
<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:apply-templates select="document('udata://webforms/add/138')/udata"  mode="initial_reception"/>
Название: Re: Своя форма отправки заявки
Отправлено: Sumrakrnd от 29 Февраля 2016, 17:05:39
аааааа.....
Я не про тот вызов подумала, думала что вы только про содержимое в add говорите.
Почему сознание не поняло про какой именно вызов говориться ><

Блин, глупо-то как -_-"

Тогда остается только вопрос с fieldset...

Два дня вожусь с xslt и мозги уже просто пухнут
Название: Re: Своя форма отправки заявки
Отправлено: Sumrakrnd от 29 Февраля 2016, 17:16:34
И еще такой вопрос, я первый раз программирую форму...
Если в сплывающем окне две вкладки с двумя формами, то лучше делать два разных <form>...</form>, так?
Название: Re: Своя форма отправки заявки
Отправлено: Rodogor от 29 Февраля 2016, 17:19:38
И еще такой вопрос, я первый раз программирую форму...
Если в сплывающем окне две вкладки с двумя формами, то лучше делать два разных <form>...</form>, так?
Если отправить одну форму - то отправятся только данные, находящиеся внутри неё, если не предусмотреть заранее на JS/JQUERY другой вариант, когда данные из всех форм собираются вместе и отправляются.

Так что если это реально две разные формы - лучше делать две разные формы, а если это вкладки внутри формы - лучше делать одну форму и в ней вкладки.
Название: Re: Своя форма отправки заявки
Отправлено: Sumrakrnd от 29 Февраля 2016, 17:46:45
Понятно, тогда переделать надо

Так что делать, если в xslt в одном fieldset создается одна пара из input и  label. А если их в fieldset надо сделать несколько пар и при том label или input тоже могут нести свой класс, а не только fieldset
Для примера:
							<fieldset class="one-line">
<label>E-mail</label>
<input name="" type="text" required="required" placeholder="Адрес электронной почты" />
<label class="tel">Телефон</label>
<input name="" type="text" required="required" placeholder="Контактный телефон" />
</fieldset>
<fieldset>
<label>Отделение</label>
<div class="stylized_select">
<select name="" onchange="this.parentNode.getElementsByTagName('input')[0].value = this.options[this.selectedIndex].innerHTML;">
<option value="1">Отделение</option>
<option value="2">Отделение</option>
<option value="3">Отделение</option>
<option value="4">Отделение</option>
</select>
<div class="input_wrapper">
<input type="text" name="noname" value="" />
</div>
</div>
</fieldset>
<fieldset>
<label class="data_text">Дата и время</label>
<input type="text" id="datepicker" name="" placeholder="3 декабря 2015" class="data"/>
<input type="text" name="amount-time" id="amount-time1" class="time with" value="12:00" />
<div id="slider-time" class="time-runner"></div>
<input type="text" name="amount-time" id="amount-time2" class="time to" value="18:30" />
</fieldset>

Или это каждый fieldset описывать с разными mode? Но это сколько ж строк в итоге будет О_О
вот почему для не знакомого с этим всем человеку, достался такой сложный сайт для первого раза-_-"
Название: Re: Своя форма отправки заявки
Отправлено: Sumrakrnd от 01 Марта 2016, 13:42:38
Нашла вот такой пример. Можете ответить на комментарии в коде, я просто многое не поняла...
  <xsl:template match="/">	
<xsl:apply-templates select="document('udata://webforms/add/127')/udata" mode="onlineWebform"/>  <!-- тут идет вывод формы -->
  </xsl:template>
  <xsl:template match="udata[@module = 'webforms'][@method = 'add']" mode="onlineWebform">
        <p class="req">* Поля, обязательные для заполнения</p>
        <form id="full_form" method="post"  action="/webforms/send/" enctype="multipart/form-data">
            <fieldset>
                <input type="hidden" name="system_email_to" value="572"/> <!-- это id адреса -->
                <input type="hidden" name="system_form_id" value="{@form_id}"/>  <!--  Что это за id должен быть?-->
                <input type="hidden" name="ref_onsuccess" value="/webforms/posted/"/> <!-- Как поняла это какой-то стандартный вывод? Просто в папке webforms в файле common все include закомментированы -->
                <xsl:apply-templates select=".//group" mode="form-group"/> <!--скажем так, здесь идет вывод полей так? -->

                <xsl:apply-templates select="document('udata://system/captcha')/udata[url]" mode="cap_cont1"/>
                <input type="submit" value="Отправить" class="btn lightRed sendMessage"/>
                <div style="clear:both"></div>
            </fieldset>
        </form>
    </xsl:template>

    <xsl:template match="group" mode="form-group">
        <xsl:variable name="name" select="@name"/>
        <div class="{$name}"> <!-- получается он просто вызывает сами блоки формы, которые созданы в обратной связи? -->
            <h4> <xsl:value-of select="@title"/> </h4>
            <xsl:apply-templates select=".//field" mode="fields-label"/> <!-- как посмотреть xml (?) чтобы увидеть field -->
        </div>
        <div style="clear: both"></div>
    </xsl:template>

    <xsl:template match="field[@type = 'relation']" mode="fields-label">
        <label>
            <xsl:value-of select="@title"/>
            <select name="{@input_name}">
                <option value="577">  <xsl:value-of select=".//item[@id=577]" />  </option>
                <option value="578">  <xsl:value-of select=".//item[@id=578]" />  </option>
                <option value="579">  <xsl:value-of select=".//item[@id=579]" />  </option>
                <option value="1014">  <xsl:value-of select=".//item[@id=1014]" />  </option>
                <option value="1015">  <xsl:value-of select=".//item[@id=1015]" />  </option>
                <option value="1016">  <xsl:value-of select=".//item[@id=1016]" />  </option>


            </select>
        </label>
    </xsl:template>

<!-- а вот отсюда и дальше не пойму, один и тот же мод с вызывом разных типов полей, так?
Тогда что такое field в принципе?
и получается там где был первый вызов fields-label будут подставляться по порядку все вызванный ниже блоки?-->
    <xsl:template match="field[@type = 'string']" mode="fields-label">
        <label>
            <xsl:value-of select="@title"/>
            <input  name="{@input_name}"  type="text"/>
        </label>
    </xsl:template>

    <xsl:template match="field[@type = 'text']" mode="fields-label">
        <label class="textArea"><span><xsl:value-of select="@title"/></span> <textarea  rows="3" cols="20" name="{@input_name}" /></label>
    </xsl:template>

    <xsl:template match="field[@type = 'date']" mode="fields-label">
        <label><xsl:value-of select="@title"/> <input  name="{@input_name}"  type="date"/></label>
    </xsl:template>

    <xsl:template match="field[@type = 'boolean']" mode="fields-label">
        <label> <input  name="{@input_name}"  type="checkbox"/>  &#160;<xsl:value-of select="@title"/>
            <xsl:if test="@tip">
            &#160;<span>(<xsl:value-of select="@tip"/>)</span>
            </xsl:if>
       </label>
</xsl:template>


    <xsl:template match="field[@type = 'file' or @type = 'img_file' or @type = 'swf_file' or @type = 'video_file']" mode="fields-label">
        <div class="file_upload">
            <input type="file" name="{@input_name}" id="{@input_name}_hidden" class="upload_hidden"  onchange="document.getElementById('{@name}_visible').innerHTML  = this.value;"/>
            <span class="button" onclick="document.getElementById('{@input_name}_hidden').click();" >Выберите файл</span>
            <span  class="upload_visible"  id='{@name}_visible'>Файл не выбран</span>
        </div>
    </xsl:template>



    <xsl:template match="field[@required = 'required']" mode="fields-label">
        <label class="required"><xsl:value-of select="@title"/><span> *</span> <input  name="{@input_name}"  type="text" required="required"/></label>
    </xsl:template>


Название: Re: Своя форма отправки заявки
Отправлено: aghigay от 01 Марта 2016, 14:41:02
system_form_id - это system (системный) form (формы) id (идентификатор) - фактически ID формы. В случае примера - 127

ref_onsuccess - это переход на какую страницу делать в случае успешной отправки формы. Можно на /webforms/posted/ - как тут, а можно передать туда какой-то параметр или еще что-то и понимать с какой формы пришел пользователь. Можно указать реально существующую страницу.

<xsl:apply-templates select=".//group" mode="form-group"/> - это вывод всех групп (то есть секций с тегом group) по шаблону с режимом form-group

Вообще говоря apply-templates - это по-русски "применить шаблоны". select говорит к чему именно нужно применить. А mode говорит об особенностях шаблона. Например, к одному и тому же тегу могут применяться разные шаблоны в зависимости от ситуации

Название: Re: Своя форма отправки заявки
Отправлено: Sumrakrnd от 01 Марта 2016, 16:41:06
Если я уберу fieldset и поставлю вместо div, то я получается внутри fieldset будет несколько input/label, так?
Грубо говоря группы являются fieldset, так?
Вот так, я вопросы опять же написала в комментариях кода:
	<xsl:template match="udata[@module = 'webforms'][@method = 'add']" mode="onlineWebform">
        <p class="req">* Поля, обязательные для заполнения</p>
        <form id="full_form" method="post"  action="/webforms/send/" enctype="multipart/form-data">
<input type="hidden" name="system_email_to" value="572"/> <
<input type="hidden" name="system_form_id" value="{@form_id}"/>
<input type="hidden" name="ref_onsuccess" value="/webforms/posted/"/>
<xsl:apply-templates select=".//group" mode="form-group"/>

<xsl:apply-templates select="document('udata://system/captcha')/udata[url]" mode="cap_cont1"/> <!-- сюда ж можно поставить reCAPTCHA? -->
<input type="submit" value="Отправить" class="btn lightRed sendMessage"/>
        </form>
    </xsl:template>

    <xsl:template match="group" mode="form-group">
        <xsl:variable name="name" select="@name"/>
        <fieldset class="{$name}">
            <xsl:apply-templates select=".//field" mode="fields-label"/>
        </fieldset>
    </xsl:template>

    <xsl:template match="field[@type = 'string']" mode="fields-label">
        <label><xsl:value-of select="@title"/></label>
        <input  name="{@input_name}"  type="text"/>
    </xsl:template>
<!-- можно так прописывать класс? Но получается надо менять мод -->
<xsl:template match="field[@type = 'string']" mode="fields-label">
        <label class="tel"><xsl:value-of select="@title"/></label>
        <input  name="{@input_name}"  type="text"/>
    </xsl:template>

<!-- вопрос обязательны ли эти id в option, если в к select будет привязываться справочник через админку?
вот так прописать можно:
<xsl:template match="field[@type = 'relation']" mode="fields-label">
<label><xsl:value-of select="@title"/></label>
<select name="{@input_name}">
<xsl:apply-templates select="item" mode="form-select"/>
</select>
</xsl:template>
<xsl:template match="item" mode="form-select">
<option value="{@id}">
<xsl:value-of select="." />
</option>
</xsl:template>
-->
    <xsl:template match="field[@type = 'relation']" mode="fields-label">  <!-- Кстати, а как посмотреть тип данных? -->
<label><xsl:value-of select="@title"/></label>
            <select name="{@input_name}">
                <option value="577">  <xsl:value-of select=".//item[@id=577]" />  </option>
                <option value="578">  <xsl:value-of select=".//item[@id=578]" />  </option>
                <option value="579">  <xsl:value-of select=".//item[@id=579]" />  </option>
                <option value="1014">  <xsl:value-of select=".//item[@id=1014]" />  </option>
                <option value="1015">  <xsl:value-of select=".//item[@id=1015]" />  </option>
                <option value="1016">  <xsl:value-of select=".//item[@id=1016]" />  </option>
            </select>
    </xsl:template>

<!--ии... вот тут произошло зависание
как это должно выглядить?  Т_Т А то тут классы и input и label есть, а так же есть id
-->
<fieldset>
<label class="data_text">Дата и время</label>
<input type="text" id="datepicker_1" name="" placeholder="3 декабря 2015" class="data"/>
<input type="text" name="amount-time" id="amount-time1" class="time with" value="12:00" />
<div id="slider-time" class="time-runner"></div>
<input type="text" name="amount-time" id="amount-time2" class="time to" value="18:30" />
</fieldset>
Название: Re: Своя форма отправки заявки
Отправлено: aghigay от 01 Марта 2016, 16:54:41
Группы не являются fieldset.

Вот этот шаблон говорит:

 <xsl:template match="group" mode="form-group"> <!-- Каждая группа по режиму form-group выводится так: -->
        <xsl:variable name="name" select="@name"/> <!-- определяем переменную $name как аттрибут(@) группы с названием name -->
        <fieldset class="{$name}"> <!-- выводим html тег fieldset с классом, название которого берем из переменной $name-->
            <xsl:apply-templates select=".//field" mode="fields-label"/> <!-- каждое поле (field) внутри текущей группы (.) с любым уровнем вложенности (//) выводить по режиму "fields-label" -->
        </fieldset> <!-- закрываем html тег -->
    </xsl:template>

Я очень рекомендую почитать про xslt или взять частные уроки, может консультации, так как, если я правильно понимаю, уровень у вас - начинающий. Без базовых знаний будет сложно быстро двигаться в этой области.
Название: Re: Своя форма отправки заявки
Отправлено: Sumrakrnd от 01 Марта 2016, 17:36:46
Да я бы с удовольствием, но проблема в том, что времени нет, сайт сделать надо в ближайшее время, вот и разбираюсь на ходу....
Сейчас я знаю в каком направление изучать xslt, не стой стороны показал изучение мой предшественник >< если смотреть он мне ничего и не объяснил получается
Да и было это меньше половины дня =_="

Я вроде как понимаю, но до конца не понимаю как происходят, скажем так, вызовы разных ф-ций, типов, данных и т.д.

Вот простую форму я поняла как вызвать, но как сделать эту часть формы, если стоит такая жесткая привязка по блокам:
 - Здесь вызов календаря
 - И с помощью ползунка выбирается время с и до.

В верстке блок выглядит так
В Umi это группа с тремя полями и типом Строка.

	<fieldset>
<label class="data_text">Дата и время</label>
<input type="text" id="datepicker_1" name="" placeholder="3 декабря 2015" class="data"/>
<input type="text" name="amount-time" id="amount-time1" class="time with" value="12:00" />
<div id="slider-time" class="time-runner"></div>
<input type="text" name="amount-time" id="amount-time2" class="time to" value="18:30" />
</fieldset>
Название: Re: Своя форма отправки заявки
Отправлено: aghigay от 01 Марта 2016, 17:40:01
http://ctrl-f5.ru/xslt/
Название: Re: Своя форма отправки заявки
Отправлено: Sumrakrnd от 01 Марта 2016, 18:14:23
Как вызвать xml формы? На него никак вопрос не получу

т.е. мне где то надо вписать <xsl:key name="id" match="webforms" use="@id"/>
а потом прописать так же где-то (ну грубо говоря так)
<xsl:apply-templates select="document('udata://webforms/add/138')/udata,  key('time', 'data_text')" mode="initial_reception"/>
Название: Re: Своя форма отправки заявки
Отправлено: aghigay от 01 Марта 2016, 18:15:28
Что значит как вызывать? XSLT - это не процедурный язык :-)
Название: Re: Своя форма отправки заявки
Отправлено: Sumrakrnd от 01 Марта 2016, 18:42:08
 ну например
test.ru/.xml или test.ru/upage/34

можно как-то так "посмотреть" форму?

И не ответили, правильно ли я поняла, если взять за основу мой кусочек формы, что я давала как пример?
Название: Re: Своя форма отправки заявки
Отправлено: aghigay от 01 Марта 2016, 21:04:42
Ну блииииииин. Ладно, длинным путем.

Как вывести форму на сайте?
- для этого есть специальный скрипт http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/obratnaya_svyaz/webforms_add/

Как он описан в доке при работе с XSLT?
- udata://webforms/add/832

Что такое 832?
- 832 - это идентификатор формы в системе

Как получить идентификатор формы в системе?
- в модуле "Обратная связь" административной зоны сайта на вкладке Формы (http://test.ru/admin/webforms/forms/) кликнуть на нужную форму. В строке браузера появится адрес http://test.ru/admin/webforms/form_edit/832/. Вот и он, наш идентификатор.

Как посмотреть что же именно отдает webforms/add?
- Вот тут, в документации написано что именно отдает этот макрос http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/obratnaya_svyaz/webforms_add/#xslt-templating&sel=21:67,21:167

А если я не верю документации?
- Нужно обратиться по адресу: http://test.ru/udata/webforms/add/832

Есть ли еще какие-то способы как можно посмотреть результат работы макроса?
- Да, в коде можно прописать <xsl:copy-of select="document('udata://webforms/add/832')" />

А если у меня рабочий сайт и там тусят пользователи?
- Тогда лучше всего будет закрыть блок от просмотра <div style="display:none;"><xsl:copy-of select="document('udata://webforms/add/832')" /></div>

Но ведь тогда и я его не увижу?
- Для этого в нормальных браузерах есть режим разработчика. В частности, в Google Chrome можно нажать правой клавишей в произвольном месте страницы и выбрать пункт просмотреть код. Появится панель с исходным html кодом страницы.
Название: Re: Своя форма отправки заявки
Отправлено: Sumrakrnd от 01 Марта 2016, 23:09:02
Ну вообще-то основная часть вопроса была в том, как вывести очень не стандартную группу label/input, в которой у каждого label/input есть свой id и class
Я в теме не раз приводила этот пример выбора даты и выбора времени с помощью ползунка, время с и до:
	<fieldset>
<label class="data_text">Дата и время</label>
<input type="text" id="datepicker_1" name="" placeholder="3 декабря 2015" class="data"/>
<input type="text" name="amount-time" id="amount-time1" class="time with" value="12:00" />
<div id="slider-time" class="time-runner"></div>
<input type="text" name="amount-time" id="amount-time2" class="time to" value="18:30" />
</fieldset>

Так же верстка формы тоже приведена, для представления поля и какая разбивка.
Хоть ей и так придется переделывать внутренние блоки для группировки полей -_-" , но на наличие полей это не повлияет.


А вот про copy-of не подумала, просто как-то забыла про него ><
Он очень даже подойдет для вывода структуры формы.
Название: Re: Своя форма отправки заявки
Отправлено: aghigay от 01 Марта 2016, 23:29:31
Женщины сегодня меня видимо сговорились вымораживать.

Я вам крайне настоятельно рекомендую отправиться читать мануалы, пройти курс, пройти обучение у наставника или сделать что-то, что повысит ваши базовые знания. То, что я прочел только что говорит о том, что вы понятия не имеете что делаете. И речь вовсе не о том, что вы не знаете как писать команды и вызовы. Речь о том, что у вас в голове отсутствует основное понятие о том, что вы делаете. При таком подходе вы будете еще очень долго говорить, что вам некогда читать инструкции, но все так же быть в неведение относительно элементарных вопросов.

А все темы, которые вы тут поднимали за последние несколько дней - это реальные элементарные вопросы.

Если брать, к примеру, php, то в терминах php вы спрашиваете: а как пользоваться командой echo? А я могу командой echo вывести цифру? Ну, например,  2? А как это написать? А могу вывести переменную? А как это написать? А могу вывести другую переменную? А почему когда я вывожу другую переменную - выводится другая переменная? А почему у инструкции echo есть несколько параметров? А когда я меняю второй параметр - почему он выводится? И все в таком духе. Ну это реально никуда не годиться.

Основы, основы и еще раз основы.

И я это рекомендую не потому, что мне влом писать вам ответы - отнюдь.

Я это рекомендую потому, что потратив 6-8 часов (с инструктором - 1-2) вы будете понимать на 80% больше вопросов, чем сейчас. И вы настолько продвинитесь, что сами удивитесь. И примерно 50% вопросов у вас отпадет сама собой.

PS: не используйте инструкцию copy-of если не понимаете как она работает. Вы рискуете, как минимум, получить неработающий код, а как максимум - уязвимость на сайте.
Название: Re: Своя форма отправки заявки
Отправлено: Sumrakrnd от 02 Марта 2016, 15:17:56
Вообще самое интересное, что мое решение я нашла совершенно не в разделах связанных с формой О_о
Точнее в темах посвященных "классическим" фильтрам каталогов. Точнее этой  Фильтр цены с бегунком (http://wiki.umisoft.ru/%D0%A4%D0%B8%D0%BB%D1%8C%D1%82%D1%80_%D1%86%D0%B5%D0%BD%D1%8B_%D1%81_%D0%B1%D0%B5%D0%B3%D1%83%D0%BD%D0%BA%D0%BE%D0%BC)

Copy-of очень сильно помог, чтобы быстро смотреть все нужные мне название (сайт находится локально )

Но почему-то не показывается капча, хотя я ничего не трогала, только обернула в fieldset (без него она тоже не отображается)

	<!-- *** Первичный и вторичный ***-->
<xsl:template match="udata[@module = 'webforms'][@method = 'add']" mode="initial_reception" >
<form class="form form-sign" method="post" action="{$lang-prefix}/webforms/send/" onsubmit="site.forms.data.save(this); return site.forms.errors.check(this);" enctype="multipart/form-data">
<hr noshade="noshade" />
<fieldset>
<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}/" />

</fieldset>
<hr noshade="noshade" />
<fieldset>
<xsl:apply-templates select="document('udata://system/captcha/')/udata" />
</fieldset>
<fieldset>
<input type="submit" class="button" value="Записаться" />
</fieldset>
</form>
</xsl:template>
<!-- *** /Первичный и вторичный прием ***-->

<!-- Связь -->
<xsl:template match="group[@name = 'svyaz']" mode="webforms">
<div class="one-line">
<xsl:apply-templates select="field" mode="webforms-one" />
</div>
</xsl:template>

<xsl:template match="field" mode="webforms-one">
<label>
<xsl:apply-templates select="." mode="webforms_required" />
<xsl:value-of select="@title" /><xsl:text>:</xsl:text>
</label>
<xsl:apply-templates select="." mode="webforms_input_type" />
</xsl:template>

<xsl:template match="field[@name = 'telefon']" mode="webforms-one">
<label class="tel">
<xsl:apply-templates select="." mode="webforms_required" />
<xsl:value-of select="@title" /><xsl:text>:</xsl:text>
</label>
<xsl:apply-templates select="." mode="webforms_input_type" />
</xsl:template>
<!-- /Связь -->

<!-- Отделение -->
<xsl:template match="group[@name = 'otdelenie']" mode="webforms">
<div>
<xsl:apply-templates select="field" mode="webforms-otdelenie" />
</div>
</xsl:template>

<xsl:template match="field" mode="webforms-otdelenie">
<label>
<xsl:apply-templates select="." mode="webforms_required" />
<xsl:value-of select="@title" /><xsl:text>:</xsl:text>
</label>
<xsl:apply-templates select="." mode="webforms_input_type" />
</xsl:template>

<xsl:template match="field[@title = 'Отделение']" mode="webforms_input_type">
<div class="stylized_select">
<select name="{@input_name}" onchange="this.parentNode.getElementsByTagName('input')[0].value = this.options[this.selectedIndex].innerHTML;">
<xsl:if test="@multiple">
<xsl:attribute name="multiple">
<xsl:text>multiple</xsl:text>
</xsl:attribute>
</xsl:if>
<option value=""></option>
<xsl:apply-templates select="values/item" mode="webforms_input_type" />
</select>
<div class="input_wrapper">
<input type="text" name="noname" value="" />
</div>
</div>
</xsl:template>
<!-- /Отделение -->

<!-- Дата и время -->
<xsl:template match="group[@name = 'data_i_vremya']" mode="webforms">
<div>
<xsl:apply-templates select="field" mode="webforms-data" />
</div>
</xsl:template>

<xsl:template match="field[@name = 'data']" mode="webforms-data">
<label class="data_text">
<xsl:apply-templates select="." mode="webforms_required" />
<xsl:value-of select="@title" /><xsl:text>:</xsl:text>
</label>
<xsl:apply-templates select="." mode="webforms_input_type" />
</xsl:template>

<xsl:template match="field" mode="webforms-data">
<xsl:apply-templates select="." mode="webforms_required" />
<xsl:apply-templates select="." mode="webforms_input_type" />
</xsl:template>

<xsl:template match="field[@name = 'data']" mode="webforms_input_type">
<input type="text" name="{@input_name}" class="textinputs data" id="datepicker_1"/>
</xsl:template>

<xsl:template match="field[@name = 'time_with']" mode="webforms_input_type">
<input type="text" name="{@input_name}" class="textinputs time with"  id="amount-time1" value="12:00" />
<div id="slider-time" class="time-runner"></div>
</xsl:template>

<xsl:template match="field[@name = 'time_to']" mode="webforms_input_type">
<input type="text" name="{@input_name}" class="textinputs time to"  id="amount-time2" value="20:00" />
</xsl:template>
<!-- /Дата и время -->

А насчет основ, скажем так, я может и знаю что-то, но вопрос в том как это применить не имею представления в тех или иных случаях.
Мой предшественник(аля наставник) потратив пол дня объяснений о umi (что самое интересное, того что мне сейчас очень нужно не объяснял) собрал вещи и уволился.
Я имею представление скажем о структуре запроса, даже представляю что с чем должно быть связано, НО каким способом это должно быть связано между собой не знаю или просто не понимаю, как уже говорила, что это что-то в данном случае может быть применено.

p.s.: Мой совет, если вас  в какой-то день вымораживают женщины, то не ходите на форумы
Название: Re: Своя форма отправки заявки
Отправлено: aghigay от 02 Марта 2016, 15:21:50
Да вроде как норм результат - немного самостоятельной работы и вот уже, найден ответ :-)

А капча может не показываться в том случае, если один раз уже была введена. Юми запоминает что человек не работ и больше её не показывает.

Простой способ проверить это - открыть сайт в окне инкогнито.
Название: Re: Своя форма отправки заявки
Отправлено: Sumrakrnd от 02 Марта 2016, 16:26:53
Так искала я другой ответ -_-"

А если мне нужна капча чтобы была всегда?
Кстати, код ReCaptcha гугловской устанавливается просто на место капчи umi, так?
Название: Re: Своя форма отправки заявки
Отправлено: aghigay от 02 Марта 2016, 16:33:40
ReCaptcha не настраивал. Чтобы всегда была капча либо нужно открывать и закрывать окно инкогнито, либо убирать из куков данные, что капча пользователем введена
Название: Re: Своя форма отправки заявки
Отправлено: Sumrakrnd от 02 Марта 2016, 18:11:27
опа.. сделала форму на сайте, но когда я отправляю письмо, меня отправляется на какую-то не понятную страницу...
Что отвечает за положение после отправки?
Я думаю надо сделать, чтобы просто окно закрывалось и была страница на которой открыл всплывающее окно. Возможно это?
Название: Re: Своя форма отправки заявки
Отправлено: aghigay от 02 Марта 2016, 18:16:16
Читайте мое сообщение от 01 Марта 2016, 14:41:02
Название: Re: Своя форма отправки заявки
Отправлено: Sumrakrnd от 02 Марта 2016, 19:25:16
Уииииииии.... Спасибо убралось ^_^
Думала кондратий хватит, когда такой переход случился >_<

Сейчас копаюсь с шаблонами писем, почему они такие не замороченные, в отличие от форм (((


P.S.: Можете все-таки подсказать с тем как сделать фильтр в другой теме что (это ж фильтром все таки называется)
Название: Re: Своя форма отправки заявки
Отправлено: Sumrakrnd от 02 Марта 2016, 20:16:29
Ой... тут возник вопрос
у меня есть форма
в которой есть поля имя и e-mail
И три вкладки:
- Директор
- Заместитель
- Менеджер

Во всех трех textarea поле для сообщения.
В зависимости от выбранной вкладки туда письмо и отправляется... (директору письмо в любом случае дублируется)

Это ведь получается одна форма, так?

И вот вопрос как это лучше реализовать?

Название: Re: Своя форма отправки заявки
Отправлено: Sumrakrnd от 03 Марта 2016, 11:17:17
Может вкладки сделать что-то вроде чекбоксов или радио кнопки? и тогда вкладки не нужны?
Но как привязать почту к ним?

Просто не знаю как технически это реализовывается (

Единственное что я поняла, что у вбитого адреса есть свой id, так? Но куда его привязать тогда?

Пытаюсь найти что-нибудь про это, но находит он стандартный код (
Название: Re: Своя форма отправки заявки
Отправлено: Sumrakrnd от 03 Марта 2016, 12:12:15
Вроде выговорилась, обсудила
Попробую такой метод Смена адреса для сообщений формы обратной связи в зависимости от значения поля (http://wiki.umisoft.ru/%D0%A1%D0%BC%D0%B5%D0%BD%D0%B0_%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%B0_%D0%B4%D0%BB%D1%8F_%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D0%B9_%D1%84%D0%BE%D1%80%D0%BC%D1%8B_%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D0%BE%D0%B9_%D1%81%D0%B2%D1%8F%D0%B7%D0%B8_%D0%B2_%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8_%D0%BE%D1%82_%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE%D0%BB%D1%8F)

Но вот по фильтрам тупик полный, помогите с ним: http://umihelp.ru/forum/index.php/topic,2131.0.html
Название: Re: Своя форма отправки заявки
Отправлено: Sumrakrnd от 22 Марта 2016, 14:05:44
Возник маленький вопрос.
У меня в модальном окне, есть форма обратной связи.

Вот тут она выводится:
<a href="#x" class="overlay" id="win2"></a>
       <div class="popup popup-call">
              <xsl:apply-templates select="document('udata://webforms/add/163')/udata" mode="request_call"/>
              <a class="close" title="Закрыть" href="#close"></a>
       </div>

Здесь идет запрос, надо чтобы было сообщение об успешной отправке.
Я поставила стандартный код, который был в Umi форме.
Но вот как сделать, чтобы сообщение отобразилось в том же модальном окне, что и форма?
И где надо прописывать само сообщение?

   
<xsl:template match="udata[@module = 'webforms'][@method = 'add']" mode="request_call">
        <form class="form form-call" method="post" action="{$lang-prefix}/webforms/send/"
              onsubmit="site.forms.data.save(this); return site.forms.errors.check(this);"
              enctype="multipart/form-data">
            <legend>Позвоните мне!</legend>
            <hr noshade="noshade"/>
            <fieldset>
                <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}/"/> <!-- стандартный umi -->

            </fieldset>
            <fieldset>
                <input type="submit" class="button" value="Запросить звонок"/>
            </fieldset>
        </form>
    </xsl:template>

P.S.: я нашла posted.xsl, но куда идет результат этого файла?
Название: Re: Своя форма отправки заявки
Отправлено: Sumrakrnd от 22 Марта 2016, 17:54:13
Объясните пожалуйста T_T
Название: Re: Своя форма отправки заявки
Отправлено: Sumrakrnd от 23 Марта 2016, 19:23:20
Вопрос отпал   :D