/** * Adds an entry to the breadcrumb navigation path * * @param string $title The title of the breadcrumb navigation entry * @param string $link The link of the breadcrumb navigation entry * @param string $cPath The cPath used to prefix the breadcrumb * @access public */ public function add($title, $link = null, $cPath = null) { global $lC_Category; if ($cPath != null) { $cPathArr = explode('_', $cPath); $cp = ''; foreach ($cPathArr as $id) { $lC_Category = new lC_Category($id); $this->_path[] = lc_link_object(lc_href_link(FILENAME_DEFAULT, 'cPath=' . $cp . $id), $lC_Category->getTitle($id)); $cp .= $id . '_'; } } if (!empty($link)) { $title = lc_link_object($link, $title); } if (!empty($title)) { $this->_path[] = $title; } }
public function lC_Index_Index() { global $lC_Database, $lC_Services, $lC_Language, $lC_Breadcrumb, $cPath, $cPath_array, $current_category_id, $lC_CategoryTree, $lC_Category, $lC_Session; $this->_page_title = sprintf($lC_Language->get('index_heading'), STORE_NAME); $template_code = isset($_SESSION['template']['code']) && $_SESSION['template']['code'] != NULL ? $_SESSION['template']['code'] : 'core'; // attempting to match categories url capability to get data from permalink if (empty($_GET) === false) { $id = false; // PHP < 5.0.2; array_slice() does not preserve keys and will not work with numerical key values, so foreach() is used foreach ($_GET as $key => $value) { $key = end(explode("/", $key)); if ((preg_match('/^[0-9]+(#?([0-9]+:?[0-9]+)+(;?([0-9]+:?[0-9]+)+)*)*$/', $key) || preg_match('/^[a-zA-Z0-9 -_]*$/', $key)) && $key != $lC_Session->getName()) { $id = $key; } break; } } if (empty($cPath_array) && $_GET['cPath'] == '' && isset($lC_Services) && $lC_Services->isStarted('seo')) { foreach ($_GET as $cats => $values) { $cats = explode("/", $cats); foreach ($cats as $cat) { $Qcid = $lC_Database->query('select item_id from :table_permalinks where permalink = :permalink and type = 1 and language_id = :language_id'); $Qcid->bindTable(':table_permalinks', TABLE_PERMALINKS); $Qcid->bindValue(':permalink', $cat); $Qcid->bindInt(':language_id', $lC_Language->getID()); $Qcid->execute(); $cPath_array[] = $Qcid->valueInt('item_id'); } } } if (isset($lC_Services) && $lC_Services->isStarted('seo') && $_GET['cpath'] == '') { $id = $lC_CategoryTree->getID($id); $cData = $lC_CategoryTree->getData($id); $cPath = end(explode("_", $cData['query'])); $current_category_id = $cData['item_id']; } else { $cPath = $_GET['cPath']; } if (isset($cPath) && empty($cPath) === false) { if ($lC_Services->isStarted('breadcrumb')) { $Qcategories = $lC_Database->query('select categories_id, categories_name from :table_categories_description where categories_id in (:categories_id) and language_id = :language_id'); $Qcategories->bindTable(':table_categories_description', TABLE_CATEGORIES_DESCRIPTION); $Qcategories->bindTable(':categories_id', implode(',', $cPath_array)); $Qcategories->bindInt(':language_id', $lC_Language->getID()); $Qcategories->execute(); $categories = array(); while ($Qcategories->next()) { $categories[$Qcategories->value('categories_id')] = $Qcategories->valueProtected('categories_name'); } $Qcategories->freeResult(); if ($lC_Services->isStarted('breadcrumb')) { if (isset($_GET['cPath']) && $_GET['cPath'] != '') { $path = $_GET['cPath']; } else { $path = implode("_", $cPath_array); } $lC_Breadcrumb->add(null, null, $path); } } $lC_Category = new lC_Category($current_category_id); // added to check for category status and show not found page if ($lC_CategoryTree->getStatus($current_category_id) == 1) { // categry is enabled move on $this->_page_title = $lC_Category->getTitle(); if ($lC_Category->hasImage()) { $this->_page_image = 'categories/' . $lC_Category->getImage(); } $Qproducts = $lC_Database->query('select products_id from :table_products_to_categories where categories_id = :categories_id limit 1'); $Qproducts->bindTable(':table_products_to_categories', TABLE_PRODUCTS_TO_CATEGORIES); $Qproducts->bindInt(':categories_id', $current_category_id); $Qproducts->execute(); if ($Qproducts->numberOfRows() > 0) { $this->_page_contents = 'product_listing.php'; $this->_process(); } else { $Qparent = $lC_Database->query('select categories_id from :table_categories where parent_id = :parent_id limit 1'); $Qparent->bindTable(':table_categories', TABLE_CATEGORIES); $Qparent->bindInt(':parent_id', $current_category_id); $Qparent->execute(); // VQMOD-hookpoint; DO NOT MODIFY OR REMOVE THE LINE BELOW $this->_page_contents = 'category_listing.php'; $this->_process(); } // ogp tags $this->addOGPTags('site_name', STORE_NAME); $this->addOGPTags('type', 'website'); $this->addOGPTags('title', $this->_page_title); $this->addOGPTags('description', $this->_page_title); $this->addOGPTags('url', lc_href_link(FILENAME_DEFAULT, 'cPath=' . $_GET['cPath'], 'NONSSL', false, true, true)); $this->addOGPTags('image', HTTP_SERVER . DIR_WS_CATALOG . 'templates/' . $template_code . '/images/logo.png'); if ($lC_Category->hasImage()) { $this->addOGPTags('image', HTTP_SERVER . DIR_WS_CATALOG . DIR_WS_IMAGES . $this->_page_image); } } else { // category is disabled, show not found content $this->_page_contents = 'category_not_found.php'; } } else { $this->addOGPTags('site_name', STORE_NAME); $this->addOGPTags('type', 'website'); $this->addOGPTags('title', $this->_page_title); $this->addOGPTags('description', lC_Template::getBranding('meta_description') != '' ? lC_Template::getBranding('meta_description') : $this->_page_title); $this->addOGPTags('url', lc_href_link(FILENAME_DEFAULT, '', 'NONSSL', false, true, true)); if ($this->getBranding('og_image') && $this->getBranding('og_image') != 'no_image.png') { $this->addOGPTags('image', HTTP_SERVER . DIR_WS_CATALOG . DIR_WS_IMAGES . 'branding/' . $this->getBranding('og_image')); } else { $this->addOGPTags('image', HTTP_SERVER . DIR_WS_CATALOG . DIR_WS_IMAGES . 'no_image.png'); } } }
public function getCategories() { $history = array(); if (isset($this->visits['categories']) && empty($this->visits['categories']) === false) { $counter = 0; foreach ($this->visits['categories'] as $k => $v) { $counter++; $lC_Category = new lC_Category($v['id']); if ($lC_Category->hasParent()) { $lC_CategoryParent = new lC_Category($lC_Category->getParent()); } $history[] = array('id' => $lC_Category->getID(), 'name' => $lC_Category->getTitle(), 'path' => $lC_Category->getPath(), 'image' => $lC_Category->getImage(), 'parent_name' => $lC_Category->hasParent() ? $lC_CategoryParent->getTitle() : '', 'parent_id' => $lC_Category->hasParent() ? $lC_CategoryParent->getID() : ''); if ($counter == SERVICE_RECENTLY_VISITED_MAX_CATEGORIES) { break; } } } return $history; }