forked from Public/pics
		
	
		
			
				
	
	
		
			118 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			118 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/*****************************************************************************
 | 
						|
 * MainTemplate.php
 | 
						|
 * Defines the key template MainTemplate.
 | 
						|
 *
 | 
						|
 * Kabuki CMS (C) 2013-2015, Aaron van Geffen
 | 
						|
 *****************************************************************************/
 | 
						|
 | 
						|
class MainTemplate extends Template
 | 
						|
{
 | 
						|
	private $title = '';
 | 
						|
	private $classes = [];
 | 
						|
	private $area;
 | 
						|
	private $css = '';
 | 
						|
	private $header_html = '';
 | 
						|
	private $canonical_url = '';
 | 
						|
 | 
						|
	public function __construct($title = '')
 | 
						|
	{
 | 
						|
		$this->title = $title;
 | 
						|
	}
 | 
						|
 | 
						|
	public function html_main()
 | 
						|
	{
 | 
						|
		echo '<!DOCTYPE html>
 | 
						|
<html lang="en">
 | 
						|
	<head>
 | 
						|
		<title>', $this->title, '</title>', !empty($this->canonical_url) ? '
 | 
						|
		<link rel="canonical" href="' . $this->canonical_url . '">' : '', '
 | 
						|
		<link type="text/css" rel="stylesheet" href="', BASEURL, '/css/default.css">
 | 
						|
		<meta name="viewport" content="width=device-width, initial-scale=1">
 | 
						|
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">', !empty($this->css) ? '
 | 
						|
		<style type="text/css">' . $this->css . '
 | 
						|
		</style>' : '', $this->header_html, '
 | 
						|
	</head>
 | 
						|
	<body', !empty($this->classes) ? ' class="' . implode(' ', $this->classes) . '"' : '', '>
 | 
						|
		<header>
 | 
						|
			<a href="', BASEURL, '/">
 | 
						|
				<h1 id="logo">#pics</h1>
 | 
						|
			</a>
 | 
						|
			<ul id="nav">
 | 
						|
				<li><a href="', BASEURL, '/">albums</a></li>
 | 
						|
				<li><a href="', BASEURL, '/people/">people</a></li>
 | 
						|
				<li><a href="', BASEURL, '/timeline/">timeline</a></li>
 | 
						|
			</ul>
 | 
						|
		</header>
 | 
						|
		<div id="wrapper">';
 | 
						|
 | 
						|
		foreach ($this->_subtemplates as $template)
 | 
						|
			$template->html_main();
 | 
						|
 | 
						|
		echo '
 | 
						|
			<footer>';
 | 
						|
 | 
						|
		if (Registry::has('user') && Registry::get('user')->isAdmin())
 | 
						|
		{
 | 
						|
			if (class_exists('Cache'))
 | 
						|
				echo '
 | 
						|
				<span class="cache-info">Cache info: ', Cache::$hits, ' hits, ', Cache::$misses, ' misses, ', Cache::$puts, ' puts, ', Cache::$removals, ' removals</span>';
 | 
						|
 | 
						|
			if (Registry::has('start'))
 | 
						|
				echo '<br>
 | 
						|
				<span class="creation-time">Page creation time: ', sprintf('%1.4f', microtime(true) - Registry::get('start')), ' seconds</span>';
 | 
						|
 | 
						|
			if (Registry::has('db'))
 | 
						|
				echo '<br>
 | 
						|
				<span class="query-count">Database interaction: ', Registry::get('db')->getQueryCount(), ' queries</span>';
 | 
						|
		}
 | 
						|
		else
 | 
						|
			echo '
 | 
						|
				<span class="vanity">Powered by <a href="https://aaronweb.net/projects/kabuki/">Kabuki CMS</a></span>';
 | 
						|
 | 
						|
		echo '
 | 
						|
			</footer>
 | 
						|
		</div>';
 | 
						|
 | 
						|
		if (Registry::has('db') && defined("DB_LOG_QUERIES") && DB_LOG_QUERIES)
 | 
						|
			foreach (Registry::get('db')->getLoggedQueries() as $query)
 | 
						|
				echo '<pre>', strtr($query, "\t", " "), '</pre>';
 | 
						|
 | 
						|
		echo '
 | 
						|
	</body>
 | 
						|
</html>';
 | 
						|
	}
 | 
						|
 | 
						|
	public function appendCss($css)
 | 
						|
	{
 | 
						|
		$this->css .= $css;
 | 
						|
	}
 | 
						|
 | 
						|
	public function appendHeaderHtml($html)
 | 
						|
	{
 | 
						|
		$this->header_html .= "\n\t\t" . $html;
 | 
						|
	}
 | 
						|
 | 
						|
	public function appendStylesheet($uri)
 | 
						|
	{
 | 
						|
		$this->appendHeaderHtml('<link text="text/css" rel="stylesheet" href="'. $uri . '">');
 | 
						|
	}
 | 
						|
 | 
						|
	public function setCanonicalUrl($url)
 | 
						|
	{
 | 
						|
		$this->canonical_url = $url;
 | 
						|
	}
 | 
						|
 | 
						|
	public function addClass($class)
 | 
						|
	{
 | 
						|
		if (!in_array($class, $this->classes))
 | 
						|
			$this->classes[] = $class;
 | 
						|
	}
 | 
						|
 | 
						|
	public function removeClass($class)
 | 
						|
	{
 | 
						|
		if ($key = array_search($class, $this->classes) !== false)
 | 
						|
			unset($this->classes[$key]);
 | 
						|
	}
 | 
						|
}
 |