Удалить из сравнения на странице с Сравнение товаров

#
Удалить из сравнения на странице с Сравнение товаров
Собственно Вопрос как это сделать?
Посмотрела на страницу магазина, там это через запись/перезапись в кукисы, попробовала сделать аналогично, не получается. вообще ничего не выводит.
Вот то, что я вставляю в настройки типовой динамической Сравнение товаров. В результате пустая страница, т.е. вообще ничего не выводится.
<?php
/* Обработка сравнения товаров */
/* Десериализуем массив */
if (isset($_COOKIE['SHOPCOMPARE']))
{
   $compare_items = @unserialize($shop->GetCookie('SHOPCOMPARE'));
   $compare_items = to_array($compare_items);
}
else
{
   $compare_items = array();
}

/* Удаление выбранного товара из сравнения */
if (isset($_GET['comp_del']))
{
   $compare_id = to_int($_GET['comp_del']);
   $i = array_search($compare_id, $compare_items);
   if ($i !== false)
   {
      unset($compare_items[$i]);
   }
}

/* Устанавливаем кукисы */
if (count($compare_items) > 0)
{
   $shop->SetCookie("SHOPCOMPARE", serialize($compare_items), time() + 31536000, '/');
}
else
{
   $shop->SetCookie("SHOPCOMPARE", '', 0, '/');
   unset($_COOKIE['SHOPCOMPARE']);
}
?>
http://www.colibre.ru - Создание и продвижение сайтов
#
Re: Удалить из сравнения на странице с Сравнение товаров
В некоторой степени решила проблему при помощи js (для IE6 только не работает). Если кому интересно, то сделала так:
У меня сравнение вызывается при помощи скрипта, поэтому на кнопку удаления (на странице сравнения) ставлю вот такую ссылку
<a href="/shop/compare_items/?del" onClick="window.opener.location.href = window.opener.location.pathname+'?comp_del={@id}';">

а на body самой страницы навешиваю функцию
function delCompare(){
if(window.location.search){
   window.location.href = window.location.pathname;   
   }
}

Это, конечно, криво. Поэтому все еще жду подсказки с решением php
http://www.colibre.ru - Создание и продвижение сайтов
Модератор
#
Re: Удалить из сравнения на странице с Сравнение товаров
libertine,
Поясните, я так и не понял, Вам нужно на странице сравнения товара удалить элемент из сравнения?

посмотрите в настройках типовой дин. страницы интернет-магазина есть блок для удаления из сравнения:
/* Обработка сравнения товаров */
/* Десериализуем массив */
if (isset($_COOKIE['SHOPCOMPARE']))
{
   $compare_items = @unserialize($shop->GetCookie('SHOPCOMPARE'));
   $compare_items = to_array($compare_items);
}
else
{
   $compare_items = array();
}

/* Добавление элементов */
foreach ($_GET as $key => $value)
{
   /* Выбираем из запроса товары, которые нужно добавить в список для сравнения */
   if (preg_match("/compare_id_(\d*)/", $key, $matches))
   {
      $compare_id = to_int($matches[1]);
      /* Проверяем, есть ли этот товар в кукисах для сравнения */
      if (!in_array($compare_id, $compare_items))
      {
         /*Добавляем в массив кукисов*/
         $compare_items[] = $compare_id;
      }
   }
}

/* Удаление выбранного товара из сравнения */
if (isset($_GET['delete_compare']))
{
   foreach ($_GET as $key => $value)
   {
      /* Извлекаем индекс товара, который нужно удалить из сравнения и кукиса */
      if (preg_match("/del_compare_id_(\d*)/", $key, $matches))
      {
         $compare_id = to_int($matches[1]);
         $i = array_search($compare_id, $compare_items);
         if ($i !== false)
         {
            unset($compare_items[$i]);
         }
      }
   }
}

/* Удаление всех сравнений */
if (isset($_GET['delete_all_compare']))
{
   $compare_items = array();
}

/* Устанавливаем кукисы */
if (count($compare_items) > 0)
{
   $shop->SetCookie("SHOPCOMPARE", serialize($compare_items), time() + 31536000, '/');
}
else
{
   $shop->SetCookie("SHOPCOMPARE", '', 0, '/');
   unset($_COOKIE['SHOPCOMPARE']);
}


Используя фрагменты этого кода в настройках страницы сравнения можно реализовать удаление сравниваемого товара.

Зачем Вы удаление делаете через JS? Почему бы просто использовать:
<a href="/shop/compare_items/?comp_del={@id}">
#
Re: Удалить из сравнения на странице с Сравнение товаров
да, мне нужно на странице сравнения товаров удалять товар. Я поставила этот блок (Это как раз тот код, который я написала в первом посте, только я его чуть-чуть изменила). Но у меня выводится пустая страница. Я так понимаю, что после этого кода у меня на руках будет массив $compare_items, а как дальше из него сделать XML и передать его к нужному мне шаблону?
http://www.colibre.ru - Создание и продвижение сайтов
Модератор
#
Re: Удалить из сравнения на странице с Сравнение товаров
libertine,
пришлите запрос в поддержку со ссылкой на эту тему и данными доступа в ЦА, посмотрим и дадим ответ о причинах.
Авторизация