Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
форма создания новой темы для модуля форум

Автор izen29Раздел Шаблоны XSLT

Ответов: 4
Просмотров: 3990
Последний ответ 13 Февраля 2013, 22:49:13
от Rodogor
Форма добавления сообщения в топик форума

Автор vslstdРаздел Шаблоны XSLT

Ответов: 3
Просмотров: 3263
Последний ответ 03 Сентября 2011, 14:46:03
от admin
Форма обратной связи в версии Start

Автор BabajkaРаздел Шаблоны XSLT

Ответов: 2
Просмотров: 17579
Последний ответ 15 Января 2013, 15:04:33
от PHOENIX-75
Форма добавления комментариев (xslt)

Автор wolfmanРаздел Шаблоны XSLT

Ответов: 23
Просмотров: 18646
Последний ответ 30 Июля 2012, 22:54:24
от BaceH
пользовательская форма вопроса для модуля faq

Автор izen29Раздел Шаблоны XSLT

Ответов: 5
Просмотров: 3788
Последний ответ 16 Февраля 2013, 13:27:15
от Rodogor

0 Пользователей и 1 Гость просматривают эту тему.

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Своя форма отправки заявки
« Ответ #15 : 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 или взять частные уроки, может консультации, так как, если я правильно понимаю, уровень у вас - начинающий. Без базовых знаний будет сложно быстро двигаться в этой области.
Мой блог http://umicms.me

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Re: Своя форма отправки заявки
« Ответ #16 : 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>

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Своя форма отправки заявки
« Ответ #17 : 01 Марта 2016, 17:40:01 »
Мой блог http://umicms.me

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Re: Своя форма отправки заявки
« Ответ #18 : 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"/>

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Своя форма отправки заявки
« Ответ #19 : 01 Марта 2016, 18:15:28 »
Что значит как вызывать? XSLT - это не процедурный язык :-)
Мой блог http://umicms.me

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Re: Своя форма отправки заявки
« Ответ #20 : 01 Марта 2016, 18:42:08 »
 ну например
test.ru/.xml или test.ru/upage/34

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

И не ответили, правильно ли я поняла, если взять за основу мой кусочек формы, что я давала как пример?

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Своя форма отправки заявки
« Ответ #21 : 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 кодом страницы.
Мой блог http://umicms.me

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Re: Своя форма отправки заявки
« Ответ #22 : 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 не подумала, просто как-то забыла про него ><
Он очень даже подойдет для вывода структуры формы.

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Своя форма отправки заявки
« Ответ #23 : 01 Марта 2016, 23:29:31 »
Женщины сегодня меня видимо сговорились вымораживать.

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

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

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

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

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

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

PS: не используйте инструкцию copy-of если не понимаете как она работает. Вы рискуете, как минимум, получить неработающий код, а как максимум - уязвимость на сайте.
Мой блог http://umicms.me

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Re: Своя форма отправки заявки
« Ответ #24 : 02 Марта 2016, 15:17:56 »
Вообще самое интересное, что мое решение я нашла совершенно не в разделах связанных с формой О_о
Точнее в темах посвященных "классическим" фильтрам каталогов. Точнее этой  Фильтр цены с бегунком

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.: Мой совет, если вас  в какой-то день вымораживают женщины, то не ходите на форумы

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Своя форма отправки заявки
« Ответ #25 : 02 Марта 2016, 15:21:50 »
Да вроде как норм результат - немного самостоятельной работы и вот уже, найден ответ :-)

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

Простой способ проверить это - открыть сайт в окне инкогнито.
Мой блог http://umicms.me

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Re: Своя форма отправки заявки
« Ответ #26 : 02 Марта 2016, 16:26:53 »
Так искала я другой ответ -_-"

А если мне нужна капча чтобы была всегда?
Кстати, код ReCaptcha гугловской устанавливается просто на место капчи umi, так?

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Своя форма отправки заявки
« Ответ #27 : 02 Марта 2016, 16:33:40 »
ReCaptcha не настраивал. Чтобы всегда была капча либо нужно открывать и закрывать окно инкогнито, либо убирать из куков данные, что капча пользователем введена
Мой блог http://umicms.me

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Re: Своя форма отправки заявки
« Ответ #28 : 02 Марта 2016, 18:11:27 »
опа.. сделала форму на сайте, но когда я отправляю письмо, меня отправляется на какую-то не понятную страницу...
Что отвечает за положение после отправки?
Я думаю надо сделать, чтобы просто окно закрывалось и была страница на которой открыл всплывающее окно. Возможно это?

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Своя форма отправки заявки
« Ответ #29 : 02 Марта 2016, 18:16:16 »
Читайте мое сообщение от 01 Марта 2016, 14:41:02
Мой блог http://umicms.me