Автор Тема: Добавление сравнения в корзину товаров  (Прочитано 944 раз)

01 Октябрь 2013, 15:14:56
  • Новичок
  • *
  • Сообщений: 3
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте.
Помогите пожалуйста разобраться: надо добавить сравнение товаров, как в категории товаров

Создавал override для вызова product-compare.js
<?php
 
class CartController extends CartControllerCore
{
public function 
setMedia()
{
    
parent::setMedia();
 
    if (
Configuration::get('PS_COMPARATOR_MAX_ITEM'))
        
$this->addJS(_THEME_JS_DIR_.'products-comparison.js');
}
public function 
initContent()
{
 
    
$this->context->smarty->assign('comparator_max_item'Configuration::get('PS_COMPARATOR_MAX_ITEM'));
     
    if (isset(
$this->context->cookie->id_compare))
        
$this->context->smarty->assign('compareProducts'CompareProduct::getCompareProducts((int)$this->context->cookie->id_compare));
 
    
parent::initContent();
}   
}
?>

И добавлял в shopping-cart-product-line.tpl
{if isset($comparator_max_item) && $comparator_max_item}
<p class="compare checkbox"><input type="checkbox" onclick="checkForComparison({$comparator_max_item})" class="comparator" id="comparator_item_{$product.id_product}" value="{$product.id_product}" /> <label for="comparator_item_{$product.id_product}">{l s='Select to compare'}</label></p>

{/if}
Ну и в shopping-cart.tpl кнопку
{include file="./product-compare.tpl"}
В итоге... Чекбокс не отображается т.к. не проходит проверку {if isset($comparator_max_item) && $comparator_max_item}
если убрать это условие, то чек бокс появится, но не определяется переменная $product.id_product
также вроде не подключается product-comparasion.js

Пожалуйста подскажите что не так или что делать надо, если все совсем не так...
01 Октябрь 2013, 19:25:29
Ответ #1
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 105673
  • Репутация: +39553/-0
    • Просмотр профиля
    • Webstudio UwK
Цитировать
Чекбокс не отображается т.к. не проходит проверку
{if isset($comparator_max_item) && $comparator_max_item}
Эта переменная не определена. Нужно добавить определние переременной.
$this->context->smarty->assign(array(
         'comparator_max_item' => (int)Configuration::get('PS_COMPARATOR_MAX_ITEM'),
        ...
));
Цитировать
также вроде не подключается product-comparasion.js
Смотрите код страницы, все подключаемые js файлы находяться в
<HEADER>
...
</HEADER>
Cоздание интернет сайтов Webstudio UwK
01 Октябрь 2013, 20:14:41
Ответ #2
  • Новичок
  • *
  • Сообщений: 3
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Проверил, product-comparasion.js точно не подключается... почему? что я не так делаю?

в Контроллере есть   $this->context->smarty->assign('comparator_max_item', Configuration::get('PS_COMPARATOR_MAX_ITEM'));
     
    if (isset($this->context->cookie->id_compare))
        $this->context->smarty->assign('compareProducts', CompareProduct::getCompareProducts((int)$this->context->cookie->id_compare));
 
это не инициализация?
02 Октябрь 2013, 10:33:59
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Цитировать
Эта переменная не определена. Нужно добавить определние переременной.
У тебя нет определения константы, не определяет ее преста. Может модуль не установлен, может 0 стоит ...?
Configuration::get('PS_COMPARATOR_MAX_ITEM')Поэтому и не подключается файл
if (Configuration::get('PS_COMPARATOR_MAX_ITEM'))
        $this->addJS(_THEME_JS_DIR_.'products-comparison.js');
02 Октябрь 2013, 21:03:36
Ответ #4
  • Новичок
  • *
  • Сообщений: 3
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Все, спасибо, разобрался и правда не инициализировал.