type = (null == $type) ? X::$type : $type;
$this->layout = X::$opts['layt'];
$this->content = $content;
$this->template = $template;
$this->assets = "";
$this->load_style();
$this->load_base();
$this->load_scheme();
$this->load_options();
$this->template = ROOT."layout/{$this->layout}/tpl/{$template}.tpl";
switch($this->type){
case Page::IDLE:
case Page::WIRE:
$this->content = ROOT."static/{$content}.htm";
break;
case Page::FUNC:
case Page::NCIS:
case Page::NODE:
$this->content = ROOT."dynamic/{$content}.php";
break;
case Page::NONE:
default:
fail(501);
break;
}
}
public function dump(){
var_dump($this->content);
var_dump($this->template);
exit;
}
private function load_base(){
$this->assets .= $this->css("assets/css/null");
$this->assets .= $this->css("assets/css/nigram");
}
private function load_style(){
if(X::$type != Page::NONE) switch(X::$type){
case Page::FUNC:
case Page::IDLE: $this->assets .= $this->css("layout/{$this->layout}/css/struct/kt/page"); break;
case Page::WIRE:
case Page::NODE: $this->assets .= $this->css("layout/{$this->layout}/css/struct/kt/board"); break;
//$this->assets .= $this->css("layout/{$this->layout}/css/struct/{$this->content}"); break;
case Page::NCIS: $this->assets .= $this->css("layout/{$this->layout}/css/struct/{$this->template}"); break;
default: break;
}
}
private function load_scheme(){
$theme = "layout/{$this->layout}/css/colors/"
.(X::$mobi ? "mobile." : "")
.X::$opts['schm'];
$theme = file_exists(ROOT.$theme.".css") ? $theme : "layout/{$this->layout}/css/colors/default";
$this->assets .= $this->css($theme);
/*
"nyanon":{"tone":"dim gray with strong turquoise","name":"Nyanon"},
"heon":{"tone":"soft green tones with pastel beige and white","name":"Heon"},
"nightfire":{"tone":"forest green with sky blue and wooden brown","name":"Nightfire"},
"twilight":{"tone":"royal purple on dark base with reds and whites","name":"Twilight"},
"shinonome":{"tone":"dark-gray, wheat, white and soft turquoise","name":"Shinonome"},
"arcticice":{"tone":"light-gray with turquoise and marine","name":"Arctic Ice"},
"moonlight":{"tone":"steel sky monotones with yellow","name":"Moonlight"},
"mahoushoujo":{"tone":"soft rose and white","name":"Mahou Shoujo"}
*/
}
private function load_options(){
if(X::$opts['smth']){
$this->assets .= '';
}
}
private function js($url){ return ""; }
private function css($url){
if(file_exists(ROOT.$url.".css")){
return "";
} else if(X::VERBOSE){
debug("Unable to locate asset: {$url}");
}
return null;
}
public function show(){
if(empty($this->content)){
fail(404);
} else {
if(!file_exists($this->template)){
if(X::VERBOSE){
debug("Unable to locate template: {$this->template}");
}
fail(404);
}
require_once $this->template;
}
return false;
}
/**
* Include content safely in the callee domain
*/
public function content(){
if(file_exists($this->content)){
switch($this->type){
case Page::IDLE:
case Page::WIRE:
readfile($this->content);
break;
case Page::FUNC:
case Page::NODE:
case Page::NCIS:
include_once $this->content;
break;
case Page::NONE:
default:
fail(501);
break;
}
} else if(X::VERBOSE) {
debug("Unable to locate content: {$this->content}");
}
}
public function insert($path, $dynamic = false){
if(file_exists($f = $dynamic
? ROOT."dynamic/".$path.".php"
: ROOT."static/".$path.".htm"
)){
include_once $f;
} else if(X::VERBOSE){
debug("Unable to locate inclusion: {$f}");
}
}
public function menu(){
$this->insert("kt/menu", true);
}
public function nodelist(){ $this->insert("node/nodelist", false); }
public function pagelist(){ $this->insert("node/pagelist", false); }
}