diff --git a/lib/classes/module/console/systemTemplateGenerator.class.php b/lib/classes/module/console/systemTemplateGenerator.class.php
index ce012db01f..66d6780608 100644
--- a/lib/classes/module/console/systemTemplateGenerator.class.php
+++ b/lib/classes/module/console/systemTemplateGenerator.class.php
@@ -25,97 +25,101 @@ use Symfony\Component\Console\Command\Command;
class module_console_systemTemplateGenerator extends Command
{
- public function __construct($name = null)
- {
- parent::__construct($name);
+ public function __construct($name = null)
+ {
+ parent::__construct($name);
- $this->setDescription('Generate template files');
+ $this->setDescription('Generate template files');
- return $this;
- }
+ return $this;
+ }
- public function execute(InputInterface $input, OutputInterface $output)
- {
- $tplDir = __DIR__ . '/../../../../templates/';
- $tmpDir = __DIR__ . '/../../../../tmp/cache_twig/';
-
- $loader = new Twig_Loader_Filesystem($tplDir);
+ public function execute(InputInterface $input, OutputInterface $output)
+ {
+ $tplDirs = array(
+ realpath(__DIR__ . '/../../../../templates/web/'),
+ realpath(__DIR__ . '/../../../../templates/mobile/')
+ );
- $twig = new Twig_Environment($loader, array(
- 'cache' => $tmpDir,
+ $n_ok = $n_error = 0;
+
+ foreach ($tplDirs as $tplDir)
+ {
+ $tmpDir = __DIR__ . '/../../../../tmp/cache_twig/';
+
+ $loader = new Twig_Loader_Filesystem($tplDir);
+
+ $twig = new Twig_Environment($loader, array(
+ 'cache' => $tmpDir,
'auto_reload' => true
- ));
- $twig->addExtension(new Twig_Extensions_Extension_I18n());
+ ));
- /**
- * @todo clean all duplicate filters
- */
- $twig->addFilter('serialize', new Twig_Filter_Function('serialize'));
- $twig->addFilter('sbas_names', new Twig_Filter_Function('phrasea::sbas_names'));
- $twig->addFilter('sbas_name', new Twig_Filter_Function('phrasea::sbas_names'));
- $twig->addFilter('unite', new Twig_Filter_Function('p4string::format_octets'));
- $twig->addFilter('stristr', new Twig_Filter_Function('stristr'));
- $twig->addFilter('implode', new Twig_Filter_Function('implode'));
- $twig->addFilter('stripdoublequotes', new Twig_Filter_Function('stripdoublequotes'));
- $twig->addFilter('phraseadate', new Twig_Filter_Function('phraseadate::getPrettyString'));
- $twig->addFilter('format_octets', new Twig_Filter_Function('p4string::format_octets'));
- $twig->addFilter('geoname_display', new Twig_Filter_Function('geonames::name_from_id'));
- $twig->addFilter('get_collection_logo', new Twig_Filter_Function('collection::getLogo'));
- $twig->addFilter('nl2br', new Twig_Filter_Function('nl2br'));
- $twig->addFilter('floor', new Twig_Filter_Function('floor'));
- $twig->addFilter('bas_name', new Twig_Filter_Function('phrasea::bas_names'));
- $twig->addFilter('bas_names', new Twig_Filter_Function('phrasea::bas_names'));
- $twig->addFilter('basnames', new Twig_Filter_Function('phrasea::bas_names'));
- $twig->addFilter('urlencode', new Twig_Filter_Function('urlencode'));
- $twig->addFilter('sbasFromBas', new Twig_Filter_Function('phrasea::sbasFromBas'));
- $twig->addFilter('str_replace', new Twig_Filter_Function('str_replace'));
- $twig->addFilter('strval', new Twig_Filter_Function('strval'));
- $twig->addFilter('key_exists', new Twig_Filter_Function('array_key_exists'));
- $twig->addFilter('array_keys', new Twig_Filter_Function('array_keys'));
- $twig->addFilter('round', new Twig_Filter_Function('round'));
- $twig->addFilter('get_class', new Twig_Filter_Function('get_class'));
- $twig->addFilter('formatdate', new Twig_Filter_Function('phraseadate::getDate'));
- $twig->addFilter('getPrettyDate', new Twig_Filter_Function('phraseadate::getPrettyString'));
- $twig->addFilter('prettyDate', new Twig_Filter_Function('phraseadate::getPrettyString'));
- $twig->addFilter('prettyString', new Twig_Filter_Function('phraseadate::getPrettyString'));
- $twig->addFilter('formatoctet', new Twig_Filter_Function('p4string::format_octet'));
- $twig->addFilter('getDate', new Twig_Filter_Function('phraseadate::getDate'));
- $twig->addFilter('geoname_name_from_id', new Twig_Filter_Function('geonames::name_from_id'));
+ $twig->addExtension(new Twig_Extensions_Extension_I18n());
+
+ /**
+ * @todo clean all duplicate filters
+ */
+ $twig->addFilter('serialize', new Twig_Filter_Function('serialize'));
+ $twig->addFilter('sbas_names', new Twig_Filter_Function('phrasea::sbas_names'));
+ $twig->addFilter('sbas_name', new Twig_Filter_Function('phrasea::sbas_names'));
+ $twig->addFilter('unite', new Twig_Filter_Function('p4string::format_octets'));
+ $twig->addFilter('stristr', new Twig_Filter_Function('stristr'));
+ $twig->addFilter('implode', new Twig_Filter_Function('implode'));
+ $twig->addFilter('stripdoublequotes', new Twig_Filter_Function('stripdoublequotes'));
+ $twig->addFilter('phraseadate', new Twig_Filter_Function('phraseadate::getPrettyString'));
+ $twig->addFilter('format_octets', new Twig_Filter_Function('p4string::format_octets'));
+ $twig->addFilter('geoname_display', new Twig_Filter_Function('geonames::name_from_id'));
+ $twig->addFilter('get_collection_logo', new Twig_Filter_Function('collection::getLogo'));
+ $twig->addFilter('nl2br', new Twig_Filter_Function('nl2br'));
+ $twig->addFilter('floor', new Twig_Filter_Function('floor'));
+ $twig->addFilter('bas_name', new Twig_Filter_Function('phrasea::bas_names'));
+ $twig->addFilter('bas_names', new Twig_Filter_Function('phrasea::bas_names'));
+ $twig->addFilter('basnames', new Twig_Filter_Function('phrasea::bas_names'));
+ $twig->addFilter('urlencode', new Twig_Filter_Function('urlencode'));
+ $twig->addFilter('sbasFromBas', new Twig_Filter_Function('phrasea::sbasFromBas'));
+ $twig->addFilter('str_replace', new Twig_Filter_Function('str_replace'));
+ $twig->addFilter('strval', new Twig_Filter_Function('strval'));
+ $twig->addFilter('key_exists', new Twig_Filter_Function('array_key_exists'));
+ $twig->addFilter('array_keys', new Twig_Filter_Function('array_keys'));
+ $twig->addFilter('round', new Twig_Filter_Function('round'));
+ $twig->addFilter('get_class', new Twig_Filter_Function('get_class'));
+ $twig->addFilter('formatdate', new Twig_Filter_Function('phraseadate::getDate'));
+ $twig->addFilter('getPrettyDate', new Twig_Filter_Function('phraseadate::getPrettyString'));
+ $twig->addFilter('prettyDate', new Twig_Filter_Function('phraseadate::getPrettyString'));
+ $twig->addFilter('prettyString', new Twig_Filter_Function('phraseadate::getPrettyString'));
+ $twig->addFilter('formatoctet', new Twig_Filter_Function('p4string::format_octet'));
+ $twig->addFilter('getDate', new Twig_Filter_Function('phraseadate::getDate'));
+ $twig->addFilter('geoname_name_from_id', new Twig_Filter_Function('geonames::name_from_id'));
- $n_ok = $n_error = 0;
+ $finder = new Symfony\Component\Finder\Finder();
+ foreach ($finder->files()->in(array($tplDir)) as $file)
+ {
+ try
+ {
+ $twig->loadTemplate(str_replace($tplDir, '', $file->getPathname()));
+ $output->writeln('' . $file . '');
+ $n_ok ++;
+ }
+ catch (Exception $e)
+ {
+ $output->writeln('' . $e->getMessage() . '');
+ $n_error ++;
+ }
+ }
+ }
- foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($tplDir), RecursiveIteratorIterator::LEAVES_ONLY) as $file)
- {
- if (strpos($file, '/.svn/') !== false)
- continue;
- if (substr($file->getFilename(), 0, 1) === '.')
- continue;
+ $output->writeln("");
+ $output->write(sprintf('%d templates generated. ', $n_ok));
- try
- {
- $twig->loadTemplate(str_replace($tplDir, '', $file));
- $output->writeln('' . $file . '');
- $n_ok++;
- }
- catch (Exception $e)
- {
- $output->writeln('' . $e->getMessage() . '');
- $n_error++;
- }
+ if ($n_error > 0)
+ {
+ $output->write(sprintf('%d templates failed.', $n_error));
+ }
+
+ $output->writeln("");
+
+ return $n_error;
}
- $output->writeln("");
- $output->write(sprintf('%d templates generated. ', $n_ok));
-
- if ($n_error > 0)
- {
- $output->write(sprintf('%d templates failed.', $n_error));
- }
-
- $output->writeln("");
-
- return $n_error;
- }
-
}