* @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;
}