Show default.php syntax highlighted
<?php
class Renderer {
const TOP = 3;
const LEFT = 2;
const RIGHT = 0;
private static $file = "default";
private static $initialized = false;
private static $alreadyPrinted = array ();
private static $renderingNodeName = false;
private static $lastContent = false;
private static $view = 'index';
private static $view_has_been_set = false;
public static function getView() {
return self :: $view;
}
public static function setView($view) {
if (!self :: $view_has_been_set) {
self :: $view_has_been_set = true;
self :: $view = $view;
} else {
//throw new Exception;
}
}
public static function setRulesFile($file) {
self :: $file = $file;
}
public static function setRenderingNode($NodeName) {
self :: $renderingNodeName = $NodeName;
}
public static function getRenderingNode() {
return self :: $renderingNodeName;
}
public static function rulesFile() {
return "core/renderers/" . self :: $file . ".php";
}
public static function INIT() {
if (self :: $initialized)
return true;
self :: $initialized = false;
ModulesManager :: loadModules(); // Load available modules
Location :: importURL(); // SEO
}
public static function PrintContent($position_number) {
global $ECP;
if (isset (self :: $alreadyPrinted[$position_number]))
return;
else
self :: $alreadyPrinted[$position_number] = true;
if (!self :: $initialized)
self :: INIT();
$true_offset = $_GET['offset'];
$_GET['offset'] = "";
$sort = array ();
// Sort by height
foreach (ModulesManager :: getModules() as $Module) {
if ($Module->getPosition() == $position_number) {
$height = $Module->getHeight();
if ($height < 0)
$height = 0;
$sort[$height][] = $Module;
}
}
ksort($sort, SORT_NUMERIC);
// Rendering proccess
foreach ($sort as $modules) {
foreach ($modules as $Module) {
if ($_GET['module'] == $Module->getInstance()) {
$_GET['offset'] = $true_offset;
$State = $_GET['op'];
} else {
$State = '';
$_GET['offset'] = "";
}
if ($position_number != Engine :: getFlag('mainContent') || $position_number == Engine :: getFlag('mainContent') && (empty ($_GET['module']) && $Module->getInstance() == Engine :: getFlag('homepage') || $_GET['module'] == $Module->getInstance())) {
ModulesManager :: switchModule($Module);
ModulesManager :: launchState($Module, $State);
ModulesManager :: switchModule();
}
}
}
$_GET['offset'] = $true_offset;
}
static function renderState($Module, $State = 'Default', $Params = false) {
try {
if (is_string($Module)) {
$Module = ModulesManager :: loadModule($Module);
}
if (!is_array($Params)) {
$launchParam = Engine :: getFlag('launchParam');
Engine :: setFlag('launchParam', $Params);
}
ModulesManager :: switchModule($Module);
$Returns = ModulesManager :: launchState($Module, $State);
if (!is_array($Params)) {
Engine :: setFlag('launchParam', $launchParam);
}
$Content = $Module->getContent();
//$Content = Engine :: getInstance()->getContent();
if ($Content === false && isset ($Returns) && $Returns !== false) {
$Content = $Returns;
}
ModulesManager :: switchBack();
Engine :: setFlag('printContent', $Content);
} catch (NoModuleException $e) {
return 'no-module-exception: ' . $e->getMessage();
}
return $Content;
}
public static function FlushAJAX($NodeContent = false) {
if (Ajax :: isClientCall()) {
$Content = Engine :: getFlag('printContent');
if ($NodeContent) {
if (!$Content)
$Content = '';
$Content = $NodeContent . $Content;
}
if ($Content) {
try {
$XHTMLParser = new XHTMLParser(String :: cleanXML($Content)->value);
$XHTMLParser->getElementById(Renderer :: getRenderingNode());
$Content = $XHTMLParser->getElementById(Renderer :: getRenderingNode())->innerHTML();
Ajax :: innerHTML(Renderer :: getRenderingNode(), $Content);
} catch (Exception $e) {
echo $Content;
}
} else {
global $ECP;
$Content = $ECP->getContent();
if ($Content) {
Ajax :: innerHTML(Renderer :: getRenderingNode(), $Content);
}
}
Ajax :: ThrowException();
} else
throw new NoAjaxException;
}
public static function renderDefaultState($Module = false, $Params = false) {
return self :: renderState($Module, 'Default', $Params);
}
}
?>
See more files for this project here
EliteCore Project is a PHP5.1/Javascript/AJAX/XHTML/CSS framework for creating WEB 2.0 applications and services.The basic open-source instalation can be also used as an interactive personal page or BLOG.This project uses the latest features available.
Project homepage:
http://sourceforge.net/projects/elitecore
Programming language(s): JavaScript,PHP,XML
License: cpl
default.php