суть проблемы:
На страницу с товаром выводится ссылка, которая позволяет купить товар в 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 ...