/** * Controller to process creation of a new page. * * @param Request $request * @param Application $app * * @return twig template */ public function newPageAction(Request $request, Application $app) { // these variables need to be filtered and sanitised // before insert into db. $pageName = $app['request']->get('pageName'); $pageTemplate = $app['request']->get('pageTemplate'); $page = new Page(); $pageRoute = $page->setPageRoute(strtolower($pageName)); $db = new DbRepository($app['dbh']); $result = $db->createPage($pageName, $page->getPageRoute(), $pageTemplate); $args_array = array('user' => $app['session']->get('user'), 'result' => $result); $templateName = '_dashboard'; return $app['twig']->render($templateName . '.html.twig', $args_array); }
/** * @return mixed|null|string * @throws \Exception */ public function render() { trigger(Sphido::class . '::' . __FUNCTION__, $this->page, $this); // HTTP status code if ($code = isset($this->page->status) ? $this->page->status : null) { http_response_code($code); } // PHTML file execute if ($this->page->is('phtml')) { extract(get_object_vars($this), EXTR_SKIP); ob_start(); require $this->page; return ob_get_clean(); } return latte()->renderToString($this->page, get_object_vars($this)); }