aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/style/template.php
diff options
context:
space:
mode:
authorVjacheslav Trushkin <arty@phpbb.com>2012-04-01 09:52:55 +0300
committerVjacheslav Trushkin <arty@phpbb.com>2012-04-01 09:52:55 +0300
commitf80512f1066ebfc09d2a4ffac412c56a3fb247de (patch)
treeb6e15ac28a9d5ac5f93f9bd7cfb3951cad44cf29 /phpBB/includes/style/template.php
parent2ce73baeab35adc3515a04c1db38af62c98d5c93 (diff)
downloadforums-f80512f1066ebfc09d2a4ffac412c56a3fb247de.tar
forums-f80512f1066ebfc09d2a4ffac412c56a3fb247de.tar.gz
forums-f80512f1066ebfc09d2a4ffac412c56a3fb247de.tar.bz2
forums-f80512f1066ebfc09d2a4ffac412c56a3fb247de.tar.xz
forums-f80512f1066ebfc09d2a4ffac412c56a3fb247de.zip
[ticket/10733] Adding functions to locate resources
Adding $style->locate() and $template->locate() functions PHPBB3-10733
Diffstat (limited to 'phpBB/includes/style/template.php')
-rw-r--r--phpBB/includes/style/template.php36
1 files changed, 36 insertions, 0 deletions
diff --git a/phpBB/includes/style/template.php b/phpBB/includes/style/template.php
index 21a2e821dd..aebf1da603 100644
--- a/phpBB/includes/style/template.php
+++ b/phpBB/includes/style/template.php
@@ -456,4 +456,40 @@ class phpbb_style_template
}
include($file);
}
+
+ /**
+ * Locates source template path, accounting for styles tree and verifying that
+ * the path exists.
+ *
+ * @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)
+ {
+ // add tempalte 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);
+ }
}