Example #1
0
 /**
  * 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.');
             }
         }
     }
 }
Example #2
0
<?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);
            }
Example #3
0
<?php

require 'base.php';
$categories = ForumCategory::getAllCategories();
Templates::assign('categories', $categories);
PluginHelper::delegate('__onPageDisplay', array($page));
Templates::display('forums');
Example #4
0
// 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);