You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

276 lines
9.6 KiB

<?php
if(!defined('IN_INDEX')) exit;
// menus:
$template->assign('menus', get_menus());
// global content blocks:
if($settings['global_content_blocks']) $template->assign('gcb', get_global_content_blocks());
// content:
if(empty($data)) // might already be set if error page was loaded
{
if($data=get_content(PAGE))
{
// count views:
if($settings['count_views']==1)
{
$dbr = Database::$content->prepare("UPDATE ".Database::$db_settings['pages_table']." SET views=views+1 WHERE id=:id");
$dbr->bindParam(':id', $data['id'], PDO::PARAM_INT);
$dbr->execute();
}
}
else
{
$no_cache = true;
if($data=get_content($settings['error_page']))
{
header($_SERVER['SERVER_PROTOCOL'] . " 404 Not Found");
header("Status: 404 Not Found");
}
else
{
raise_error('404');
}
}
}
if($data['language']=='') $language_file = $settings['default_page_language'] . '.page.lang.php';
else $language_file = $data['language'] . '.page.lang.php';
#require('./cms/includes/classes/Localization.class.php');
#$loc = new Localization('./cms/lang/'.$language_file);
#$localization = Localization::getInstance(BASE_PATH.'cms/lang/'.$language_file);
$localization = new Localization(BASE_PATH.'cms/lang/'.$language_file);
mb_internal_encoding(Localization::$lang['charset']);
#require('./cms/lang/'.$language_file);
#$template->set_lang($lang);
#$template->config_load($language_file);
#$lang = $template->get_config_vars();
setlocale(LC_ALL, Localization::$lang['locale']);
#$template->assign('config_file', $language_file);
define('CHARSET', Localization::$lang['charset']);
#define('TIME_FORMAT', Localization::$lang['time_format']);
#define('TIME_FORMAT_FULL', Localization::$lang['time_format_full']);
// breadcrumbs:
$template->assign('breadcrumbs', get_breadcrumbs($data['breadcrumbs']));
$page = $data['page'];
$content = $data['content'];
if($settings['content_auto_link']==1) $content = make_link($content);
#if($settings['content_smilies']==1) $content = smilies($content);
$content = parse_special_tags($content);
$sidebar_1 = $data['sidebar_1'];
if($settings['content_auto_link']==1) $sidebar_1 = make_link($sidebar_1);
#if($settings['content_smilies']==1) $sidebar_1 = smilies($sidebar_1);
if($sidebar_1!='') $sidebar_1 = parse_special_tags($sidebar_1);
$sidebar_2 = $data['sidebar_2'];
if($settings['content_auto_link']==1) $sidebar_2 = make_link($sidebar_2);
#if($settings['content_smilies']==1) $sidebar_2 = smilies($sidebar_2);
if($sidebar_2!='') $sidebar_2 = parse_special_tags($sidebar_2);
$sidebar_3 = $data['sidebar_3'];
if($settings['content_auto_link']==1) $sidebar_3 = make_link($sidebar_3);
#if($settings['content_smilies']==1) $sidebar_3 = smilies($sidebar_3);
if($sidebar_3!='') $sidebar_3 = parse_special_tags($sidebar_3);
$sections_array = explode(',',$data['sections']);
foreach($sections_array as $section)
{
$sections[] = $section;
}
$template->assign('section', $sections);
$tv_array = explode(',', $data['tv']);
foreach($tv_array as $tv_item)
{
if($tv_item)
{
$tv_item_parts = explode('=', $tv_item, 2);
$tv[trim($tv_item_parts[0])] = isset($tv_item_parts[1]) ? trim($tv_item_parts[1]) : true;
}
}
if(isset($tv)) $template->assign('tv', $tv);
$page_id = $data['id'];
// include news (simple news):
if($data['include_news'])
{
$dbr = Database::$content->prepare("SELECT page, type FROM ".Database::$db_settings['pages_table']." WHERE id=:id");
$dbr->bindParam(':id', $data['include_news'], PDO::PARAM_INT);
$dbr->execute();
$include_news_page_data = $dbr->fetch();
if(isset($include_news_page_data['page']))
{
if($include_news_page_data['type']=='simple_news')
{
$dbr = Database::$content->prepare("SELECT id, time, title, teaser, text, text_formatting, linkname FROM ".Database::$db_settings['news_table']." WHERE page_id=:page_id ORDER BY time DESC LIMIT ".$settings['include_news_items']);
}
else
{
$dbr = Database::$content->prepare("SELECT id, time, teaser_headline, headline, title, page_title, page, teaser, content, link_name AS linkname FROM ".Database::$db_settings['pages_table']." WHERE include_page=:page_id ORDER BY time DESC LIMIT ".$settings['include_news_items']);
}
$dbr->bindParam(':page_id', $data['include_news'], PDO::PARAM_INT);
$dbr->execute();
$i=0;
while($include_news_data = $dbr->fetch())
{
$include_news[$i]['id'] = $include_news_data['id'];
$include_news[$i]['time'] = $include_news_data['time'];
$include_news[$i]['linkname'] = $include_news_data['linkname'];
$localization->bindReplacePlaceholder($include_news_data['id'], 'time', $include_news_data['time'], 'include_news_time', Localization::FORMAT_TIME);
if($include_news_page_data['type']=='simple_news')
{
$include_news[$i]['title'] = $include_news_data['title'];
if($include_news_data['teaser'])
{
$include_news[$i]['teaser'] = $include_news_data['teaser'];
}
else
{
if($include_news_data['text_formatting']==1) $include_news[$i]['teaser'] = auto_html($include_news_data['text']);
else $include_news[$i]['teaser'] = $include_news_data['text'];
}
$include_news[$i]['link'] = BASE_URL.$include_news_page_data['page'].','.$include_news_data['id'];
}
else
{
if($include_news_data['teaser_headline']!='')
{
$include_news[$i]['title'] = $include_news_data['teaser_headline'];
}
elseif($include_news_data['headline']!='')
{
$include_news[$i]['title'] = $include_news_data['headline'];
}
else
{
$include_news[$i]['title'] = $include_news_data['title'];
}
if($include_news_data['teaser']!='')
{
if($include_news_data['teaser_formatting']==1)
{
$include_news[$i]['teaser'] = auto_html($include_news_data['teaser']);
}
else
{
$include_news[$i]['teaser'] = $include_news_data['teaser'];
}
}
else
{
if($include_news_data['content_formatting']==1)
{
$include_news[$i]['teaser'] = auto_html($include_news_data['content']);
}
else
{
$include_news[$i]['teaser'] = $include_news_data['content'];
}
}
$include_news[$i]['link'] = BASE_URL.$include_news_data['page'];
}
$i++;
}
if(isset($include_news))
{
$template->assign('include_news', $include_news);
}
}
}
$template->assign('id', $data['id']);
$template->assign('page', $page);
$template->assign('settings', $settings);
$template->assign('type', $data['type']);
$template->assign('title', $data['title']);
$template->assign('page_title', $data['page_title']);
if($data['keywords']) $template->assign('keywords', $data['keywords']);
elseif($settings['default_keywords']) $template->assign('keywords', $settings['default_keywords']);
else $template->assign('keywords', '');
if($data['description']) $template->assign('description', $data['description']);
elseif($settings['default_description']) $template->assign('description', $settings['default_description']);
else $template->assign('description', '');
$template->assign('category', htmlspecialchars($data['category']));
$template->assign('page_info', $data['page_info']);
$template->assign('content', $content);
$template->assign('sidebar_1', $sidebar_1);
$template->assign('sidebar_2', $sidebar_2);
$template->assign('sidebar_3', $sidebar_3);
$template->assign('menu_1', $data['menu_1']);
$template->assign('menu_2', $data['menu_2']);
$template->assign('menu_3', $data['menu_3']);
$template->assign('gcb_1', htmlspecialchars($data['gcb_1']));
$template->assign('gcb_2', htmlspecialchars($data['gcb_2']));
$template->assign('gcb_3', htmlspecialchars($data['gcb_3']));
$template->assign('status', intval($data['status']));
if($data['page']==$settings['index_page']) $template->assign('canonical', BASE_URL);
if(isset($_SESSION[$settings['session_prefix'].'user_id']) && is_authorized_to_edit($_SESSION[$settings['session_prefix'].'user_id'],$_SESSION[$settings['session_prefix'].'user_type'],$data['author'],$data['edit_permission'],$data['edit_permission_general']))
{
$authorized_to_edit = true;
}
else
{
$authorized_to_edit = false;
}
$template->assign('authorized_to_edit', $authorized_to_edit);
$template->assign('timestamp', $data['time']);
#$template->assign('created', format_time($loc->lang['time_format'], $data['time']));
#$template->assign('last_modified', format_time($loc->lang['time_format'], $data['last_modified']));
if($data['display_time']==1)
{
$template->assign('display_time', true);
$localization->replacePlaceholder('time', $data['time'], 'page_time', Localization::FORMAT_TIME);
}
else
{
$template->assign('display_time', false);
}
$localization->replacePlaceholder('last_modified', $data['last_modified'], 'page_last_modified', Localization::FORMAT_TIME);
$localization->replacePlaceholder('created', $data['time'], 'page_last_modified', Localization::FORMAT_TIME);
#$template->assign('lang', $lang['lang']);
$content_type = $data['content_type'] ? $data['content_type'] : 'text/html';
#$charset = $data['charset'] ? $data['charset'] : $loc->lang['charset'];
$template_file = $data['template'];
if($data['type']!='default')
{
include(BASE_PATH.'cms/config/page_types.conf.php');
if(isset($page_types[$data['type']]['page_type']))
{
include(BASE_PATH.'cms/includes/page_types/'.$page_types[$data['type']]['page_type']);
}
}
else
{
if(isset($cache) && empty($no_cache))
{
$cache->cacheId = PAGE;
}
}
?>