/** * Register XSL templates for Silex microframework * * @param \Silex\Application|\SilexXSLTemplate\Application $app */ public function register(Application $app) { $app['xsltemplate'] = $app->share(function () use($app) { $renderer = new Renderer(); if (isset($app['xsltemplate.parameters'])) { $renderer->addParameters($app['xsltemplate.parameters']); } if (isset($app['xsltemplate.templates.path'])) { $renderer->addParameters(array('templates.path' => $app['xsltemplate.templates.path'])); } if (isset($app['xsltemplate.templates.url'])) { $renderer->addParameters(array('templates.url' => $app['xsltemplate.templates.url'])); } if (isset($app['xsltemplate.configure'])) { $app['xsltemplate.configure']($renderer); } return $renderer; }); $app['xsltemplate.writer'] = $app->share(function () use($app) { $writer = new Writer(); $writer->init(); return $writer; }); }
/** * Return xml with instructions for render on browser side * @param $template * @param XML\Writer $xmlWriter * @param array $parameters * @return string */ public function renderBrowser($template, \XSLTemplate\XML\Writer $xmlWriter, array $parameters = array()) { $renderer = new \XSLTemplate\Renderer\Browser(); $this->setCurrentRenderer(Renderer::RENDER_BROWSER); return $renderer->execute($template, $xmlWriter->getDom(), $parameters); }