<?php namespace Todaymade\Daux\Server;

use Todaymade\Daux\SimplePage;
use Todaymade\Daux\Template;

class ErrorPage extends SimplePage
{
    const NORMAL_ERROR_TYPE = 'NORMAL_ERROR';
    const MISSING_PAGE_ERROR_TYPE = 'MISSING_PAGE_ERROR';
    const FATAL_ERROR_TYPE = 'FATAL_ERROR';

    private $params;

    public function __construct($title, $content, $params)
    {
        parent::__construct($title, $content);
        $this->params = $params;
    }

    public function display()
    {
        http_response_code(404);
        parent::display();
    }

    public function getContent()
    {
        if (is_null($this->html)) {
            $this->html = $this->generatePage();
        }

        return $this->html;
    }

    private function generatePage()
    {
        $params = $this->params;
        $page['title'] = $this->title;
        $page['content'] = $this->content;

        $template = new Template($params['templates'], $params['theme']['templates']);
        return $template->render('error', ['page' => $page, 'params' => $params]);
    }
}