r20151031
This commit is contained in:
parent
f7433beba6
commit
2c120186f7
7 changed files with 243 additions and 66 deletions
14
_sakura/components/BBcode.php
Normal file
14
_sakura/components/BBcode.php
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* BBcode parser
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Sakura;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class BBcode
|
||||||
|
* @package Sakura
|
||||||
|
*/
|
||||||
|
class BBcode
|
||||||
|
{
|
||||||
|
}
|
|
@ -1,14 +1,145 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* Template engine wrapper (new)
|
* Template engine wrapper
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Sakura;
|
namespace Sakura;
|
||||||
|
|
||||||
|
use Twig_Environment;
|
||||||
|
use Twig_Extension_StringLoader;
|
||||||
|
use Twig_Loader_Filesystem;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class Template
|
* Class Template
|
||||||
* @package Sakura
|
* @package Sakura
|
||||||
*/
|
*/
|
||||||
class Template
|
class Template
|
||||||
{
|
{
|
||||||
|
// Engine container, template folder name, options and template variables
|
||||||
|
private $vars = [];
|
||||||
|
private $template;
|
||||||
|
private $templateName;
|
||||||
|
private $templateOptions;
|
||||||
|
private $fallback;
|
||||||
|
private $fallbackName;
|
||||||
|
private $fallbackOptions;
|
||||||
|
|
||||||
|
// Initialise templating engine and data
|
||||||
|
function __construct()
|
||||||
|
{
|
||||||
|
// Set template to default
|
||||||
|
$this->setTemplate(Configuration::getConfig('site_style'));
|
||||||
|
|
||||||
|
// Set a fallback
|
||||||
|
$this->setFallback(Configuration::getConfig('site_style'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set a template name
|
||||||
|
public function setTemplate($name) {
|
||||||
|
// Assign config path to a variable so we don't have to type it out twice
|
||||||
|
$confPath = ROOT . '_sakura/templates/' . $name . '/template.ini';
|
||||||
|
|
||||||
|
// Check if the configuration file exists
|
||||||
|
if (!file_exists($confPath)) {
|
||||||
|
trigger_error('Template configuration does not exist', E_USER_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parse and store the configuration
|
||||||
|
$this->templateOptions = parse_ini_file($confPath, true);
|
||||||
|
|
||||||
|
// Make sure we're not using a manage template for the main site or the other way around
|
||||||
|
if (defined('SAKURA_MANAGE') && (bool) $this->templateOptions['manage']['mode'] != (bool) SAKURA_MANAGE) {
|
||||||
|
trigger_error('Incorrect template type', E_USER_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set variables
|
||||||
|
$this->templateName = $name;
|
||||||
|
|
||||||
|
// Reinitialise
|
||||||
|
$this->initTemplate();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialise main template engine
|
||||||
|
public function initTemplate() {
|
||||||
|
// Initialise Twig Filesystem Loader
|
||||||
|
$twigLoader = new Twig_Loader_Filesystem(ROOT . '_sakura/templates/' . $this->templateName);
|
||||||
|
|
||||||
|
// Environment variable
|
||||||
|
$twigEnv = [];
|
||||||
|
|
||||||
|
// Enable caching
|
||||||
|
if (Configuration::getConfig('enable_tpl_cache')) {
|
||||||
|
$twigEnv['cache'] = ROOT . 'cache';
|
||||||
|
}
|
||||||
|
|
||||||
|
// And now actually initialise the templating engine
|
||||||
|
$this->template = new Twig_Environment($twigLoader, $twigEnv);
|
||||||
|
|
||||||
|
// Load String template loader
|
||||||
|
$this->template->addExtension(new Twig_Extension_StringLoader());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set a fallback
|
||||||
|
private function setFallback($name) {
|
||||||
|
// Assign config path to a variable so we don't have to type it out twice
|
||||||
|
$confPath = ROOT . '_sakura/templates/' . $name . '/template.ini';
|
||||||
|
|
||||||
|
// Check if the configuration file exists
|
||||||
|
if (!file_exists($confPath)) {
|
||||||
|
trigger_error('Template configuration does not exist', E_USER_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parse and store the configuration
|
||||||
|
$this->fallbackOptions = parse_ini_file($confPath, true);
|
||||||
|
|
||||||
|
// Make sure we're not using a manage template for the main site or the other way around
|
||||||
|
if (defined('SAKURA_MANAGE') && (bool) $this->fallbackOptions['manage']['mode'] != (bool) SAKURA_MANAGE) {
|
||||||
|
trigger_error('Incorrect template type', E_USER_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set variables
|
||||||
|
$this->fallbackName = $name;
|
||||||
|
|
||||||
|
// Reinitialise
|
||||||
|
$this->initFallback();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialise main fallback engine
|
||||||
|
public function initFallback() {
|
||||||
|
// Initialise Twig Filesystem Loader
|
||||||
|
$twigLoader = new Twig_Loader_Filesystem(ROOT . '_sakura/templates/' . $this->fallbackName);
|
||||||
|
|
||||||
|
// Environment variable
|
||||||
|
$twigEnv = [];
|
||||||
|
|
||||||
|
// Enable caching
|
||||||
|
if (Configuration::getConfig('enable_tpl_cache')) {
|
||||||
|
$twigEnv['cache'] = ROOT . 'cache';
|
||||||
|
}
|
||||||
|
|
||||||
|
// And now actually initialise the templating engine
|
||||||
|
$this->fallback = new Twig_Environment($twigLoader, $twigEnv);
|
||||||
|
|
||||||
|
// Load String template loader
|
||||||
|
$this->fallback->addExtension(new Twig_Extension_StringLoader());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set variables
|
||||||
|
public function setVariables($vars) {
|
||||||
|
$this->vars = array_merge($this->vars, $vars);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Render a template
|
||||||
|
public function render($file)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
return $this->template->render($file, $this->vars);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
try {
|
||||||
|
return $this->fallback->render($file, $this->vars);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
trigger_error($e->getMessage(), E_USER_ERROR);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
namespace Sakura;
|
namespace Sakura;
|
||||||
|
|
||||||
// Define Sakura version
|
// Define Sakura version
|
||||||
define('SAKURA_VERSION', '20151024');
|
define('SAKURA_VERSION', '20151031');
|
||||||
define('SAKURA_VLABEL', 'Eminence');
|
define('SAKURA_VLABEL', 'Eminence');
|
||||||
define('SAKURA_COLOUR', '#6C3082');
|
define('SAKURA_COLOUR', '#6C3082');
|
||||||
define('SAKURA_STABLE', false);
|
define('SAKURA_STABLE', false);
|
||||||
|
@ -34,6 +34,7 @@ require_once ROOT . '_sakura/components/Hashing.php';
|
||||||
require_once ROOT . '_sakura/components/Configuration.php';
|
require_once ROOT . '_sakura/components/Configuration.php';
|
||||||
require_once ROOT . '_sakura/components/Database.php';
|
require_once ROOT . '_sakura/components/Database.php';
|
||||||
require_once ROOT . '_sakura/components/Urls.php';
|
require_once ROOT . '_sakura/components/Urls.php';
|
||||||
|
require_once ROOT . '_sakura/components/Template.php';
|
||||||
require_once ROOT . '_sakura/components/Templates.php';
|
require_once ROOT . '_sakura/components/Templates.php';
|
||||||
require_once ROOT . '_sakura/components/Permissions.php';
|
require_once ROOT . '_sakura/components/Permissions.php';
|
||||||
require_once ROOT . '_sakura/components/Session.php';
|
require_once ROOT . '_sakura/components/Session.php';
|
||||||
|
|
|
@ -14,44 +14,34 @@
|
||||||
background-image: linear-gradient(0deg, transparent 0%, transparent 12%, rgba(0, 0, 0, .7) 30%,
|
background-image: linear-gradient(0deg, transparent 0%, transparent 12%, rgba(0, 0, 0, .7) 30%,
|
||||||
transparent 76%, transparent 100%), url('{{ urls.format('IMAGE_HEADER', [profile.data.user_id]) }}');
|
transparent 76%, transparent 100%), url('{{ urls.format('IMAGE_HEADER', [profile.data.user_id]) }}');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#profileHeader.floating {
|
||||||
|
background-image: linear-gradient(90deg, transparent 0%, transparent 40%, #3A2E44 45%), url('{{ urls.format('IMAGE_HEADER', [profile.data.user_id]) }}');
|
||||||
|
background-size: auto 130px;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: left top;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{# block js %}
|
{% block js %}
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// Header
|
// Header
|
||||||
window.addEventListener("scroll", function(e) {
|
window.addEventListener("scroll", function(e) {
|
||||||
if(e.pageY > 244) {
|
if(e.pageY > 250) {
|
||||||
var profileHeader = document.getElementById('profileHeader');
|
var profileHeader = document.getElementById('profileHeader');
|
||||||
var profileContent = document.getElementById('profileContent');
|
var profileContent = document.getElementById('profileContent');
|
||||||
var userAvatar = document.getElementById('userAvatar');
|
profileHeader.className = 'profileHeaderContent floating';
|
||||||
profileHeader.style.position = 'fixed';
|
profileContent.className = 'profileContainer headerFloating';
|
||||||
profileHeader.style.paddingTop = '30px';
|
|
||||||
profileHeader.style.top = '0';
|
|
||||||
profileHeader.style.maxWidth = '1018px';
|
|
||||||
profileHeader.style.height = '100px';
|
|
||||||
profileContent.style.marginTop = '264px';
|
|
||||||
userAvatar.style.height = '80px';
|
|
||||||
userAvatar.style.width = '80px';
|
|
||||||
userAvatar.style.margin = '10px';
|
|
||||||
userAvatar.style.transition = '.2s';
|
|
||||||
} else {
|
} else {
|
||||||
var profileHeader = document.getElementById('profileHeader');
|
var profileHeader = document.getElementById('profileHeader');
|
||||||
var profileContent = document.getElementById('profileContent');
|
var profileContent = document.getElementById('profileContent');
|
||||||
var userAvatar = document.getElementById('userAvatar');
|
profileHeader.className = 'profileHeaderContent';
|
||||||
profileHeader.style.position = null;
|
profileContent.className = 'profileContainer';
|
||||||
profileHeader.style.paddingTop = null;
|
|
||||||
profileHeader.style.top = null;
|
|
||||||
profileHeader.style.maxWidth = null;
|
|
||||||
profileHeader.style.height = null;
|
|
||||||
profileContent.style.marginTop = null;
|
|
||||||
userAvatar.style.height = null;
|
|
||||||
userAvatar.style.width = null;
|
|
||||||
userAvatar.style.margin = null;
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
{% endblock #}
|
{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="profile" id="u{{ profile.data.user_id }}">
|
<div class="profile" id="u{{ profile.data.user_id }}">
|
||||||
|
|
|
@ -265,7 +265,7 @@ a:active {
|
||||||
padding-bottom: 100px;
|
padding-bottom: 100px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#wrapper > #content {
|
#content {
|
||||||
position: relative;
|
position: relative;
|
||||||
max-width: 1018px;
|
max-width: 1018px;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
|
@ -276,16 +276,20 @@ a:active {
|
||||||
border: 1px solid rgba(148, 117, 178, .6);
|
border: 1px solid rgba(148, 117, 178, .6);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#content.floatingNavigation {
|
||||||
|
padding-top: 37px;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Header navigation
|
* Header navigation
|
||||||
*/
|
*/
|
||||||
#content > #navigation {
|
#navigation {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 30px;
|
height: 25px;
|
||||||
background: linear-gradient(0deg, transparent, #453851 50%, #342740) transparent;
|
background: linear-gradient(0deg, transparent, #453851 50%, #342740) transparent;
|
||||||
font-family: "Exo2-0-LightItalic", sans-serif;
|
font-family: "Exo2-0-LightItalic", sans-serif;
|
||||||
font-size: 2em;
|
font-size: 1.5em;
|
||||||
line-height: 30px;
|
line-height: 25px;
|
||||||
letter-spacing: 0;
|
letter-spacing: 0;
|
||||||
text-shadow: 1px 1px 3px #111;
|
text-shadow: 1px 1px 3px #111;
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
|
@ -294,14 +298,19 @@ a:active {
|
||||||
max-width: 1018px;
|
max-width: 1018px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#content > #navigation > ul > li {
|
#content.floatingNavigation #navigation {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#navigation > ul > li {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
float: left;
|
float: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
#content > #navigation > ul > li > a:not(.ignore) {
|
#navigation > ul > li > a:not(.ignore) {
|
||||||
height: 30px;
|
height: 25px;
|
||||||
line-height: 30px;
|
line-height: 25px;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
color: inherit;
|
color: inherit;
|
||||||
|
@ -310,56 +319,57 @@ a:active {
|
||||||
transition: .2s;
|
transition: .2s;
|
||||||
}
|
}
|
||||||
|
|
||||||
#content > #navigation > ul > li > a {
|
#navigation > ul > li > a {
|
||||||
z-index: 901;
|
z-index: 901;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
#content > #navigation > .nav-left > li > a:not(.ignore):hover {
|
#navigation > .nav-left > li > a:not(.ignore):hover {
|
||||||
background: rgba(0, 0, 0, .2);
|
background: rgba(0, 0, 0, .2);
|
||||||
}
|
}
|
||||||
|
|
||||||
#content > #navigation > .nav-left > li > a:not(.ignore):active {
|
#navigation > .nav-left > li > a:not(.ignore):active {
|
||||||
background: rgba(0, 0, 0, .3);
|
background: rgba(0, 0, 0, .3);
|
||||||
}
|
}
|
||||||
|
|
||||||
#content > #navigation .nav-usermenu > a {
|
#navigation .nav-usermenu > a {
|
||||||
display: block !important;
|
display: block !important;
|
||||||
text-align: right !important;
|
text-align: right !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
#content > #navigation .nav-usermenu > a:after {
|
#navigation .nav-usermenu > a:after {
|
||||||
font-family: FontAwesome;
|
font-family: FontAwesome;
|
||||||
content: " \f0d7";
|
content: " \f0d7";
|
||||||
}
|
}
|
||||||
|
|
||||||
#content > #navigation .nav-usermenu:hover > a:after {
|
#navigation .nav-usermenu:hover > a:after {
|
||||||
font-family: FontAwesome;
|
font-family: FontAwesome;
|
||||||
content: " \f0d8";
|
content: " \f0d8";
|
||||||
}
|
}
|
||||||
|
|
||||||
#content > #navigation .nav-avatar {
|
#navigation .nav-avatar {
|
||||||
height: 30px;
|
height: 25px;
|
||||||
width: 30px;
|
width: 25px;
|
||||||
background: url('/pixel.png') no-repeat scroll left center / cover transparent;
|
background: url('/pixel.png') no-repeat scroll left center / cover transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
#content > #navigation > ul > li > ul {
|
#navigation > ul > li > ul {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
#content > #navigation > ul > li:hover > ul {
|
#navigation > ul > li:hover > ul {
|
||||||
display: block;
|
display: block;
|
||||||
z-index: 900;
|
z-index: 900;
|
||||||
background: rgba(69, 56, 81, .5);
|
background: rgba(69, 56, 81, .8);
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
list-style: none;
|
list-style: none;
|
||||||
padding: 35px 4px 5px;
|
padding: 30px 4px 5px;
|
||||||
|
box-shadow: 0 2px 6px rgba(0, 0, 0, .75);
|
||||||
}
|
}
|
||||||
|
|
||||||
#content > #navigation > ul > li > ul > li > a {
|
#navigation > ul > li > ul > li > a {
|
||||||
color: inherit;
|
color: inherit;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
display: block;
|
display: block;
|
||||||
|
@ -367,15 +377,15 @@ a:active {
|
||||||
padding: 2px 7px;
|
padding: 2px 7px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#content > #navigation > ul > li > ul > li > a:hover {
|
#navigation > ul > li > ul > li > a:hover {
|
||||||
background: rgba(0, 0, 0, .1);
|
|
||||||
}
|
|
||||||
|
|
||||||
#content > #navigation > ul > li > ul > li > a:active {
|
|
||||||
background: rgba(0, 0, 0, .2);
|
background: rgba(0, 0, 0, .2);
|
||||||
}
|
}
|
||||||
|
|
||||||
#content > #navigation .nav-usermenu ul {
|
#navigation > ul > li > ul > li > a:active {
|
||||||
|
background: rgba(0, 0, 0, .3);
|
||||||
|
}
|
||||||
|
|
||||||
|
#navigation .nav-usermenu ul {
|
||||||
right: -30px;
|
right: -30px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
min-width: 150px;
|
min-width: 150px;
|
||||||
|
@ -404,8 +414,8 @@ a:active {
|
||||||
align-content: stretch;
|
align-content: stretch;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
position: relative;
|
position: relative;
|
||||||
top: -35px;
|
top: -31px;
|
||||||
margin-bottom: -35px;
|
margin-bottom: -31px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.profile .profileContainer {
|
.profile .profileContainer {
|
||||||
|
@ -436,6 +446,15 @@ a:active {
|
||||||
align-items: flex-end;
|
align-items: flex-end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#profileHeader.floating {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
padding-top: 30px;
|
||||||
|
max-width: 1018px;
|
||||||
|
height: 95px;
|
||||||
|
box-shadow: 0 2px 6px rgba(0, 0, 0, .75);
|
||||||
|
}
|
||||||
|
|
||||||
#userAvatar {
|
#userAvatar {
|
||||||
font-size: 0;
|
font-size: 0;
|
||||||
background: transparent no-repeat scroll left center / cover;
|
background: transparent no-repeat scroll left center / cover;
|
||||||
|
@ -446,6 +465,13 @@ a:active {
|
||||||
margin: 10px;
|
margin: 10px;
|
||||||
margin-bottom: -10px;
|
margin-bottom: -10px;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
|
transition: .2s;
|
||||||
|
}
|
||||||
|
|
||||||
|
#profileHeader.floating #userAvatar {
|
||||||
|
height: 100px;
|
||||||
|
width: 100px;
|
||||||
|
margin: 5px 5px -5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#profileHeader > .userData {
|
#profileHeader > .userData {
|
||||||
|
@ -456,6 +482,14 @@ a:active {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#profileHeader.floating > .userData {
|
||||||
|
position: initial;
|
||||||
|
top: 0;
|
||||||
|
height: 100%;
|
||||||
|
font-size: .8em;
|
||||||
|
line-height: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
#profileHeader > .userData > .headerLeft {
|
#profileHeader > .userData > .headerLeft {
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
}
|
}
|
||||||
|
@ -478,6 +512,10 @@ a:active {
|
||||||
margin: 10px 10px 0 0;
|
margin: 10px 10px 0 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#profileContent.headerFloating {
|
||||||
|
margin-top: 264px;
|
||||||
|
}
|
||||||
|
|
||||||
#profileContent > .userDataBar {
|
#profileContent > .userDataBar {
|
||||||
width: 210px;
|
width: 210px;
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
|
|
|
@ -84,15 +84,9 @@ function convertParallaxPositionValue(pos, dir, neg) {
|
||||||
window.addEventListener("scroll", function(e) {
|
window.addEventListener("scroll", function(e) {
|
||||||
if(e.pageY > 123) {
|
if(e.pageY > 123) {
|
||||||
var content = document.getElementById('content');
|
var content = document.getElementById('content');
|
||||||
var navigation = document.getElementById('navigation');
|
content.className = 'floatingNavigation';
|
||||||
navigation.style.position = 'fixed';
|
|
||||||
navigation.style.top = '0';
|
|
||||||
content.style.paddingTop = '37px';
|
|
||||||
} else {
|
} else {
|
||||||
var content = document.getElementById('content');
|
var content = document.getElementById('content');
|
||||||
var navigation = document.getElementById('navigation');
|
content.className = null;
|
||||||
navigation.style.position = null;
|
|
||||||
navigation.style.top = null;
|
|
||||||
content.style.paddingTop = null;
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -74,5 +74,14 @@ $renderData['stats'] = [
|
||||||
'onlineUsers' => Users::checkAllOnline(),
|
'onlineUsers' => Users::checkAllOnline(),
|
||||||
];
|
];
|
||||||
|
|
||||||
|
// Initialise templating engine
|
||||||
|
$template = new Template();
|
||||||
|
|
||||||
|
// Change templating engine
|
||||||
|
$template->setTemplate($templateName);
|
||||||
|
|
||||||
|
// Set parse variables
|
||||||
|
$template->setVariables($renderData);
|
||||||
|
|
||||||
// Print page contents
|
// Print page contents
|
||||||
print Templates::render(($forumMode ? 'forum' : 'main') . '/index.tpl', $renderData);
|
echo $template->render(($forumMode ? 'forum' : 'main') . '/index.tpl');
|
||||||
|
|
Reference in a new issue