private function parsePageContent($page) { if ($page instanceof ormPage && $page->active) { page::assign('page_id', $page->id); $pages = ormPages::getActiveId(); while (list($num, $id) = each($pages)) { page::assign('page_id' . $num, $id); } page::globalVar('h1', $page->h1); page::globalVar('title', $page->title); if ($page->keywords) { page::globalVar('keywords', $page->keywords); } if ($page->description) { page::globalVar('description', $page->description); } if ($page->template2_id != 0) { $content = page::macros('structure')->objView($page->id); } else { $content = $page->content; } $templ_name = ($templ = templates::get($page->template_id)) ? $templ->getFile() : 'default'; system::$defTemplate = '/structure/' . $templ_name . '.tpl'; if (empty($content)) { $content = ' '; } return $content; } }
/** * @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(); }
/** * @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; }