}); $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;
$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; });
$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');
// Поиск продуктов $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) {
<?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();
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();
<?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
}); $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();
//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();