Quick Search:

Mode

Context

Displaying 3 lines of context. None | Less | More | Full

Other Diffs

Ignore

Blank Lines Whitespace:

Diff

1262
 
1263
 
1263
 
recently_visited.php
_><_ 1 -<?php
  2 -/*
  3 -  $Id: $
  4 -
  5 -  osCommerce, Open Source E-Commerce Solutions
  6 -  http://www.oscommerce.com
  7 -
  8 -  Copyright (c) 2006 osCommerce
  9 -
  10 -  Released under the GNU General Public License
  11 -*/
  12 -
  13 -  class osC_RecentlyVisited {
  14 -    var $visits = array();
  15 -
  16 -/* Class constructor */
  17 -
  18 -    function osC_RecentlyVisited() {
  19 -      if (isset($_SESSION['osC_RecentlyVisited_data']) === false) {
  20 -        $_SESSION['osC_RecentlyVisited_data'] = array();
  21 -      }
  22 -
  23 -      $this->visits =& $_SESSION['osC_RecentlyVisited_data'];
  24 -    }
  25 -
  26 -    function initialize() {
  27 -      global $osC_Product, $osC_Category, $osC_Search;
  28 -
  29 -      if (SERVICE_RECENTLY_VISITED_SHOW_PRODUCTS == '1') {
  30 -        if (isset($osC_Product) && is_a($osC_Product, 'osC_Product')) {
  31 -          $this->setProduct($osC_Product->getID());
  32 -        }
  33 -      }
  34 -
  35 -      if (SERVICE_RECENTLY_VISITED_SHOW_CATEGORIES == '1') {
  36 -        if (isset($osC_Category) && is_a($osC_Category, 'osC_Category')) {
  37 -          $this->setCategory($osC_Category->getID());
  38 -        }
  39 -      }
  40 -
  41 -      if (SERVICE_RECENTLY_VISITED_SHOW_SEARCHES == '1') {
  42 -        if (isset($osC_Search) && is_a($osC_Search, 'osC_Search')) {
  43 -          if ($osC_Search->hasKeywords()) {
  44 -            $this->setSearchQuery($osC_Search->getKeywords());
  45 -          }
  46 -        }
  47 -      }
  48 -    }
  49 -
  50 -    function setProduct($id) {
  51 -      if (isset($this->visits['products'])) {
  52 -        foreach ($this->visits['products'] as $key => $value) {
  53 -          if ($value['id'] == $id) {
  54 -            unset($this->visits['products'][$key]);
  55 -            break;
  56 -          }
  57 -        }
  58 -
  59 -        if (sizeof($this->visits['products']) > (SERVICE_RECENTLY_VISITED_MAX_PRODUCTS * 2)) {
  60 -          array_pop($this->visits['products']);
  61 -        }
  62 -      } else {
  63 -        $this->visits['products'] = array();
  64 -      }
  65 -
  66 -      array_unshift($this->visits['products'], array('id' => $id));
  67 -    }
  68 -
  69 -    function setCategory($id) {
  70 -      if (isset($this->visits['categories'])) {
  71 -        foreach ($this->visits['categories'] as $key => $value) {
  72 -          if ($value['id'] == $id) {
  73 -            unset($this->visits['categories'][$key]);
  74 -            break;
  75 -          }
  76 -        }
  77 -
  78 -        if (sizeof($this->visits['categories']) > (SERVICE_RECENTLY_VISITED_MAX_CATEGORIES * 2)) {
  79 -          array_pop($this->visits['categories']);
  80 -        }
  81 -      } else {
  82 -        $this->visits['categories'] = array();
  83 -      }
  84 -
  85 -      array_unshift($this->visits['categories'], array('id' => $id));
  86 -    }
  87 -
  88 -    function setSearchQuery($keywords) {
  89 -      global $osC_Search;
  90 -
  91 -      if (isset($this->visits['searches'])) {
  92 -        foreach ($this->visits['searches'] as $key => $value) {
  93 -          if ($value['keywords'] == $keywords) {
  94 -            unset($this->visits['searches'][$key]);
  95 -            break;
  96 -          }
  97 -        }
  98 -
  99 -        if (sizeof($this->visits['searches']) > (SERVICE_RECENTLY_VISITED_MAX_SEARCHES * 2)) {
  100 -          array_pop($this->visits['searches']);
  101 -        }
  102 -      } else {
  103 -        $this->visits['searches'] = array();
  104 -      }
  105 -
  106 -      array_unshift($this->visits['searches'], array('keywords' => $keywords,
  107 -                                                     'results' => $osC_Search->getNumberOfResults()
  108 -                                                    ));
  109 -    }
  110 -
  111 -    function hasHistory() {
  112 -      if ($this->hasProducts() || $this->hasCategories() || $this->hasSearches()) {
  113 -        return true;
  114 -      }
  115 -
  116 -      return false;
  117 -    }
  118 -
  119 -    function hasProducts() {
  120 -      return ( (SERVICE_RECENTLY_VISITED_SHOW_PRODUCTS == '1') && isset($this->visits['products']) && !empty($this->visits['products']) );
  121 -    }
  122 -
  123 -    function getProducts() {
  124 -      $history = array();
  125 -
  126 -      if (isset($this->visits['products']) && (empty($this->visits['products']) === false)) {
  127 -        $counter = 0;
  128 -
  129 -        foreach ($this->visits['products'] as $k => $v) {
  130 -          $counter++;
  131 -
  132 -          $osC_Product = new osC_Product($v['id']);
  133 -          $osC_Category = new osC_Category($osC_Product->getCategoryID());
  134 -
  135 -          $history[] = array('name' => $osC_Product->getTitle(),
  136 -                             'id' => $osC_Product->getID(),
  137 -                             'keyword' => $osC_Product->getKeyword(),
  138 -                             'price' => (SERVICE_RECENTLY_VISITED_SHOW_PRODUCT_PRICES == '1') ? $osC_Product->getPriceFormated(true) : '',
  139 -                             'image' => $osC_Product->getImage(),
  140 -                             'category_name' =>  $osC_Category->getTitle(),
  141 -                             'category_path' => $osC_Category->getPath()
  142 -                            );
  143 -
  144 -          if ($counter == SERVICE_RECENTLY_VISITED_MAX_PRODUCTS) {
  145 -            break;
  146 -          }
  147 -        }
  148 -      }
  149 -
  150 -      return $history;
  151 -    }
  152 -
  153 -    function hasCategories() {
  154 -      return ( (SERVICE_RECENTLY_VISITED_SHOW_CATEGORIES == '1') && isset($this->visits['categories']) && !empty($this->visits['categories']) );
  155 -    }
  156 -
  157 -    function getCategories() {
  158 -      $history = array();
  159 -
  160 -      if (isset($this->visits['categories']) && (empty($this->visits['categories']) === false)) {
  161 -        $counter = 0;
  162 -
  163 -        foreach ($this->visits['categories'] as $k => $v) {
  164 -          $counter++;
  165 -
  166 -          $osC_Category = new osC_Category($v['id']);
  167 -
  168 -          if ($osC_Category->hasParent()) {
  169 -            $osC_CategoryParent = new osC_Category($osC_Category->getParent());
  170 -          }
  171 -
  172 -          $history[]  = array('id' => $osC_Category->getID(),
  173 -                              'name' => $osC_Category->getTitle(),
  174 -                              'path' => $osC_Category->getPath(),
  175 -                              'image' => $osC_Category->getImage(),
  176 -                              'parent_name' => ($osC_Category->hasParent()) ? $osC_CategoryParent->getTitle() : '',
  177 -                              'parent_id' => ($osC_Category->hasParent()) ? $osC_CategoryParent->getID() : ''
  178 -                             );
  179 -
  180 -          if ($counter == SERVICE_RECENTLY_VISITED_MAX_CATEGORIES) {
  181 -            break;
  182 -          }
  183 -        }
  184 -      }
  185 -
  186 -      return $history;
  187 -    }
  188 -
  189 -    function hasSearches() {
  190 -      return ( (SERVICE_RECENTLY_VISITED_SHOW_SEARCHES == '1') && isset($this->visits['searches']) && !empty($this->visits['searches']) );
  191 -    }
  192 -
  193 -    function getSearches() {
  194 -      $history = array();
  195 -
  196 -      if (isset($this->visits['searches']) && (empty($this->visits['searches']) === false)) {
  197 -        $counter = 0;
  198 -
  199 -        foreach ($this->visits['searches'] as $k => $v) {
  200 -          $counter++;
  201 -
  202 -          $history[]  = array('keywords' => $this->visits['searches'][$k]['keywords'],
  203 -                              'results' => $this->visits['searches'][$k]['results']
  204 -                             );
  205 -
  206 -          if ($counter == SERVICE_RECENTLY_VISITED_MAX_SEARCHES) {
  207 -            break;
  208 -          }
  209 -        }
  210 -      }
  211 -
  212 -      return $history;
  213 -    }
  214 -  }
  215 -?>