При выключенном кешировании аноним видит корзину как положено
При включенном кешировании и анониме с uid 0 корзина всегда показывается ссылкой
При включенном кешировании и анониме не 0 поведение корзины довольно непредсказуемо
Отключать кеш - не самая лучшая идея, не говоря уже о том, чтобы boost включить
вскрытие уберкарта показало, что uid 0 используется явно(кто бы сомневался) поэтому не 0 даёт такой результат
для начала запрещаем выдачу корзины анониму ссылкой
uc_cart.module
// 0 = Default shopping cart block.
if ($delta == 0) {
$cachable = 0;
потом ставим модуль ajaxblocks и выводим блок корзины через него
теперь можно смело включать кеширование или даже ставить boost
uc_ajax_cart работает так же отлично
единственный минус - +1 асинхронный запрос к серверу, что при включенном бусте нивелируется полностью
UPDATE 0
для не готовых идти по пути самурая есть путь ниндзи
поставить буст, не включать кеширование, поставить аякс блок
и вариант для джедаев - написать свой модуль/php-код, который выводит блок правильно, можно даже сразу с аякс
также можно попросить разработчиков уберкарт вычислять $cachable с учётом флага админки, но когда это будет?
если активно кешировать, я не вижу способов обойтись без аякс
UPDATE 1
с мест подсказывают, uid анонима должен быть 0 всегда, при любых обстоятельствах, иначе поведение модулей, его проверяющих, может стать непредсказуемым
но случается, что при выливке дампа его срывает - причины лично для меня непонятные, исправляю специально для этого сделанным sql
UPDATE 2
с мест подсказывают, uc_ajax_cart 2.x-beta версии делает всё самостоятельно
если вы не боитесь, то можно использовать его
Комментарии
а если посмотреть что за запрос и rewrite подкрутить самому? не?
не надо, корзина имеет свойство изменяться
написал свой аджаксовый блок корзины когда устал бороться с кешем, это элементарно вобщем-то
Или поставить [module=uc_ajax_cart] и получить удобную динамическую корзину с ajax
не спасёт, анониму покажет ссылку
но модуль полезный
uc_ajax_cart версии 2 (про первую не помню), показывает анониму корзину при кешировании (подгружает аяксом). В настройках нужно указать, чтобы работало для анонимов. И правах доступа выставить, корзина без кеша.
спасибо, посмотрю
Про вторую версию uc_ajax_cart подтверждаю, что работает при включенном кеше и показывает всегда актуальную корзину.
Пример: сайт http://www.majorica.ru/
uc_ajax_cart удивительно похоже работает на мой модуль.. похоже других решений просто не существует ..
а в какой фрагмент кода добавлять этот код?
case 'view':
// 0 = Default shopping cart block.
if ($delta == 0) {
$cachable = 0;
?