корзина - обновление страницы
Здравствуйте.
Сейчас после оформления заказа, находясь на странице с данными о заказе, если ее обновить то заказанные товары пропадают, и выводится надпись - заказанных товаров нет. Подскажите как сделать чтобы после обновления страницы не убирался блок с товарами. Думаю если просто вставить в xsl шаблон таблицы с товарами вместо надписи - заказанных товаров нет, это будет не правильно. И чтобы письма не отправлялись после каждого обновления страницы.
И сразу еще вопрос, чтобы не создавать лишние темы.
В корзине на странице с информацией об оформленом заказе вот такая ошибка. Как исправить?
Предупреждение: DOMDocument::loadXML() [<a href='domdocument.loadxml'>domdocument.loadxml</a>]: StartTag: invalid element name in Entity, line: 169 в файле /home/httpd/vhosts/xn--72-6kcu8aqic7a8g.xn--p1ai/httpdocs/modules/xsl/processor/xslt.php (строка 39)
Сейчас после оформления заказа, находясь на странице с данными о заказе, если ее обновить то заказанные товары пропадают, и выводится надпись - заказанных товаров нет. Подскажите как сделать чтобы после обновления страницы не убирался блок с товарами. Думаю если просто вставить в xsl шаблон таблицы с товарами вместо надписи - заказанных товаров нет, это будет не правильно. И чтобы письма не отправлялись после каждого обновления страницы.
И сразу еще вопрос, чтобы не создавать лишние темы.
В корзине на странице с информацией об оформленом заказе вот такая ошибка. Как исправить?
Предупреждение: DOMDocument::loadXML() [<a href='domdocument.loadxml'>domdocument.loadxml</a>]: StartTag: invalid element name in Entity, line: 169 в файле /home/httpd/vhosts/xn--72-6kcu8aqic7a8g.xn--p1ai/httpdocs/modules/xsl/processor/xslt.php (строка 39)
Как жить после? Только лучше чем до...
bastard_ писал(а):
Не видя XSL-шаблон, никто не скажет как исправить. А так - синтаксическая ошибка при вызове тега.
bastard_ писал(а):
Специально было сделана проверка в ТДС корзины - чтобы при перезагрузке страницы повторно не оформлялся заказ.
В корзине на странице с информацией об оформленом заказе вот такая ошибка. Как исправить?
Не видя XSL-шаблон, никто не скажет как исправить. А так - синтаксическая ошибка при вызове тега.
bastard_ писал(а):
Подскажите как сделать чтобы после обновления страницы не убирался блок с товарами.
Специально было сделана проверка в ТДС корзины - чтобы при перезагрузке страницы повторно не оформлялся заказ.
Вы только что начали читать предложение, чтение которого вы уже заканчиваете.
Здравствуйте Александр!
ОплатаПриПолучении
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:hostcms="http://www.hostcms.ru/"
exclude-result-prefixes="hostcms">
<xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="utf-8" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
<xsl:decimal-format name="my" decimal-separator="." grouping-separator=" "/>
<xsl:template match="/shop">
<!-- Строка шага заказа
<ul class="shop_navigation">
<li><span>Адрес доставки</span>→</li>
<li><span>Способ доставки</span>→</li>
<li><span>Форма оплаты</span>→</li>
<li class="shop_navigation_current"><span>Данные доставки</span></li>
</ul> -->
<h1>Ваш заказ оформлен</h1>
<p>Через некоторое время с Вами свяжется наш менеджер, чтобы согласовать заказанный товар и время доставки.</p>
<xsl:apply-templates select="shop_order"/>
<xsl:choose>
<xsl:when test="count(shop_order/shop_order_item)">
<h1>Заказанные товары</h1>
<table class="shop_cart">
<tr>
<th>Товар</th>
<th>Количество</th>
<th>Цена</th>
<th>Сумма</th>
</tr>
<xsl:apply-templates select="shop_order/shop_order_item"/>
<tr class="total">
<td></td><td></td><td></td><td align="center">Итого:
<xsl:value-of select="format-number(shop_order/total_amount,'### ##0.00', 'my')"/><xsl:text> </xsl:text><xsl:value-of select="/shop/shop_order/shop_currency/name"/></td>
</tr>
</table>
</xsl:when>
<!-- <xsl:otherwise>
<p><b>Заказанных товаров нет.</b></p>
</xsl:otherwise> -->
</xsl:choose>
</xsl:template>
<!-- Шаблон вывода данных о заказе -->
<xsl:template match="shop_order">
<h1>Данные доставки</h1>
<p>
<b>ФИО:</b><xsl:text> </xsl:text><xsl:value-of select="surname"/><xsl:text> </xsl:text><xsl:value-of select="name"/><xsl:text> </xsl:text><xsl:value-of select="patronymic"/>
<xsl:if test="phone != ''">
<br /><b>Телефон:</b><xsl:text> </xsl:text><xsl:value-of select="phone"/>
</xsl:if>
<xsl:if test="email != ''">
<br /><b>E-mail:</b><xsl:text> </xsl:text><xsl:value-of select="email"/>
</xsl:if>
<xsl:if test="fax != ''">
<br /><b>Факс:</b><xsl:text> </xsl:text><xsl:value-of select="fax"/>
</xsl:if>
<xsl:variable name="location">, <xsl:value-of select="shop_country/shop_country_location/name"/></xsl:variable>
<xsl:variable name="city">, <xsl:value-of select="shop_country/shop_country_location/shop_country_location_city/name"/></xsl:variable>
<xsl:variable name="city_area">, <xsl:value-of select="shop_country/shop_country_location/shop_country_location_city/shop_country_location_city_area/name"/></xsl:variable>
<xsl:variable name="adres">, <xsl:value-of select="address"/></xsl:variable>
<br /><b>Адрес доставки:</b><xsl:text> </xsl:text><xsl:if test="postcode != ''"><xsl:value-of select="postcode"/>, </xsl:if>
<xsl:if test="shop_country/name != ''">
<xsl:value-of select="shop_country/name"/>
</xsl:if>
<xsl:if test="$location != ', '">
<xsl:value-of select="$location"/>
</xsl:if>
<xsl:if test="$city != ', '">
<xsl:value-of select="$city"/>
</xsl:if>
<xsl:if test="$city_area != ', '">
<xsl:value-of select="$city_area"/> район</xsl:if>
<xsl:if test="$adres != ', '">
<xsl:value-of select="$adres"/>
</xsl:if>
<xsl:if test="shop_delivery/name != ''">
<br /><b>Тип доставки:</b><xsl:text> </xsl:text><xsl:value-of select="shop_delivery/name"/>
</xsl:if>
<xsl:if test="description != ''">
<br /><b>Комментарий:</b><xsl:text> </xsl:text><xsl:value-of select="description"/>
</xsl:if>
<xsl:if test="shop_payment_system/name != ''">
<br /><b>Способ оплаты:</b><xsl:text> </xsl:text><xsl:value-of select="shop_payment_system/name"/>
</xsl:if>
</p>
</xsl:template>
<!-- Данные о товарах -->
<xsl:template match="shop_order/shop_order_item">
<tr align="center">
<td class="ssilki_cart">
<xsl:choose>
<xsl:when test="shop_item/url != ''">
<a href="http://{/shop/site/site_alias/name}{shop_item/url}">
<div class="border_none"><img src="{shop_item/dir}{shop_item/image_small}" /></div>
<xsl:value-of disable-output-escaping="yes" select="name"/>
</a>
</xsl:when>
<xsl:otherwise>
<xsl:value-of disable-output-escaping="yes" select="name"/>
</xsl:otherwise>
</xsl:choose>
</td>
<td>
<xsl:value-of select="quantity"/><xsl:text> </xsl:text><xsl:value-of select="shop_item/shop_measure/name"/>
</td>
<td style="white-space: nowrap">
<xsl:value-of select="format-number(price,'### ##0.00', 'my')"/><xsl:text> </xsl:text><xsl:value-of select="/shop/shop_order/shop_currency/name" disable-output-escaping="yes" />
</td>
<td style="white-space: nowrap">
<xsl:value-of select="format-number(quantity * price,'### ##0.00', 'my')"/><xsl:text> </xsl:text><xsl:value-of select="/shop/shop_order/shop_currency/name" disable-output-escaping="yes" />
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
А по поводу перезагрузке страницы, у меня все же при каждой перезагрузке оформляется новый заказ.
ТДС Интернет-магазин корзина
<?php
$Shop_Cart_Controller_Show = Core_Page::instance()->object;
$oShop = $Shop_Cart_Controller_Show->getEntity();
// ------------------------------------------------
// Подготовка редиректа для PayPal
// ------------------------------------------------
if (isset($_REQUEST['paymentType']))
{
// Получаем ID заказа
$order_id = intval(Core_Array::getRequest('order_id'));
$oShop_Order = Core_Entity::factory('Shop_Order')->find($order_id);
if (!is_null($oShop_Order->id))
{
// Вызов обработчика платежной системы
Shop_Payment_System_Handler::factory($oShop_Order->Shop_Payment_System)
->shopOrder($oShop_Order)
->paymentProcessing();
}
}
// ------------------------------------------------
// Обработка уведомления об оплате от RBK Money
// ------------------------------------------------
if ((isset($_POST['paymentStatus']) || isset($_GET['PayPalOrderConfirmation'])) && !isset($_REQUEST['paymentType']))
{
// Получаем ID заказа
$order_id = intval(Core_Array::getPost('orderId'));
$oShop_Order = Core_Entity::factory('Shop_Order')->find($order_id);
if (!is_null($oShop_Order->id))
{
// Вызов обработчика платежной системы
Shop_Payment_System_Handler::factory($oShop_Order->Shop_Payment_System)
->shopOrder($oShop_Order)
->paymentProcessing();
}
}
// ------------------------------------------------
// Обработка уведомления об оплате от WebMoney
// ------------------------------------------------
if (isset($_POST['LMI_PAYEE_PURSE']))
{
// Получаем ID заказа
$order_id = intval(Core_Array::getPost('LMI_PAYMENT_NO'));
$oShop_Order = Core_Entity::factory('Shop_Order')->find($order_id);
if (!is_null($oShop_Order->id))
{
// Вызов обработчика платежной системы
Shop_Payment_System_Handler::factory($oShop_Order->Shop_Payment_System)
->shopOrder($oShop_Order)
->paymentProcessing();
}
}
// ------------------------------------------------
// Обработка уведомления об оплате от ROBOKASSA
// ------------------------------------------------
if (isset($_REQUEST['SignatureValue']) && isset($_REQUEST['Culture']))
{
// Получаем ID заказа
$order_id = intval(Core_Array::getRequest('InvId'));
$oShop_Order = Core_Entity::factory('Shop_Order')->find($order_id);
if (!is_null($oShop_Order->id))
{
// Вызов обработчика платежной системы
Shop_Payment_System_Handler::factory($oShop_Order->Shop_Payment_System)
->shopOrder($oShop_Order)
->paymentProcessing();
}
}
// ------------------------------------------------
// ------------------------------------------------
// Обработка уведомления об оплате от Authorize.net
// ------------------------------------------------
if (isset($_POST['x_response_code']))
{
// Получаем ID заказа
$order_id = intval(Core_Array::getPost('order_id'));
$oShop_Order = Core_Entity::factory('Shop_Order')->find($order_id);
if (!is_null($oShop_Order->id))
{
// Вызов обработчика платежной системы
Shop_Payment_System_Handler::factory($oShop_Order->Shop_Payment_System)
->shopOrder($oShop_Order)
->paymentProcessing();
}
}
// ------------------------------------------------
// Обработка формы "Оплата через систему QIWI Кошелек"
// ------------------------------------------------
if (isset($_POST['qiwi_payment_options']))
{
// Получаем ID заказа
$order_id = intval(Core_Array::getPost('order_id'));
$oShop_Order = Core_Entity::factory('Shop_Order')->find($order_id);
if (!is_null($oShop_Order->id))
{
// Вызов обработчика платежной системы
Shop_Payment_System_Handler::factory($oShop_Order->Shop_Payment_System)
->shopOrder($oShop_Order)
->paymentProcessing();
return TRUE;
}
}
// ------------------------------------------------
// Вывод информации о статусе платежа после его совершения и перенаправления с платежной системы
// ------------------------------------------------
if (isset($_REQUEST['payment']) || (isset($_GET['action']) && ($_GET['action'] == 'PaymentSuccess' || $_GET['action'] == 'PaymentFail')))
{
// Получаем ID заказа
if (isset($_REQUEST['order_id']))
{
$order_id = intval(Core_Array::getRequest('order_id'));
}
//от Яндекса
elseif(isset($_GET['orderNumber']))
{
$order_id = intval(Core_Array::getGet('orderNumber'));
}
else
{
$order_id = intval(Core_Array::getRequest('InvId'));
}
$oShop_Order = Core_Entity::factory('Shop_Order')->find($order_id);
if (Core::moduleIsActive('siteuser'))
{
$siteuser_id = 0;
$oSiteuser = Core_Entity::factory('Siteuser')->getCurrent();
if ($oSiteuser)
{
$siteuser_id = $oSiteuser->id;
}
}
else
{
$siteuser_id = FALSE;
}
// Если заказ принадлежит текущему авторизированному пользователю
if ($oShop_Order->siteuser_id == $siteuser_id)
{
if (Core_Array::getRequest('payment') == 'success' || Core_Array::getRequest('action') == 'PaymentSuccess')
{
?><h1>Подтверждение платежа</h1>
<p>Спасибо, информация об оплате заказа <strong>№ <?php echo $oShop_Order->invoice?></strong>
получена.</p>
<?php
}
else
{
?><h1>Платеж не получен</h1>
<p>К сожалению при оплате заказа <strong>№ <?php echo $oShop_Order->invoice?></strong> произошла ошибка.</p>
<?php
}
}
// Для случаев, когда отключен модуль "Пользователи сайта"
elseif ($siteuser_id === FALSE)
{
?><h1>Подтверждение платежа</h1>
<p>Благодарим за посещение нашего магазина!</p>
<?php
}
else
{
?><h1>Ошибка</h1>
<p>Неверный номер заказа!</p>
<?php
}
// Прерываем выполнение типовой динамической страницы
return TRUE;
}
$xslName = Core_Array::get(Core_Page::instance()->libParams, 'cartXsl');
switch (Core_Array::getPost('recount') ? 0 : Core_Array::getPost('step'))
{
// Адрес доставки
case 1:
// Сбрасываем информацию о последнем заказе
$_SESSION['last_order_id'] = 0;
$Shop_Address_Controller_Show = new Shop_Address_Controller_Show($oShop);
$Shop_Address_Controller_Show->xsl(
Core_Entity::factory('Xsl')->getByName(
Core_Array::get(Core_Page::instance()->libParams, 'deliveryAddressXsl')
)
)
->show();
break;
// Способ доставки
case 2:
$_SESSION['hostcmsOrder']['shop_country_id'] = intval(Core_Array::getPost('shop_country_id', 0));
$_SESSION['hostcmsOrder']['shop_country_location_id'] = intval(Core_Array::getPost('shop_country_location_id', 0));
$_SESSION['hostcmsOrder']['shop_country_location_city_id'] = intval(Core_Array::getPost('shop_country_location_city_id', 0));
$_SESSION['hostcmsOrder']['shop_country_location_city_area_id'] = intval(Core_Array::getPost('shop_country_location_city_area_id', 0));
$_SESSION['hostcmsOrder']['postcode'] = strval(Core_Array::getPost('postcode'));
$_SESSION['hostcmsOrder']['address'] = strval(Core_Array::getPost('address'));
$_SESSION['hostcmsOrder']['surname'] = strval(Core_Array::getPost('surname'));
$_SESSION['hostcmsOrder']['name'] = strval(Core_Array::getPost('name'));
$_SESSION['hostcmsOrder']['patronymic'] = strval(Core_Array::getPost('patronymic'));
$_SESSION['hostcmsOrder']['company'] = strval(Core_Array::getPost('company'));
$_SESSION['hostcmsOrder']['phone'] = strval(Core_Array::getPost('phone'));
$_SESSION['hostcmsOrder']['fax'] = strval(Core_Array::getPost('fax'));
$_SESSION['hostcmsOrder']['email'] = strval(Core_Array::getPost('email'));
$_SESSION['hostcmsOrder']['description'] = strval(Core_Array::getPost('description'));
$Shop_Delivery_Controller_Show = new Shop_Delivery_Controller_Show($oShop);
$Shop_Delivery_Controller_Show
->shop_country_id($_SESSION['hostcmsOrder']['shop_country_id'])
->shop_country_location_id($_SESSION['hostcmsOrder']['shop_country_location_id'])
->shop_country_location_city_id($_SESSION['hostcmsOrder']['shop_country_location_city_id'])
->shop_country_location_city_area_id($_SESSION['hostcmsOrder']['shop_country_location_city_area_id'])
->couponText(Core_Array::get(Core_Array::get($_SESSION, 'hostcmsOrder', array()), 'coupon_text'))
->setUp()
->xsl(
Core_Entity::factory('Xsl')->getByName(
Core_Array::get(Core_Page::instance()->libParams, 'deliveryXsl')
)
)
->show();
break;
// Форма оплаты
case 3:
$_SESSION['hostcmsOrder']['shop_delivery_condition_id'] = intval(Core_Array::getPost('shop_delivery_condition_id', 0));
$Shop_Payment_System_Controller_Show = new Shop_Payment_System_Controller_Show($oShop);
$Shop_Payment_System_Controller_Show
->xsl(
Core_Entity::factory('Xsl')->getByName(
Core_Array::get(Core_Page::instance()->libParams, 'paymentSystemXsl')
)
)
->show();
break;
// Окончание оформления заказа
case 4:
// Сбрасываем информацию о последнем заказе
$_SESSION['last_order_id'] = 0;
$shop_payment_system_id = $_SESSION['hostcmsOrder']['shop_payment_system_id'] = 1;//id используемой платежной системы
$_SESSION['hostcmsOrder']['shop_delivery_condition_id'] = intval(Core_Array::getPost('shop_delivery_condition_id', 0));
$_SESSION['hostcmsOrder']['address'] = strval(Core_Array::getPost('address'));
$_SESSION['hostcmsOrder']['surname'] = strval(Core_Array::getPost('surname'));
$_SESSION['hostcmsOrder']['name'] = strval(Core_Array::getPost('name'));
$_SESSION['hostcmsOrder']['patronymic'] = strval(Core_Array::getPost('patronymic'));
$_SESSION['hostcmsOrder']['company'] = strval(Core_Array::getPost('company'));
$_SESSION['hostcmsOrder']['phone'] = strval(Core_Array::getPost('phone'));
$_SESSION['hostcmsOrder']['email'] = strval(Core_Array::getPost('email'));
$_SESSION['hostcmsOrder']['fax'] = strval(Core_Array::getPost('fax'));
$_SESSION['hostcmsOrder']['description'] = strval(Core_Array::getPost('description'));
// Если выбрана платежная система
if ($_SESSION['hostcmsOrder']['shop_payment_system_id'])
{
Shop_Payment_System_Handler::factory(
Core_Entity::factory('Shop_Payment_System', $shop_payment_system_id)
)
->orderParams($_SESSION['hostcmsOrder'])
->execute();
}
else
{
?><h1>Ошибка! Не указана ни одна платежная система.</h1><?php
}
break;
default:
$Shop_Cart_Controller_Show
->couponText(Core_Array::get(Core_Array::get($_SESSION, 'hostcmsOrder', array()), 'coupon_text'))
->xsl(
Core_Entity::factory('Xsl')->getByName($xslName)
)
->show();
}
// Блок авторизации пользователя
if (Core::moduleIsActive('siteuser'))
{
$oSiteuser = Core_Entity::factory('Siteuser')->getCurrent();
if (is_null($oSiteuser))
{
// Авторизация
$Siteuser_Controller_Show = new Siteuser_Controller_Show(
Core_Entity::factory('Siteuser')
);
$Siteuser_Controller_Show
->location(Core::$url['path'])
->xsl(
Core_Entity::factory('Xsl')->getByName(Core_Array::get(Core_Page::instance()->libParams, 'userAuthorizationXsl'))
)
->show();
// Регистрация
$Siteuser_Controller_Show = new Siteuser_Controller_Show(
Core_Entity::factory('Siteuser')
);
$Siteuser_Controller_Show->xsl(
Core_Entity::factory('Xsl')->getByName(Core_Array::get(Core_Page::instance()->libParams, 'userRegistrationXsl'))
)
->location(Core::$url['path'])
->fastRegistration(TRUE)
->properties(TRUE)
//->showMaillists(TRUE)
->show();
}
}
ОплатаПриПолучении
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:hostcms="http://www.hostcms.ru/"
exclude-result-prefixes="hostcms">
<xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="utf-8" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
<xsl:decimal-format name="my" decimal-separator="." grouping-separator=" "/>
<xsl:template match="/shop">
<!-- Строка шага заказа
<ul class="shop_navigation">
<li><span>Адрес доставки</span>→</li>
<li><span>Способ доставки</span>→</li>
<li><span>Форма оплаты</span>→</li>
<li class="shop_navigation_current"><span>Данные доставки</span></li>
</ul> -->
<h1>Ваш заказ оформлен</h1>
<p>Через некоторое время с Вами свяжется наш менеджер, чтобы согласовать заказанный товар и время доставки.</p>
<xsl:apply-templates select="shop_order"/>
<xsl:choose>
<xsl:when test="count(shop_order/shop_order_item)">
<h1>Заказанные товары</h1>
<table class="shop_cart">
<tr>
<th>Товар</th>
<th>Количество</th>
<th>Цена</th>
<th>Сумма</th>
</tr>
<xsl:apply-templates select="shop_order/shop_order_item"/>
<tr class="total">
<td></td><td></td><td></td><td align="center">Итого:
<xsl:value-of select="format-number(shop_order/total_amount,'### ##0.00', 'my')"/><xsl:text> </xsl:text><xsl:value-of select="/shop/shop_order/shop_currency/name"/></td>
</tr>
</table>
</xsl:when>
<!-- <xsl:otherwise>
<p><b>Заказанных товаров нет.</b></p>
</xsl:otherwise> -->
</xsl:choose>
</xsl:template>
<!-- Шаблон вывода данных о заказе -->
<xsl:template match="shop_order">
<h1>Данные доставки</h1>
<p>
<b>ФИО:</b><xsl:text> </xsl:text><xsl:value-of select="surname"/><xsl:text> </xsl:text><xsl:value-of select="name"/><xsl:text> </xsl:text><xsl:value-of select="patronymic"/>
<xsl:if test="phone != ''">
<br /><b>Телефон:</b><xsl:text> </xsl:text><xsl:value-of select="phone"/>
</xsl:if>
<xsl:if test="email != ''">
<br /><b>E-mail:</b><xsl:text> </xsl:text><xsl:value-of select="email"/>
</xsl:if>
<xsl:if test="fax != ''">
<br /><b>Факс:</b><xsl:text> </xsl:text><xsl:value-of select="fax"/>
</xsl:if>
<xsl:variable name="location">, <xsl:value-of select="shop_country/shop_country_location/name"/></xsl:variable>
<xsl:variable name="city">, <xsl:value-of select="shop_country/shop_country_location/shop_country_location_city/name"/></xsl:variable>
<xsl:variable name="city_area">, <xsl:value-of select="shop_country/shop_country_location/shop_country_location_city/shop_country_location_city_area/name"/></xsl:variable>
<xsl:variable name="adres">, <xsl:value-of select="address"/></xsl:variable>
<br /><b>Адрес доставки:</b><xsl:text> </xsl:text><xsl:if test="postcode != ''"><xsl:value-of select="postcode"/>, </xsl:if>
<xsl:if test="shop_country/name != ''">
<xsl:value-of select="shop_country/name"/>
</xsl:if>
<xsl:if test="$location != ', '">
<xsl:value-of select="$location"/>
</xsl:if>
<xsl:if test="$city != ', '">
<xsl:value-of select="$city"/>
</xsl:if>
<xsl:if test="$city_area != ', '">
<xsl:value-of select="$city_area"/> район</xsl:if>
<xsl:if test="$adres != ', '">
<xsl:value-of select="$adres"/>
</xsl:if>
<xsl:if test="shop_delivery/name != ''">
<br /><b>Тип доставки:</b><xsl:text> </xsl:text><xsl:value-of select="shop_delivery/name"/>
</xsl:if>
<xsl:if test="description != ''">
<br /><b>Комментарий:</b><xsl:text> </xsl:text><xsl:value-of select="description"/>
</xsl:if>
<xsl:if test="shop_payment_system/name != ''">
<br /><b>Способ оплаты:</b><xsl:text> </xsl:text><xsl:value-of select="shop_payment_system/name"/>
</xsl:if>
</p>
</xsl:template>
<!-- Данные о товарах -->
<xsl:template match="shop_order/shop_order_item">
<tr align="center">
<td class="ssilki_cart">
<xsl:choose>
<xsl:when test="shop_item/url != ''">
<a href="http://{/shop/site/site_alias/name}{shop_item/url}">
<div class="border_none"><img src="{shop_item/dir}{shop_item/image_small}" /></div>
<xsl:value-of disable-output-escaping="yes" select="name"/>
</a>
</xsl:when>
<xsl:otherwise>
<xsl:value-of disable-output-escaping="yes" select="name"/>
</xsl:otherwise>
</xsl:choose>
</td>
<td>
<xsl:value-of select="quantity"/><xsl:text> </xsl:text><xsl:value-of select="shop_item/shop_measure/name"/>
</td>
<td style="white-space: nowrap">
<xsl:value-of select="format-number(price,'### ##0.00', 'my')"/><xsl:text> </xsl:text><xsl:value-of select="/shop/shop_order/shop_currency/name" disable-output-escaping="yes" />
</td>
<td style="white-space: nowrap">
<xsl:value-of select="format-number(quantity * price,'### ##0.00', 'my')"/><xsl:text> </xsl:text><xsl:value-of select="/shop/shop_order/shop_currency/name" disable-output-escaping="yes" />
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
А по поводу перезагрузке страницы, у меня все же при каждой перезагрузке оформляется новый заказ.
ТДС Интернет-магазин корзина
<?php
$Shop_Cart_Controller_Show = Core_Page::instance()->object;
$oShop = $Shop_Cart_Controller_Show->getEntity();
// ------------------------------------------------
// Подготовка редиректа для PayPal
// ------------------------------------------------
if (isset($_REQUEST['paymentType']))
{
// Получаем ID заказа
$order_id = intval(Core_Array::getRequest('order_id'));
$oShop_Order = Core_Entity::factory('Shop_Order')->find($order_id);
if (!is_null($oShop_Order->id))
{
// Вызов обработчика платежной системы
Shop_Payment_System_Handler::factory($oShop_Order->Shop_Payment_System)
->shopOrder($oShop_Order)
->paymentProcessing();
}
}
// ------------------------------------------------
// Обработка уведомления об оплате от RBK Money
// ------------------------------------------------
if ((isset($_POST['paymentStatus']) || isset($_GET['PayPalOrderConfirmation'])) && !isset($_REQUEST['paymentType']))
{
// Получаем ID заказа
$order_id = intval(Core_Array::getPost('orderId'));
$oShop_Order = Core_Entity::factory('Shop_Order')->find($order_id);
if (!is_null($oShop_Order->id))
{
// Вызов обработчика платежной системы
Shop_Payment_System_Handler::factory($oShop_Order->Shop_Payment_System)
->shopOrder($oShop_Order)
->paymentProcessing();
}
}
// ------------------------------------------------
// Обработка уведомления об оплате от WebMoney
// ------------------------------------------------
if (isset($_POST['LMI_PAYEE_PURSE']))
{
// Получаем ID заказа
$order_id = intval(Core_Array::getPost('LMI_PAYMENT_NO'));
$oShop_Order = Core_Entity::factory('Shop_Order')->find($order_id);
if (!is_null($oShop_Order->id))
{
// Вызов обработчика платежной системы
Shop_Payment_System_Handler::factory($oShop_Order->Shop_Payment_System)
->shopOrder($oShop_Order)
->paymentProcessing();
}
}
// ------------------------------------------------
// Обработка уведомления об оплате от ROBOKASSA
// ------------------------------------------------
if (isset($_REQUEST['SignatureValue']) && isset($_REQUEST['Culture']))
{
// Получаем ID заказа
$order_id = intval(Core_Array::getRequest('InvId'));
$oShop_Order = Core_Entity::factory('Shop_Order')->find($order_id);
if (!is_null($oShop_Order->id))
{
// Вызов обработчика платежной системы
Shop_Payment_System_Handler::factory($oShop_Order->Shop_Payment_System)
->shopOrder($oShop_Order)
->paymentProcessing();
}
}
// ------------------------------------------------
// ------------------------------------------------
// Обработка уведомления об оплате от Authorize.net
// ------------------------------------------------
if (isset($_POST['x_response_code']))
{
// Получаем ID заказа
$order_id = intval(Core_Array::getPost('order_id'));
$oShop_Order = Core_Entity::factory('Shop_Order')->find($order_id);
if (!is_null($oShop_Order->id))
{
// Вызов обработчика платежной системы
Shop_Payment_System_Handler::factory($oShop_Order->Shop_Payment_System)
->shopOrder($oShop_Order)
->paymentProcessing();
}
}
// ------------------------------------------------
// Обработка формы "Оплата через систему QIWI Кошелек"
// ------------------------------------------------
if (isset($_POST['qiwi_payment_options']))
{
// Получаем ID заказа
$order_id = intval(Core_Array::getPost('order_id'));
$oShop_Order = Core_Entity::factory('Shop_Order')->find($order_id);
if (!is_null($oShop_Order->id))
{
// Вызов обработчика платежной системы
Shop_Payment_System_Handler::factory($oShop_Order->Shop_Payment_System)
->shopOrder($oShop_Order)
->paymentProcessing();
return TRUE;
}
}
// ------------------------------------------------
// Вывод информации о статусе платежа после его совершения и перенаправления с платежной системы
// ------------------------------------------------
if (isset($_REQUEST['payment']) || (isset($_GET['action']) && ($_GET['action'] == 'PaymentSuccess' || $_GET['action'] == 'PaymentFail')))
{
// Получаем ID заказа
if (isset($_REQUEST['order_id']))
{
$order_id = intval(Core_Array::getRequest('order_id'));
}
//от Яндекса
elseif(isset($_GET['orderNumber']))
{
$order_id = intval(Core_Array::getGet('orderNumber'));
}
else
{
$order_id = intval(Core_Array::getRequest('InvId'));
}
$oShop_Order = Core_Entity::factory('Shop_Order')->find($order_id);
if (Core::moduleIsActive('siteuser'))
{
$siteuser_id = 0;
$oSiteuser = Core_Entity::factory('Siteuser')->getCurrent();
if ($oSiteuser)
{
$siteuser_id = $oSiteuser->id;
}
}
else
{
$siteuser_id = FALSE;
}
// Если заказ принадлежит текущему авторизированному пользователю
if ($oShop_Order->siteuser_id == $siteuser_id)
{
if (Core_Array::getRequest('payment') == 'success' || Core_Array::getRequest('action') == 'PaymentSuccess')
{
?><h1>Подтверждение платежа</h1>
<p>Спасибо, информация об оплате заказа <strong>№ <?php echo $oShop_Order->invoice?></strong>
получена.</p>
<?php
}
else
{
?><h1>Платеж не получен</h1>
<p>К сожалению при оплате заказа <strong>№ <?php echo $oShop_Order->invoice?></strong> произошла ошибка.</p>
<?php
}
}
// Для случаев, когда отключен модуль "Пользователи сайта"
elseif ($siteuser_id === FALSE)
{
?><h1>Подтверждение платежа</h1>
<p>Благодарим за посещение нашего магазина!</p>
<?php
}
else
{
?><h1>Ошибка</h1>
<p>Неверный номер заказа!</p>
<?php
}
// Прерываем выполнение типовой динамической страницы
return TRUE;
}
$xslName = Core_Array::get(Core_Page::instance()->libParams, 'cartXsl');
switch (Core_Array::getPost('recount') ? 0 : Core_Array::getPost('step'))
{
// Адрес доставки
case 1:
// Сбрасываем информацию о последнем заказе
$_SESSION['last_order_id'] = 0;
$Shop_Address_Controller_Show = new Shop_Address_Controller_Show($oShop);
$Shop_Address_Controller_Show->xsl(
Core_Entity::factory('Xsl')->getByName(
Core_Array::get(Core_Page::instance()->libParams, 'deliveryAddressXsl')
)
)
->show();
break;
// Способ доставки
case 2:
$_SESSION['hostcmsOrder']['shop_country_id'] = intval(Core_Array::getPost('shop_country_id', 0));
$_SESSION['hostcmsOrder']['shop_country_location_id'] = intval(Core_Array::getPost('shop_country_location_id', 0));
$_SESSION['hostcmsOrder']['shop_country_location_city_id'] = intval(Core_Array::getPost('shop_country_location_city_id', 0));
$_SESSION['hostcmsOrder']['shop_country_location_city_area_id'] = intval(Core_Array::getPost('shop_country_location_city_area_id', 0));
$_SESSION['hostcmsOrder']['postcode'] = strval(Core_Array::getPost('postcode'));
$_SESSION['hostcmsOrder']['address'] = strval(Core_Array::getPost('address'));
$_SESSION['hostcmsOrder']['surname'] = strval(Core_Array::getPost('surname'));
$_SESSION['hostcmsOrder']['name'] = strval(Core_Array::getPost('name'));
$_SESSION['hostcmsOrder']['patronymic'] = strval(Core_Array::getPost('patronymic'));
$_SESSION['hostcmsOrder']['company'] = strval(Core_Array::getPost('company'));
$_SESSION['hostcmsOrder']['phone'] = strval(Core_Array::getPost('phone'));
$_SESSION['hostcmsOrder']['fax'] = strval(Core_Array::getPost('fax'));
$_SESSION['hostcmsOrder']['email'] = strval(Core_Array::getPost('email'));
$_SESSION['hostcmsOrder']['description'] = strval(Core_Array::getPost('description'));
$Shop_Delivery_Controller_Show = new Shop_Delivery_Controller_Show($oShop);
$Shop_Delivery_Controller_Show
->shop_country_id($_SESSION['hostcmsOrder']['shop_country_id'])
->shop_country_location_id($_SESSION['hostcmsOrder']['shop_country_location_id'])
->shop_country_location_city_id($_SESSION['hostcmsOrder']['shop_country_location_city_id'])
->shop_country_location_city_area_id($_SESSION['hostcmsOrder']['shop_country_location_city_area_id'])
->couponText(Core_Array::get(Core_Array::get($_SESSION, 'hostcmsOrder', array()), 'coupon_text'))
->setUp()
->xsl(
Core_Entity::factory('Xsl')->getByName(
Core_Array::get(Core_Page::instance()->libParams, 'deliveryXsl')
)
)
->show();
break;
// Форма оплаты
case 3:
$_SESSION['hostcmsOrder']['shop_delivery_condition_id'] = intval(Core_Array::getPost('shop_delivery_condition_id', 0));
$Shop_Payment_System_Controller_Show = new Shop_Payment_System_Controller_Show($oShop);
$Shop_Payment_System_Controller_Show
->xsl(
Core_Entity::factory('Xsl')->getByName(
Core_Array::get(Core_Page::instance()->libParams, 'paymentSystemXsl')
)
)
->show();
break;
// Окончание оформления заказа
case 4:
// Сбрасываем информацию о последнем заказе
$_SESSION['last_order_id'] = 0;
$shop_payment_system_id = $_SESSION['hostcmsOrder']['shop_payment_system_id'] = 1;//id используемой платежной системы
$_SESSION['hostcmsOrder']['shop_delivery_condition_id'] = intval(Core_Array::getPost('shop_delivery_condition_id', 0));
$_SESSION['hostcmsOrder']['address'] = strval(Core_Array::getPost('address'));
$_SESSION['hostcmsOrder']['surname'] = strval(Core_Array::getPost('surname'));
$_SESSION['hostcmsOrder']['name'] = strval(Core_Array::getPost('name'));
$_SESSION['hostcmsOrder']['patronymic'] = strval(Core_Array::getPost('patronymic'));
$_SESSION['hostcmsOrder']['company'] = strval(Core_Array::getPost('company'));
$_SESSION['hostcmsOrder']['phone'] = strval(Core_Array::getPost('phone'));
$_SESSION['hostcmsOrder']['email'] = strval(Core_Array::getPost('email'));
$_SESSION['hostcmsOrder']['fax'] = strval(Core_Array::getPost('fax'));
$_SESSION['hostcmsOrder']['description'] = strval(Core_Array::getPost('description'));
// Если выбрана платежная система
if ($_SESSION['hostcmsOrder']['shop_payment_system_id'])
{
Shop_Payment_System_Handler::factory(
Core_Entity::factory('Shop_Payment_System', $shop_payment_system_id)
)
->orderParams($_SESSION['hostcmsOrder'])
->execute();
}
else
{
?><h1>Ошибка! Не указана ни одна платежная система.</h1><?php
}
break;
default:
$Shop_Cart_Controller_Show
->couponText(Core_Array::get(Core_Array::get($_SESSION, 'hostcmsOrder', array()), 'coupon_text'))
->xsl(
Core_Entity::factory('Xsl')->getByName($xslName)
)
->show();
}
// Блок авторизации пользователя
if (Core::moduleIsActive('siteuser'))
{
$oSiteuser = Core_Entity::factory('Siteuser')->getCurrent();
if (is_null($oSiteuser))
{
// Авторизация
$Siteuser_Controller_Show = new Siteuser_Controller_Show(
Core_Entity::factory('Siteuser')
);
$Siteuser_Controller_Show
->location(Core::$url['path'])
->xsl(
Core_Entity::factory('Xsl')->getByName(Core_Array::get(Core_Page::instance()->libParams, 'userAuthorizationXsl'))
)
->show();
// Регистрация
$Siteuser_Controller_Show = new Siteuser_Controller_Show(
Core_Entity::factory('Siteuser')
);
$Siteuser_Controller_Show->xsl(
Core_Entity::factory('Xsl')->getByName(Core_Array::get(Core_Page::instance()->libParams, 'userRegistrationXsl'))
)
->location(Core::$url['path'])
->fastRegistration(TRUE)
->properties(TRUE)
//->showMaillists(TRUE)
->show();
}
}
Как жить после? Только лучше чем до...
Если у Вас коммерческая редакция - напишите в поддержку. Посмотрим на месте. Анализировать простыню кода, к сожалению, возможности нет.
Вы только что начали читать предложение, чтение которого вы уже заканчиваете.
Пока бесплатной хватает. Ладно пойду верну все шаги корзины обратно, попробую разобраться.
Как жить после? Только лучше чем до...
Авторизация