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

Автор muldyРаздел Custom макросы

Ответов: 1
Просмотров: 1000
Последний ответ 13 Сентября 2013, 11:11:59
от admin
Модуль Обратная связь - как редактировать вывод формы?

Автор poloРаздел Макросы UMI.CMS

Ответов: 6
Просмотров: 4035
Последний ответ 10 Августа 2011, 18:26:47
от admin
Подключение произвольной формы на произвольном разделе

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

Ответов: 6
Просмотров: 2377
Последний ответ 27 Ноября 2011, 10:23:16
от admin
Передача значений из одной формы в другую

Автор ivan23Раздел Шаблоны TPL

Ответов: 5
Просмотров: 4174
Последний ответ 10 Января 2013, 09:49:34
от admin
Определить id формы на posted странице

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

Ответов: 2
Просмотров: 1556
Последний ответ 08 Декабря 2011, 21:52:01
от DZHETIGAPA

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

*

Veinard

  • *
  • 30
  • +0/-0
    • Просмотр профиля
Всем добрый день!
Подскажите с настройкой оформления заказа в один шаг.
Пользуюсь макросами из последней версии Юми, стандартными. Получилось вывести все формы. Но при нажатии на кнопку "Submit" происходит редирект на страницу мойсайт.ру/emarket/saveinfo/ на которой получаю ошибку об отсутствии страницы. Не могу понять что сделал не так :(, подскажите пожалуйста.


В файле purchasing_one_step.xsl:
	
<xsl:template match="result[@module = 'emarket' and @method = 'purchasing_one_step']">
        <xsl:apply-templates select="document('udata://emarket/purchasing_one_step')/udata" />
</xsl:template>

Далее там-же
<xsl:template match="udata[@module = 'emarket'][@method='purchasing_one_step']">
<!-- Запускаем ЭКШЕН SAVEINFO -->
<form method="post" action="{$lang-prefix}/emarket/saveinfo/">
<xsl:apply-templates select="onestep/customer" mode="personal"/>
<xsl:apply-templates select="onestep/delivery_choose" mode="delivery_choose"/>
<xsl:apply-templates select="onestep/delivery" mode="delivery_adres"/>
<xsl:apply-templates select="onestep/payment" mode="payment_choose"/>
<!--ТУТ ЕЩЕ КНОПКА -->
.....
</form>
</xsl:template>

Вывод форм делаю в шаблонах ниже примерно так:
<!-- Шаблон персональных данных -->	
<xsl:template match="customer" mode="personal">
<!-- Всяких хтмл -->
<fieldset class="site_form purchase_fields" >
<div class="customer onestep">
<xsl:apply-templates select="document(concat('udata://data/getEditForm/', @id))/udata" />
</div>
</fieldset>
<!-- Всяких хтмл -->
</xsl:template>

Аналогично - остальные:
<fieldset class="site_form purchase_fields" >
<div class="delivery_choose onestep">
<xsl:apply-templates select="items" mode="delivery-choose" />
</div>
</fieldset>

<fieldset class="site_form purchase_fields" >
<div class="delivery_adr onestep">
<xsl:apply-templates select="document(@xlink:href)/udata" />
</div>
</fieldset>

<fieldset class="site_form purchase_fields" >
<div class="payment onestep">
<xsl:apply-templates select="items/item" mode="payment_one_step" />
</div>
</fieldset>


Вот вроде-бы все верно сделал, но не работает, не пойму почему. Может, где-то какую-то глобальную переменную забыл, или записал что-то не верно?

*

admin

  • *****
  • 2419
  • +172/-1
    • Просмотр профиля
Re:Обработка формы в макросе saveinfo
« Ответ #1 : 22 Июня 2014, 19:15:33 »
Цитировать
происходит редирект на страницу мойсайт.ру/emarket/saveinfo/ на которой получаю ошибку об отсутствии страницы

это похоже на то, что у вас нет макроса saveinfo. Посмотрите наличие данной функции в файле /classes/modules/emarket/__purchasing.php

Если она есть, проверьте есть ли права на неё в /classes/modules/emarket/permissions.php

Если там все есть, пишите, будем думать дальше.

*

Veinard

  • *
  • 30
  • +0/-0
    • Просмотр профиля
Re:Обработка формы в макросе saveinfo
« Ответ #2 : 22 Июня 2014, 21:05:54 »
Цитировать
происходит редирект на страницу мойсайт.ру/emarket/saveinfo/ на которой получаю ошибку об отсутствии страницы

это похоже на то, что у вас нет макроса saveinfo. Посмотрите наличие данной функции в файле /classes/modules/emarket/__purchasing.php

Если она есть, проверьте есть ли права на неё в /classes/modules/emarket/permissions.php

Если там все есть, пишите, будем думать дальше.

Функция есть, но описана в файле "__purchasing_one_step.php", разрешение тоже прописано следующим образом:
<?php
$permissions = array(
'purchasing' => array(
'price', .......... 'purchasing_one_step', 'saveinfo',
),

..............

*

admin

  • *****
  • 2419
  • +172/-1
    • Просмотр профиля
Re:Обработка формы в макросе saveinfo
« Ответ #3 : 23 Июня 2014, 23:29:38 »
Но при нажатии на кнопку "Submit" происходит редирект на страницу мойсайт.ру/emarket/saveinfo/ на которой получаю ошибку об отсутствии страницы.

а как выглядит сообщение об отсутствии страницы? umi'вская 404 страница? или что-то другое?

*

Veinard

  • *
  • 30
  • +0/-0
    • Просмотр профиля
Re:Обработка формы в макросе saveinfo
« Ответ #4 : 24 Июня 2014, 02:46:22 »
Но при нажатии на кнопку "Submit" происходит редирект на страницу мойсайт.ру/emarket/saveinfo/ на которой получаю ошибку об отсутствии страницы.


а как выглядит сообщение об отсутствии страницы? umi'вская 404 страница? или что-то другое?
:-\

Выглядит как отсутствующая страница на моем сайте страница.
upage/emarket/saveinfo
<udata xmlns:xlink="http://www.w3.org/TR/xlink" generation-time="0.006567">
<error code="not-found">Не найдено</error>
</udata>

« Последнее редактирование: 24 Июня 2014, 21:46:42 от Veinard »

*

admin

  • *****
  • 2419
  • +172/-1
    • Просмотр профиля
Re:Обработка формы в макросе saveinfo
« Ответ #5 : 24 Июня 2014, 22:12:50 »
а почему вы проверяете upage/emarket/saveinfo ? upage это же протокол для страниц существующих в структуре, а у вас страница /emarket/saveinfo это выполнения макроса.


*

Veinard

  • *
  • 30
  • +0/-0
    • Просмотр профиля
Re:Обработка формы в макросе saveinfo
« Ответ #6 : 24 Июня 2014, 23:48:45 »
а почему вы проверяете upage/emarket/saveinfo ?

На всякий случай %). Скриншот с тем что происходит - тоже прикрепил =)

*

admin

  • *****
  • 2419
  • +172/-1
    • Просмотр профиля
Re:Обработка формы в макросе saveinfo
« Ответ #7 : 25 Июня 2014, 09:34:31 »
В общем найдена проблема. Как это не банально, но у вас макрос в коде называется saveInfo, а не saveinfo (разница в одной заглавной букве). Если в xslt шаблоне с формой оформления в один шаг, поменять action с
action="{$lang-prefix}/emarket/saveinfo/"
на
action="{$lang-prefix}/emarket/saveInfo/"

все заработает.

*

Veinard

  • *
  • 30
  • +0/-0
    • Просмотр профиля
Re:Обработка формы в макросе saveinfo
« Ответ #8 : 25 Июня 2014, 10:25:28 »
Ураааа! Спасибо! Сегодня проверю :).

PS
Кстати, в разрешениях он ведь тоже назван saveinfo с маленькой буквы. Может лучше в коде поменять на маленькую букву? %).

*

admin

  • *****
  • 2419
  • +172/-1
    • Просмотр профиля
Re:Обработка формы в макросе saveinfo
« Ответ #9 : 25 Июня 2014, 10:41:00 »
если он изначально был с большой, то при обновлении системы он снова станет с большой, так что стоит ли?

*

Veinard

  • *
  • 30
  • +0/-0
    • Просмотр профиля
Re:Обработка формы в макросе saveinfo
« Ответ #10 : 26 Июня 2014, 15:24:59 »
Намек понял =). Спасибо. В документации тоже с большой буквы, я просто не обратил внимания значит %).