function get_breadcrumb($page_id, $level)
{
    global $ft, $rewrite, $pages_sort, $pages_id;
    $query = sprintf("\r\n        SELECT \r\n            id, \r\n            parent_id, \r\n            title \r\n        FROM \r\n            %1\$s \r\n        WHERE \r\n            id = '%2\$d' \r\n        AND \r\n            published = 'Y' \r\n        ORDER BY \r\n            id \r\n        ASC", TABLE_PAGES, $page_id);
    $db = new DB_SQL();
    $db->query($query);
    while ($db->next_record()) {
        $page_id = $db->f("id");
        $parent_id = $db->f("parent_id");
        $page_name = $db->f("title");
        $page_link = (bool) $rewrite ? '1,' . $page_id . ',5,item.html' : 'index.php?p=5&id=' . $page_id . '';
        $ft->assign(array('PAGE_TITLE' => $page_name, 'PAGE_ID' => $page_id, 'CLASS' => "child", 'PARENT' => str_repeat('  ', $level), 'PAGE_LINK' => $page_link));
        $pages_sort[] = $page_name;
        $pages_id[] = $page_id;
        get_breadcrumb($parent_id, $level + 2);
    }
}
function get_breadcrumb($cate_id, $breadcrumb_str = "")
{
    $db = init_db();
    $breadcrumb_result = $db->get_results("SELECT cate_id,cate_name,parent_id FROM `plu_product_category` WHERE cate_id = '{$cate_id}' ");
    //print_r($breadcrumb_result);
    if (isset($breadcrumb_result)) {
        foreach ($breadcrumb_result as $row) {
            //echo $row->cate_name;
            if ($breadcrumb_str == "") {
                $breadcrumb_str = " > " . $row->cate_name;
            } else {
                $breadcrumb_str = " > " . "<a href='" . WEBROOT . "/index.php?cmsid=2&cate_id={$row->cate_id}'>{$row->cate_name}</a>" . $breadcrumb_str;
            }
            if ($row->parent_id != -1) {
                $breadcrumb_str = get_breadcrumb($row->parent_id, $breadcrumb_str);
            }
        }
    }
    return $breadcrumb_str;
}
Exemple #3
0
/**
 * Обработка тега модуля
 *
 * @param int $sysblock_id идентификатор системного блока
 */
function mod_sysblock($sysblock_id)
{
    global $AVE_DB;
    if (is_numeric($sysblock_id)) {
        $cache_file = BASE_DIR . '/cache/module/sysblock-' . $sysblock_id . '.cache';
        if (!file_exists(dirname($cache_file))) {
            mkdir(dirname($cache_file), 0766, true);
        }
        if (file_exists($cache_file)) {
            $return = file_get_contents($cache_file);
        } else {
            $return = $AVE_DB->Query("\r\n                SELECT sysblock_text\r\n                FROM " . PREFIX . "_modul_sysblock\r\n                WHERE id = '" . $sysblock_id . "'\r\n                LIMIT 1\r\n            ")->GetCell();
            file_put_contents($cache_file, $return);
        }
        // парсим остальные теги основного шаблона
        $search = array('[tag:mediapath]', '[tag:path]', '[tag:home]', '[tag:docid]', '[tag:breadcrumb]');
        $replace = array(ABS_PATH . 'templates/' . THEME_FOLDER . '/', ABS_PATH, get_home_link(), get_current_document_id(), get_breadcrumb());
        $return = str_replace($search, $replace, $return);
        $return = preg_replace_callback('/\\[tag:request:(\\d+)\\]/', 'request_parse', $return);
        // парсим остальные теги основного шаблона
        eval('?>' . $return . '<?');
    }
}
Exemple #4
0
/**
 * Обработка тега системного блока
 *
 * @param int $id идентификатор системного блока
 */
function parse_sysblock($id)
{
    global $AVE_DB, $AVE_Core;
    $gen_time = microtime();
    if (is_array($id)) {
        $id = $id[1];
    }
    if (is_numeric($id)) {
        $eval_sysblock = false;
        if ($id < 0) {
            $id = abs($id);
            $eval_sysblock = true;
        }
        $cache_file = BASE_DIR . '/cache/sql/sysblock-' . $id . '.cache';
        if (!file_exists(dirname($cache_file))) {
            mkdir(dirname($cache_file), 0766, true);
        }
        if (file_exists($cache_file)) {
            $return = file_get_contents($cache_file);
        } else {
            $return = $AVE_DB->Query("\n                SELECT sysblock_text\n                FROM " . PREFIX . "_sysblocks\n                WHERE id = '" . $id . "'\n                LIMIT 1\n            ")->GetCell();
            file_put_contents($cache_file, $return);
        }
        // парсим остальные теги основного шаблона
        $search = array('[tag:mediapath]', '[tag:path]', '[tag:home]', '[tag:docid]', '[tag:breadcrumb]');
        $replace = array(ABS_PATH . 'templates/' . THEME_FOLDER . '/', ABS_PATH, get_home_link(), get_current_document_id(), get_breadcrumb());
        $return = str_replace($search, $replace, $return);
        $return = preg_replace_callback('/\\[tag:request:(\\d+)\\]/', 'request_parse', $return);
        if ($eval_sysblock) {
            $return = eval2var('?' . '>' . $return . '<' . '?');
        }
        $gen_time = microtime() - $gen_time;
        $GLOBALS['block_generate'][] = array('SYSBLOCK_' . $id => $gen_time);
        return $return;
    }
}
<?php

/*
 *
 * Breadcrumb for author archive
 *
 *
*/
?>

<p><?php 
global $post;
print get_breadcrumb();
?>
&nbsp;&nbsp;&raquo;&nbsp;&nbsp;Posts by: <?php 
echo get_the_author();
?>
</p>
Exemple #6
0
			<?php 
while (have_posts()) {
    the_post();
    ?>
				
				<!-- Page Title -->
				<div class="page-title-breadcrumbs">
					<h1 class="page-title"><span><?php 
    the_title();
    ?>
</span></h1>
						<?php 
    if (get_custom_field('show_breadcrumbs') == 'Yes') {
        ?>
							<div class="breadcrumbs">| <?php 
        echo get_breadcrumb();
        ?>
</div><?php 
    }
    ?>
					</div>
				<hr class="page-title-hr" />
			
				<!-- Page Caption Section -->
				<?php 
    if (get_custom_field('page_caption') . get_custom_field('page_background_image')) {
        ?>

					<div class="<?php 
        echo $layout_class;
        ?>
// $content['body_id'] = $content["cat_id"];
$content['body_id'] = '';
// check if current level is a redirect level
if (!empty($content['struct'][$content["cat_id"]]['acat_redirect'])) {
    $redirect = get_redirect_link($content['struct'][$content["cat_id"]]['acat_redirect']);
    headerRedirect($redirect['link'], 301);
}
// Check if curret level is forced for SSL
if (!PHPWCMS_SSL && (!empty($phpwcms['site_ssl_mode']) || !empty($content['struct'][$content["cat_id"]]['acat_ssl']))) {
    headerRedirect($phpwcms['site_ssl_url'] . (count($_getVar) ? rel_url() : ''), 301);
}
//try to find current tree depth
$LEVEL_ID = array();
$LEVEL_KEY = array();
$LEVEL_STRUCT = array();
$level_ID_array = get_breadcrumb($content["cat_id"], $content['struct']);
$level_count = 0;
foreach ($level_ID_array as $key => $value) {
    $LEVEL_ID[$level_count] = $key;
    $LEVEL_KEY[$key] = $level_count;
    $LEVEL_STRUCT[$level_count] = $content['struct'][$key]['acat_name'];
    if ($PERMIT_ACCESS && $content['struct'][$key]['acat_regonly']) {
        $PERMIT_ACCESS = false;
        // only users have been logged in get access
    }
    $level_count++;
}
define('PERMIT_ACCESS', $PERMIT_ACCESS);
// frontend login check
_checkFrontendUserAutoLogin();
// read the template information for page based on structure
Exemple #8
0
<?php

/**
 * The template for displaying Search Results for HMC Experts.
 *
 * Modified code to adapt display if we're search for HMC Experts.
 *
 */
get_header();
?>

	<div id="breadcrumb">

		<p><?php 
get_breadcrumb();
?>
<a href="<?php 
bloginfo('url');
?>
/hmc-experts/">Harvey Mudd College Experts</a>&nbsp;&nbsp;&raquo;&nbsp;&nbsp; Experts Search Results</p>
	</div>

</header>

<div id="content-wrapper">
<div>
	<?php 
get_template_part('nav', 'left');
?>
	
		<main role="main">
Exemple #9
0
 /**
  * Метод, предназанченный для сборки всей страницы в единое целое.
  *
  * @param int $id идентификатор документа
  * @param int $rub_id идентификатор рубрики
  */
 function coreSiteFetch($id, $rub_id = '')
 {
     global $AVE_DB;
     // Если происходит вызов модуля, получаем соответствующие мета-теги и получаем шаблон модуля
     if (!empty($_REQUEST['module'])) {
         $out = $this->_coreModuleMetatagsFetch();
         $out = $this->_coreDocumentTemplateGet('', '', $this->_coreModuleTemplateGet());
     } else {
         if (!isset($this->curentdoc->Id) && !$this->_coreCurrentDocumentFetch($id, UGROUP)) {
             // Определяем документ с 404 ошиюкой, в случае, если документ не найден
             if ($this->_corePageNotFoundFetch(PAGE_NOT_FOUND_ID, UGROUP)) {
                 $_REQUEST['id'] = $_GET['id'] = $id = PAGE_NOT_FOUND_ID;
             }
         }
         // проверяем параметры публикации документа
         if (!$this->_coreDocumentIsPublished()) {
             $this->_coreErrorPage404();
         }
         // Определяем права доступа к документам рубрики
         define('RUB_ID', !empty($rub_id) ? $rub_id : $this->curentdoc->rubric_id);
         $this->_coreRubricPermissionFetch(RUB_ID);
         if (!(isset($_SESSION[RUB_ID . '_docread']) && $_SESSION[RUB_ID . '_docread'] == 1 || isset($_SESSION[RUB_ID . '_alles']) && $_SESSION[RUB_ID . '_alles'] == 1)) {
             // читать запрещено - извлекаем ругательство и отдаём вместо контента
             $main_content = get_settings('message_forbidden');
         } else {
             if (isset($_REQUEST['print']) && $_REQUEST['print'] == 1) {
                 // увеличиваем счетчик версий для печати
                 $AVE_DB->Query("\n\t\t\t\t\t\tUPDATE " . PREFIX . "_documents\n\t\t\t\t\t\tSET document_count_print = document_count_print+1\n\t\t\t\t\t\tWHERE Id = '" . $id . "'\n\t\t\t\t\t");
             } else {
                 if (!isset($_SESSION['doc_view'][$id])) {
                     // увеличиваем счетчик просмотров (1 раз в пределах сессии)
                     $AVE_DB->Query("\n\t\t\t\t\t\t\tUPDATE " . PREFIX . "_documents\n\t\t\t\t\t\t\tSET document_count_view = document_count_view+1\n\t\t\t\t\t\t\tWHERE Id = '" . $id . "'\n\t\t\t\t\t\t");
                     $_SESSION['doc_view'][$id] = time();
                 }
                 $curdate = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
                 if (!isset($_SESSION['doc_view_dayly[' . $curdate . '][' . $id . ']'])) {
                     // и подневный счетчик просмотров тоже увеличиваем
                     $curdate = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
                     $AVE_DB->Query("\n                            UPDATE\n                                " . PREFIX . "_view_count\n                            SET\n                                count = count + 1\n                            WHERE\n                                document_id = '" . $id . "' AND\n                                day_id = '" . $curdate . "'\n                        ");
                     if (!$AVE_DB->_handle->affected_rows) {
                         $AVE_DB->Query("\n                                INSERT INTO " . PREFIX . "_view_count (\n                                    document_id,\n                                    day_id,\n                                    count\n                                )\n                                VALUES (\n                                    '" . $id . "',  '" . $curdate . "', '1'\n                                )\n                            ");
                     }
                     $_SESSION['doc_view_dayly[' . $curdate . '][' . $id . ']'] = time();
                 }
             }
             if (CACHE_DOC_TPL && empty($_POST) && !(isset($_SESSION['user_adminmode']) && $_SESSION['user_adminmode'] == 1)) {
                 // кэширование разрешено
                 // извлекаем скомпилированный шаблон документа из кэша
                 $main_content = $AVE_DB->Query("\n\t\t\t\t\t\tSELECT compiled\n\t\t\t\t\t\tFROM " . PREFIX . "_rubric_template_cache\n\t\t\t\t\t\tWHERE hash  = '" . $this->_get_cache_hash() . "'\n\t\t\t\t\t\tLIMIT 1\n\t\t\t\t\t")->GetCell();
             } else {
                 // кэширование запрещено
                 $main_content = false;
             }
             if (empty($main_content)) {
                 // кэш пустой или отключен, извлекаем и компилируем шаблон
                 if (!empty($this->curentdoc->rubric_template)) {
                     $rubTmpl = $this->curentdoc->rubric_template;
                 } else {
                     $rubTmpl = $AVE_DB->Query("\n\t\t\t\t\t\t\tSELECT rubric_template\n\t\t\t\t\t\t\tFROM " . PREFIX . "_rubrics\n\t\t\t\t\t\t\tWHERE Id = '" . RUB_ID . "'\n\t\t\t\t\t\t\tLIMIT 1\n\t\t\t\t\t\t")->GetCell();
                 }
                 $rubTmpl = trim($rubTmpl);
                 if (empty($rubTmpl)) {
                     // не задан шаблон рубрики
                     $main_content = $this->_rubric_template_empty;
                 } else {
                     // парсим теги полей в шаблоне документа
                     $main_content = preg_replace_callback('/\\[tag:fld:([a-zA-Z0-9-_]+)\\]/', 'document_get_field', $rubTmpl);
                     $main_content = preg_replace_callback('/\\[tag:([r|c|f|t]\\d+x\\d+r*):(.+?)]/', 'callback_make_thumbnail', $main_content);
                     // удаляем ошибочные теги полей
                     $main_content = preg_replace('/\\[tag:fld:\\d*\\]/', '', $main_content);
                     if (CACHE_DOC_TPL && empty($_POST) && !(isset($_SESSION['user_adminmode']) && $_SESSION['user_adminmode'] == 1)) {
                         // кэширование разрешено
                         // сохраняем скомпилированный шаблон в кэш
                         $AVE_DB->Query("\n\t\t\t\t\t\t\t\tINSERT " . PREFIX . "_rubric_template_cache\n\t\t\t\t\t\t\t\tSET\n\t\t\t\t\t\t\t\t\thash     = '" . $this->_get_cache_hash() . "',\n\t\t\t\t\t\t\t\t\trub_id   = '" . RUB_ID . "',\n\t\t\t\t\t\t\t\t\tgrp_id   = '" . UGROUP . "',\n\t\t\t\t\t\t\t\t\tdoc_id   = '" . $id . "',\n\t\t\t\t\t\t\t\t\tcompiled = '" . addslashes($main_content) . "'\n\t\t\t\t\t\t\t");
                     }
                 }
             }
             $main_content = preg_replace('/\\[tag:date:([a-zA-Z0-9-]+)\\]/e', "RusDate(date('\$1', " . $this->curentdoc->document_published . "))", $main_content);
             $main_content = str_replace('[tag:docdate]', pretty_date(strftime(DATE_FORMAT, $this->curentdoc->document_published)), $main_content);
             $main_content = str_replace('[tag:doctime]', pretty_date(strftime(TIME_FORMAT, $this->curentdoc->document_published)), $main_content);
             $main_content = str_replace('[tag:docauthorid]', $this->curentdoc->document_author_id, $main_content);
             $main_content = str_replace('[tag:docauthor]', get_username_by_id($this->curentdoc->document_author_id), $main_content);
         }
         $out = str_replace('[tag:maincontent]', $main_content, $this->_coreDocumentTemplateGet(RUB_ID));
     }
     // /вывод документа
     //Работа с условиями
     /*
     		$out = preg_replace('/\[tag:if_exp:?(.*)\]/u', '<?php 
     	$my_exp000=true;
     	$my_exp0001=\'$my_exp000=\'. str_replace(\'#var#\',\'$\',<<<BLOCK
     $1;
     BLOCK
     );
     	@eval($my_exp0001);
     	if($my_exp000==true)
     		{
     ?>', $out);
     		$out = str_replace('[tag:if_exp_else]', '<?php }else{ ?>', $out);
     		$out = str_replace('[tag:/if_exp]', '<?php } ?>', $out);
     */
     // Тут мы вводим в хеадер иньекцию скриптов.
     if (defined('RUB_ID')) {
         $rubheader = $AVE_DB->Query("\n\t\t\t\t\t\t\tSELECT rubric_header_template\n\t\t\t\t\t\t\tFROM " . PREFIX . "_rubrics\n\t\t\t\t\t\t\tWHERE Id = '" . RUB_ID . "'\n\t\t\t\t\t\t\tLIMIT 1\n\t\t\t\t\t\t", CACHE_LIFETIME)->GetCell();
         $out = str_replace('[tag:rubheader]', $rubheader . '[tag:rubheader]', $out);
     }
     $out = preg_replace('/\\[tag:rfld:([a-zA-Z0-9-_]+)]\\[(more|esc|img|[0-9-]+)]/e', "request_get_document_field(\"\$1\", {$id}, \"\$2\")", $out);
     // Если в запросе пришел параметр print, т.е. страница для печати, парсим контент, который обрамлен
     // тегами только для печати
     if (isset($_REQUEST['print']) && $_REQUEST['print'] == 1) {
         $out = str_replace(array('[tag:if_print]', '[/tag:if_print]'), '', $out);
         $out = preg_replace('/\\[tag:if_notprint\\](.*?)\\[\\/tag:if_notprint\\]/si', '', $out);
     } else {
         // В противном случае наоборот, парсим только тот контент, который предназначен НЕ для печати
         $out = preg_replace('/\\[tag:if_print\\](.*?)\\[\\/tag:if_print\\]/si', '', $out);
         $out = str_replace(array('[tag:if_notprint]', '[/tag:if_notprint]'), '', $out);
     }
     // получаем из шаблона системный тег, определяющий название темы дизайна
     $match = '';
     preg_match('/\\[tag:theme:(\\w+)]/', $out, $match);
     define('THEME_FOLDER', empty($match[1]) ? DEFAULT_THEME_FOLDER : $match[1]);
     $out = preg_replace('/\\[tag:theme:(.*?)]/', '', $out);
     // парсим теги модулей
     $out = $this->coreModuleTagParse($out);
     if (isset($_REQUEST['module']) && !(isset($this->install_modules[$_REQUEST['module']]) && '1' == $this->install_modules[$_REQUEST['module']]->ModuleStatus)) {
         display_notice($this->_module_error);
     }
     // парсим теги системных блоков
     $out = preg_replace_callback('/\\[tag:sysblock:([0-9-]+)\\]/', 'parse_sysblock', $out);
     // парсим теги системы внутренних запросов
     $out = preg_replace_callback('/\\[tag:request:(\\d+)\\]/', 'request_parse', $out);
     // парсим теги навигации
     $out = preg_replace_callback('/\\[tag:navigation:(\\d+):?([0-9,]*)\\]/', 'parse_navigation', $out);
     // парсим теги скрытого текста
     $out = parse_hide($out);
     // парсим остальные теги основного шаблона
     $search = array('[tag:mediapath]', '[tag:path]', '[tag:sitename]', '[tag:document]', '[tag:alias]', '[tag:home]', '[tag:robots]', '[tag:canonical]', '[tag:docid]', '[tag:breadcrumb]');
     $replace = array(ABS_PATH . 'templates/' . THEME_FOLDER . '/', ABS_PATH, htmlspecialchars(get_settings('site_name'), ENT_QUOTES), get_redirect_link('print'), @$this->curentdoc->document_alias, get_home_link(), isset($this->curentdoc->document_meta_robots) ? $this->curentdoc->document_meta_robots : '', canonical($_SERVER['REQUEST_URI']), isset($this->curentdoc->Id) ? $this->curentdoc->Id : '', get_breadcrumb());
     if (defined('MODULE_CONTENT')) {
         // парсинг тегов при выводе из модуля
         $search[] = '[tag:maincontent]';
         $replace[] = MODULE_CONTENT;
         $search[] = '[tag:title]';
         $replace[] = htmlspecialchars(defined('MODULE_SITE') ? MODULE_SITE : '', ENT_QUOTES);
         $search[] = '[tag:description]';
         $replace[] = htmlspecialchars(defined('MODULE_DESCRIPTION') ? MODULE_DESCRIPTION : '', ENT_QUOTES);
         $search[] = '[tag:keywords]';
         $replace[] = htmlspecialchars(defined('MODULE_KEYWORDS') ? MODULE_KEYWORDS : '', ENT_QUOTES);
     } else {
         $search[] = '[tag:keywords]';
         $replace[] = isset($this->curentdoc->document_meta_keywords) ? htmlspecialchars($this->curentdoc->document_meta_keywords, ENT_QUOTES) : '';
         $search[] = '[tag:description]';
         $replace[] = isset($this->curentdoc->document_meta_description) ? htmlspecialchars($this->curentdoc->document_meta_description, ENT_QUOTES) : '';
         $search[] = '[tag:title]';
         $replace[] = htmlspecialchars(pretty_chars($this->curentdoc->document_title), ENT_QUOTES);
     }
     $search[] = '[tag:maincontent]';
     $replace[] = '';
     $search[] = '[tag:printlink]';
     $replace[] = get_print_link();
     $search[] = '[tag:version]';
     $replace[] = APP_INFO;
     $search[] = '[tag:docviews]';
     $replace[] = isset($this->curentdoc->document_count_view) ? $this->curentdoc->document_count_view : '';
     // парсим тизер документа
     $out = preg_replace('/\\[tag:teaser:(\\d+)\\]/e', "showteaser(\$1)", $out);
     if (defined('RUB_ID')) {
         $out = preg_replace('/\\[tag:docauthoravatar:(\\d+)\\]/e', "getAvatar(" . intval($this->curentdoc->document_author_id) . ",\"\$1\")", $out);
     }
     if (defined('RUB_ID')) {
         $out = preg_replace('/\\[tag:lang:([a-zA-Z0-9-_]+)\\]/', '<?php if($AVE_Core->curentdoc->document_lang=="$1") { ?>', $out);
     } else {
         $out = preg_replace('/\\[tag:lang:([a-zA-Z0-9-_]+)\\]/', '<?php if($_SESSION["user_language"]=="$1") { ?>', $out);
     }
     $out = str_replace('[tag:/lang]', '<?php } ?>', $out);
     // парсим остальные теги основного шаблона
     $out = str_replace($search, $replace, $out);
     unset($search, $replace);
     // парсим теги для combine.php
     $out = preg_replace_callback('/\\[tag:(css|js):([^ :\\/]+):?(\\S+)*\\]/', array($this, '_parse_combine'), $out);
     // ЧПУ
     $out = rewrite_link($out);
     echo $out;
 }
function css_level_list(&$struct, $struct_path, $level, $parent_level_name = '', $parent_level = 1, $class = '')
{
    // returns list <div><ul><li></li></ul></div> of the current structure level
    // if $parent_level=1 the first list entry will be the parent level
    // $parent_level=0 - only the list of all levels in this structure
    // if $parent_leve_name != "" then it uses the given string
    // predefined class for this menu is "list_level"
    if (!trim($class)) {
        $class = 'list_level';
    }
    $parent_level_name = trim($parent_level_name);
    $level = intval($level);
    $parent_level = intval($parent_level);
    $activated = 0;
    $css_list = '';
    //returns the complete level of NON hidden categories
    $level_struct = return_struct_level($struct, $level);
    $breadcrumb = get_breadcrumb(key($struct_path), $struct);
    foreach ($level_struct as $key => $value) {
        if (!$level_struct[$key]["acat_redirect"]) {
            $link = 'index.php?';
            if ($level_struct[$key]["acat_alias"]) {
                $link .= html_specialchars($level_struct[$key]["acat_alias"]);
            } else {
                $link .= 'id=' . $key;
            }
            $redirect['target'] = '';
        } else {
            $redirect = get_redirect_link($level_struct[$key]["acat_redirect"], ' ', '');
            $link = $redirect['link'];
        }
        $css_list .= '	<li';
        $liclass = trim((empty($breadcrumb[$key]) ? '' : 'active ') . $level_struct[$key]["acat_class"]);
        $css_list .= empty($liclass) ? '' : ' class="' . $liclass . '"';
        $css_list .= '><a href="' . $link . '"' . $redirect['target'] . '>';
        $css_list .= html_specialchars($level_struct[$key]["acat_name"]);
        $css_list .= '</a></li>' . LF;
    }
    if ($parent_level) {
        if (!$struct[$level]["acat_redirect"]) {
            $link = 'index.php?';
            if ($struct[$level]["acat_alias"]) {
                $link .= html_specialchars($struct[$level]["acat_alias"]);
            } else {
                $link .= 'id=' . $level;
            }
            $redirect['target'] = '';
        } else {
            $redirect = get_redirect_link($struct[$level]["acat_redirect"], ' ', '');
            $link = $redirect['link'];
        }
        $css_list_home = '	<li class="' . trim(($GLOBALS['aktion'][0] == $level ? 'active' : 'parent') . ' ' . $struct[$level]["acat_class"]) . '">';
        $css_list_home .= '<a href="' . $link . '"' . $redirect['target'] . '>';
        $css_list_home .= html_specialchars(!$parent_level_name ? $struct[$level]["acat_name"] : $parent_level_name);
        $css_list_home .= '</a></li>' . LF;
        $css_list = $css_list_home . $css_list;
    }
    if ($css_list) {
        $css_list = LF . '<ul class="' . $class . '">' . LF . $css_list . '</ul>' . LF;
    }
    return $css_list;
}
 $id = $db->f("id");
 $parent_id = $db->f("parent_id");
 $image = $db->f("image");
 $assigned_tpl = $db->f("assigned_tpl");
 // dynamiczne definiowanie szablonu, jaki ma byc
 // przydzielony do konkretnej podstrony Core
 $ft->define($assigned_tpl, $assigned_tpl . '_page.tpl');
 $text = highlighter($text, '<code>', '</code>');
 $ft->assign(array('PAGE_TITLE' => $title, 'PAGE_TEXT' => $text, 'PAGE_ID' => $id, 'PAGINATED' => false, 'MOVE_BACK' => false, 'MOVE_FORWARD' => false));
 // Parsowanie nazw stron rodzicielskich::parent
 $ft->define_dynamic("breadcrumb_row", "pages_view");
 // tablice przechowujace tytul i id strony
 $pages_sort[] = $title;
 $pages_id[] = $id;
 // funkcja pobieraj±ca rekurencyjnie strony dziedzicz±ce::child
 get_breadcrumb($parent_id, 2);
 function cmp($pages_sort, $b)
 {
     if ($pages_sort == $b) {
         return 0;
     }
     return $pages_sort > $b ? -1 : 1;
 }
 // sortujemy tablice w porzadku odwrotnym
 uksort($pages_sort, "cmp");
 uksort($pages_id, "cmp");
 // parsujemy menu na podstawie tablicy
 foreach ($pages_sort as $pid => $ptitle) {
     if ((bool) $rewrite) {
         $page_link = sprintf('1,%s,5,item.html', $pages_id[$pid]);
     } else {
Exemple #12
0
 /**
  * Метод, предназанченный для сборки всей страницы в единое целое.
  *
  * @param int $id идентификатор документа
  * @param int $rub_id идентификатор рубрики
  */
 function coreSiteFetch($id, $rub_id = '')
 {
     global $AVE_DB;
     // Если происходит вызов модуля, получаем соответствующие мета-теги и получаем шаблон модуля
     if (!empty($_REQUEST['module'])) {
         $out = $this->_coreModuleMetatagsFetch();
         $out = $this->_coreDocumentTemplateGet('', '', $this->_coreModuleTemplateGet());
     } else {
         if (!isset($this->curentdoc->Id) && !$this->_coreCurrentDocumentFetch($id, UGROUP)) {
             // Определяем документ с 404 ошиюкой, в случае, если документ не найден
             if ($this->_corePageNotFoundFetch(PAGE_NOT_FOUND_ID, UGROUP)) {
                 $_REQUEST['id'] = $_GET['id'] = $id = PAGE_NOT_FOUND_ID;
             }
         }
         // проверяем параметры публикации документа
         if (!$this->_coreDocumentIsPublished()) {
             $this->_coreErrorPage404();
         }
         // Определяем права доступа к документам рубрики
         define('RUB_ID', !empty($rub_id) ? $rub_id : $this->curentdoc->rubric_id);
         $this->_coreRubricPermissionFetch(RUB_ID);
         if (!(isset($_SESSION[RUB_ID . '_docread']) && $_SESSION[RUB_ID . '_docread'] == 1 || isset($_SESSION[RUB_ID . '_alles']) && $_SESSION[RUB_ID . '_alles'] == 1)) {
             // читать запрещено - извлекаем ругательство и отдаём вместо контента
             $main_content = get_settings('message_forbidden');
         } else {
             if (isset($_REQUEST['print']) && $_REQUEST['print'] == 1) {
                 // увеличиваем счетчик версий для печати
                 $AVE_DB->Query("\r\n\t\t\t\t\t\tUPDATE " . PREFIX . "_documents\r\n\t\t\t\t\t\tSET document_count_print = document_count_print+1\r\n\t\t\t\t\t\tWHERE Id = '" . $id . "'\r\n\t\t\t\t\t");
             } else {
                 if (!isset($_SESSION['doc_view[' . $id . ']'])) {
                     // увеличиваем счетчик просмотров (1 раз в пределах сессии)
                     $AVE_DB->Query("\r\n\t\t\t\t\t\t\tUPDATE " . PREFIX . "_documents\r\n\t\t\t\t\t\t\tSET document_count_view = document_count_view+1\r\n\t\t\t\t\t\t\tWHERE Id = '" . $id . "'\r\n\t\t\t\t\t\t");
                     $_SESSION['doc_view[' . $id . ']'] = 1;
                 }
             }
             if (CACHE_DOC_TPL && empty($_POST) && !(isset($_SESSION['user_adminmode']) && $_SESSION['user_adminmode'] == 1)) {
                 // кэширование разрешено
                 // извлекаем скомпилированный шаблон документа из кэша
                 $main_content = $AVE_DB->Query("\r\n\t\t\t\t\t\tSELECT compiled\r\n\t\t\t\t\t\tFROM " . PREFIX . "_rubric_template_cache\r\n\t\t\t\t\t\tWHERE hash  = '" . $this->_get_cache_hash() . "'\r\n\t\t\t\t\t\tLIMIT 1\r\n\t\t\t\t\t")->GetCell();
             } else {
                 // кэширование запрещено
                 $main_content = false;
             }
             if (empty($main_content)) {
                 // кэш пустой или отключен, извлекаем и компилируем шаблон
                 if (!empty($this->curentdoc->rubric_template)) {
                     $rubTmpl = $this->curentdoc->rubric_template;
                 } else {
                     $rubTmpl = $AVE_DB->Query("\r\n\t\t\t\t\t\t\tSELECT rubric_template\r\n\t\t\t\t\t\t\tFROM " . PREFIX . "_rubrics\r\n\t\t\t\t\t\t\tWHERE Id = '" . RUB_ID . "'\r\n\t\t\t\t\t\t\tLIMIT 1\r\n\t\t\t\t\t\t")->GetCell();
                 }
                 $rubTmpl = trim($rubTmpl);
                 if (empty($rubTmpl)) {
                     // не задан шаблон рубрики
                     $main_content = $this->_rubric_template_empty;
                 } else {
                     // парсим теги полей в шаблоне документа
                     $main_content = preg_replace_callback('/\\[tag:fld:(\\d+)\\]/', 'document_get_field', $rubTmpl);
                     // удаляем ошибочные теги полей
                     $main_content = preg_replace('/\\[tag:fld:\\d*\\]/', '', $main_content);
                     if (CACHE_DOC_TPL && empty($_POST) && !(isset($_SESSION['user_adminmode']) && $_SESSION['user_adminmode'] == 1)) {
                         // кэширование разрешено
                         // сохраняем скомпилированный шаблон в кэш
                         $AVE_DB->Query("\r\n\t\t\t\t\t\t\t\tINSERT " . PREFIX . "_rubric_template_cache\r\n\t\t\t\t\t\t\t\tSET\r\n\t\t\t\t\t\t\t\t\thash     = '" . $this->_get_cache_hash() . "',\r\n\t\t\t\t\t\t\t\t\trub_id   = '" . RUB_ID . "',\r\n\t\t\t\t\t\t\t\t\tgrp_id   = '" . UGROUP . "',\r\n\t\t\t\t\t\t\t\t\tdoc_id   = '" . $id . "',\r\n\t\t\t\t\t\t\t\t\tcompiled = '" . addslashes($main_content) . "'\r\n\t\t\t\t\t\t\t");
                     }
                 }
             }
             $main_content = str_replace('[tag:docdate]', pretty_date(strftime(DATE_FORMAT, $this->curentdoc->document_published)), $main_content);
             $main_content = str_replace('[tag:doctime]', pretty_date(strftime(TIME_FORMAT, $this->curentdoc->document_published)), $main_content);
             $main_content = str_replace('[tag:docauthor]', get_username_by_id($this->curentdoc->document_author_id), $main_content);
         }
         $out = str_replace('[tag:maincontent]', $main_content, $this->_coreDocumentTemplateGet(RUB_ID));
     }
     // /вывод документа
     // Если в запросе пришел параметр print, т.е. страница для печати, парсим контент, который обрамлен
     // тегами только для печати
     if (isset($_REQUEST['print']) && $_REQUEST['print'] == 1) {
         $out = str_replace(array('[tag:if_print]', '[/tag:if_print]'), '', $out);
         $out = preg_replace('/\\[tag:if_notprint\\](.*?)\\[\\/tag:if_notprint\\]/si', '', $out);
     } else {
         // В противном случае наоборот, парсим только тот контент, который предназначен НЕ для печати
         $out = preg_replace('/\\[tag:if_print\\](.*?)\\[\\/tag:if_print\\]/si', '', $out);
         $out = str_replace(array('[tag:if_notprint]', '[/tag:if_notprint]'), '', $out);
     }
     // получаем из шаблона системный тег, определяющий название темы дизайна
     $match = '';
     preg_match('/\\[tag:theme:(\\w+)]/', $out, $match);
     define('THEME_FOLDER', empty($match[1]) ? DEFAULT_THEME_FOLDER : $match[1]);
     $out = preg_replace('/\\[tag:theme:(.*?)]/', '', $out);
     // парсим теги модулей
     $out = $this->coreModuleTagParse($out);
     if (isset($_REQUEST['module']) && !(isset($this->install_modules[$_REQUEST['module']]) && '1' == $this->install_modules[$_REQUEST['module']]->Status)) {
         display_notice($this->_module_error);
     }
     // парсим теги системы внутренних запросов
     $out = preg_replace_callback('/\\[tag:request:(\\d+)\\]/', 'request_parse', $out);
     // парсим теги скрытого текста
     $out = parse_hide($out);
     // парсим остальные теги основного шаблона
     $search = array('[tag:mediapath]', '[tag:path]', '[tag:sitename]', '[tag:document]', '[tag:home]', '[tag:robots]', '[tag:docid]', '[tag:breadcrumb]');
     $replace = array(ABS_PATH . 'templates/' . THEME_FOLDER . '/', ABS_PATH, htmlspecialchars(get_settings('site_name'), ENT_QUOTES), get_redirect_link('print'), get_home_link(), isset($this->curentdoc->document_meta_robots) ? $this->curentdoc->document_meta_robots : '', isset($this->curentdoc->Id) ? $this->curentdoc->Id : '', get_breadcrumb());
     if (defined('MODULE_CONTENT')) {
         // парсинг тегов при выводе из модуля
         $search[] = '[tag:maincontent]';
         $replace[] = MODULE_CONTENT;
         $search[] = '[tag:title]';
         $replace[] = htmlspecialchars(defined('MODULE_SITE') ? MODULE_SITE : '', ENT_QUOTES);
         $search[] = '[tag:description]';
         $replace[] = htmlspecialchars(defined('MODULE_DESCRIPTION') ? MODULE_DESCRIPTION : '', ENT_QUOTES);
         $search[] = '[tag:keywords]';
         $replace[] = htmlspecialchars(defined('MODULE_KEYWORDS') ? MODULE_KEYWORDS : '', ENT_QUOTES);
     } else {
         $search[] = '[tag:keywords]';
         $replace[] = isset($this->curentdoc->document_meta_keywords) ? htmlspecialchars($this->curentdoc->document_meta_keywords, ENT_QUOTES) : '';
         $search[] = '[tag:description]';
         $replace[] = isset($this->curentdoc->document_meta_description) ? htmlspecialchars($this->curentdoc->document_meta_description, ENT_QUOTES) : '';
         $search[] = '[tag:title]';
         $replace[] = htmlspecialchars(pretty_chars($this->curentdoc->document_title), ENT_QUOTES);
     }
     $search[] = '[tag:maincontent]';
     $replace[] = '';
     $search[] = '[tag:printlink]';
     $replace[] = get_print_link();
     $search[] = '[tag:version]';
     $replace[] = APP_INFO;
     $search[] = '[tag:docviews]';
     $replace[] = isset($this->curentdoc->document_count_view) ? $this->curentdoc->document_count_view : '';
     $out = str_replace($search, $replace, $out);
     unset($search, $replace);
     // /парсим остальные теги основного шаблона
     // ЧПУ
     $out = rewrite_link($out);
     echo $out;
 }
<?php

/*
 *
 * Breadcrumb for Page content type
 *
 *
*/
?>

<p><?php 
get_breadcrumb() . the_title();
?>
</p>
function ace_breadcrumb()
{
    if (get_option('ace_enable_breadcrumb')) {
        echo get_breadcrumb();
    }
}