var $js_files;
var $css_files;
+ var $template;
+
// ---------------------------------------------------------------------------------
// out vars
//
// templates
//
+ function templates(){
+ if(($out_pathes = $this->out_pathes()) === false) return false;
+ $templates = array();
+ $current_out_path = $this->config("out");
+ foreach($out_pathes as $out_path){
+ $this->set_config(array("out" => $out_path));
+ $templates[$out_path] = $this->_get_template();
+ }
+ $this->set_config(array("out" => $current_out_path));
+ return $templates;
+ }
+
+ function get_template(){
+ if(isset($this->template)) return $this->template;
+ $this->template = $this->_get_template();
+ return $this->template;
+ }
+
+ function _get_template(){
+ $template_class_name = "mw_template";
+ if($this->out_file_exists("template.php")){
+ $template_class_file = $this->out_file("template.php");
+ $template_class_name = "mw_template_".basename(dirname($template_class_file));
+ if(!class_exists($template_class_name)) require_once $template_class_file;
+ if(!class_exists($template_class_name)) $template_class_name = "mw_template";
+ }
+ $template = new $template_class_name(true);
+ $template->set_env($this->root_inst);
+ return $template;
+ }
+
function out_pathes(){
$pathes = array();
if(($plugins = $this->plugins()) !== false){
function out_url($file, $PRIORITE = "DESC"){
$out_file = $this->_out_file($file, $PRIORITE);
- return $out_file ? $this->path("mw_path").$out_file : $file;
+ return $out_file ? $this->path("web").$this->path("mw_path").$out_file : $file;
}
function _out_file($file, $PRIORITE = "DESC"){
function out_config($name){
if(isset($this->out_config)){
$CONFIG = $this->get_CONFIG();
- return isset($CONFIG["out_".$name]) ? $CONFIG["out_".$name] : $this->out_config[$name]["default"];
+ return isset($CONFIG["out_".$name]) ? $CONFIG["out_".$name] : (isset($this->out_config[$name]) ? $this->out_config[$name]["default"] : "");
}
return null;
}
return $this->layout;
}
- function render_layout($layout = null){
- if(!isset($layout)) $layout = $this->init_layout();
- if(($plugins = $this->plugins("ASC")) !== false){
- foreach($plugins as $plugin_name => $plugin){
- if($plugin["installed"] && $plugin["enabled"]){
- $FOUND = false;
- $functions_file = $this->path("mw_dir")."plugins/".$plugin_name."/app/out/".$this->config("out")."/functions.php";
- if(file_exists($functions_file)){
- $FOUND = true;
- require $functions_file;
- }
- if(!$FOUND){
- $functions_file = $this->path("mw_dir")."plugins/".$plugin_name."/app/out/".$this->config("default_out")."/functions.php";
- if($plugin["installed"] && $plugin["enabled"] && file_exists($functions_file)){
- require $functions_file;
- }
- }
- }
- }
- $FOUND = false;
- $functions_file = $this->path("mw_dir")."app/out/".$this->config("out")."/functions.php";
- if(file_exists($functions_file)){
- $FOUND = true;
- require $functions_file;
- }
- if(!$FOUND){
- $functions_file = $this->path("mw_dir")."app/out/".$this->config("default_out")."/functions.php";
- if(file_exists($functions_file)){
- require $functions_file;
- }
- }
- if($layout["page"]){
- if($this->out_file_exists($layout["page"])) require $this->out_file($layout["page"]);
- }
- elseif($layout["content"]){
- if($this->out_file_exists($layout["content"])) require $this->out_file($layout["content"]);
- }
- }
- }
-
function init_layout(){
$this->layout = array();
$this->_init_layout("index");
}
+ class mw_template extends empty_class{
+
+ var $out;
+ var $ENV_SET;
+ var $template_infos;
+
+ function set_env(&$env){
+ $this->modules = array("env" => $env);
+ $this->ENV_SET = true;
+ $this->set_out_config($this->get_out_config());
+ $this->set_template_infos($this->get_template_infos());
+ }
+
+ function render_layout($layout = null){
+ if(!isset($this->ENV_SET) || !$this->ENV_SET) return false;
+ if(!isset($layout)) $layout = $this->init_layout();
+ $this->out = $this->get_out();
+ $this->init();
+ if(
+ ($init_script = $this->init_script())
+ && $this->out_file_exists($init_script)
+ ) require $this->out_file($init_script);
+ $data = $this->data();
+ if($layout["page"]){
+ if($this->out_file_exists($layout["page"])) require $this->out_file($layout["page"]);
+ }
+ elseif($layout["content"]){
+ if($this->out_file_exists($layout["content"])) require $this->out_file($layout["content"]);
+ }
+ }
+
+ function get_template_info($key){
+ return isset($this->template_infos[$key]) ? $this->template_infos[$key] : "";
+ }
+
+ function init(){
+ return true;
+ }
+
+ function init_script(){
+ return false;
+ }
+
+ function get_out_config(){
+ $out_config = array();
+ if($this->ENV_SET){
+ $env = $this->modules["env"];
+ $out_config = $env->get_out_config();
+ }
+ return $out_config;
+ }
+
+ function set_template_infos($template_infos){
+ $this->template_infos = $template_infos;
+ }
+
+ function get_template_infos(){
+ return array();
+ }
+
+ }
+
?>
\ No newline at end of file