Drupal, Ubercart, корзина и кеширование для анонимов

Главные вкладки

Аватар пользователя Punk_UnDeaD Punk_UnDeaD 7 апреля 2011 в 18:55

При выключенном кешировании аноним видит корзину как положено
При включенном кешировании и анониме с uid 0 корзина всегда показывается ссылкой
При включенном кешировании и анониме не 0 поведение корзины довольно непредсказуемо

Отключать кеш - не самая лучшая идея, не говоря уже о том, чтобы boost включить
вскрытие уберкарта показало, что uid 0 используется явно(кто бы сомневался) поэтому не 0 даёт такой результат

для начала запрещаем выдачу корзины анониму ссылкой
uc_cart.module

    case 'view':
      // 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 версии делает всё самостоятельно
если вы не боитесь, то можно использовать его

Комментарии

Аватар пользователя Ильич Рамирес Санчес Ильич Рамирес Санчес 7 апреля 2011 в 21:59

"Punk_UnDeaD" wrote:
единственный минус - +1 асинхронный запрос к серверу, что при включенном бусте нивелируется полностью

а если посмотреть что за запрос и rewrite подкрутить самому? не? Smile

Аватар пользователя Punk_UnDeaD Punk_UnDeaD 7 апреля 2011 в 22:24

"Ильич Рамирес Санчес" wrote:
а если посмотреть что за запрос и rewrite подкрутить самому? не? Smile

не надо, корзина имеет свойство изменяться

Аватар пользователя Punk_UnDeaD Punk_UnDeaD 19 апреля 2011 в 18:59

"sibero777" wrote:
Или поставить uc_ajax_cart и получить удобную динамическую корзину с ajax

не спасёт, анониму покажет ссылку

но модуль полезный

Аватар пользователя sibero sibero 20 апреля 2011 в 2:51

uc_ajax_cart версии 2 (про первую не помню), показывает анониму корзину при кешировании (подгружает аяксом). В настройках нужно указать, чтобы работало для анонимов. И правах доступа выставить, корзина без кеша.

Аватар пользователя mutia1986 mutia1986 1 декабря 2011 в 3:46

juliv wrote:
Про вторую версию uc_ajax_cart подтверждаю, что работает при включенном кеше и показывает всегда актуальную корзину.
Пример: сайт http://www.majorica.ru/[/quote]

Как он у Вас работает ? Я уже день с ним трахаюсь, нихрена он не работает...
Обьясните тупорылому...