Просмотр файла engine/classes/themes.class.php

Размер файла: 5.86Kb
<?php
/**
 * Класс для вывода Шаблонов по браузерам
 * 
 * @package Classes
 * @author Shamsik
 * @link http://shcms.ru
 */

class themes {

    /**
     * Подключаем Шаблонизатор от Twig
     * 
     * @return string
     */
    public function __construct() {
        include H.'engine/classes/lib/Twig/Autoloader.php';
        Twig_Autoloader::register();
    }

    /**
     * Выводим полнный html шаблон с параметрами
     * 
     * @param $title Заголовок страницы
     * @param $desc Описание старницы
     * @param $key Ключевые слова
     */
    public function template($title = 'Название страницы', $desc = false, $key = false) {
	global $id_user,$user,$glob_core,$db,$users;
		    
	    //Определение типа браузера
	    $detect = new Mobile_Detect;
	    $deviceType = ($detect->isMobile() ? ($detect->isTablet() ? 'tablet' : 'phone') : 'computer');
			
	//На главную
	if ($_SERVER['PHP_SELF'] !== '/index.php'){
            $home = true;
	}
				
	//Если существует $db
	if( isset( $db ) ) {
	    $adv = $db->query("SELECT * FROM `advertisement` WHERE `active` = '1' and `images` = ''");
		while($advs = $db->get_array($adv)){
                    if (strtotime(date('d-m-Y')) < strtotime($advs['stop'])) {
			$data[] = $advs;
                    }						
		}
	}
				
	if( $id_user == true ) {
            // указывае где хранятся шаблоны
	    if($deviceType == 'computer'){
		$loader = new Twig_Loader_Filesystem(H.'templates/'.$users['web_template'].'/');
		
	    }elseif($deviceType == 'phone') {
		$loader = new Twig_Loader_Filesystem(H.'templates/'.$users['wap_template'].'/');			
	    }
				
        }else {
	     // указывае где хранятся шаблоны
	    if($deviceType == 'computer'){
                $loader = new Twig_Loader_Filesystem(H.'templates/web_default/');
	    }elseif($deviceType == 'phone') {
		$loader = new Twig_Loader_Filesystem(H.'templates/wap_default/');			
	    }	
	}
			
        //инициализируем Twig
        $twig = new Twig_Environment($loader);
  
        // подгружаем шаблон
        $template = $twig->loadTemplate('header.php');
		
		
        // передаём в шаблон переменные и значения
        // выводим сформированное содержание
	if( $db == true ) {
	    if($user->users($id_user,array('group')) == 15) {
		$lgroup = 'Администратор';
	    }elseif($user->users($id_user,array('group')) == 1) {
		$lgroup = 'Пользователь';
	    }
			
		//Описание если существует выводить
		if($desc == NULL) {
		    $des =  $glob_core['description'];
		}else{
		    $des = $desc; 
		}
			
		//Ключевые слова
		if( $key == NULL ) {
		    $keys = $glob_core['keywords'];
		}else {
		    $keys = $key;
		}
			
	    $count_friend = $db->get_array($db->query("SELECT COUNT(*) FROM `friends` WHERE `id_user` = '".$id_user."' AND `approved` = '1'"));
	    $count_m = $db->get_array($db->query("SELECT COUNT(*) FROM `messaging` WHERE `id_post` = '".$id_user."' AND `action` = '0'"));
	    $count_f = $db->get_array($db->query("SELECT COUNT(*) FROM `friends` WHERE `id_friends` = '".$id_user."' AND `approved` = '0'"));
                echo $template->render(array(
		                        'mail' => $count_m[0],
		                        'countf' => $count_f[0], 
		                        'friend' => $count_friend[0],
		                        'data' => $data,
		                        'main_name' => $main_name,
		                        'title' => $title,
		                        'description' => $des,
		                        'keywords' => $keys,
		                        'id_user' => $id_user,
		                        'home' => $home,
		                        'login' => $user->users($id_user,array('nick')),
		                        'group' => $lgroup,
		                        'site_name' => $glob_core['name_site']
                                    ));
    
	}else {
	    echo $template->render(array(
		                'data' => $data,
		                'main_name' => $main_name,
		                'title' => $title,
		                'description' => $des,
		                'keywords' => $keys,
		                'home' => $home
                                ));	
	}
    }
	

    /**
     * Выводим нижнюю часть шаблона
     * 
     * @return string
     */
    public function __destruct(){ 
	    global $users,$id_user;
			
        //Определение типа браузера			
	$detect = new Mobile_Detect;
	$deviceType = ($detect->isMobile() ? ($detect->isTablet() ? 'tablet' : 'phone') : 'computer');
	    	if( $id_user == true ) {
                    // указывае где хранятся шаблоны
		    if($deviceType == 'computer') {
                        include_once(H.'templates/'.$users['web_template'].'/footer.php');
                    }elseif($deviceType == 'phone') {
			include_once(H.'templates/'.$users['wap_template'].'/footer.php');			
		    }elseif($deviceType == 'tablet') {
			include_once(H.'templates/'.$users['wap_template'].'/footer.php');	
		    }else{
		        include_once(H.'templates/'.$users['wap_template'].'/footer.php');			
		    }
		    
		}else {
                    // указывае где хранятся шаблоны
		    if($deviceType == 'computer') {
			include_once(H.'templates/web_default/footer.php');
		    
		    }elseif($deviceType == 'phone') {
			include_once(H.'templates/wap_default/footer.php');			
	            }	
			
		}	
    }
	
}

$templates = new themes;