private function display_tal(midgardmvc_core_request $request, $content, array $data) { $tal = new PHPTAL($request->get_template_identifier()); $tal->setPhpCodeDestination($this->midgardmvc->cache->template->get_cache_directory()); $tal->uimessages = false; if ($this->midgardmvc->configuration->enable_uimessages) { if ($this->midgardmvc->uimessages->has_messages() && $this->midgardmvc->uimessages->can_view()) { $tal->uimessages = $this->midgardmvc->uimessages->render(); } } $tal->midgardmvc = $this->midgardmvc; $tal->request = $request; // FIXME: Remove this once Qaiku has upgraded $tal->MIDCOM = $this->midgardmvc; foreach ($data as $key => $value) { $tal->{$key} = $value; } $tal->setSource($content); $translator =& $this->midgardmvc->i18n->set_translation_domain($request->get_component()->name); $tal->setTranslator($translator); try { $content = $tal->execute(); } catch (PHPTAL_TemplateException $e) { throw new midgardmvc_exception("PHPTAL: {$e->srcFile} line {$e->srcLine}: " . $e->getMessage()); } return $content; }