*/ /** * patTemplate modfifier: Dictionary * * Use dictionary record * * @version 0.3.0 * @package Wombat * @subpackage patTemplate */ class patTemplate_Modifier_Dictionary extends patTemplate_Modifier { /** * dictionary * @var WBDictionary */ private $dict; /** * Modify The Value * * @access public * @param string value * @param array parameter attributes * @return string modified value */ public function modify($value, $params = array()) { $params = array_merge(array( 'data' => '', 'dict' => 'URL', 'tmpl' => '' ), $params); if (empty($value)) { return ''; } // start dictionary $this->dict = WBClass::create('WBDictionary_' . ucfirst($params['dict'])); if (!empty($params['tmpl'])) { return $this->list4Tmpl($value, $params); } try { $this->dict->load($value); } catch (Exception $e) { return ''; } if (empty($params['data'])) { return $this->dict->getWord(); } $data = $this->dict->get(); if (empty($data[$params['data']])) { return ''; } return $data[$params['data']]; } /** * List Using Template * * @param string value * @param array parameter attributes * @return string modified value */ private function list4Tmpl($value, $params) { /** @var patTemplate */ $tmpl = WBClass::create('patTemplate'); $tmpl->readTemplatesFromInput(sprintf('Dictionary/%s/%s.tmpl', ucfirst($params['dict']), $params['tmpl'])); $list = $this->dict->getExtendedList(); $tmpl->addGlobalVar('list_count', count($list)); if ($tmpl->exists('list_entry')) { $tmpl->addRows('list_entry', $list); } return $tmpl->getParsedTemplate('snippet'); } }