/** * Adds all necessary navigation items. * This also calls plugins to add additional items where needed. */ protected static function initNavigation() { $items = array('Start' => './index.php', 'Forums' => './forums.php'); foreach ($items as $title => $url) { $item = new NavigationItem($title, $url); self::addNavigationItem($item); } $pluginItems = PluginHelper::delegate('__onCreateNavigation'); foreach ($pluginItems as $package => $item) { if ($item instanceof NavigationItem) { self::addNavigationItem($item); } else { if (is_array($item)) { foreach ($item as $i) { if ($i instanceof NavigationItem) { self::addNavigationItem($i); } else { Functions::log(Functions::LOG_WARNING, 'Plugin ' . $package . ' supplied invalid navigation item.'); } } } else { Functions::log(Functions::LOG_WARNING, 'Plugin ' . $package . ' supplied invalid navigation item.'); } } } }
<?php $pageName = htmlspecialchars(basename($_GET['page'])); unset($_GET['page']); include 'base.php'; // If custom page if (substr($pageName, -4) == '.php') { unset($_GET[$token->getTokenName()]); unset($_POST[$token->getTokenName()]); $pageCreators = PluginHelper::delegate('__onCreatePage', array(substr($pageName, 0, strlen($pageName) - 4), $_GET)); if (count($pageCreators) == 1) { // Get single page creator foreach ($pageCreators as $p) { $pageCreator = $p; } // Does it implement PageCreator? if (!$pageCreator instanceof PageCreator) { Functions::log(Functions::LOG_ERROR, get_class($pageCreator) . ' does not implement interface PageCreator'); } else { Templates::assign('pageTitle', $pageCreator->getTitle()); Templates::assign('customContent', $pageCreator->getContent()); Templates::display('custom'); } exit; } else { if (count($pageCreators) > 1) { // CLASH OF PLUGINS!! $errorMessage = 'Page Creator conflict for page ' . $pageName . ':<br /><br /><ul>'; foreach ($pageCreators as $package => $pageCreator) { $errorMessage .= '<b>' . $package . '</b>: ' . get_class($pageCreator); }
<?php require 'base.php'; $categories = ForumCategory::getAllCategories(); Templates::assign('categories', $categories); PluginHelper::delegate('__onPageDisplay', array($page)); Templates::display('forums');
// Classes require LIB . 'base/InfoMessage.php'; require LIB . 'base/AdminInfoMessage.php'; require LIB . 'themes/scss/scss.inc.php'; // Auto-Loader require LIB . 'common/ClassLoader.php'; // Connect to database $db = new Database($DBCRED['host'], $DBCRED['username'], $DBCRED['password'], $DBCRED['database']); // Unset $DBCRED for security reasons unset($DBCRED); $userManager = new UserManager(); $user = $userManager->getUser(); // Tokens $token = new Token(); $token->_('user.php', 'GET', RANK_USER); $token->_('viewforum.php', 'GET', RANK_USER); $token->_('viewtopic.php', 'GET', RANK_USER); if (isset($disableTokenHere) && is_array($disableTokenHere)) { foreach ($disableTokenHere as $ex) { $token->_($ex, 'GET, POST', RANK_USER); $token->_($ex, 'GET, POST', RANK_ADMIN); } } // Plugins $activePlugins = array(); PluginHelper::loadActivePlugins(); PluginHelper::delegate('__onCreate', array($db, $user)); Templates::init(); Templates::assignVars(array('pageTitle' => Config::get('page_title'))); $token->check('POST', $_POST); $token->check('GET', $_GET);