MagicFire Posted September 10, 2012 Share Posted September 10, 2012 (edited) Hi, could anybody tell me why isn!t this working? $url = $_SERVER['REQUEST_URI']; if(strpos($url,'kontakt') == false){ self::$smarty->display(_PS_THEME_DIR_.'header.tpl'); } else{ self::$smarty->display(_PS_THEME_DIR_.'header2.tpl'); } All I want to choose PS between two tempaltes according to the URL. The similiar code, only used for footer is working absoutely right. $url = $_SERVER['REQUEST_URI']; if(strpos($url,'kontakt') == false){ self::$smarty->display(_PS_THEME_DIR_.'footer.tpl'); } else{ self::$smarty->display(_PS_THEME_DIR_.'footer2.tpl'); } So where is the difference? May I just can't see the obvious. Thanks Edited September 10, 2012 by MagicFire (see edit history) Link to comment Share on other sites More sharing options...
shacker Posted September 15, 2012 Share Posted September 15, 2012 where are you adding this code? Link to comment Share on other sites More sharing options...
MagicFire Posted September 15, 2012 Author Share Posted September 15, 2012 In the FrontController.php. Link to comment Share on other sites More sharing options...
shacker Posted September 18, 2012 Share Posted September 18, 2012 what error you get with this code? Link to comment Share on other sites More sharing options...
MagicFire Posted September 18, 2012 Author Share Posted September 18, 2012 I get no error. It simply ignore the condition and shows at all time the header.tpl. I have to hacked it throw Javascript ( I need different width of main div and different content, so therefore I've created ). Link to comment Share on other sites More sharing options...
yewster Posted September 19, 2012 Share Posted September 19, 2012 I get no error. It simply ignore the condition and shows at all time the header.tpl. I have to hacked it throw Javascript ( I need different width of main div and different content, so therefore I've created ). Odd. If footer is working then header should be working too. Are you using override? Link to comment Share on other sites More sharing options...
MagicFire Posted September 19, 2012 Author Share Posted September 19, 2012 No, I'm not using override. I just pick the original code and put it in the if statement with my own else code. Link to comment Share on other sites More sharing options...
shacker Posted September 20, 2012 Share Posted September 20, 2012 add here your full file so we can check Link to comment Share on other sites More sharing options...
MagicFire Posted September 20, 2012 Author Share Posted September 20, 2012 <?php /* * 2007-2012 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/osl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author PrestaShop SA <[email protected]> * @copyright 2007-2012 PrestaShop SA * @version Release: $Revision: 14390 $ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ class FrontControllerCore { public $errors = array(); protected static $smarty; protected static $cookie; protected static $link; protected static $cart; public $iso; public $orderBy; public $orderWay; public $p; public $n; public $auth = false; public $guestAllowed = false; public $authRedirection = false; public $ssl = false; protected $restrictedCountry = false; protected $maintenance = false; public static $initialized = false; protected static $currentCustomerGroups; public function __construct() { global $useSSL; $useSSL = $this->ssl; } public function run() { $this->init(); $this->preProcess(); $this->displayHeader(); $this->process(); $this->displayContent(); $this->displayFooter(); } public function init() { global $useSSL, $cookie, $smarty, $cart, $iso, $defaultCountry, $protocol_link, $protocol_content, $link, $css_files, $js_files; if (self::$initialized) return; self::$initialized = true; // If current URL use SSL, set it true (used a lot for module redirect) if (Tools::usingSecureMode()) $useSSL = $this->ssl = true; $css_files = array(); $js_files = array(); if ($this->ssl AND !Tools::usingSecureMode() AND Configuration::get('PS_SSL_ENABLED')) { header('HTTP/1.1 301 Moved Permanently'); header('Cache-Control: no-cache'); header('Location: '.Tools::getShopDomainSsl(true).$_SERVER['REQUEST_URI']); exit(); } else if (Configuration::get('PS_SSL_ENABLED') AND Tools::usingSecureMode() AND !($this->ssl)) { header('HTTP/1.1 301 Moved Permanently'); header('Cache-Control: no-cache'); header('Location: '.Tools::getShopDomain(true).$_SERVER['REQUEST_URI']); exit(); } ob_start(); /* Loading default country */ $defaultCountry = new Country((int)Configuration::get('PS_COUNTRY_DEFAULT'), Configuration::get('PS_LANG_DEFAULT')); $cookieLifetime = (time() + (((int)Configuration::get('PS_COOKIE_LIFETIME_FO') > 0 ? (int)Configuration::get('PS_COOKIE_LIFETIME_FO') : 1)* 3600)); $cookie = new Cookie('ps', '', $cookieLifetime); $link = new Link(); if ($this->auth AND !$cookie->isLogged($this->guestAllowed)) Tools::redirect('authentication.php'.($this->authRedirection ? '?back='.$this->authRedirection : '')); /* Theme is missing or maintenance */ if (!is_dir(_PS_THEME_DIR_)) die(Tools::displayError('Current theme unavailable. Please check your theme directory name and permissions.')); elseif (basename($_SERVER['PHP_SELF']) != 'disabled.php' AND !(int)(Configuration::get('PS_SHOP_ENABLE'))) $this->maintenance = true; elseif (Configuration::get('PS_GEOLOCATION_ENABLED')) $this->geolocationManagement(); // Switch language if needed and init cookie language if ($iso = Tools::getValue('isolang') AND Validate::isLanguageIsoCode($iso) AND ($id_lang = (int)(Language::getIdByIso($iso)))) $_GET['id_lang'] = $id_lang; Tools::switchLanguage(); Tools::setCookieLanguage(); /* attribute id_lang is often needed, so we create a constant for performance reasons */ if (!defined('_USER_ID_LANG_')) define('_USER_ID_LANG_', (int)$cookie->id_lang); if (isset($_GET['logout']) OR ($cookie->logged AND Customer::isBanned((int)$cookie->id_customer))) { $cookie->logout(); Tools::redirect(isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : NULL); } elseif (isset($_GET['mylogout'])) { $cookie->mylogout(); Tools::redirect(isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : NULL); } global $currency; $currency = Tools::setCurrency(); /* Cart already exists */ if ((int)$cookie->id_cart) { $cart = new Cart((int)$cookie->id_cart); if ($cart->OrderExists()) unset($cookie->id_cart, $cart, $cookie->checkedTOS); /* Delete product of cart, if user can't make an order from his country */ elseif (intval(Configuration::get('PS_GEOLOCATION_ENABLED')) AND !in_array(strtoupper($cookie->iso_code_country), explode(';', Configuration::get('PS_ALLOWED_COUNTRIES'))) AND $cart->nbProducts() AND intval(Configuration::get('PS_GEOLOCATION_NA_BEHAVIOR')) != -1 AND !self::isInWhitelistForGeolocation()) unset($cookie->id_cart, $cart); elseif ($cookie->id_customer != $cart->id_customer OR $cookie->id_lang != $cart->id_lang OR $cookie->id_currency != $cart->id_currency) { if ($cookie->id_customer) $cart->id_customer = (int)($cookie->id_customer); $cart->id_lang = (int)($cookie->id_lang); $cart->id_currency = (int)($cookie->id_currency); $cart->update(); } /* Select an address if not set */ if (isset($cart) && (!isset($cart->id_address_delivery) || $cart->id_address_delivery == 0 || !isset($cart->id_address_invoice) || $cart->id_address_invoice == 0) && $cookie->id_customer) { $to_update = false; if (!isset($cart->id_address_delivery) || $cart->id_address_delivery == 0) { $to_update = true; $cart->id_address_delivery = (int)Address::getFirstCustomerAddressId($cart->id_customer); } if (!isset($cart->id_address_invoice) || $cart->id_address_invoice == 0) { $to_update = true; $cart->id_address_invoice = (int)Address::getFirstCustomerAddressId($cart->id_customer); } if ($to_update) $cart->update(); } } if (!isset($cart) OR !$cart->id) { $cart = new Cart(); $cart->id_lang = (int)($cookie->id_lang); $cart->id_currency = (int)($cookie->id_currency); $cart->id_guest = (int)($cookie->id_guest); if ($cookie->id_customer) { $cart->id_customer = (int)($cookie->id_customer); $cart->id_address_delivery = (int)(Address::getFirstCustomerAddressId($cart->id_customer)); $cart->id_address_invoice = $cart->id_address_delivery; } else { $cart->id_address_delivery = 0; $cart->id_address_invoice = 0; } } if (!$cart->nbProducts()) $cart->id_carrier = NULL; $locale = strtolower(Configuration::get('PS_LOCALE_LANGUAGE')).'_'.strtoupper(Configuration::get('PS_LOCALE_COUNTRY').'.UTF-8'); setlocale(LC_COLLATE, $locale); setlocale(LC_CTYPE, $locale); setlocale(LC_TIME, $locale); setlocale(LC_NUMERIC, 'en_US.UTF-8'); if (Validate::isLoadedObject($currency)) $smarty->ps_currency = $currency; if (Validate::isLoadedObject($ps_language = new Language((int)$cookie->id_lang))) $smarty->ps_language = $ps_language; /* get page name to display it in body id */ $page_name = (isset($this->php_self) ? preg_replace('/\.php$/', '', $this->php_self) : ''); if (preg_match('#^'.__PS_BASE_URI__.'modules/([a-zA-Z0-9_-]+?)/(.*)$#', $_SERVER['REQUEST_URI'], $m)) $page_name = 'module-'.$m[1].'-'.str_replace(array('.php', '/'), array('', '-'), $m[2]); $smarty->assign(Tools::getMetaTags($cookie->id_lang, $page_name)); $smarty->assign('request_uri', Tools::safeOutput(urldecode($_SERVER['REQUEST_URI']))); /* Breadcrumb */ $navigationPipe = (Configuration::get('PS_NAVIGATION_PIPE') ? Configuration::get('PS_NAVIGATION_PIPE') : '>'); $smarty->assign('navigationPipe', $navigationPipe); $protocol_link = (Configuration::get('PS_SSL_ENABLED') OR Tools::usingSecureMode()) ? 'https://' : 'http://'; $useSSL = ((isset($this->ssl) AND $this->ssl AND Configuration::get('PS_SSL_ENABLED')) OR Tools::usingSecureMode()) ? true : false; $protocol_content = ($useSSL) ? 'https://' : 'http://'; if (!defined('_PS_BASE_URL_')) define('_PS_BASE_URL_', Tools::getShopDomain(true)); if (!defined('_PS_BASE_URL_SSL_')) define('_PS_BASE_URL_SSL_', Tools::getShopDomainSsl(true)); $link->preloadPageLinks(); $this->canonicalRedirection(); Product::initPricesComputation(); $display_tax_label = $defaultCountry->display_tax_label; if ($cart->{Configuration::get('PS_TAX_ADDRESS_TYPE')}) { $infos = Address::getCountryAndState((int)($cart->{Configuration::get('PS_TAX_ADDRESS_TYPE')})); $country = new Country((int)$infos['id_country']); if (Validate::isLoadedObject($country)) $display_tax_label = $country->display_tax_label; } $smarty->assign(array( 'link' => $link, 'cart' => $cart, 'currency' => $currency, 'cookie' => $cookie, 'page_name' => $page_name, 'base_dir' => _PS_BASE_URL_.__PS_BASE_URI__, 'base_dir_ssl' => $protocol_link.Tools::getShopDomainSsl().__PS_BASE_URI__, 'content_dir' => $protocol_content.Tools::getHttpHost().__PS_BASE_URI__, 'tpl_dir' => _PS_THEME_DIR_, 'modules_dir' => _MODULE_DIR_, 'mail_dir' => _MAIL_DIR_, 'lang_iso' => $ps_language->iso_code, 'come_from' => Tools::getHttpHost(true, true).Tools::htmlentitiesUTF8(str_replace('\'', '', urldecode($_SERVER['REQUEST_URI']))), 'cart_qties' => (int)$cart->nbProducts(), 'currencies' => Currency::getCurrencies(), 'languages' => Language::getLanguages(), 'priceDisplay' => Product::getTaxCalculationMethod(), 'add_prod_display' => (int)Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'), 'shop_name' => Configuration::get('PS_SHOP_NAME'), 'roundMode' => (int)Configuration::get('PS_PRICE_ROUND_MODE'), 'use_taxes' => (int)Configuration::get('PS_TAX'), 'display_tax_label' => (bool)$display_tax_label, 'vat_management' => (int)Configuration::get('VATNUMBER_MANAGEMENT'), 'opc' => (bool)Configuration::get('PS_ORDER_PROCESS_TYPE'), 'PS_CATALOG_MODE' => (bool)Configuration::get('PS_CATALOG_MODE'), )); // Deprecated $smarty->assign(array( 'id_currency_cookie' => (int)$currency->id, 'logged' => $cookie->isLogged(), 'customerName' => ($cookie->logged ? $cookie->customer_firstname.' '.$cookie->customer_lastname : false) )); // TODO for better performances (cache usage), remove these assign and use a smarty function to get the right media server in relation to the full ressource name $assignArray = array( 'img_ps_dir' => _PS_IMG_, 'img_cat_dir' => _THEME_CAT_DIR_, 'img_lang_dir' => _THEME_LANG_DIR_, 'img_prod_dir' => _THEME_PROD_DIR_, 'img_manu_dir' => _THEME_MANU_DIR_, 'img_sup_dir' => _THEME_SUP_DIR_, 'img_ship_dir' => _THEME_SHIP_DIR_, 'img_store_dir' => _THEME_STORE_DIR_, 'img_col_dir' => _THEME_COL_DIR_, 'img_dir' => _THEME_IMG_DIR_, 'css_dir' => _THEME_CSS_DIR_, 'js_dir' => _THEME_JS_DIR_, 'pic_dir' => _THEME_PROD_PIC_DIR_ ); foreach ($assignArray as $assignKey => $assignValue) if (substr($assignValue, 0, 1) == '/' OR $protocol_content == 'https://') $smarty->assign($assignKey, $protocol_content.Tools::getMediaServer($assignValue).$assignValue); else $smarty->assign($assignKey, $assignValue); // setting properties from global var self::$cookie = $cookie; self::$cart = $cart; self::$smarty = $smarty; self::$link = $link; if ($this->maintenance) $this->displayMaintenancePage(); if ($this->restrictedCountry) $this->displayRestrictedCountryPage(); //live edit if (Tools::isSubmit('live_edit') AND $ad = Tools::getValue('ad') AND (Tools::getValue('liveToken') == sha1(Tools::getValue('ad')._COOKIE_KEY_))) if (!is_dir(_PS_ROOT_DIR_.DIRECTORY_SEPARATOR.$ad)) die(Tools::displayError()); $this->iso = $iso; $this->setMedia(); } /* Display a maintenance page if shop is closed */ protected function displayMaintenancePage() { if (!in_array(Tools::getRemoteAddr(), explode(',', Configuration::get('PS_MAINTENANCE_IP')))) { header('HTTP/1.1 503 temporarily overloaded'); self::$smarty->display(_PS_THEME_DIR_.'maintenance.tpl'); exit; } } /* Display a specific page if the user country is not allowed */ protected function displayRestrictedCountryPage() { global $smarty; header('HTTP/1.1 503 temporarily overloaded'); $smarty->display(_PS_THEME_DIR_.'restricted-country.tpl'); exit; } protected function canonicalRedirection() { global $link, $cookie; if (Configuration::get('PS_CANONICAL_REDIRECT') && strtoupper($_SERVER['REQUEST_METHOD']) == 'GET') { // Automatically redirect to the canonical URL if needed if (isset($this->php_self) AND !empty($this->php_self)) { // $_SERVER['HTTP_HOST'] must be replaced by the real canonical domain $canonicalURL = $link->getPageLink($this->php_self, $this->ssl, $cookie->id_lang); if (!Tools::getValue('ajax') && !preg_match('/^'.Tools::pRegexp($canonicalURL, '/').'([&?].*)?$/', (($this->ssl AND Configuration::get('PS_SSL_ENABLED')) ? 'https://' : 'http://').$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'])) { if ($_SERVER['REQUEST_URI'] == __PS_BASE_URI__) { header('HTTP/1.0 303 See Other'); header('Cache-Control: no-cache'); } else { header('HTTP/1.0 301 Moved Permanently'); header('Cache-Control: no-cache'); } $params = ''; $excludedKey = array('isolang', 'id_lang'); foreach ($_GET as $key => $value) if (!in_array($key, $excludedKey)) $params .= ($params == '' ? '?' : '&').$key.'='.$value; Module::hookExec('frontCanonicalRedirect'); if (defined('_PS_MODE_DEV_') AND _PS_MODE_DEV_ AND $_SERVER['REQUEST_URI'] != __PS_BASE_URI__) die('[Debug] This page has moved<br />Please use the following URL instead: <a href="'.$canonicalURL.$params.'">'.$canonicalURL.$params.'</a>'); Tools::redirectLink($canonicalURL.$params); } } } } protected function geolocationManagement() { global $cookie, $smarty; if (!in_array($_SERVER['SERVER_NAME'], array('localhost', '127.0.0.1'))) { /* Check if Maxmind Database exists */ if (file_exists(_PS_GEOIP_DIR_.'GeoLiteCity.dat')) { if (!isset($cookie->iso_code_country) OR (isset($cookie->iso_code_country) AND !in_array(strtoupper($cookie->iso_code_country), explode(';', Configuration::get('PS_ALLOWED_COUNTRIES'))))) { include_once(_PS_GEOIP_DIR_.'geoipcity.inc'); include_once(_PS_GEOIP_DIR_.'geoipregionvars.php'); $gi = geoip_open(realpath(_PS_GEOIP_DIR_.'GeoLiteCity.dat'), GEOIP_STANDARD); $record = geoip_record_by_addr($gi, Tools::getRemoteAddr()); if (is_object($record) AND !in_array(strtoupper($record->country_code), explode(';', Configuration::get('PS_ALLOWED_COUNTRIES'))) AND !self::isInWhitelistForGeolocation()) { if (Configuration::get('PS_GEOLOCATION_BEHAVIOR') == _PS_GEOLOCATION_NO_CATALOG_) $this->restrictedCountry = true; elseif (Configuration::get('PS_GEOLOCATION_BEHAVIOR') == _PS_GEOLOCATION_NO_ORDER_) $smarty->assign(array( 'restricted_country_mode' => true, 'geolocation_country' => $record->country_name )); } elseif (is_object($record)) { $cookie->iso_code_country = strtoupper($record->country_code); $hasBeenSet = true; } } if (isset($cookie->iso_code_country) AND (int)($id_country = Country::getByIso(strtoupper($cookie->iso_code_country)))) { /* Update defaultCountry */ $defaultCountry = new Country($id_country); if (isset($hasBeenSet) AND $hasBeenSet) $cookie->id_currency = (int)(Currency::getCurrencyInstance($defaultCountry->id_currency ? (int)$defaultCountry->id_currency : Configuration::get('PS_CURRENCY_DEFAULT'))->id); } elseif (Configuration::get('PS_GEOLOCATION_NA_BEHAVIOR') == _PS_GEOLOCATION_NO_CATALOG_) $this->restrictedCountry = true; elseif (Configuration::get('PS_GEOLOCATION_NA_BEHAVIOR') == _PS_GEOLOCATION_NO_ORDER_) $smarty->assign(array( 'restricted_country_mode' => true, 'geolocation_country' => 'Undefined' )); } /* If not exists we disabled the geolocation feature */ else Configuration::updateValue('PS_GEOLOCATION_ENABLED', 0); } } public function preProcess() { } public function setMedia() { global $cookie; Tools::addCSS(_THEME_CSS_DIR_.'global.css', 'all'); Tools::addJS(array(_PS_JS_DIR_.'jquery/jquery-1.4.4.min.js', _PS_JS_DIR_.'jquery/jquery.easing.1.3.js', _PS_JS_DIR_.'tools.js')); if (Tools::isSubmit('live_edit') AND Tools::getValue('ad') AND (Tools::getValue('liveToken') == sha1(Tools::getValue('ad')._COOKIE_KEY_))) { Tools::addJS(array( _PS_JS_DIR_.'jquery/jquery-ui-1.8.10.custom.min.js', _PS_JS_DIR_.'jquery/jquery.fancybox-1.3.4.js', _PS_JS_DIR_.'hookLiveEdit.js') ); Tools::addCSS(_PS_CSS_DIR_.'jquery.fancybox-1.3.4.css'); } $language = new Language($cookie->id_lang); if ($language->is_rtl) Tools::addCSS(_THEME_CSS_DIR_.'rtl.css'); } public function process() { } public function displayContent() { Tools::safePostVars(); self::$smarty->assign('errors', $this->errors); } public function displayHeader() { global $css_files, $js_files,$kontakt; if (!self::$initialized) $this->init(); // P3P Policies (http://www.w3.org/TR/2002/REC-P3P-20020416/#compact_policies) header('P3P: CP="IDC DSP COR CURa ADMa OUR IND PHY ONL COM STA"'); /* Hooks are volontary out the initialize array (need those variables already assigned) */ self::$smarty->assign(array( 'time' => time(), 'img_update_time' => Configuration::get('PS_IMG_UPDATE_TIME'), 'static_token' => Tools::getToken(false), 'token' => Tools::getToken(), 'logo_image_width' => Configuration::get('SHOP_LOGO_WIDTH'), 'logo_image_height' => Configuration::get('SHOP_LOGO_HEIGHT'), 'priceDisplayPrecision' => _PS_PRICE_DISPLAY_PRECISION_, 'content_only' => (int)Tools::getValue('content_only') )); self::$smarty->assign(array( 'HOOK_HEADER' => Module::hookExec('header'), 'HOOK_TOP' => Module::hookExec('top'), 'HOOK_LEFT_COLUMN' => Module::hookExec('leftColumn') )); if ((Configuration::get('PS_CSS_THEME_CACHE') OR Configuration::get('PS_JS_THEME_CACHE')) AND is_writable(_PS_THEME_DIR_.'cache')) { // CSS compressor management if (Configuration::get('PS_CSS_THEME_CACHE')) Tools::cccCss(); //JS compressor management if (Configuration::get('PS_JS_THEME_CACHE')) Tools::cccJs(); } self::$smarty->assign('css_files', $css_files); self::$smarty->assign('js_files', array_unique($js_files)); $url = $_SERVER['REQUEST_URI']; if(strpos($url,'kontakt') == false){ $kontakt = 'center_column'; self::$smarty->display(_PS_THEME_DIR_.'header.tpl'); } else{ self::$smarty->display(_PS_THEME_DIR_.'header2.tpl'); $kontakt = 'center_column2'; } $this->context->smarty->assign('kontakt1',$kontakt); } public function displayFooter() { if (!self::$initialized) $this->init(); self::$smarty->assign(array( 'HOOK_RIGHT_COLUMN' => Module::hookExec('rightColumn', array('cart' => self::$cart)), 'HOOK_FOOTER' => Module::hookExec('footer'), 'content_only' => (int)(Tools::getValue('content_only')))); $url = $_SERVER['REQUEST_URI']; if(strpos($url,'kontakt') == false){ self::$smarty->display(_PS_THEME_DIR_.'footer.tpl'); } else{ self::$smarty->display(_PS_THEME_DIR_.'footer2.tpl'); } //live edit if (Tools::isSubmit('live_edit') AND $ad = Tools::getValue('ad') AND (Tools::getValue('liveToken') == sha1(Tools::getValue('ad')._COOKIE_KEY_))) { self::$smarty->assign(array('ad' => $ad, 'live_edit' => true)); self::$smarty->display(_PS_ALL_THEMES_DIR_.'live_edit.tpl'); } else Tools::displayError(); } public function productSort() { if (!self::$initialized) $this->init(); $stock_management = (int)(Configuration::get('PS_STOCK_MANAGEMENT')) ? true : false; // no display quantity order if stock management disabled $this->orderBy = Tools::getProductsOrder('by', Tools::getValue('orderby')); $this->orderWay = Tools::getProductsOrder('way', Tools::getValue('orderway')); self::$smarty->assign(array( 'orderby' => $this->orderBy, 'orderway' => $this->orderWay, 'orderbydefault' => Tools::getProductsOrder('by'), 'orderwayposition' => Tools::getProductsOrder('way'), // Deprecated: orderwayposition 'orderwaydefault' => Tools::getProductsOrder('way'), 'stock_management' => (int)($stock_management))); } public function pagination($nbProducts = 10) { if (!self::$initialized) $this->init(); $nArray = (int)(Configuration::get('PS_PRODUCTS_PER_PAGE')) != 10 ? array((int)(Configuration::get('PS_PRODUCTS_PER_PAGE')), 10, 20, 50) : array(10, 20, 50); // Clean duplicate values $nArray = array_unique($nArray); asort($nArray); $this->n = abs((int)(Tools::getValue('n', ((isset(self::$cookie->nb_item_per_page) AND self::$cookie->nb_item_per_page >= 10) ? self::$cookie->nb_item_per_page : (int)(Configuration::get('PS_PRODUCTS_PER_PAGE')))))); $this->p = abs((int)(Tools::getValue('p', 1))); if (!is_numeric(Tools::getValue('p', 1)) || Tools::getValue('p', 1) < 0) Tools::redirect('404.php'); $current_url = tools::htmlentitiesUTF8($_SERVER['REQUEST_URI']); //delete parameter page $current_url = preg_replace('/(\?)?(&)?p=\d+/', '$1', $current_url); $range = 2; /* how many pages around page selected */ if ($this->p < 0) $this->p = 0; if (isset(self::$cookie->nb_item_per_page) AND $this->n != self::$cookie->nb_item_per_page AND in_array($this->n, $nArray)) self::$cookie->nb_item_per_page = $this->n; if ($this->p > (($nbProducts / $this->n) + 1)) Tools::redirect(preg_replace('/[&?]p=\d+/', '', $_SERVER['REQUEST_URI'])); $pages_nb = ceil($nbProducts / (int)($this->n)); $start = (int)($this->p - $range); if ($start < 1) $start = 1; $stop = (int)($this->p + $range); if ($stop > $pages_nb) $stop = (int)($pages_nb); self::$smarty->assign('nb_products', $nbProducts); $pagination_infos = array( 'products_per_page' => (int)Configuration::get('PS_PRODUCTS_PER_PAGE'), 'pages_nb' => $pages_nb, 'p' => $this->p, 'n' => $this->n, 'nArray' => $nArray, 'range' => $range, 'start' => $start, 'stop' => $stop, 'current_url' => $current_url ); self::$smarty->assign($pagination_infos); } public static function getCurrentCustomerGroups() { if (!isset(self::$cookie) || !self::$cookie->id_customer) return array(); if (!is_array(self::$currentCustomerGroups)) { self::$currentCustomerGroups = array(); $result = Db::getInstance()->ExecuteS('SELECT id_group FROM '._DB_PREFIX_.'customer_group WHERE id_customer = '.(int)self::$cookie->id_customer); foreach ($result as $row) self::$currentCustomerGroups[] = $row['id_group']; } return self::$currentCustomerGroups; } protected static function isInWhitelistForGeolocation() { $allowed = false; $userIp = Tools::getRemoteAddr(); $ips = explode(';', Configuration::get('PS_GEOLOCATION_WHITELIST')); if (is_array($ips) AND sizeof($ips)) foreach ($ips AS $ip) if (!empty($ip) AND strpos($userIp, $ip) === 0) $allowed = true; return $allowed; } } Link to comment Share on other sites More sharing options...
shacker Posted October 5, 2012 Share Posted October 5, 2012 seems ok, but with you dont put the alternative code directly on the tpl? like {if $page_name == "contact"} {else} {/if} Link to comment Share on other sites More sharing options...
MagicFire Posted October 5, 2012 Author Share Posted October 5, 2012 I just need some simply rule. But all this will be soon or later useless, because there will be languages. So I will have to figure out some new method to assign template to a single page. Link to comment Share on other sites More sharing options...
Recommended Posts