Товары в сравнении в глобальной видимости?

#
Товары в сравнении в глобальной видимости?
На странице товаров получить кол-во товаров в сравнении не проблема <xsl:if test="count(/shop/comparing/shop_item) != 0">, а я хочу создать виджет в хедере с иконочкой и кол-вом, но нужно откуда то брать эти данные на страницах на которых нет товаров.
Как глобально получить товары в сравнении?

за одно и избранные товары то же...
#
Re: Товары в сравнении в глобальной видимости?
xelaxela13 писал(а):
Как глобально получить товары в сравнении?

$_SESSION['hostcmsCompare']

xelaxela13 писал(а):
за одно и избранные товары то же...

$_SESSION['hostcmsFavorite']
E-mail: info@syrbek.ru / телега: @syrbek /skype: activexm / syrbek.ru / Поддержка сайтов / г. Москва [HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, Git, SVN, Redmine]
#
Re: Товары в сравнении в глобальной видимости?
Вернулся к этой задаче, может подскажете на примере как мне получить кол-во товаров в сравнении AJAX ом?
Модератор
#
Re: Товары в сравнении в глобальной видимости?
xelaxela13,
чтобы получить что-то в ответ на запрос, нужно, чтобы кто-то запрограммировал ожидание запроса и подготовку на него ответа.
#
Re: Товары в сравнении в глобальной видимости?
Задача решена!
в script.js ищем

addCompare: function(path, shop_item_id, object){
         $(object).toggleClass('current');
         $.clientRequest({path: path + '?compare=' + shop_item_id, 'callBack': function(){
               $.loadingScreen('hide');
            }, context: $(object)});
         $('#compareButton').show();
         return false;
      },
      addFavorite: function(path, shop_item_id, object){
         $.clientRequest({path: path + '?favorite=' + shop_item_id, 'callBack': function(){
               $.loadingScreen('hide');
            }, context: $(object)});
         return false;
      },

и расширяем их

addCompare: function(path, shop_item_id, object){
         $(object).toggleClass('current');
         $.clientRequest({path: path + '?compare=' + shop_item_id, 'callBack': function(){
               $.loadingScreen('hide');
            }, context: $(object)});
         $.ajax({
            type: 'GET',
            url: '/count.php?action=compare',
            dataType: 'json',
            success: function(data) {
               //console.log(jsondata.count);
               $('.compare-count').html(data.count);
            }
         });
         $('#compareButton').show();
         return false;
      },
      addFavorite: function(path, shop_item_id, object){
         $.clientRequest({path: path + '?favorite=' + shop_item_id, 'callBack': function(){
               $.loadingScreen('hide');
            }, context: $(object)});
         $.ajax({
            type: 'GET',
            url: '/count.php?action=favorite',
            dataType: 'json',
            success: function(data) {
               //console.log(jsondata.count);
               $('.favorite-count').html(data.count);
            }
         });
         return false;
      },

создаем файл - count.php - и ложем его в корень рядом с index.php (можно и в другое место)
с таким содержимым:

header("Content-type: text/html; charset=UTF-8");

// Подключаем основные классы
require_once(dirname(__FILE__) . '/' . 'bootstrap.php');
/**
* Установите идентификатор сайта
*/
define('CURRENT_SITE', 2); // ID сайта

$oSite = Core_Entity::factory('Site', CURRENT_SITE);

Core::initConstants($oSite);

switch($_REQUEST['action']){
    case 'compare' :
        $compare = $_SESSION['hostcmsCompare'];
        foreach($compare as $item){
            $value = sizeof($item);
        }
        echo json_encode(['count'=>intval($value)]);
    break;
    case 'favorite':
        $compare = $_SESSION['hostcmsFavorite'];
        foreach($compare as $item){
            $value = sizeof($item);
        }
        echo json_encode(['count'=>intval($value)]);
    break;
}

в доме значение пишем в

<span class="compare-count">
<span class="favorite-count">

все!
Авторизация