1 Отредактировано omen (10-10-2011 03:17:46)

Тема: Виджет сравнения товаров странно работает у меня

Всем привет.
Создаю свои шаблоны размещенные в templates/my_template/
Вставил в main.tpl шаблон магазина в нужном месте код виджета сравнения товаров:

{if count($CI->session->userdata('shopForCompare')) > 0}
                <div id="compare">
                    <div class="topCompareInfo">
                        <a href="{shop_url('compare')}">
                             Добавлено {count($CI->session->userdata('shopForCompare'))} {echo SStringHelper::Pluralize(count($CI->session->userdata('shopForCompare')), array('товар','товара','товаров'))} для сравнения
                        </a>
                    </div>
                </div>
                {/if}

Когда запускаю, пишет "Добавлено 1 товар для сравнения"
А когда перехожу по линку:
"Сравнение товаров
Список товаров для сравнения пустой. "

В чем  может быть проблема?

Такое поведение в разных браузерах наблюдалось.

Если выбираю любой товар, нажимаю сравнить, потом удаляю товар, то "Добавлено 1 товар для сравнения" исчезает.

Thumbs up Thumbs down

2

Re: Виджет сравнения товаров странно работает у меня

Ну а само сравнение работает? Или только проблема в тексте?

Thumbs up Thumbs down

3

Re: Виджет сравнения товаров странно работает у меня

admin пишет:

Ну а само сравнение работает? Или только проблема в тексте?

Само сравнение работает. Проблема в тексте.

Thumbs up Thumbs down

4 Отредактировано omen (10-10-2011 16:10:55)

Re: Виджет сравнения товаров странно работает у меня

Этот кусок кода возвращает единицу по неизветсных мне причинах.

{echo count($CI->session->userdata('shopForCompare'))}

Товар я  не добавлял для сравнения.
Если добавить, потом удалить - исчезает текст. Потом через время есть опять текст что добавлен товар для сравнения, когда перейти "Список товаров для сравнения пустой".

Thumbs up Thumbs down

5

Re: Виджет сравнения товаров странно работает у меня

Єтот кусок кода возвращает единицу у меня

{ echo count($CI->session->userdata('shopForCompare')) }

С документации по поводу count()

Если var не является массивом или объектом, реализующим интерфейс Countable, будет возвращена 1

Возможно там  и причина

Решил так:

{if count($CI->session->userdata('shopForCompare')) > 0 && is_array($CI->session->userdata('shopForCompare'))}
    <div id="compare">
        <div class="topCompareInfo">
            <a href="{shop_url('compare')}">
                Добавлено {count($CI->session->userdata('shopForCompare'))} {echo SStringHelper::Pluralize(count($CI->session->userdata('shopForCompare')), array('товар','товара','товаров'))} для сравнения
            </a>
        </div>
    </div>
{/if}

Всем спасиба.

Thumbs up Thumbs down