static function instance() { if (self::$instance) { return self::$instance; } self::$instance = new lmbMacroFilterDictionary(); return self::$instance; }
protected function _createCompiler() { lmb_require('limb/macro/src/compiler/*.interface.php'); lmb_require('limb/macro/src/compiler/*.class.php'); $tag_dictionary = lmbMacroTagDictionary::instance(); $filter_dictionary = lmbMacroFilterDictionary::instance(); $tag_dictionary->load($this->config); $filter_dictionary->load($this->config); return new lmbMacroCompiler($tag_dictionary, $this->locator, $filter_dictionary); }
{ function getValue() { if (!isset($this->params[0])) { return 'trim(' . $this->base->getValue() . ')'; } else { return 'trim(' . $this->base->getValue() . ', ' . $this->params[0] . ')'; } } } $foo_filter_info = new lmbMacroFilterInfo('uppercase', 'MacroFilterFooTest'); $foo_filter_info->setFile(__FILE__); $zoo_filter_info = new lmbMacroFilterInfo('trim', 'MacroFilterZooTest'); $zoo_filter_info->setFile(__FILE__); lmbMacroFilterDictionary::instance()->register($foo_filter_info); lmbMacroFilterDictionary::instance()->register($zoo_filter_info); class lmbMacroFiltersTest extends lmbBaseMacroTest { function testFilter() { $code = '{$#var|uppercase}'; $tpl = $this->_createMacroTemplate($code, 'tpl.html'); $tpl->set('var', 'hello'); $out = $tpl->render(); $this->assertEqual($out, 'HELLO'); } function testFilterChain() { $code = '{$#var|trim|uppercase}'; $tpl = $this->_createMacroTemplate($code, 'tpl.html'); $tpl->set('var', ' hello ');