public function findOne($name, $type)
 {
     $page = $this->models->pageModel->findOneByName($name);
     if (!isset($page)) {
         $this->render404();
         return;
     }
     switch ($type) {
         case 'html':
             /** @var Page $page */
             $this->render('/page', ['content' => $page->getContent()]);
             break;
         case 'xml':
             $xml = new \SimpleXMLElement("<xml/>");
             $variables = (array) $page;
             foreach ($variables as $key => $variable) {
                 $key = str_replace("models\\Page", "", $key);
                 $xml->addChild($key, $variable);
             }
             header("Content-Type: application/xml");
             echo $xml->saveXML();
             break;
         case 'json':
             $variables = (array) $page;
             $json = [];
             foreach ($variables as $key => $variable) {
                 $oldKey = $key;
                 $key = str_replace("models\\Page", "", $key);
                 $json[$key] = $variables[$oldKey];
             }
             $json['content'] = View::partial("page", ['content' => $page->getContent()]);
             if (array_key_exists('redirect', $_GET) && $_GET['redirect'] === 'true') {
                 $json['header'] = $this->partial('header', ['user' => $this->user, 'pages' => $this->pages]);
             }
             $this->echo_json_encode($json);
             break;
         default:
             $this->render404();
     }
 }
 protected function partial($viewName, $data = [])
 {
     return View::partial($viewName, $data);
 }