* @copyright 2007-2012 PrestaShop SA * @version Release: $Revision: 14006 $ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ class UcinneLatkyControllerCore extends FrontController { public $php_self = 'ucinne-latky.php'; public function canonicalRedirection() { if (Validate::isLoadedObject($this->manufacturer) && Configuration::get('PS_CANONICAL_REDIRECT') && strtoupper($_SERVER['REQUEST_METHOD']) == 'GET') { $canonicalURL = self::$link->getManufacturerLink($this->manufacturer); if (!preg_match('/^'.Tools::pRegexp($canonicalURL, '/').'([&?].*)?$/', Tools::getProtocol().$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'])) { header('HTTP/1.0 301 Moved'); header('Cache-Control: no-cache'); if (defined('_PS_MODE_DEV_') AND _PS_MODE_DEV_) die('[Debug] This page has moved
Please use the following URL instead: '.$canonicalURL.''); Tools::redirectLink($canonicalURL); } } } public function preProcess() { parent::preProcess(); } public function process() { // Id jazyku // $id_lang = (int)($params['cookie']->id_lang); $id_lang = 6; // Nacteni kategorii $categories = CategoryCore::getCategories($id_lang); $data = array(); // Pruchod kategoriemi z vetve s id 26 ( Ucinne latky) a nacteni poctu produktu v nich foreach($categories[26] as $id => $category) { $letter = mb_substr($category['infos']['name'], 0, 1); //iconv("UTF-8", "ISO-8859-1", $categoryObject = new CategoryCore($id, $id_lang); $data[$letter][$id] = array( "category" => $category['infos'], "product_count" => $categoryObject->getProducts(null, null, null, NULL, NULL, true)); } // Serazeni pole podle klicu uksort($data, "sortWithCzechLetters"); self::$smarty->assign(array( 'letters' => $data )); } public function displayContent() { self::$smarty->display(_PS_THEME_DIR_.'ucinne-latky.tpl'); } } /** * Funkce pro PHP řadící funkce, či samostatné řazení * Funkce porovnává vždy jeden znak s jedním, pomocí tabulky hodnot zvládá i češké znaky kromě ch * @author Tomáš Chrástek * @param type $a znak * @param type $b znak * @return int */ function sortWithCzechLetters($a, $b){ $letters = array( "a" => 10, "á" => 11, "A" => 12, "Á" => 13, "b" => 20, "B" => 21, "c" => 30, "č" => 31, "C" => 32, "Č" => 33, "d" => 40, "ď" => 41, "D" => 42, "Ď" => 33, "e" => 50, "é" => 51, "E" => 52, "É" => 33, "f" => 60, "F" => 61, "g" => 70, "G" => 71, "h" => 80, "H" => 81, "i" => 90, "í" => 91, "I" => 92, "Í" => 93, "j" => 100, "J" => 101, "k" => 110, "K" => 111, "l" => 120, "L" => 121, "m" => 130, "M" => 131, "n" => 140, "ň" => 141, "N" => 142, "Ň" => 143, "o" => 150, "ó" => 151, "O" => 152, "Ó" => 153, "p" => 160, "P" => 161, "q" => 170, "Q" => 171, "r" => 180, "ř" => 181, "R" => 182, "Ř" => 183, "s" => 190, "š" => 191, "S" => 192, "Š" => 193, "t" => 200, "ť" => 201, "T" => 202, "Ť" => 203, "u" => 210, "ú" => 211, "ů" => 212, "U" => 213, "Ú" => 214, "Ů" => 215, "v" => 220, "V" => 221, "w" => 230, "W" => 231, "x" => 240, "X" => 241, "y" => 250, "Y" => 251, "z" => 260, "ž" => 261, "Z" => 262, "Ž" => 263 ); return ($letters[$a] > $letters[$b])?1:-1; }