From 6914cdbcb35e48e76417e6ecb96354d81c173ec1 Mon Sep 17 00:00:00 2001 From: Andrey Kutejko Date: Sun, 4 Jan 2015 22:00:32 +0200 Subject: [PATCH] isolate ipf-template library stuff in shortcuts module --- ipf/admin/controllers/base.php | 5 +--- ipf/project_template.php | 45 ------------------------------- ipf/shortcuts.php | 49 ++++++++++++++++++++++++++++++++-- 3 files changed, 48 insertions(+), 51 deletions(-) diff --git a/ipf/admin/controllers/base.php b/ipf/admin/controllers/base.php index 7c4c9d5..e521279 100644 --- a/ipf/admin/controllers/base.php +++ b/ipf/admin/controllers/base.php @@ -13,10 +13,7 @@ abstract class IPF_Admin_Base_Controller extends IPF_Controller protected function render($template, $params) { - $context = IPF_Project_Template::context($params, $this->request); - $tmpl = new IPF_Template_File($template, IPF_Project_Template::getDefaultTemplateEnvironment()); - $html = $tmpl->render(new IPF_Template_Context($context)); - return new IPF_HTTP_Response($html); + return IPF_Shortcuts::RenderToResponse($template, $params, $this->request); } } diff --git a/ipf/project_template.php b/ipf/project_template.php index cbe569c..ca3f0ec 100644 --- a/ipf/project_template.php +++ b/ipf/project_template.php @@ -2,35 +2,6 @@ final class IPF_Project_Template { - private static $defaultEnvironment = null; - - public static function getDefaultTemplateEnvironment() - { - if (!self::$defaultEnvironment) - self::$defaultEnvironment = self::createEnvironment(); - return self::$defaultEnvironment; - } - - private static function createEnvironment() - { - $e = new IPF_Template_Environment_FileSystem; - - $e->cache = IPF::get('tmp'); - $e->debug = IPF::get('debug'); - - $e->folders = self::templateDirs(); - - $e->tags['url'] = 'IPF_Project_Template_Tag_Url'; - $e->tags['params'] = 'IPF_Project_Template_Tag_Params'; - // extra tags - $e->tags = array_merge(IPF::get('template_tags', array()), $e->tags); - - // extra modifiers - $e->modifiers = array_merge(IPF::get('template_modifiers', array()), $e->modifiers); - - return $e; - } - public static function templateDirs() { $dirs = array(); @@ -121,19 +92,3 @@ final class IPF_Project_Template } } -class IPF_Project_Template_Tag_Url extends IPF_Template_Tag -{ - function start() - { - echo IPF_Project_Template::urlTag(func_get_args()); - } -} - -class IPF_Project_Template_Tag_Params extends IPF_Template_Tag -{ - function start() - { - echo IPF_Project_Template::paramsTag(func_get_args()); - } -} - diff --git a/ipf/shortcuts.php b/ipf/shortcuts.php index 8b90bfc..b5449e3 100644 --- a/ipf/shortcuts.php +++ b/ipf/shortcuts.php @@ -4,14 +4,59 @@ final class IPF_Shortcuts { public static function RenderToResponse($tplfile, $params=array(), $request=null) { - return new IPF_HTTP_Response(IPF_Shortcuts::RenderToString($tplfile, $params, $request)); + return new IPF_HTTP_Response(self::RenderToString($tplfile, $params, $request)); } public static function RenderToString($tplfile, $params=array(), $request=null) { $context = IPF_Project_Template::context($params, $request); - $tmpl = new IPF_Template_File($tplfile, IPF_Project_Template::getDefaultTemplateEnvironment()); + $tmpl = new IPF_Template_File($tplfile, self::getDefaultTemplateEnvironment()); return $tmpl->render(new IPF_Template_Context($context)); } + + private static $defaultEnvironment = null; + + public static function getDefaultTemplateEnvironment() + { + if (!self::$defaultEnvironment) + self::$defaultEnvironment = self::createEnvironment(); + return self::$defaultEnvironment; + } + + private static function createEnvironment() + { + $e = new IPF_Template_Environment_FileSystem; + + $e->cache = IPF::get('tmp'); + $e->debug = IPF::get('debug'); + + $e->folders = IPF_Project_Template::templateDirs(); + + $e->tags['url'] = 'IPF_Template_Tag_Url'; + $e->tags['params'] = 'IPF_Template_Tag_Params'; + // extra tags + $e->tags = array_merge(IPF::get('template_tags', array()), $e->tags); + + // extra modifiers + $e->modifiers = array_merge(IPF::get('template_modifiers', array()), $e->modifiers); + + return $e; + } +} + +class IPF_Template_Tag_Url extends IPF_Template_Tag +{ + function start() + { + echo IPF_Project_Template::urlTag(func_get_args()); + } +} + +class IPF_Template_Tag_Params extends IPF_Template_Tag +{ + function start() + { + echo IPF_Project_Template::paramsTag(func_get_args()); + } } -- 2.49.0