LCARS is a template for the GetSimple CMS that mimics the monitor appearance in the television series Star Trek: The Next Generation
		
			
				
	
	
		
			136 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			136 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/**
 | 
						|
 * Index
 | 
						|
 *
 | 
						|
 * Where it all starts	
 | 
						|
 *
 | 
						|
 * @package GetSimple
 | 
						|
 * @subpackage FrontEnd
 | 
						|
 */
 | 
						|
 | 
						|
 | 
						|
/* pre-common setup, load gsconfig and get GSADMIN path */
 | 
						|
 | 
						|
	/* GSCONFIG definitions */
 | 
						|
	if(!defined('GSSTYLEWIDE')) define('GSSTYLEWIDE','wide'); // wide style sheet
 | 
						|
	if(!defined('GSSTYLE_SBFIXED')) define('GSSTYLE_SBFIXED','sbfixed'); // fixed sidebar
 | 
						|
 | 
						|
	# Check and load gsconfig
 | 
						|
	if (file_exists('gsconfig.php')) {
 | 
						|
		require_once('gsconfig.php');
 | 
						|
	}
 | 
						|
 | 
						|
	# Apply GSADMIN env
 | 
						|
	if (defined('GSADMIN')) {
 | 
						|
		$GSADMIN = GSADMIN;
 | 
						|
	} else {
 | 
						|
		$GSADMIN = 'admin';
 | 
						|
	}
 | 
						|
 | 
						|
	# setup paths 
 | 
						|
	# @todo wtf are these for ?
 | 
						|
	$admin_relative = $GSADMIN.'/inc/';
 | 
						|
	$lang_relative = $GSADMIN.'/';
 | 
						|
 | 
						|
	$load['plugin'] = true;
 | 
						|
	$base = true;
 | 
						|
 | 
						|
/* end */
 | 
						|
 | 
						|
# Include common.php
 | 
						|
include($GSADMIN.'/inc/common.php');
 | 
						|
 | 
						|
# Hook to load page Cache
 | 
						|
exec_action('index-header');
 | 
						|
 | 
						|
# get page id (url slug) that is being passed via .htaccess mod_rewrite
 | 
						|
if (isset($_GET['id'])){ 
 | 
						|
	$id = str_replace ('..','',$_GET['id']);
 | 
						|
	$id = str_replace ('/','',$id);
 | 
						|
	$id = lowercase($id);
 | 
						|
} else {
 | 
						|
	$id = "index";
 | 
						|
}
 | 
						|
 | 
						|
// filter to modify page id request
 | 
						|
$id = exec_filter('indexid',$id);
 | 
						|
 // $_GET['id'] = $id; // support for plugins that are checking get?
 | 
						|
 | 
						|
# define page, spit out 404 if it doesn't exist
 | 
						|
$file_404 = GSDATAOTHERPATH . '404.xml';
 | 
						|
$user_created_404 = GSDATAPAGESPATH . '404.xml';
 | 
						|
$data_index = null;
 | 
						|
 | 
						|
// apply page data if page id exists
 | 
						|
if (isset($pagesArray[$id])) {
 | 
						|
	$data_index = getXml(GSDATAPAGESPATH . $id . '.xml');
 | 
						|
} 
 | 
						|
 | 
						|
// filter to modify data_index obj
 | 
						|
$data_index = exec_filter('data_index',$data_index);
 | 
						|
 | 
						|
// page not found handling
 | 
						|
if(!$data_index) {	
 | 
						|
	if (isset($pagesArray['404'])) {
 | 
						|
		// use user created 404 page
 | 
						|
		$data_index = getXml($user_created_404);		
 | 
						|
	} elseif (file_exists($file_404))	{
 | 
						|
		// default 404
 | 
						|
		$data_index = getXml($file_404);
 | 
						|
	} else {
 | 
						|
		// fail over
 | 
						|
		redirect('404');
 | 
						|
	} 	
 | 
						|
	exec_action('error-404');
 | 
						|
}
 | 
						|
 | 
						|
$title         = $data_index->title;
 | 
						|
$date          = $data_index->pubDate;
 | 
						|
$metak         = $data_index->meta;
 | 
						|
$metad         = $data_index->metad;
 | 
						|
$url           = $data_index->url;
 | 
						|
$content       = $data_index->content;
 | 
						|
$parent        = $data_index->parent;
 | 
						|
$template_file = $data_index->template;
 | 
						|
$private       = $data_index->private;	
 | 
						|
 | 
						|
// after fields from dataindex, can modify globals here or do whatever by checking them
 | 
						|
exec_action('index-post-dataindex');
 | 
						|
 | 
						|
# if page is private, check user
 | 
						|
if ($private == 'Y') {
 | 
						|
	if (isset($USR) && $USR == get_cookie('GS_ADMIN_USERNAME')) {
 | 
						|
		//ok, allow the person to see it then
 | 
						|
	} else {
 | 
						|
		redirect('404');
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
# if page does not exist, throw 404 error
 | 
						|
if ($url == '404') {
 | 
						|
	header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
 | 
						|
}
 | 
						|
 | 
						|
# check for correctly formed url
 | 
						|
if (defined('GSCANONICAL')) {
 | 
						|
	if ($_SERVER['REQUEST_URI'] != find_url($url, $parent, 'relative')) {
 | 
						|
		redirect(find_url($url, $parent));
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
# include the functions.php page if it exists within the theme
 | 
						|
if ( file_exists(GSTHEMESPATH .$TEMPLATE."/functions.php") ) {
 | 
						|
	include(GSTHEMESPATH .$TEMPLATE."/functions.php");	
 | 
						|
}
 | 
						|
 | 
						|
# call pretemplate Hook
 | 
						|
exec_action('index-pretemplate');
 | 
						|
 | 
						|
# include the template and template file set within theme.php and each page
 | 
						|
if ( (!file_exists(GSTHEMESPATH .$TEMPLATE."/".$template_file)) || ($template_file == '') ) { $template_file = "template.php"; }
 | 
						|
include(GSTHEMESPATH .$TEMPLATE."/".$template_file);
 | 
						|
 | 
						|
# call posttemplate Hook
 | 
						|
exec_action('index-posttemplate');
 | 
						|
 | 
						|
?>
 |