Source for file class.template.php

Documentation is available at class.template.php

  1. <?php
  2.  
  3. /**
  4.  * AVE.cms
  5.  *
  6.  * @package AVE.cms
  7.  * @filesource
  8.  */
  9.  
  10. /**
  11.  * Подключаем файл шаблонизатора Smarty
  12.  */
  13. require(BASE_DIR '/lib/Smarty/Smarty.class.php');
  14.  
  15. /**
  16.  * Расширение класса шаблонизатора Smarty
  17.  *
  18.  */
  19. class AVE_Template extends Smarty
  20. {
  21. /**
  22.  *    СВОЙСТВА
  23.  */
  24.  
  25.     /**
  26.      * Конструктор
  27.      *
  28.      * @param string $template_dir путь к директории шаблонов по умолчанию
  29.      * @return AVE_Template 
  30.      */
  31.     function AVE_Template($template_dir)
  32.     {
  33.         /**
  34.          * Путь к директории шаблонов по умолчанию.
  35.          * Если вы не передадите тип ресурса во время подключения файлов, они будут искаться здесь.
  36.          */
  37.         $this->template_dir $template_dir;
  38.  
  39.         /**
  40.          * Имя каталога, в котором хранятся компилированные шаблоны.
  41.          */
  42.         $this->compile_dir BASE_DIR '/templates_c';
  43.  
  44.         /**
  45.          * Имя каталога, в котором хранится кэш шаблонов.
  46.          */
  47.         $this->cache_dir BASE_DIR '/cache';
  48.  
  49.         /**
  50.          * При каждом вызове РНР-приложения Smarty проверяет, изменился или нет текущий шаблон
  51.          * с момента последней компиляции. Если шаблон изменился, он перекомпилируется.
  52.          * В случае, если шаблон еще не был скомпилирован, его компиляция производится
  53.          * с игнорированием значения этого параметра.
  54.          */
  55.         $this->compile_check SMARTY_COMPILE_CHECK;
  56.  
  57.         /**
  58.          * Активирует debugging console - порожденное при помощи javascript окно браузера,
  59.          * содержащее информацию о подключенных шаблонах и загруженных переменных для текущей страницы.
  60.          */
  61.         $this->debugging SMARTY_DEBUGGING;
  62.  
  63.         /**
  64.          * Регистрация плагинов-функций Smarty.
  65.          * Передается наименование функции шаблона и имя функции, реализующей ее.
  66.          */
  67.         $this->register_function('check_permission''check_permission');
  68.         $this->register_function('get_redirect_link''get_redirect_link');
  69.         $this->register_function('get_home_link''get_home_link');
  70.         $this->register_function('num_format''num_format');
  71.  
  72.         /**
  73.          * Регистрация плагинов-модификаторов Smarty.
  74.          * Передается имя модификатора и имя функции, реализующей его.
  75.          */
  76.         $this->register_modifier('pretty_date''pretty_date');
  77.  
  78. // плагин позволяющий поставить метки шаблонов
  79. // для быстрого поиска шаблона отвечающего за вывод
  80. // перед использованием очистить templates_c
  81. // $this->register_postfilter('add_template_comment');
  82.  
  83.         /**
  84.          * Присваиваем общие значения для шаблонов.
  85.          * Можно явно передавать пары имя/значение,
  86.          * или ассоциативные массивы, содержащие пары имя/значение.
  87.          */
  88.         $assign['BASE_DIR']          BASE_DIR;
  89.         $assign['ABS_PATH']          ABS_PATH;
  90.         $assign['DATE_FORMAT']       DATE_FORMAT;
  91.         $assign['TIME_FORMAT']       TIME_FORMAT;
  92.         $assign['PAGE_NOT_FOUND_ID'PAGE_NOT_FOUND_ID;
  93.  
  94.         $this->assign($assign);
  95.     }
  96.  
  97. /**
  98.  *    ВНУТРЕННИЕ МЕТОДЫ
  99.  */
  100.  
  101.  
  102. /**
  103.  *    ВНЕШНИЕ МЕТОДЫ
  104.  */
  105.  
  106.     /**
  107.      * Метод очистки кэша
  108.      *
  109.      */
  110.     function templateCacheClear()
  111.     {
  112.         $this->clear_all_cache();
  113.  
  114.         $filename $this->cache_dir '/.htaccess';
  115.         if (!file_exists($filename))
  116.         {
  117.             $fp @fopen($filename'w');
  118.             if ($fp)
  119.             {
  120.                 fputs($fp'Deny from all');
  121.                 fclose($fp);
  122.             }
  123.         }
  124.  
  125.         reportLog($_SESSION['user_name'' - очистил кэш'22);
  126.     }
  127.  
  128.     /**
  129.      * Метод удаления скомпилированных шаблонов
  130.      *
  131.      */
  132.     function templateCompiledTemplateClear()
  133.     {
  134.         $this->clear_compiled_tpl();
  135.  
  136.         $filename $this->compile_dir '/.htaccess';
  137.         if (!file_exists($filename))
  138.         {
  139.             $fp @fopen($filename'w');
  140.             if ($fp)
  141.             {
  142.                 fputs($fp'Deny from all');
  143.                 fclose($fp);
  144.             }
  145.         }
  146.  
  147.         reportLog($_SESSION['user_name'' - удалил скомпилированные шаблоны'22);
  148.     }
  149. }
  150.  
  151. ?>

Documentation generated on Fri, 04 Jun 2010 18:02:14 +0400 by phpDocumentor 1.4.3