diff --git a/libraries/Template.php b/libraries/Template.php index 10c23fc616..a40df3a49d 100644 --- a/libraries/Template.php +++ b/libraries/Template.php @@ -58,8 +58,9 @@ class Template $loader = new Twig_Loader_Filesystem(static::BASE_PATH); $this->twig = new Twig_Environment($loader, array( - 'debug' => false, + 'auto_reload' => true, 'cache' => CACHE_DIR . 'twig', + 'debug' => false, )); $this->twig->addExtension(new I18nExtension()); $this->twig->addExtension(new UrlExtension()); diff --git a/libraries/twig/I18nExtension.php b/libraries/twig/I18nExtension.php index 1b7aeeb14c..cfe4734a7b 100644 --- a/libraries/twig/I18nExtension.php +++ b/libraries/twig/I18nExtension.php @@ -22,7 +22,7 @@ class I18nExtension extends Twig_Extensions_Extension_I18n */ public function getTokenParsers() { - return array(new TokenParserTrans()); + return array(new i18n\TokenParserTrans()); } /** diff --git a/libraries/twig/UrlExtension.php b/libraries/twig/UrlExtension.php index 56b0a5ecb8..35333dce7f 100644 --- a/libraries/twig/UrlExtension.php +++ b/libraries/twig/UrlExtension.php @@ -17,28 +17,36 @@ use Twig_SimpleFunction; */ class UrlExtension extends Twig_Extension { + /** + * {@inheritdoc} + */ public function getFunctions() { return array( new Twig_SimpleFunction( 'URL_getHiddenInputs', - 'PMA\libraries\URL::getHiddenInputs' + 'PMA\libraries\URL::getHiddenInputs', + array('is_safe' => array('html')) ), new Twig_SimpleFunction( 'URL_getHiddenFields', - 'PMA\libraries\URL::getHiddenFields' + 'PMA\libraries\URL::getHiddenFields', + array('is_safe' => array('html')) ), new Twig_SimpleFunction( 'URL_getCommon', - 'PMA\libraries\URL::getCommon' + 'PMA\libraries\URL::getCommon', + array('is_safe' => array('html')) ), new Twig_SimpleFunction( 'URL_getCommonRaw', - 'PMA\libraries\URL::getCommonRaw' + 'PMA\libraries\URL::getCommonRaw', + array('is_safe' => array('html')) ), new Twig_SimpleFunction( 'URL_getArgSeparator', - 'PMA\libraries\URL::getArgSeparator' + 'PMA\libraries\URL::getArgSeparator', + array('is_safe' => array('html')) ), ); } diff --git a/libraries/twig/NodeTrans.php b/libraries/twig/i18n/NodeTrans.php similarity index 96% rename from libraries/twig/NodeTrans.php rename to libraries/twig/i18n/NodeTrans.php index 3569012e45..717989a5b9 100644 --- a/libraries/twig/NodeTrans.php +++ b/libraries/twig/i18n/NodeTrans.php @@ -1,11 +1,11 @@ $tmpDir, + 'auto_reload' => true +)); +$twig->addExtension(new I18nExtension()); +$twig->addExtension(new UrlExtension()); + +// iterate over all templates +foreach (new RecursiveIteratorIterator( + new RecursiveDirectoryIterator($tplDir), + RecursiveIteratorIterator::LEAVES_ONLY +) as $file) { + // force compilation + if ($file->isFile() && $file->getExtension() == 'twig') { + $twig->loadTemplate(str_replace($tplDir.'/', '', $file)); + } +} diff --git a/scripts/update-po b/scripts/update-po index 315a1e58b3..7f64d0ff6d 100755 --- a/scripts/update-po +++ b/scripts/update-po @@ -11,6 +11,9 @@ fi # Exit on failure set -e +# Generate Twig template cache +php ./scripts/generate-twig-cache + # Update pot (template), ensure that advisor is at the end LOCS=`ls po/*.po | sed 's@.*/\(.*\)\.po@\1@'` xgettext \