Класс Design.php
Класс Design
В нем подключается Smarty и добавляются глобальные модификаторы для работы с переменными
Функция assign()
/*Подключение переменной в шаблон*/ public function assign($var, $value) { return $this->smarty->assign($var, $value); }
Подключение переменной в шаблон
Функция принимает аргументы$var, $value
Параметры которые содержит функция:
- $var- название переменной в шаблон
- $value - значение переменной
Функция fetch()
/*Отображение конкретного шаблона*/ public function fetch($template) { // Передаем в дизайн то, что может понадобиться в нем $this->assign('config', $this->config); $this->assign('settings', $this->settings); return $this->smarty->fetch($template); }
Функция отображения (рендеринга) шаблона
Функция принимает один аргумент $template
Параметры которые содержит функция:
- $template - название файла для отображения. Например product.tpl
Функция set_templates_dir()
/*Установка директории файлов шаблона(отображения)*/ public function set_templates_dir($dir) { $this->smarty->template_dir = $dir; }
Установка директории файлов шаблона(отображения)
Функция принимает один аргумент $dir
Параметры которые содержит функция:
- $dir - директория с файлами шаблона
Функция set_compiled_dir()
/*Установка директории для готовых файлов для отображения*/ public function set_compiled_dir($dir) { $this->smarty->compile_dir = $dir; }
Установка директории для готовых файлов для отображения
Функция принимает один аргумент $dir
Параметры которые содержит функция:
- $dir- директория с файлами, обработанными самим Smarty
Функция get_var()
/*Выборка переменой*/ public function get_var($name) { return $this->smarty->getTemplateVars($name); }
Функция выборки (взятия) переменной
Функция принимает аргумент $name
Параметры которые содержит функция:
- $name - название переменной
Функция resize_modifier()
/*Функция ресайза для изображений*/ public function resize_modifier($filename, $width=0, $height=0, $set_watermark=false, $resized_dir = null) { $resized_filename = $this->image->add_resize_params($filename, $width, $height, $set_watermark); $resized_filename_encoded = $resized_filename; $size = $width.'x'.$height; $image_sizes = array(); if ($this->settings->image_sizes) { $image_sizes = explode('|', $this->settings->image_sizes); } if (!in_array($size, $image_sizes)) { $image_sizes[] = $size; $this->settings->image_sizes = implode('|', $image_sizes); } if(substr($resized_filename_encoded, 0, 7) == 'http://') { $resized_filename_encoded = rawurlencode($resized_filename_encoded); } $resized_filename_encoded = rawurlencode($resized_filename_encoded); if (!$resized_dir) { $resized_dir = $this->config->resized_images_dir; } return $this->config->root_url.'/'.$resized_dir.$resized_filename_encoded; }
Функция вызова ресайза изображений
Функция принимает аргументы $filename, $width=0, $height=0, $set_watermark, $resized_dir
Параметры которые содержит функция:
- $filename- имя файла
- $width- ширина в пикселях
- $height- высота в пикселях
- $set_watermark- установка водяного знака (true/false)
- $resized_dir- конечная директория
Функция url_modifier()
/*Функция для построения ссылки в шаблоне*/ public function url_modifier($params) { if(is_array(reset($params))) { return $this->request->url(reset($params)); } else { return $this->request->url($params); } }
Функция построения ссылки в шаблоне, включая параметры
Функция принимает аргумент $params
Параметры которые содержит функция:
- $params- параметры для построения ссылки (get параметры)
Функция plural_modifier()
/*Функция для создания окончаний слов в зависимости от количества чего-либо*/ public function plural_modifier($number, $singular, $plural1, $plural2=null) { $number = abs($number); if(!empty($plural2)) { $p1 = $number%10; $p2 = $number%100; if($number == 0) { return $plural1; } if($p1==1 && !($p2>=11 && $p2<=19)) { return $singular; } elseif($p1>=2 && $p1<=4 && !($p2>=11 && $p2<=19)) { return $plural2; } else { return $plural1; } } else { if($number == 1) { return $singular; } else { return $plural1; } } }
Функция для создания окончаний слов в зависимости от количества чего-либо
Функция first_modifier()
/*Возвращение первого элемента в цикле*/ public function first_modifier($params = array()) { if(!is_array($params)) { return false; } return reset($params); }
Функция возвращает первый элемент массива
Функция принимает аргумент $params
Параметры которые содержит функция:
- $params - входной массив
Функция cut_modifier()
/*Функция для среза массива данных*/ public function cut_modifier($array, $num=1) { if($num>=0) { return array_slice($array, $num, count($array)-$num, true); } else { return array_slice($array, 0, count($array)+$num, true); } }
Функция для среза элементов массива (например для вывода доп изображений товара, начиная со второго)
Функция принимает аргументы $array, $num
Параметры которые содержит функция:
- $array - входной массив
- $num - номер элемента, с которой надо начать
Функция date_modifier()
/*Функция для отображения даты в разных видах*/ public function date_modifier($date, $format = null) { if(empty($date)) { $date = date("Y-m-d"); } return date(empty($format)?$this->settings->date_format:$format, strtotime($date)); }
Функция для отображения даты в разных видах
Функция принимает аргументы $date, $format
Параметры которые содержит функция:
- $date - входная дата
- $format - форматы отображения даты
Функция time_modifier()
/*Функция отображения времени в разных видах*/ public function time_modifier($date, $format = null) { return date(empty($format)?'H:i':$format, strtotime($date)); }
Функция отображения времени в разных видах
Функция принимает аргументы $date, $format
Параметры которые содержит функция:
- $date - входная дата
- $format - формат времени, для отображения
Функция api_plugin()
/*Функция вызова методов внутри шаблонов клиента*/ public function api_plugin($params, &$smarty) { if(!isset($params['module'])) { return false; } if(!isset($params['method'])) { return false; } $module = $params['module']; $method = $params['method']; $var = $params['var']; unset($params['module']); unset($params['method']); unset($params['var']); $res = $this->$module->$method($params); $smarty->assign($var, $res); }
Функция вызова методов внутри шаблонов клиента
Функция принимает аргументы $params, &$smarty
Параметры которые содержит функция:
- $params - массив с параметрами вызова
Функция is_mobile() и функция is_tablet()
/*Определение мобильного устройства*/ public function is_mobile(){ $res = $this->detect->isMobile(); return $res; } /*Определение планшетного устройства*/ public function is_tablet(){ $res = $this->detect->isTablet(); return $res; }
Функции для определения типа устройства клиента, возвращают TRUE или FALSE