diff --git a/lib/Alchemy/Phrasea/Core/Service/TemplateEngine/Twig.php b/lib/Alchemy/Phrasea/Core/Service/TemplateEngine/Twig.php index e66c603121..8240331183 100644 --- a/lib/Alchemy/Phrasea/Core/Service/TemplateEngine/Twig.php +++ b/lib/Alchemy/Phrasea/Core/Service/TemplateEngine/Twig.php @@ -105,6 +105,7 @@ class Twig extends ServiceAbstract $this->twig->addExtension(new \Twig_Extensions_Extension_Intl()); // add filters truncate, wordwrap, nl2br $this->twig->addExtension(new \Twig_Extensions_Extension_Text()); + $this->twig->addExtension(new \Alchemy\Phrasea\Twig\JSUniqueID()); } private function loadTests() @@ -119,36 +120,23 @@ class Twig extends ServiceAbstract private function loadFilters() { $this->twig->addFilter('serialize', new \Twig_Filter_Function('serialize')); - $this->twig->addFilter('sbas_names', new \Twig_Filter_Function('phrasea::sbas_names')); - $this->twig->addFilter('sbas_name', new \Twig_Filter_Function('phrasea::sbas_names')); - $this->twig->addFilter('unite', new \Twig_Filter_Function('p4string::format_octets')); $this->twig->addFilter('stristr', new \Twig_Filter_Function('stristr')); $this->twig->addFilter('implode', new \Twig_Filter_Function('implode')); $this->twig->addFilter('get_class', new \Twig_Filter_Function('get_class')); $this->twig->addFilter('stripdoublequotes', new \Twig_Filter_Function('stripdoublequotes')); - $this->twig->addFilter('phraseadate', new \Twig_Filter_Function('phraseadate::getPrettyString')); - $this->twig->addFilter('format_octets', new \Twig_Filter_Function('p4string::format_octets')); $this->twig->addFilter('geoname_display', new \Twig_Filter_Function('geonames::name_from_id')); $this->twig->addFilter('get_collection_logo', new \Twig_Filter_Function('collection::getLogo')); - $this->twig->addFilter('nl2br', new \Twig_Filter_Function('nl2br')); $this->twig->addFilter('floor', new \Twig_Filter_Function('floor')); - $this->twig->addFilter('bas_name', new \Twig_Filter_Function('phrasea::bas_names')); $this->twig->addFilter('bas_names', new \Twig_Filter_Function('phrasea::bas_names')); - $this->twig->addFilter('basnames', new \Twig_Filter_Function('phrasea::bas_names')); + $this->twig->addFilter('sbas_names', new \Twig_Filter_Function('phrasea::sbas_names')); $this->twig->addFilter('urlencode', new \Twig_Filter_Function('urlencode')); $this->twig->addFilter('sbasFromBas', new \Twig_Filter_Function('phrasea::sbasFromBas')); - $this->twig->addFilter('str_replace', new \Twig_Filter_Function('str_replace')); - $this->twig->addFilter('strval', new \Twig_Filter_Function('strval')); $this->twig->addFilter('key_exists', new \Twig_Filter_Function('array_key_exists')); $this->twig->addFilter('array_keys', new \Twig_Filter_Function('array_keys')); $this->twig->addFilter('round', new \Twig_Filter_Function('round')); - $this->twig->addFilter('dump', new \Twig_Filter_Function('var_dump')); - $this->twig->addFilter('formatdate', new \Twig_Filter_Function('phraseadate::getDate')); - $this->twig->addFilter('getPrettyDate', new \Twig_Filter_Function('phraseadate::getPrettyString')); + $this->twig->addFilter('formatDate', new \Twig_Filter_Function('phraseadate::getDate')); $this->twig->addFilter('prettyDate', new \Twig_Filter_Function('phraseadate::getPrettyString')); - $this->twig->addFilter('prettyString', new \Twig_Filter_Function('phraseadate::getPrettyString')); - $this->twig->addFilter('formatoctet', new \Twig_Filter_Function('p4string::format_octets')); - $this->twig->addFilter('getDate', new \Twig_Filter_Function('phraseadate::getDate')); + $this->twig->addFilter('formatOctets', new \Twig_Filter_Function('p4string::format_octets')); $this->twig->addFilter('geoname_name_from_id', new \Twig_Filter_Function('geonames::name_from_id')); } diff --git a/lib/Alchemy/Phrasea/Twig/JSUniqueID.php b/lib/Alchemy/Phrasea/Twig/JSUniqueID.php new file mode 100644 index 0000000000..c3bd107d85 --- /dev/null +++ b/lib/Alchemy/Phrasea/Twig/JSUniqueID.php @@ -0,0 +1,32 @@ + new \Twig_Filter_Method($this, 'JSUniqueID'), + ); + } + + public function JSUniqueID($prefix = null, $suffix = null) + { + return $prefix . 'id' . str_replace(array(',', '.'), '-', microtime(true)) . base_convert(mt_rand(0x19A100, 0x39AA3FF), 10, 36) . $suffix; + } +} \ No newline at end of file diff --git a/lib/classes/module/console/systemTemplateGenerator.class.php b/lib/classes/module/console/systemTemplateGenerator.class.php index ef28bda2b2..561f930dd6 100644 --- a/lib/classes/module/console/systemTemplateGenerator.class.php +++ b/lib/classes/module/console/systemTemplateGenerator.class.php @@ -56,41 +56,27 @@ class module_console_systemTemplateGenerator extends Command )); $twig->addExtension(new Twig_Extensions_Extension_I18n()); + $twig->addExtension(new \Alchemy\Phrasea\Twig\JSUniqueID()); - /** - * @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->addFilter('serialize', new \Twig_Filter_Function('serialize')); + $twig->addFilter('stristr', new \Twig_Filter_Function('stristr')); + $twig->addFilter('implode', new \Twig_Filter_Function('implode')); + $twig->addFilter('get_class', new \Twig_Filter_Function('get_class')); + $twig->addFilter('stripdoublequotes', new \Twig_Filter_Function('stripdoublequotes')); + $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('floor', new \Twig_Filter_Function('floor')); + $twig->addFilter('bas_names', new \Twig_Filter_Function('phrasea::bas_names')); + $twig->addFilter('sbas_names', new \Twig_Filter_Function('phrasea::sbas_names')); + $twig->addFilter('urlencode', new \Twig_Filter_Function('urlencode')); + $twig->addFilter('sbasFromBas', new \Twig_Filter_Function('phrasea::sbasFromBas')); + $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('formatDate', new \Twig_Filter_Function('phraseadate::getDate')); + $twig->addFilter('prettyDate', new \Twig_Filter_Function('phraseadate::getPrettyString')); + $twig->addFilter('formatOctets', new \Twig_Filter_Function('p4string::format_octets')); + $twig->addFilter('geoname_name_from_id', new \Twig_Filter_Function('geonames::name_from_id')); $finder = new Symfony\Component\Finder\Finder(); foreach ($finder->files()->in(array($tplDir))->exclude('Mustache') as $file) { diff --git a/templates/mobile/report/table_content.twig b/templates/mobile/report/table_content.twig index afb85c90b9..d7193fc967 100644 --- a/templates/mobile/report/table_content.twig +++ b/templates/mobile/report/table_content.twig @@ -197,7 +197,7 @@ {% for key, value in dashboard_array.dashboard.top_ten_user.poiddoc %}