Всем добрый день!
Подскажите с настройкой оформления заказа в один шаг.
Пользуюсь макросами из последней версии Юми, стандартными. Получилось вывести все формы. Но при нажатии на кнопку "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>
Вот вроде-бы все верно сделал, но не работает, не пойму почему. Может, где-то какую-то глобальную переменную забыл, или записал что-то не верно?
происходит редирект на страницу мойсайт.ру/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',
),
..............
Но при нажатии на кнопку "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>
(https://photos-3.dropbox.com/t/0/AACaKEBekGAV98EfonrYvD-8CAGvSQsgm89Q5zcOHh61yg/12/237617286/png/1024x768/3/1403636400/0/2/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%202014-06-24%20%D0%B2%202.33.55.png/6f2oJIB633vrDOAQKc4-C07Ppzg9iqQr1GsRzLh4Jmg)
В общем найдена проблема. Как это не банально, но у вас макрос в коде называется saveInfo, а не saveinfo (разница в одной заглавной букве). Если в xslt шаблоне с формой оформления в один шаг, поменять action с
action="{$lang-prefix}/emarket/saveinfo/"
на
action="{$lang-prefix}/emarket/saveInfo/"
все заработает.