X-Git-Url: http://git.dj3c1t.com/?a=blobdiff_plain;f=mw%2Fenv%2Fmodules%2Fmw_env_out.php;h=998f48993a6e69475b272df47fe96da48747ce94;hb=ed558d720ebf6985290c99297f5b1d2c86d1f60a;hp=859682f0a9ef84bba14190ad798494517d351a7a;hpb=37006f4b48170e3d2ee7ac4d1e7dd47df57734e9;p=mtweb diff --git a/mw/env/modules/mw_env_out.php b/mw/env/modules/mw_env_out.php index 859682f..998f489 100644 --- a/mw/env/modules/mw_env_out.php +++ b/mw/env/modules/mw_env_out.php @@ -9,6 +9,8 @@ var $js_files; var $css_files; + var $template; + // --------------------------------------------------------------------------------- // out vars // @@ -30,6 +32,37 @@ // 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){ @@ -79,7 +112,7 @@ 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"){ @@ -188,7 +221,7 @@ 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; } @@ -201,46 +234,6 @@ 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"); @@ -370,4 +363,66 @@ } + 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