diff options
author | Nils Adermann <naderman@naderman.de> | 2011-08-30 01:32:11 -0400 |
---|---|---|
committer | Nils Adermann <naderman@naderman.de> | 2011-09-29 16:15:53 +0200 |
commit | ea46feb11542a9cf54ce083ee0ad03f4c5e02a1e (patch) | |
tree | 0990527e0c05bd9da495a063350ec199eb2ed227 /tests | |
parent | 6ea6d50ccb9607429486a01d3144c7d32322e1b5 (diff) | |
download | forums-ea46feb11542a9cf54ce083ee0ad03f4c5e02a1e.tar forums-ea46feb11542a9cf54ce083ee0ad03f4c5e02a1e.tar.gz forums-ea46feb11542a9cf54ce083ee0ad03f4c5e02a1e.tar.bz2 forums-ea46feb11542a9cf54ce083ee0ad03f4c5e02a1e.tar.xz forums-ea46feb11542a9cf54ce083ee0ad03f4c5e02a1e.zip |
[feature/extension-manager] Add support for templates in extensions.
This commit adds a template path provider to separate the process of locating
(cached) paths in extensions from the template engine. The locator is supplied
with a list of paths from the path provider.
Admin templates can now be created in ext/<ext>/adm/style/ and regular
templates go into ext/<ext>/styles/<style>/template/. Extension templates
override regular templates. So if an extension supplies a file with a name
used in phpBB, the extension's file will be used.
A side-effect of this commit: Locator and Provider are now able to deal with
arbitrary levels of template inheritance. So we can expose this through
phpbb_template if we choose to, and allow styles to inherit from inherited
styles.
PHPBB3-10323
Diffstat (limited to 'tests')
-rw-r--r-- | tests/template/template_inheritance_test.php | 3 | ||||
-rw-r--r-- | tests/template/template_test.php | 2 | ||||
-rw-r--r-- | tests/template/template_test_case.php | 5 |
3 files changed, 7 insertions, 3 deletions
diff --git a/tests/template/template_inheritance_test.php b/tests/template/template_inheritance_test.php index d62562ff0d..3b75498828 100644 --- a/tests/template/template_inheritance_test.php +++ b/tests/template/template_inheritance_test.php @@ -69,7 +69,8 @@ class phpbb_template_template_inheritance_test extends phpbb_template_template_t $this->template_path = dirname(__FILE__) . '/templates'; $this->parent_template_path = dirname(__FILE__) . '/parent_templates'; $this->template_locator = new phpbb_template_locator(); - $this->template = new phpbb_template($phpbb_root_path, $phpEx, $config, $user, $this->template_locator); + $this->template_provider = new phpbb_template_path_provider(new phpbb_mock_extension_manager(dirname(__FILE__) . '/')); + $this->template = new phpbb_template($phpbb_root_path, $phpEx, $config, $user, $this->template_locator, $this->template_provider); $this->template->set_custom_template($this->template_path, 'tests', $this->parent_template_path); } } diff --git a/tests/template/template_test.php b/tests/template/template_test.php index 86ff2e9ec6..35297b212d 100644 --- a/tests/template/template_test.php +++ b/tests/template/template_test.php @@ -277,7 +277,7 @@ class phpbb_template_template_test extends phpbb_template_template_test_case $this->template->set_filenames(array('test' => $filename)); $this->assertFileNotExists($this->template_path . '/' . $filename, 'Testing missing file, file cannot exist'); - $expecting = sprintf('template locator: File %s does not exist', realpath($this->template_path . '/../') . '/templates/' . $filename); + $expecting = sprintf('template locator: File for handle test does not exist. Could not find: %s', realpath($this->template_path . '/../') . '/templates/' . $filename); $this->setExpectedTriggerError(E_USER_ERROR, $expecting); $this->display('test'); diff --git a/tests/template/template_test_case.php b/tests/template/template_test_case.php index 0e1f960f61..c0944f7f5a 100644 --- a/tests/template/template_test_case.php +++ b/tests/template/template_test_case.php @@ -8,12 +8,14 @@ */ require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; +require_once dirname(__FILE__) . '/../mock/extension_manager.php'; class phpbb_template_template_test_case extends phpbb_test_case { protected $template; protected $template_path; protected $template_locator; + protected $template_provider; // Keep the contents of the cache for debugging? const PRESERVE_CACHE = true; @@ -57,7 +59,8 @@ class phpbb_template_template_test_case extends phpbb_test_case $this->template_path = dirname(__FILE__) . '/templates'; $this->template_locator = new phpbb_template_locator(); - $this->template = new phpbb_template($phpbb_root_path, $phpEx, $config, $user, $this->template_locator); + $this->template_provider = new phpbb_template_path_provider(new phpbb_mock_extension_manager(dirname(__FILE__) . '/')); + $this->template = new phpbb_template($phpbb_root_path, $phpEx, $config, $user, $this->template_locator, $this->template_provider); $this->template->set_custom_template($this->template_path, 'tests'); } |