From 003220dc7c781df38fde75f0007c3b3e48803162 Mon Sep 17 00:00:00 2001 From: Fyorl Date: Tue, 24 Jul 2012 11:55:38 +0100 Subject: [ticket/10970] Fixed a problem with prepending root paths PHPBB3-10970 --- phpBB/includes/template/template.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'phpBB/includes/template/template.php') diff --git a/phpBB/includes/template/template.php b/phpBB/includes/template/template.php index 8ab3c44be3..861a5e28e7 100644 --- a/phpBB/includes/template/template.php +++ b/phpBB/includes/template/template.php @@ -503,7 +503,11 @@ class phpbb_template // Locate file if ($locate) { - $file = $this->locator->get_first_file_location(array($file), true, true); + $located = $this->locator->get_first_file_location(array($file), false, true); + if ($located) + { + $file = $located; + } } else if ($relative) { -- cgit v1.2.1 From 8528d8ff34986b7ff725a3798e0bc52096728a32 Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev Date: Mon, 11 Jun 2012 23:11:04 -0400 Subject: [ticket/10933] Initialize template context when template is constructed. There is no apparent reason for either initializing or clearing the context in set_style/set_custom_style. Initially the initialization there was added in 0501640d5db158a010741e27803191ab469834c4, for reasons that presently I do not see. This permits making context property back private. PHPBB3-10933 --- phpBB/includes/template/template.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'phpBB/includes/template/template.php') diff --git a/phpBB/includes/template/template.php b/phpBB/includes/template/template.php index b7c3e00dee..7703cfc278 100644 --- a/phpBB/includes/template/template.php +++ b/phpBB/includes/template/template.php @@ -36,7 +36,7 @@ class phpbb_template * Stores template data used during template rendering. * @var phpbb_template_context */ - public $context; + private $context; /** * Path of the cache directory for the template @@ -95,6 +95,7 @@ class phpbb_template $this->user = $user; $this->locator = $locator; $this->template_path = $this->locator->template_path; + $this->context = new phpbb_template_context(); } /** -- cgit v1.2.1 From 0c18f92c0adefd87a7acb618e3fc18eb394b5f42 Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev Date: Mon, 11 Jun 2012 23:15:52 -0400 Subject: [ticket/10933] Typo fixes PHPBB3-10933 --- phpBB/includes/template/template.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'phpBB/includes/template/template.php') diff --git a/phpBB/includes/template/template.php b/phpBB/includes/template/template.php index 7703cfc278..a0fb887310 100644 --- a/phpBB/includes/template/template.php +++ b/phpBB/includes/template/template.php @@ -475,7 +475,7 @@ class phpbb_template */ public function locate($files, $return_default = false, $return_full_path = true) { - // add tempalte path prefix + // add template path prefix $templates = array(); if (is_string($files)) { -- cgit v1.2.1 From 766353fe5c40e4d62c1c28f439dd369acbe4efb6 Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev Date: Mon, 11 Jun 2012 23:33:28 -0400 Subject: [ticket/10933] Useful documentation for template locate function PHPBB3-10933 --- phpBB/includes/template/template.php | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) (limited to 'phpBB/includes/template/template.php') diff --git a/phpBB/includes/template/template.php b/phpBB/includes/template/template.php index a0fb887310..c89e6ec201 100644 --- a/phpBB/includes/template/template.php +++ b/phpBB/includes/template/template.php @@ -458,8 +458,40 @@ class phpbb_template } /** - * Locates source template path, accounting for styles tree and verifying that - * the path exists. + * Obtains filesystem path for a template file. + * + * The simplest use is specifying a single template file as a string + * in the first argument. This template file should be a basename + * of a template file in the selected style, or its parent styles + * if template inheritance is being utilized. + * + * Note: "selected style" is whatever style the style resource locator + * is configured for. + * + * The return value then will be a path, relative to the current + * directory or absolute, to the template file in the selected style + * or its closest parent. + * + * If the selected style does not have the template file being searched, + * (and if inheritance is involved, none of the parents have it either), + * false will be returned. + * + * Specifying true for $return_default will cause the function to + * return the first path which was checked for existence in the event + * that the template file was not found, instead of false. + * This is the path in the selected style itself, not any of its + * parents. + * + * $files can be given an array of templates instead of a single + * template. When given an array, the function will try to resolve + * each template in the array to a path, and will return the first + * path that exists, or false if none exist. + * + * If $return_full_path is false, then instead of returning a usable + * path (when the template is found) only the template's basename + * will be returned. This can be used to check which of the templates + * specified in $files exists, provided different file names are + * used for different templates. * * @param string or array $files List of templates to locate. If there is only * one template, $files can be a string to make code easier to read. -- cgit v1.2.1 From 767d09227bd848da21dc3e255b1dacd20cbad1f7 Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev Date: Fri, 2 Nov 2012 18:51:35 -0400 Subject: [ticket/10933] Dependency inject template context. PHPBB3-10933 --- phpBB/includes/template/template.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'phpBB/includes/template/template.php') diff --git a/phpBB/includes/template/template.php b/phpBB/includes/template/template.php index c89e6ec201..5d3ce4c82b 100644 --- a/phpBB/includes/template/template.php +++ b/phpBB/includes/template/template.php @@ -86,8 +86,9 @@ class phpbb_template * @param string $phpbb_root_path phpBB root path * @param user $user current user * @param phpbb_template_locator $locator template locator + * @param phpbb_template_context $context template context */ - public function __construct($phpbb_root_path, $php_ext, $config, $user, phpbb_template_locator $locator) + public function __construct($phpbb_root_path, $php_ext, $config, $user, phpbb_template_locator $locator, phpbb_template_context $context) { $this->phpbb_root_path = $phpbb_root_path; $this->php_ext = $php_ext; @@ -95,7 +96,7 @@ class phpbb_template $this->user = $user; $this->locator = $locator; $this->template_path = $this->locator->template_path; - $this->context = new phpbb_template_context(); + $this->context = $context; } /** -- cgit v1.2.1 From 615d5ef628767ec127735fb4797171de3f886de2 Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev Date: Mon, 11 Jun 2012 23:43:00 -0400 Subject: [ticket/10933] Add get_first_template_location. This localizes template_path to style resource locator. locate function on template will be removed in a subsequent commit. PHPBB3-10933 --- phpBB/includes/template/template.php | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) (limited to 'phpBB/includes/template/template.php') diff --git a/phpBB/includes/template/template.php b/phpBB/includes/template/template.php index 5d3ce4c82b..9e44c5609b 100644 --- a/phpBB/includes/template/template.php +++ b/phpBB/includes/template/template.php @@ -508,22 +508,8 @@ class phpbb_template */ public function locate($files, $return_default = false, $return_full_path = true) { - // add template path prefix - $templates = array(); - if (is_string($files)) - { - $templates[] = $this->template_path . $files; - } - else - { - foreach ($files as $file) - { - $templates[] = $this->template_path . $file; - } - } - // use resource locator to find files - return $this->locator->get_first_file_location($templates, $return_default, $return_full_path); + return $this->locator->get_first_template_location($files, $return_default, $return_full_path); } /** -- cgit v1.2.1 From 97e53103c3bb873389ea3046a3cd451ab5542ae1 Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev Date: Mon, 11 Jun 2012 23:49:10 -0400 Subject: [ticket/10933] Delete template_path from template class. template_path is now only present in style resource locator. PHPBB3-10933 --- phpBB/includes/template/template.php | 7 ------- 1 file changed, 7 deletions(-) (limited to 'phpBB/includes/template/template.php') diff --git a/phpBB/includes/template/template.php b/phpBB/includes/template/template.php index 9e44c5609b..6a4db1cf41 100644 --- a/phpBB/includes/template/template.php +++ b/phpBB/includes/template/template.php @@ -74,12 +74,6 @@ class phpbb_template */ private $locator; - /** - * Location of templates directory within style directories - * @var string - */ - public $template_path = 'template/'; - /** * Constructor. * @@ -95,7 +89,6 @@ class phpbb_template $this->config = $config; $this->user = $user; $this->locator = $locator; - $this->template_path = $this->locator->template_path; $this->context = $context; } -- cgit v1.2.1 From 0dd981071bd4a39480759db130ea9c6d80c37065 Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev Date: Tue, 12 Jun 2012 00:06:13 -0400 Subject: [ticket/10933] Dispose of locate function in template class. It had no callers other than the test suite. PHPBB3-10933 --- phpBB/includes/template/template.php | 54 ------------------------------------ 1 file changed, 54 deletions(-) (limited to 'phpBB/includes/template/template.php') diff --git a/phpBB/includes/template/template.php b/phpBB/includes/template/template.php index 6a4db1cf41..f79c565e5c 100644 --- a/phpBB/includes/template/template.php +++ b/phpBB/includes/template/template.php @@ -451,60 +451,6 @@ class phpbb_template include($file); } - /** - * Obtains filesystem path for a template file. - * - * The simplest use is specifying a single template file as a string - * in the first argument. This template file should be a basename - * of a template file in the selected style, or its parent styles - * if template inheritance is being utilized. - * - * Note: "selected style" is whatever style the style resource locator - * is configured for. - * - * The return value then will be a path, relative to the current - * directory or absolute, to the template file in the selected style - * or its closest parent. - * - * If the selected style does not have the template file being searched, - * (and if inheritance is involved, none of the parents have it either), - * false will be returned. - * - * Specifying true for $return_default will cause the function to - * return the first path which was checked for existence in the event - * that the template file was not found, instead of false. - * This is the path in the selected style itself, not any of its - * parents. - * - * $files can be given an array of templates instead of a single - * template. When given an array, the function will try to resolve - * each template in the array to a path, and will return the first - * path that exists, or false if none exist. - * - * If $return_full_path is false, then instead of returning a usable - * path (when the template is found) only the template's basename - * will be returned. This can be used to check which of the templates - * specified in $files exists, provided different file names are - * used for different templates. - * - * @param string or array $files List of templates to locate. If there is only - * one template, $files can be a string to make code easier to read. - * @param bool $return_default Determines what to return if template does not - * exist. If true, function will return location where template is - * supposed to be. If false, function will return false. - * @param bool $return_full_path If true, function will return full path - * to template. If false, function will return template file name. - * This parameter can be used to check which one of set of template - * files is available. - * @return string or boolean Source template path if template exists or $return_default is - * true. False if template does not exist and $return_default is false - */ - public function locate($files, $return_default = false, $return_full_path = true) - { - // use resource locator to find files - return $this->locator->get_first_template_location($files, $return_default, $return_full_path); - } - /** * Include JS file * -- cgit v1.2.1 From bd37f7f6c04780819dfa8f81b2d761b91859fd67 Mon Sep 17 00:00:00 2001 From: Nathaniel Guse Date: Sat, 10 Nov 2012 10:45:02 -0600 Subject: [ticket/11189] Replace DEBUG_EXTRA with DEBUG PHPBB3-11189 --- phpBB/includes/template/template.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'phpBB/includes/template/template.php') diff --git a/phpBB/includes/template/template.php b/phpBB/includes/template/template.php index 5d3ce4c82b..367c02aa15 100644 --- a/phpBB/includes/template/template.php +++ b/phpBB/includes/template/template.php @@ -250,7 +250,7 @@ class phpbb_template * If template cache is writable the compiled php code will be stored * on filesystem and template will not be subsequently recompiled. * If template cache is not writable template source will be recompiled - * every time it is needed. DEBUG_EXTRA define and load_tplcompile + * every time it is needed. DEBUG define and load_tplcompile * configuration setting may be used to force templates to be always * recompiled. * @@ -268,7 +268,7 @@ class phpbb_template { $output_file = $this->_compiled_file_for_handle($handle); - $recompile = defined('DEBUG_EXTRA') || + $recompile = defined('DEBUG') || !file_exists($output_file) || @filesize($output_file) === 0; -- cgit v1.2.1