예제 #1
0
파일: page.php 프로젝트: sunfun/Bagira.CMS
 /**
  * @return null
  * @param string $filename - Путь к файлу шаблона
  * @param boolean $absolut - Если true - путь считается абсолютным и вычисляется от корневой папки, в которой находится движок
  * @desc Обрабатывает указанный файл шаблона и выводит его на страницу
  */
 static function parseIt($filename, $absolut = false, $withoutCache = false)
 {
     if (!system::$isAdmin && !$absolut) {
         $site_prefix = domains::curId() == 1 && languages::curId() == 1 ? '' : '/__' . str_replace('.', '_', domains::curDomain()->getName()) . '_' . languages::curPrefix();
         if (file_exists(TEMPL_DIR . $site_prefix . $filename)) {
             $filename = TEMPL_DIR . $site_prefix . $filename;
         } else {
             if (file_exists(TEMPL_DIR . $site_prefix . '/structure/default.tpl')) {
                 $filename = TEMPL_DIR . $site_prefix . '/structure/default.tpl';
             } else {
                 echo lang::get('ERROR_TEMPL2');
                 system::stop();
             }
         }
     }
     while (list($key, $val) = each(self::$page_mas)) {
         self::assign($key, $val);
     }
     self::$arr = self::parse(file($filename));
     // Сохраняем страницу в кэш
     if (!$withoutCache && self::isCashePage()) {
         $page = array('html' => self::$arr, 'page_id' => ormPages::getCurPageId(), 'page_url' => system::getCurrentUrlPN(), 'active_pages' => ormPages::getActiveId(), 'host' => $_SERVER['HTTP_HOST']);
         cache::set(system::getCurrentUrlPN(), $page);
     }
     // Вторично обрабатывает шаблон
     self::$arr = self::parse(self::parse(self::$arr, 2), 2);
     // Выводит обработанный шаблон на печать
     //echo str_replace('`%`', '%', self::$arr);
     echo self::$arr;
     self::freshAll();
 }
예제 #2
0
 /**
  * @return HTML
  * @param string $templ_name - Шаблон оформления.
  * @param int $start - Номер элемента от начала цепочки, с которого необходимо начать вывод.
  * @param int $stop - Номер элемента с конца цепочки, которым необходимо завершить вывод.
  * @desc МАКРОС: Вывод "хлебных крошек".
  */
 public function navibar($templ_name = 'default', $start = 0, $stop = 0)
 {
     $templ_file = '/structure/navibar/' . $templ_name . '.tpl';
     $TEMPLATE = page::getTemplate($templ_file);
     if (!is_array($TEMPLATE)) {
         return page::errorNotFound('structure.navibar', $templ_file);
     } else {
         $pages = ormPages::getActiveId();
         $last = count($pages) - $stop;
         $list = '';
         for ($i = $start; $i < $last; $i++) {
             $page = ormPages::get($pages[$i]);
             $link = $page->other_link != '' ? $page->other_link : $page->url;
             page::assign('id', $page->id);
             page::assign('name', $page->name);
             page::assign('url', $link);
             $act = $page->id == ormPages::getCurPageId() ? '' : '_active';
             $list .= page::parse($TEMPLATE['list' . $act]);
             $list .= $last - 1 != $i ? $TEMPLATE['separator'] : '';
         }
         if (!empty($list)) {
             page::assign('list', $list);
             $navbar = page::parse($TEMPLATE['frame']);
         } else {
             $navbar = '';
         }
     }
     return $navbar;
 }