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
The enable or purge operation of an extension could take a long time if an
expensive operation needs to be executed on a large set of data. To allow
this to succeed from a web interface with max_execution_time set in the
webserver's php configuration, subsequent requests must continue the
operation started earlier. So individual enable and purge implementations
must be able to spread their work across multiple steps.
PHPBB3-10323
* 'develop' of git://github.com/phpbb/phpbb3:
[ticket/10392] Alter parent namespace stripping.
[ticket/10392] Test for magic loop variables with nested namespaces.
[ticket/10392] Missed fix for S_BLOCK_NAME.
[ticket/10392] Fix access to nested special block variables.
* develop-olympus:
[ticket/10369] Replace root path with "[ROOT]" as per IRC.
[ticket/10369] Add warning about paths outside of phpBB root not being filtered
[ticket/10369] Rename filter_errfile() to filter_root_path().
[ticket/10369] DRY code to remove phpbb path from errfile.
[ticket/10369] Always include errfile and errline in format_errors().
Most template variables can now have their PHP variable name resolved instead
of only compiling directly. This allows for the use of block vars in INCLUDE
statements. This does not work for language variables since they require
multiple checks. Added tests for the new types of allowed INCLUDEs.
PHPBB3-10322
* develop-olympus:
[ticket/10240] Added optionset to mock_user in the tests.
[ticket/10240] Fixed copyright year in censor_text_test.php.
[ticket/10240] Fixed censor_text test assetEquals param order.
[ticket/10240] Added censor_text tests for special characters.
[ticket/10240] Added censor_text tests.
Conflicts:
tests/mock/cache.php
* callumacrae/ticket/10240:
[ticket/10240] Added optionset to mock_user in the tests.
[ticket/10240] Fixed copyright year in censor_text_test.php.
[ticket/10240] Fixed censor_text test assetEquals param order.
[ticket/10240] Added censor_text tests for special characters.
[ticket/10240] Added censor_text tests.
When template tests are skipped because cache directory is not
writable, include path to the cache directory into the message
saying it is not writable.
PHPBB3-10354
Also made optionset use the value set by optionset. We're not checking
whether the option is set or not, because we would just throw an error
if it wasn't set, and it throws an error anyway.
PHPBB3-10240