});
$klein->respond(array('GET', 'POST'), $GLOBALS['config']['serverRoot'] . 'api/submissions/[a:id][/]?', function ($request, $response) {
    $responseData = \API\Submissions\Response($request->id);
    $response->code($responseData['code']);
    $response->json($responseData['body']);
});
$klein->respond(array('GET', 'POST'), $GLOBALS['config']['serverRoot'] . 'api/submissions[/]?', function ($request, $response) {
    $responseData = \API\Submissions\Response();
    $response->code($responseData['code']);
    $response->json($responseData['body']);
});
$klein->onHttpError(function ($code, $router) {
    switch ($code) {
        case 400:
            // Leave no message as a json file will be returned
            break;
        case 404:
            $router->response()->body('Unable to find the requested page. Please verify the url.');
            break;
        case 405:
            $router->response()->body('Requested method is not allowed.');
            break;
        case 500:
            // Leave no message as a json file will be returned
            break;
        default:
            $router->response()->body('Something wrong happened and caused a ' . $code . ' error.');
    }
});
$klein->dispatch();
exit;
示例#2
0
$route->onHttpError(function ($code, $router) {
    /*
     * HttpError doesn't have access to
     * vars outside of here.
     */
    $render = new render();
    $config = new config();
    $build = new page();
    $pages = new db("pages");
    $request = $_SERVER['REQUEST_URI'];
    $found = false;
    foreach ($pages->all() as $page) {
        $component = array_keys($page)[0];
        if ($page["endpoint"] != "/") {
            //Add slash to URL
            $page["endpoint"] = "/" . $page["endpoint"];
        }
        if ($page["endpoint"] == $request) {
            $found = $page;
        }
    }
    if ($found) {
        $endpoint = "app/cache/" . $found['page'] . ".html";
        if (file_exists($endpoint)) {
            die(file_get_contents($endpoint));
        }
        $build->render($found);
    } else {
        $render->render("admin.error", ["system" => $config->system]);
    }
    die;
});
示例#3
0
    $klein->respond('GET', $data['url'], function ($req, $resp, $service, $app) use($id, $data) {
        $routeData = $app->routeData;
        $routeData[$id]['active'] = true;
        $errors = $app->prg->getErrors();
        $renderData = ['routes' => $routeData, 'data' => $data, 'formerrors' => $errors, 'formsuccess' => $app->prg->getSuccess(), 'formdata' => count($errors) ? $app->prg->getData() : [], 'moddates' => $app->moddates, 'production' => $app->production, 'data' => $app->data];
        $app->prg->reset();
        return $app->renderer->render($id, $renderData);
    });
}
////////////////
//ERROR PAGES //
////////////////
$klein->onHttpError(function ($code, $router) {
    $app = $router->app();
    if (in_array($code, [404, 403])) {
        $page = $app->renderer->render($code === 404 ? '404' : 'httperror', ['routes' => $app->routeData, 'data' => ['code' => $code], 'moddates' => $app->moddates, 'production' => $app->production]);
        $router->response()->body($page);
    }
});
/////////////////
//CONTACT FORM //
/////////////////
$klein->respond('POST', $routes['contact']['url'], function ($req, $resp, $service, $app) {
    $form = new KleinContactForm($service, $req->params(), ['name' => function ($v) {
        $v->notNull();
    }, 'email2' => function ($v) {
        $v->notNull()->isEmail();
    }, 'message' => function ($v) {
        $v->notNull();
    }]);
    $honeypot = $req->param('email');
示例#4
0
// Поиск продуктов
$router->respond('GET', '/search/?', function () {
    $controller = new Controller_Search();
    return $controller->action_index();
});
// Поиск продуктов (отправка формы)
$router->respond('POST', '/search/?', function () {
    $controller = new Controller_Search();
    // Использовал @, потому что не нашел другого решения
    return $controller->getSearchResults($_POST['name'], @$_POST['price'], @$_POST['producer'], @$_POST['category']);
});
// Ошибки
$router->onHttpError(function ($code) {
    switch ($code) {
        case 404:
            $controller = new Controller_404();
            $controller->action_index();
            break;
    }
});
// Страница 404
$router->respond('404/?', function () {
    $controller = new Controller_404();
    $controller->action_index();
});
// Страница авторизации
$router->respond('GET', '/login/?', function ($request) {
    $controller = new Controler_authorization();
    return $controller->getLogin();
});
// Авторизация
$router->respond('POST', '/login/?', function ($request) {
示例#5
0
<?php

require_once __DIR__ . '/../vendor/autoload.php';
// Templating engine
$loader = new Twig_Loader_Filesystem('../templates/');
$twig = new Twig_Environment($loader);
//Router
$klein = new \Klein\Klein();
$klein->respond('GET', '/', function () {
    global $twig;
    return $twig->render('index.html', array('name' => 'nemanjan00'));
});
$klein->respond('GET', '/app/[*]', function () {
    global $twig;
    return $twig->render('index.html', array('name' => 'nemanjan00'));
});
// Handle errors
$klein->onHttpError(function ($code, $router) {
    switch ($code) {
        case 404:
            $router->response()->body('Y U so lost?!');
            break;
        case 405:
            $router->response()->body('You can\'t do that!');
            break;
        default:
            $router->response()->body('Oh no, a bad error happened that caused a ' . $code);
    }
});
$klein->dispatch();
示例#6
0
    return $twig->render('View.tos.php', ['pageVars' => $pageVars]);
});
$klein->respond('GET', '/page/donate', function () use($twig, $pageVars) {
    $pageVars['stylesheet'] = 'donate.css';
    $pageVars['title'] = 'Donations - Linkadept';
    return $twig->render('View.donate.php', ['pageVars' => $pageVars]);
});
$klein->respond('GET', '/page/stats', function () use($twig, $pageVars) {
    $pageVars['stylesheet'] = 'stats.css';
    $pageVars['title'] = 'Statistics - Linkadept';
    return $twig->render('View.stats.php', ['pageVars' => $pageVars]);
});
$klein->respond('GET', '/page/contact', function () use($twig, $pageVars) {
    $pageVars['stylesheet'] = 'contact.css';
    $pageVars['title'] = 'Contact - Linkadept';
    return $twig->render('View.contact.php', ['pageVars' => $pageVars]);
});
$klein->respond('POST', '/page/contact', function () use($twig, $pageVars) {
    $pageVars['stylesheet'] = 'contact.css';
    $pageVars['title'] = 'Contact - Linkadept';
    $contactObj = new \Linkadept\Contact();
    $contact = $contactObj->sendContact();
    if ($contact['errors']) {
        return $twig->render('View.contact.php', ['pageVars' => $pageVars, 'errors' => $contact['messages']]);
    }
    return $twig->render('View.contact.php', ['pageVars' => $pageVars, 'success' => true]);
});
$klein->onHttpError(function ($code, $router) {
    $router->response()->redirect('/HttpError.php/' . $code, 301);
});
$klein->dispatch();
示例#7
0
<?php

require 'include/all.php';
use Gregwar\Cache\Cache;
use voku\helper\UTF8;
# Klein is used as the router.
$klein = new \Klein\Klein();
# Create a config file parser
$parser = new Parser();
$stringifier = new Stringifier();
// header('X-Frame-Options: DENY');
# Display simple error messages.
# Based on code from the Klein documentation.
$klein->onHttpError(function ($code, $router) use($stringifier) {
    $res = $router->response();
    $message = h()->h1->style('text-align:center;font-size:72px;')->c($res->status()->getCode())->end->h2->style('text-align:center')->c($res->status()->getMessage())->end;
    $stringifier->writeResponse(new PageWrapper($message), $res);
});
# The main list of forms
$klein->respond('GET', '/', function ($req, $res) use($parser, $stringifier) {
    $formlist = new FormList($parser->getFormInfo());
    $stringifier->writeResponse(new PageWrapper($formlist->makeFormList()), $res);
});
# A view
$klein->respond('GET', '/view', function ($req, $res) use($parser, $stringifier) {
    $page = $parser->parseJade($_GET['form']);
    $view = $page->getView($_GET['view']);
    $render = $view->makeView($view->query($req->paramsGet()->get('page', 1)));
    $stringifier->writeResponse(new PageWrapper($render), $res);
});
# A form itself
示例#8
0
文件: index.php 项目: jdhmtl/squeaker
});
$router->get('/user/[i:id]', function ($request, $response, $service, $app) {
    $exists = $app->DB()->userExists($request->id);
    if (!$exists) {
        throw new Klein\Exceptions\HttpException('User not found', 404);
    }
    $squeaks = $app->DB()->getSqueaksForUser($request->param('id'));
    $service->sidebar_data = $app->DB()->getUserSidebar($request->param('id'));
    $service->render($service->views_dir . 'user.php', ['squeaks' => $squeaks]);
});
$router->get('/follow/[i:user]', function ($request, $response, $service, $app) {
    if (!isset($service->current_user)) {
        $response->redirect('/login')->send();
    }
    $app->DB()->followUser($service->current_user, $request->param('user'));
    $service->back();
});
$router->get('/unfollow/[i:user]', function ($request, $response, $service, $app) {
    if (!isset($service->current_user)) {
        $response->redirect('/login')->send();
    }
    $app->DB()->unfollowUser($service->current_user, $request->param('user'));
    $service->back();
});
$router->onHttpError(function ($status, $router, $routes, $params, $exception) {
    throw $exception;
});
$router->onError(function ($router, $message, $type, $exception) {
    throw $exception;
});
$router->dispatch();
示例#9
-1
    //throwUnauth());
} else {
    if (!verifyHash($_GET['hash'])) {
        //throwUnauth());
    }
}
function respond($result)
{
    return json_encode($result);
}
function verifyAuth($response)
{
    if (!Session::isValid($response)) {
        throwUnauth();
    }
}
$klein = new \Klein\Klein();
$requestType = array("POST", "GET");
$klein->respond($requestType, '/', function () {
    sleep(1);
    $result = array("status" => "incorrect", "time" => time());
    return json_encode($result);
});
$klein->onHttpError(function ($code, $router) {
    if ($code >= 400 && $code < 500) {
        $router->response()->body(throwErrorCode($code));
    } elseif ($code >= 500 && $code <= 599) {
        $router->response()->body(throwErrorCode($code));
    }
});
$klein->dispatch();