new \Twig_Filter_Method($this, 'renderListElement', array('is_safe' => array('html'))), 'render_form_element' => new \Twig_Filter_Method($this, 'renderFormElement', array('is_safe' => array('html'))), 'render_filter_element' => new \Twig_Filter_Method($this, 'renderFilterElement', array('is_safe' => array('html'))), ); } public function getTokenParsers() { return array( ); } /** * Returns the name of the extension. * * @return string The extension name */ public function getName() { return 'base_application'; } public function renderListElement($object, $field_description, $params = array()) { $value = null; if(isset($field_description['reflection'])) { $value = $field_description['reflection']->getValue($object); } else if(method_exists($object, $field_description['code'])) { $value = call_user_func(array($object, $field_description['code'])); } return $this->templating->render($field_description['template'], array_merge($params, array( 'object' => $object, 'value' => $value, 'field_description' => $field_description ))); } public function renderFilterElement($filter, $params = array()) { $description = $filter->getDescription(); return $this->templating->render($description['template'], array_merge($params, array( 'filter' => $filter ))); } public function renderFormElement($field_description, $form, $object, $params = array()) { if(!isset($field_description['fieldName'])) { return ''; } $field = $form->get($field_description['fieldName']); if($field->isHidden()) { return ''; } return $this->templating->render($field_description['template'], array_merge($params, array( 'object' => $object, 'field_description' => $field_description, 'field_element' => $form->get($field_description['fieldName']), ))); } public function setTemplating($templating) { $this->templating = $templating; } public function getTemplating() { return $this->templating; } }