Last UpDate: 21.05.2010 */ error_reporting(E_ALL); ini_set("display_errors", "On"); session_start(); include(str_replace("\\", "/", dirname(__FILE__)).'/../cfg.php'); include_once(_FILES_ABS_."/mysql.php"); include_once(_FILES_ABS_."/mail.php"); include_once(_FILES_ABS_."/appends.php"); include_once(_PUBLIC_ABS_."/objects.php"); include_once(_PUBLIC_ABS_."/strings.php"); class api extends appends{ public $template; public $objects; public $strings; public $mail; public $body; public $arguments; public $lang; public $languages; function __construct(){ parent::__construct(); $this->template = '/pages.html'; $this->body = null; $this->arguments = array(); $this->languages = array( "ru"=>"Рус.", "en"=>"English", "kz"=>"Каз." ); $this->lang = 'ru'; $this->objects = new objects( $this->lang ); $this->strings = new Strings( $this->lang ); $this->mail = new mime_mail(); } function arg($name, $value){ $this->arguments[$name] = $value; } function args($arr){ if($arr) $this->arguments = array_merge($this->arguments, $arr); } function flush($buffer){ $this->content = explode("#CONTENT#", $buffer); $this->content = $this->content[0].$this->body.$this->content[1]; #INIT HEAD $this->content = str_replace('', "\n".$this->initHead(), $this->content); $this->run(); $temp = array(); foreach($this->arguments as $name => $value){ $temp[''] = $value; } $this->content = strtr($this->content, $temp); #INIT ALL TYPES OF INSIDE OBJECTS $this->content = $this->convertSmartObjects($this->content); $this->content = $this->convertSimpleObjects($this->content); $this->content = $this->convertSimpleTransObjects($this->content); $this->content = $this->convertSimpleTransObjects57($this->content); return $this->content; } function convertSmartObjects($buffer){ if(!!$this->auth()) return preg_replace_callback("//sU", array($this, 'activateSmartObject'), $buffer); return preg_replace("//sU", '', $buffer); } function activateSmartObject($ok){ $id = uniqid(); $out = array( '
' ); $out[]= $this->areaJS("fe.add( $('#div-".$id."'), ".str_replace("\n", "", $ok[1])." );"); return join("\n", $out); } function convertSimpleObjects($buffer){ return preg_replace_callback("//sU", array($this, 'activateSimpleObject'), $buffer); } function activateSimpleObject($ok){ if(@!preg_match("/^\[(\d+)\]\[([^\]]+)\]$/", $ok[1], $p) || !($o = $this->objects->getFullObject($p[1], false)) || empty($o[$p[2]])) return ''; return $o[$p[2]]; } function convertSimpleTransObjects($buffer){ return preg_replace_callback("//sU", array($this, 'activateSimpleTransObject'), $buffer); } function activateSimpleTransObject($ok){ if(@!preg_match("/^(\d+)$/", $ok[1], $p) || !($o = $this->objects->getFullObject($p[1], false)) || empty($o[18])) return ''; return $o[18]; } function convertSimpleTransObjects57($buffer){ return preg_replace_callback("//sU", array($this, 'activateSimpleTransObject57'), $buffer); } function activateSimpleTransObject57($ok){ if(@!preg_match("/^(\d+)$/", $ok[1], $p) || !($o = $this->objects->getFullObject($p[1], false)) || empty($o[57])) return ''; return $o[57]; } function header($args=array()){ $this->args($args); ob_start(array($this, 'flush')); include(_HTML_ABS_.$this->template); ob_start(); return true; } function footer(){ $this->body = ob_get_contents(); ob_end_clean(); } function v($in_text, $lang = '', $city = ''){ if ($lang == '') $lang = $this->lang; $this->vars = array( 'ru' => array( 'Главная' => 'Главная', 'Новости' => 'Новости', 'все новости' => 'все новости', 'Карта сайта' => 'Карта сайта', 'Вернуться в каталог' => 'Вернуться в каталог', 'Назад' => 'Назад', 'Вернуться на уровень выше' => 'Вернуться на уровень выше', 'В перёд' => 'В перёд', 'Войти' => 'Войти', 'Регистрация' => 'Регистрация', 'Выйти' => 'Выйти', 'Авторизация пользователя' => 'Авторизация пользователя', 'Пароль' => 'Пароль', 'Забыли пароль?' => 'Забыли пароль?', 'тг.' => 'тг.', 'Товаров' => 'Товаров', 'На сумму' => 'На сумму', 'Подробнее' => 'Подробнее', 'создание сайта' => 'создание сайта', 'Не верный логин или пароль!' => 'Не верный логин или пароль!', 'Проголосовали' => 'Проголосовали', 'Голосовать' => 'Голосовать', 'Посмотреть все результаты' => 'Посмотреть все результаты', 'Назад к голосованию' => 'Назад к голосованию', 'Цена' => 'Цена', 'тг' => 'тг', 'в корзину' => 'в корзину', 'Найти' => 'Найти', 'Отмена' => 'Отмена', 'Товары не найдены' => 'Товары не найдены', 'Товар успешно добавлен в корзину.' => 'Товар успешно добавлен в корзину.', ), 'en' => array( 'Главная' => 'Main', 'Новости' => 'News', 'все новости' => 'all news', 'Карта сайта' => 'Site map', 'Вернуться в каталог' => 'Back to catalog', 'Назад' => 'Back', 'Вернуться на уровень выше' => 'Back to previous level', 'В перёд' => 'Next', 'Войти' => 'Signin', 'Регистрация' => 'Register', 'Выйти' => 'Logout', 'Авторизация пользователя' => 'Authorization', 'Пароль' => 'Password', 'Забыли пароль?' => 'Forgot?', 'тг.' => 'tg.', 'Товаров' => 'Goods', 'На сумму' => 'Summ', 'Подробнее' => 'More', 'создание сайта' => 'designed by', 'Не верный логин или пароль!' => 'Wrong login or password!', 'Проголосовали' => 'Voted', 'Голосовать' => 'Vote', 'Посмотреть все результаты' => 'View all results', 'Назад к голосованию' => 'Back to voting', 'Цена' => 'Price', 'тг' => 'tg', 'в корзину' => 'to cart', 'Найти' => 'Search', 'Отмена' => 'Reset', 'Товары не найдены' => 'Products not found', 'Товар успешно добавлен в корзину.' => 'Goods at the basket.', ), 'kz' => array( 'Главная' => 'Басқы бет', 'Новости' => 'Жаңалықтар', 'все новости' => 'барлық жаңалықтар', 'Карта сайта' => 'Сайт картасы', 'Вернуться в каталог' => 'Каталогқа оралу', 'Назад' => 'Ілгері', 'Вернуться на уровень выше' => 'Ілгері', 'В перёд' => 'Алға', 'Войти' => 'Кіру', 'Регистрация' => 'Тіркелу', 'Выйти' => 'Шығу', 'Авторизация пользователя' => 'Сайтқа кіру', 'Пароль' => 'Пароль', 'Забыли пароль?' => 'Пароліңізді ұмытып қалдыңыз ба?', 'тг.' => 'тг.', 'Товаров' => 'Тауарлар', 'На сумму' => 'Бағасы', 'создание сайта' => 'жасаған', 'Не верный логин или пароль!' => 'Логин немесе пароліңіз қате!', 'Проголосовали' => 'Дауыс бергендер', 'Голосовать' => 'Дауыс беру', 'Посмотреть все результаты' => 'Жауаптарды көру', 'Назад к голосованию' => 'Дауыс беруге қайта оралу', 'Цена' => 'Бағасы', 'тг' => 'тг', 'в корзину' => 'қоржынға салу', 'Найти' => 'Iздеу', 'Отмена' => 'Тазарту', 'Товары не найдены' => 'Тауарлар табылған жоқ', 'Товар успешно добавлен в корзину.' => 'Тауарлар қоржында.', ), ); if ($lang != '') $lang = $lang; else $lang = $this->lang; return $this->vars[$lang][$in_text]; } #ЭТА НИФИГОВАЯ ФУНКЦИЯ ДЕЛАЕТ ИНКЛЮДЫ СТИЛЕЙ И ЖОВОСКРИПТА В САМЫЙ ВЕРХ function initHead(){ $title = ( $_SERVER['PHP_SELF'] != '/index.php'? ' — ' : '' ) . ''; $keywords = ''; $description = ''; if($title) { $relCanonical = ''; } if (!empty($_REQUEST['id']) or !empty($_REQUEST['cat'])){ $id=(!empty($_REQUEST['id']) ? $_REQUEST['id'] : @$_REQUEST['cat']); if ($obj = $this->objects->getFullObject($id)){ if (!empty($obj['title'])){ $title = $obj['title']; } if (!empty($obj['keywords'])){ $keywords = $obj['keywords']; } if (!empty($obj['description'])){ $description = $obj['description']; } $relCanonical = !empty($obj['cannonical']) ? '' : ''; } } $files = array( '', ''.$title.'', $relCanonical, '', '', '', '', '', '', '', '', '', '', '', '', ' ', '', '', '', '', '', '', '', '', ); $out = array(); $out[]=$this->areaJS('var _LANG_ = "'.$this->lang.'", ajaxFile = "'._AJAX_FILE_.'";'); $out[]=$this->areaJS('var _NOWORD_ = "", _TOOLONG_ = "", _SEARCHWORD_ = "";'); foreach($files as $file){ $out[]=$file; } if(!$this->auth()) return join("\n", $out); $files = array( '', '', '' ); $out[]=$this->areaJS('var _ROOT_ = "'._ROOT_.'", _UPLOADS_ = "'._UPLOADS_.'", _WWW_ = "", _FILES_ = "'._FILES_.'", ajaxFeFile = "/frontEnd/ajax.php";'); foreach($files as $file){ $out[]=$file; } return join("\n", $out); } #USE IT FOR ACTIONS BY DEFAULT; function run(){ $this->arg('auth-block', $this->authBlock()); $this->arg('menu', $this->getMenu(4, true, false, "nav-main")); $this->arg('news-list', $this->newsList(9, 8)); $this->arg('banners-list-1', $this->bannersList(2, 6, 7)); $this->arg('banners-list-2', $this->bannersList(22, 6, 7)); $this->arg('voting-block', $this->votingBlock(12)); $this->arg('langs', $this->getLangs()); $this->arg('search', $this->search()); $this->arg('subscribe', $this->subscribeBlock()); $this->arg('main_slider', $this->main_slider()); $this->arg('blocks1', $this->blocks1()); $this->arg('blocks2', $this->blocks2()); $this->arg('blocks3', $this->blocks3()); $this->arg('second_slider', $this->second_slider()); $this->arg('reviews', $this->reviews()); $this->arg('left-menu', $this->leftinnmenu()); $this->arg('file-dl', $this->getFiles()); } ################ #USER FUNCTIONS# ################ # iskudrat 10.09.14 function getFiles() { $return = array(); $tag = '
'; if( $files = $this->objects->getFullObjectsListByClass(637, 38) ) { foreach($files as $file) { if( $file['Файл'] != '' ) { $return[] = '

'.$file['Название файла'].'

'; } } return $tag.join("\n",$return).'
'; } } # МЕНЮ function getMenu($id, $hasSubMenu = true, $withIMG = false, $class=""){ $out = array(); if(!!$list = $this->objects->getFullObjectsList($id)){ $last=$this->objects->last; $out[]=''; // iskudrat 04.11.14 // $needed_classes = array(1, 2, 3, 37); $needed_classes = array(1, 2, 3, 37, 15, 34); foreach($list as $o){ if ( in_array($o['class_id'], $needed_classes) ){ if($this->selected($o['id'],$last)){ $out[]='
  • getLink($o).''.(@$o['Ссылка'] == '/feedback.php'?' class="fancy"':'').'>'.($class=="left-menu"?'':'').($withIMG?''.$o['Название'].'':$o['Название']).''.($hasSubMenu?$this->getSubMenu((@$o['Ссылка']=='/catalog/'?15:$o['id'])):'').'
  • '; } else { $out[]='
  • getLink($o).''.(@$o['Ссылка'] == '/feedback.php'?' class="fancy"':'').'>'.($class=="left-menu"?'':'').($withIMG?'':$o['Название']).''.($hasSubMenu?$this->getSubMenu((@$o['Ссылка']=='/catalog/'?15:$o['id'])):'').'
  • '; } } } if ($list1 = $this->objects->getFullObjectsListByClass($id, 36)) { foreach ($list1 as $l) { if ($list2 = $this->objects->getFullObjectsListByClass($l['id'], 37)) { foreach ($list2 as $l2) { if ( in_array($l2['class_id'], $needed_classes) ){ if($this->selected($l2['id'],$this->objects->last)){ $out[]='
  • getLink($l2).''.(@$l2['Ссылка'] == '/feedback.php'?' class="fancy"':'').'>'.($class=="left-menu"?'':'').($withIMG?''.$l2['Название'].'':$l2['Название']).''.($hasSubMenu?$this->getSubMenu((@$l2['Ссылка']=='/catalog/'?15:$l2['id'])):'').'
  • '; } else { $out[]='
  • getLink($l2).''.(@$l2['Ссылка'] == '/feedback.php'?' class="fancy"':'').'>'.($class=="left-menu"?'':'').($withIMG?'':$l2['Название']).''.($hasSubMenu?$this->getSubMenu((@$l2['Ссылка']=='/catalog/'?15:$l2['id'])):'').'
  • '; } } } } } } $out[]=''; } $smart = ''; return join("\n", $out); } function getSubMenu($id){ $out = array(); if(!!$list = $this->objects->getFullObjectsList($id)){ $last=$this->objects->last; $i = 0; $mass = array(); foreach($list as $o){ if (($o['class_id'] == 1) || ($o['class_id'] == 2)){ if( $o['Название'] != '' ) { if($this->selected($o['id'],$last)) $mass[]='
  • getLink($o).' onclick="return false;">'.$o['Название'].'
  • '; else $mass[]='
  • getLink($o).'>'.$o['Название'].'
  • '; } else { if($this->selected($o['id'],$last)) $mass[]='
  • getLink($o).' onclick="return false;">'.$o['Название'].'
  • '; else $mass[]='
  • getLink($o).'>'.$o['Название'].'
  • '; } } } if (count($mass) > 0) $out[] = ''; } return join("\n", $out); } function leftinnmenu() { if ($_SERVER['PHP_SELF'] != '/page.php' && $_SERVER['PHP_SELF'] != '/cat.php' && $_SERVER['PHP_SELF'] != '/contacts.php') return; $head = $_GET['id']; $objectHead = $this->objects->getObject($head); $catHead = $this->objects->getObject($objectHead['head']); $list = $this->objects->getFullObjectsList($head); // if (!empty($list)) // { // return $this->getMenu($head, false, false, 'left-menu'); // } else { // $objectHead = $this->objects->getObject($head); // if ( $objectHead['head'] != 4 ) // { // return $this->getMenu($objectHead['head'], false, false, 'left-menu'); // } // } // iskudrat 04.11.14 if ($_SERVER['PHP_SELF'] == '/cat.php') { // вывод всех тов.единиц текущего каталога return $this->getCatMenu($catHead['head']); } else { // if (!empty($list)) { // return $this->getMenu($head, false, false, 'left-menu'); // } else { if ( $objectHead['head'] != 4 ) { return $this->getMenu($objectHead['head'], false, false, 'left-menu'); } // } } return ; } function getCatMenu($head) { $return = ''; $last = $this->objects->last; if ($list = $this->objects->getFullObjectsListByClass($head, 19)) { $return .= ''; } return $return; } function reviews() { $out = array( $this->auth()? 'К списку отзывов →' : '' ); if ($list = $this->objects->getFullObjectsListByClass(440, 33, "AND o.active=1 ORDER BY o.sort LIMIT 12")) { $out[] = '

    '; foreach ($list as $o) { $out[] = 'getLink($o).' class="review-block">'; } } return implode("\n", $out); } function blocks3() { $out = array( $this->auth()? 'К списку блоков →' : '' ); if ($list = $this->objects->getFullObjectsListByClass(459, 32, "AND o.active=1 ORDER BY o.sort LIMIT 4")) { $out[] = '

    '; foreach ($list as $o) { $out[] = '
    getLink($o).'>

    '.$o['Название'].'

    '.$o['Текст'].'
    '; } } return implode("\n", $out); } function blocks2() { $out = array( $this->auth()? 'К списку блоков →' : '' ); if ($list = $this->objects->getFullObjectsListByClass(428, 32, "AND o.active=1 ORDER BY o.sort LIMIT 4")) { $out[] = '
    '; foreach ($list as $o) { $out[] = ' '; } $out[] = '
    '; } return implode("\n", $out); } function blocks1() { $out = array( $this->auth()? 'К списку блоков →' : '' ); if ( $list = $this->objects->getFullObjectsListByClass(423, 32, "AND o.active=1 ORDER BY o.sort LIMIT 4") ) { foreach ($list as $o) { $out[] = ' getLink($o).' class="zoom-block"> '.$o['Название'].' '.$o['Текст'].' '; } } return implode("\n", $out); } function second_slider() { $out = array( $this->auth()? 'К списку слайдов →' : '' ); if ($list = $this->objects->getFullObjectsListByClass(436, 31, "AND o.active=1 ORDER BY o.sort LIMIT 20")) { $out[] = '

    '; } return implode("\n", $out); } function main_slider() { $out = array( $this->auth()? 'К списку слайдов →' : '' ); if ($list = $this->objects->getFullObjectsListByClass(412, 31)) { $out[] = ''; } return implode("\n", $out); } function array_split( $array, $count ) { if ( is_array($array) && count( $array ) > 0) { $n = ceil( count( $array ) / $count ) - 1; for ( $i = 0; $i <= $n; $i++ ) { $r[] = array_slice( $array, $i * $count, $count, true ); } return $r; } return $array; } function getMothers($id){ if (is_numeric($id) && ($id != 0) && ($o = $this->objects->getObject($id, false)) && (($o['class_id'] == 1) || ($o['class_id'] == 3) || ($o['class_id'] == 19) || ($o['class_id'] == 20) || ($o['class_id'] == 21) || ($o['class_id'] == 2))){ if ($o['class_id'] != 20){ $this->mothers[] = $o['id']; } return $this->getMothers($o['head']); } } function bread($separator = ' / '){ if (@$_GET['id']) $id = $_GET['id']; elseif (@$_GET['cat']) $id = $_GET['cat']; else $id = @$_GET['bread']; $out = array(); if ((!empty($id)) && (is_numeric($id))){ if(($obj = $this->objects->getFullObject($id)) || (($obj['class_id'] == 1) && ($obj['class_id'] == 3))){ # ВЛОЖЕННОСТЬ $this->mothers = array(); $this->getMothers($obj['head']); $this->mothers = array_reverse($this->mothers); $out[] = ''; if (($obj['class_id'] == 8)){ $out[] = ''; } if (($obj['class_id'] == 24)){ $out[] = ''; } // if (($obj['class_id'] == 19) || ($obj['class_id'] == 15)){ // $out[] = ''; // } if($id != 131){ #ЕСЛИ НЕ ГЛАВНАЯ # ХЛЕБНЫЕ КРОШКИ if (sizeof($this->mothers) > 0){ foreach($this->mothers as $obj_id){ if (is_numeric($obj_id) && ($path_obj = $this->objects->getFullObject($obj_id, false))) $out[] = 'getLink($path_obj).'>'.(($path_obj['Название'])?$path_obj['Название']:$path_obj['name']).''; } } $out[] = ''.((@$obj['Название'])?$obj['Название']:$obj['Значение']).''.$separator; } } } return ''; } function array_random_k($input_mass, $flag_asKey_or_asValue = "asvalue"){ $mass = array(); $return_array = array(); $k = 0; $count = count($input_mass); while($k != $count){ $rand_key = mt_rand(0, $count - 1); if (!in_array($rand_key, $mass)){ $mass[] = $rand_key; $k++; } } if (strtolower($flag_asKey_or_asValue) == 'askey'){ return $mass; } elseif (strtolower($flag_asKey_or_asValue) == 'asvalue'){ foreach ($mass as $v){ $return_array[] = $input_mass[$v]; } return $return_array; } } #Первая буква заглавная function firstUpper($text){ $first = mb_substr(trim($text),0,1, 'UTF-8');//первая буква $last = mb_substr(trim($text),1);//все кроме первой буквы $first = mb_strtoupper($first, 'UTF-8'); $last = mb_strtolower($last, 'UTF-8'); return $first.$last; } /* example: $api->substrword($o['Анонс'], 14); */ /* this code writes in api.php file */ function substrword($str = '', $c = 50){ if ($mass = explode(" ", $str)){ if (count($mass) > $c){ $str = ''; for($i = 0; $i < $c; $i++){ $str .= $mass[$i]." "; } $str = $str."..."; } } return strip_tags($str, '



    '); } function substrstr($str = '', $c = 50, $addstr = '...'){ if (mb_strlen($str, "UTF-8") > $c){ return mb_substr($str, 0, $c, "UTF-8").$addstr; } return $str; } #ФОРМА ПОИСКА function search(){ $out=array('

    '); return join("\n",$out); } # ЯЗЫКИ function getLangs(){ $out = array(); $i=0; foreach($this->languages as $kk=>$vv){ if ($this->lang == $kk){ # ВЫБРАН $out[] = ''.$vv.''.((++$i == 1)?' / ':''); } else { $out[] = ''.$vv.''.((++$i == 1)?' / ':''); } } return join("", $out); } # PASSWORD GENERATION function genPass(){ $out = array(); $symbols = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'); for($i=1; $i<=8; $i++){ $out[]=$symbols[rand(0, count($symbols)-1)]; } return join("", $out); } # AUTH USER BLOCK function authBlock(){ $display = array( 'block', 'none' ); $auth_html = array(); if(!empty($_SESSION['auth']['u']) && is_array($u = $_SESSION['auth']['u'])){ $display = array( 'none', 'block' ); $auth_html = array( '
    , '.$u['name'].'!

    ', '
    ', '
    ' ); } $html = array( '

      ', '
    ', '
    ', '', '
    ', '
    ', '
      
    ', '
    ', '
    ', join("\n", $auth_html), '
    ' ); return join("\n", $html); } ###ZOTTIG (c) #НОВОЕ МЕНЮ function selected($id,$last){ $o=$this->objects->getFullObject($id); if ( !isset($_GET['id']) && empty($_GET['id'])) $_GET['id'] = ''; // if ( !isset($_GET['cat']) && empty($_GET['cat'])) $_GET['cat'] = ''; // if (($_GET['id']==$id) || ($last==$id) || ($_GET['id']==$o['id']) || ($_GET['cat']==$o['id'])) return true; else if($o['class_id']==2) if($_SERVER['REQUEST_URI']=='/'.$this->lang.$o['Ссылка'] || $_SERVER['SCRIPT_NAME']==$o['Ссылка'] || (strstr($_SERVER['REQUEST_URI'],$o['Ссылка']) AND $o['Ссылка']!='/') || (($_SERVER['PHP_SELF']=='/index.php') AND ($o['Ссылка']=='/'))) return true; else return false; } function t($id){ return $id.'-'.$this->objects->urlTranslitFormID($id); } function getLink($id){ if( is_numeric( $id ) ){ $o=$this->objects->getFullObject($id); } else { $o = $id; } $parent = $this->objects->getObject($o['head']); if(($o['class_id']==2) || ($o['class_id']==31) || ($o['class_id']==32) || ($o['class_id']==33)){ if (!empty($o['Ссылка'])){ if(strstr($o['Ссылка'], '.php')){ return 'href="'.$o['Ссылка'].'?lang='.$this->lang.'" '.($o['В модальном окне'] == 1?'class="d_b fancy"':'').' '.(@$o['В новом окне']?' target="_blank"':''); }elseif(strstr($o['Ссылка'], 'http://')) return 'href="'.$o['Ссылка'].'"'.(@$o['В новом окне']?' target="_blank"':''); else return 'href="/'.$this->lang.$o['Ссылка'].'"'.(@$o['В новом окне']?' target="_blank"':''); } else return 'href="" onclick="return false;" style="cursor: default;"'; }elseif($o['class_id']==5){ return 'href="'._UPLOADS_.'/'.$o['Ссылка'].'"'; }elseif($o['class_id']==8){ return 'href="/'.$this->lang.'/news/'.$this->t($o['id']).'/"'; }elseif($o['class_id']==24){ return 'href="/'.$this->lang.'/articles/'.$this->t($o['id']).'/"'; }elseif($o['class_id']==19){ return 'href="/'.$this->lang.'/catalog/'.$this->t($o['id']).'/"'; }elseif($o['class_id']==15){ return 'href="/'.$this->lang.'/catalog/'.$this->t($parent['id']).'/'.$this->t($o['id']).'/"'; }else{ return 'href="/'.$this->lang.'/'.$this->t($o['id']).'.html"'; } } function isHasCatalog($id){ if(!!$list = $this->objects->getFullObjectsListByClass($id, 19)){ return true; } return false; } ###ZOTTIG (c) # ФУНКЦИЯ ГРАММОТНОЙ ОБРЕЗКИ СТРОК function maxsite_str_word($text, $counttext = 10, $sep = ' ') { $words = split($sep, $text); if ( count($words) > $counttext ) $text = join($sep, array_slice($words, 0, $counttext)); return $text; } # НОВОСТНАЯ ЛЕНТА, ВЫВОД НА ГЛАВНОЙ ДВУХ НОВОСТЕЙ # НОВОСТНАЯ ЛЕНТА, ВЫВОД НА ГЛАВНОЙ ДВУХ НОВОСТЕЙ function newsList($id, $cid) { if(!$list = $this->objects->getFullObjectsListByClass($id, $cid, "AND o.active=1 ORDER BY c.field_19 DESC LIMIT 3")) return ''; $html = array('

    '.$this->v('Новости').'

    '); foreach($list as $o) { $html[]='

    '.$this->strings->date($o['Дата'], 'sql', 'date').'

    getLink($o).'>'.$o['Анонс'].'

    '; } $html[] = '
    '; $smart = ' '; return join("\n", $html).$smart; } # СПИСОК БАННЕРОВ function bannersList($id, $cid1, $cid2) { $smart_global = ' '; if(!$list = $this->objects->getFullObjectsList($id)) return $smart_global; $out = array(); foreach($list as $o) { if($o['class_id'] == 6) { if($this->lower($this->getFileExtension($o['Баннер'])) == 'swf') { $html = ' '; } else $html = ''; } else $html = htmlspecialchars_decode($o['Значение']); $smart = ' '; $out[]='
    '.$html.'
    '; } return join("\n", $out).$smart_global; } #ФУНКЦИЯ ПОДАЧИ ГОЛОСА, АЙДИ ОПРОСА, АЙДИ ОТВЕТА function voteOne($voting_id, $answer_id){ $class_id = 10; if(!!$field_id = $this->db->select("fields", "WHERE `name`='Голоса' AND class_id='".$class_id."' LIMIT 1", "id")){ $this->db->mysql_query("UPDATE class_".$class_id." SET field_".$field_id."=field_".$field_id."+1 WHERE `object_id`='".$answer_id."'"); } setcookie("votingStamp", time(), time()+3600*2); } #ФУНКЦИЯ КОТОРАЯ ВОЗВРАЩАЕТ ТАБЛИЦУ С РЕЗУЛЬТАТАМИ, ВХОДЯЩИЕ ДАННЫЕ - ID КОНКРЕТНОГО ОПРОСА function getVotingResults($id){ if(!!$obj = $this->objects->getObject($id)){ $total_count = 0; if(!!$list = $this->objects->getFullObjectsList($id)){ foreach($list as $a){ //if(!isset($a['Голоса']) || !is_numeric($a['Голоса'])) continue; $total_count+=$a['Голоса']; } $colors = array( "red", "green", "blue", "yellow", "purple", "orange", "black", "magenta", "gray" ); $html = array(); foreach($list as $k=>$a){ $percentage = round($a['Голоса']/$total_count*100, 2); $html[]='
    '.$a['Ответ'].' '.$percentage.'%
    '; $html[]='
    '; //$html[]='
    '; } // $html[]= '
    Проголосовали: '.$this->sklon($total_count, array('человек', 'человека', 'человек')).'.

    '; } } return join("\n", $html); } function votingBlock($parent_id){ #БЕРЕТСЯ ПЕРВЫЙ АКТИВНЫЙ ОБЪЕКТ ОПРОСА ИЗ КАТАЛОГА ГОЛОСОВАНИЯ И ОТОБРАЖАЕТСЯ $o = $this->objects->getFullObject( $this->db->select("objects", "WHERE `head`='".$parent_id."' AND `active`='1' ORDER BY sort DESC LIMIT 1", "id") ); $html = array(); $html[]= '
    '.$o['Значение'].'
    '; $html[]= ''; $html[]= '
    '; #ЕСЛИ ЕСТЬ КУКИ ЗНАЧИТ ПОЛЬЗОВАТЕЛЬ УЖЕ ГОЛОСОВАЛ if(!!@$_COOKIE['votingStamp']){ $html[]= $this->getVotingResults($o['id']); }else{ $html[] = '
      '; foreach($this->objects->getFullObjectsList($o['id']) as $k=>$a){ $html[]= '
    • '; } $html[] = '
    '; $html[]= ''; $html[]= '
    '; } $html[]= '
    '; $html[]= ''; return join("\n", $html); } function script_datepicker(){ #СТИЛИ НАДО ТАК СТАВИТЬ #.ui-state-custom { # border-bottom: red solid 2px !important; # background: #F26100 !important; #} $out = array(); $object_id = 62; # ID объекта в котором лежат новости $class_id = 8; $out[] = ''; return join('', $out); } #Функция получения формы function getForm($id,$class_id=29){ $obj = $this->objects->getFullObject($id); $out = array('
    '); $out[] = $obj['Описание формы']; if ($fields = $this->objects->getFullObjectsListByClass($id,$class_id)){ foreach ($fields as $o){ $smart = ' '; switch ($o['Тип']){ case 0://Простой текст $out[] = '
    '.$smart.'
    '; break; case 1://Только буквы $out[] = '
    '.$smart.'
    '; break; case 2://Число $out[] = '
    '.$smart.'
    '; break; case 3://Пароль $out[] = '
    '.$smart.'
    '; break; case 4://Email $out[] = '
    '.$smart.'
    '; break; case 5://Дата $out[] = '
    '.$smart.'
    '; break; case 6://Текстовый блок $out[] = '
    '.$smart.'
    '; break; case 7://Галочка $out[] = '
    '.$smart.'
    '; break; case 8://Список $out[] = '
    '.$smart.'
    '; break; case 9://Переключатели $out[] = '
    '.$smart.' '; $btns = explode("\n",$o['Значения']); foreach($btns as $b){ $out[] = ''; } $out[] = '
    '; break; } } } $out[] =' '; if ($obj['Captcha']==1){ $out[] = 'Здесь будет выводиться Капча'; } $out[] = ''; $out[] = '
    '; return join("\n",$out); } # ИНФОРМАЦИЯ О КОРЗИНЕ function basketInfo(){ $total_count = 0; $total_summ = 0; if (!isset($_SESSION['rycle'])) $_SESSION['rycle'] = array(); if (is_array($_SESSION['rycle'])) { foreach($_SESSION['rycle'] as $o) { if (is_array($o) && ($obj = $this->objects->getFullObject($o['id'], false))) { // if ($this->root != $o['city']) continue; #Показ товара только из определенного города $total_count++; $total_summ += (intval($obj['Цена'])*$o['count']); } } } return array('count'=>$total_count, 'summ'=>$total_summ); } #Подписка на рассылку function subscribeBlock(){ return ' '; } #Блок для вывода модального окна авторизации function authBlockModal(){ if(empty($_SESSION['auth']['u']) || !is_array($u = $_SESSION['auth']['u'])){ return ' '; } } } $api = new api(); include_once(_PUBLIC_ABS_."/form.php"); if(($zaglushka=$api->objects->getFullObject(162)) && ($zaglushka['active']==1) ) exit ($zaglushka['Значение']); if(isset($_REQUEST['lang']) && array_key_exists($_REQUEST['lang'], $api->languages)) $api->lang = $_REQUEST['lang']; if( empty($_SESSION['auth']['u']) || !is_array($AUTH_USER = $_SESSION['auth']['u']) ) $AUTH_USER = array(); ?>