Exemplo n.º 1
0
use Parvula\Core\Page;
use Parvula\Core\Router;
use Parvula\Core\Config;
use Parvula\Core\Parvula;
if (!defined('ROOT')) {
    exit;
}
$apiDefaultPageSerializer = Config::apiDefaultPageSerializer();
$parvula = new Parvula(new $apiDefaultPageSerializer());
//
// Public API
//
// Page object
$router->get('/pages/::name', function ($req) use($parvula) {
    echo $parvula->getPage($req->params->name);
});
// Array<Page> of Pages
$router->get('/pages', function ($req) use($parvula) {
    echo json_encode($parvula->getPages());
});
//
// Admin API
//
if (true === isParvulaAdmin()) {
    // List of pages. Array<string> of pages paths
    $router->get('/pageslist', function ($req) use($parvula) {
        echo json_encode($parvula->listPages());
    });
    // Delete page
    $router->delete('/pages/:name', function ($req) use($parvula) {
Exemplo n.º 2
0
});
// Front - Pages
$router->get('*', function ($req) use($config) {
    $pagename = rtrim($req->path, '/');
    $pagename = urldecode($pagename);
    if ($pagename === '') {
        $pagename = Config::homePage();
    }
    // Check if template exists (must have index.html)
    $baseTemplate = TMPL . Config::get('template');
    if (!is_readable($baseTemplate . '/index.html')) {
        die("Error - Template is not readable");
    }
    Asset::setBasePath(Parvula::getRelativeURIToRoot() . $baseTemplate);
    $parvula = new Parvula();
    $page = $parvula->getPage($pagename);
    // 404
    if (false === $page) {
        header(' ', true, 404);
        // Set header to 404
        $page = $parvula->getPage(Config::errorPage());
        if (false === $page) {
            // Juste print simple 404 if there is no 404 page
            die('404 - Page ' . htmlspecialchars($page) . ' not found');
        }
    }
    try {
        $view = new View(TMPL . Config::get('template'));
        // Assign some variables
        $view->assign(array('baseUrl' => Parvula::getRelativeURIToRoot(), 'templateUrl' => Asset::getBasePath(), 'parvula' => $parvula, 'pages' => function () use($parvula) {
            return $parvula->getPages();