суть проблемы:
На страницу с товаром выводится ссылка, которая позволяет купить товар в 1 клик.
(используется модуль fastorder, по-моему, от ОРС-а). Т.е. ничего сложного, просто для больше аккуратности я добавил джава-скрипт, который открывает форму для покупки, если человек нажмет на ссылку.
В моем магазине товар, которого нет на складе заказать НЕЛЬЗЯ. Т.е. кнопка "В корзину" отсутствует и светится надпись "Нет в наличии".
Не долго думая, я скопировал условие, которое отключает кнопку "В корзину"
Код:
{if (!$allow_oosp && $product->quantity <= 0) OR !$product->available_for_order OR (isset($restricted_country_mode) AND $restricted_country_mode) OR $PS_CATALOG_MODE} display:none;{/if}
и добавил его к ссылке, открывающей форму для оформления заказа.
Код:
<!-- MODULE fastorder -->
{literal}
<script type="text/javascript">
function ShowHideContent(spoiler)
{
if (spoiler.style.display != 'none')
spoiler.style.display = 'none';
else
spoiler.style.display = 'block';
}
</script>
{/literal}
<a href="javascript:void(0)" style="font-weight:bold;{if (!$allow_oosp && $product->quantity <= 0) OR !$product->available_for_order OR (isset($restricted_country_mode) AND $restricted_country_mode) OR $PS_CATALOG_MODE} display:none;{/if}" onclick="ShowHideContent(document.getElementById('id1'))"/>{l s='One click order' mod='fastorder'}</a>
<div id="id1" style="display: none;">
Выключил кеширование, почистил кеш - все работает корректно: для товаров в наличии показывается ссылка, разрешающая покупку в 1 клик, в карточках товаров, которых в наличии нет, этой ссылки нет.
Включил кеширование - ссылка не отображается нигде. Еще раз выключил-включил - отображается везде. Впечатление, что залипает в каком-то одном состоянии и все. Как можно отключить кеширование для конкретного модуля в коде самого модуля?
Я думал сделать проще и это же условие продублировать для хука, в который ставится модуль (т.е. вырубать весь хук), но это неправильно и в админке престы вообще показано, что модуль стоит в хедере, хоть и установлен он, вроде как, в HOOK_EXTRA_RIGHT.
В самом модуле есть файл индекс.пхп в котором указано:
Код:
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;
и лежит джава-скрипт, в котором есть строка:
Код:
cache: false,
(влияет ли это вообще как-то на работу с кешем - понятия не имею, т.к. нет хороших знаний ни в джаве, ни в пхп)
Сообщение отредактировано warezliker 16-01-2013 19:10 ...