File size: 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;