Пример #1
0
 *
 * @todo ******************** bump version 0.1.0-beta
 *
 * ------------------------- future enhancements
 *
 * @todo add scrubbing control to now playing page
 * @todo desktop pc layout
 *
 */
use PHPMPDClient\MPD;
// @todo remove this line
// clear the template cache
array_map("unlink", glob(Config::get('app.template-cache-path') . "*.rtpl.php"));
// instantiate the router class
//
$klein = new \Klein\Klein();
// load the artist routes
require_once 'routes/artist.php';
// load the album routes
require_once 'routes/album.php';
// load the genre routes
require_once 'routes/genre.php';
// load the song routes
require_once 'routes/song.php';
// load the playlist routes
require_once 'routes/playlist.php';
// load the "now playing" routes
require_once 'routes/now-playing.php';
$klein->respond('GET', '/show-tables', function () {
    Kint::dump(Database::query("SELECT name FROM sqlite_master WHERE type='table';"));
});
Пример #2
0
<?php

// Подключение библиотек
require_once "vendor-php/autoload.php";
$router = new \Klein\Klein();
// перенаправление по url с помощью виртуального "роутера"
$templater = Templater::getInstance();
// привязка шаблонизатора к этому роутеру
$config = (include_once 'config/config.php');
// подключение файла конфигурации
// Перенаправление на страницы по ссылкам
$router->respond('GET', '/?', function () use($templater, $config) {
    $data = array();
    $data['config'] = $config;
    // импорт настроек из файла конфигурации
    $data['sitename'] = 'Здоровый образ жизни';
    $data['pagename'] = 'Главная страница';
    $data['title'] = $data['pagename'] . ' | ' . $data['sitename'];
    $data['current'] = 'index';
    // название текущей страницы, чтобы переключать классы в пунктах меню
    // Получение данных из БД с помощью библиотеки Idiorm
    // Подключение к БД
    ORM::configure(array('connection_string' => 'mysql:host=' . $config['database']['host'] . ';dbname=' . $config['database']['dbname'], 'username' => $config['database']['user'], 'password' => $config['database']['password']));
    // Сбор значений таблицы
    $newsItems = ORM::for_table('news')->find_many();
    $data['newsitems'] = $newsItems;
    return $templater->display('_pages/index', $data);
});
$router->respond('GET', '/areas/?', function () use($templater, $config) {
    $data = array();
    $data['config'] = $config;
Пример #3
0
<?php

session_start();
require_once __DIR__ . '/vendor/autoload.php';
/**
 * Routes of the apps.
 * Handle all routes of the apps in (app/controllers/routes.php).
 * @var Klein
 */
$route = new Klein\Klein();
require_once 'app/controllers/routes.php';
$route->dispatch();
Пример #4
0
<?php

// load the autoloader
require_once 'vendor/autoload.php';
require_once 'bootstrap.php';
// get the arguments from the command line
$args = $argv;
// remove the first element (which is the script name)
array_shift($args);
// load the list of commands
$commands = Config::get('cli.commands');
// build the request
// here I'm "tricking" the routing system into routing a non-HTTP request
$request = new \Klein\Request(array(), array(), array(), array('REQUEST_URI' => '/' . implode('/', $args)));
// instantiate the Klein router
$klein = new \Klein\Klein();
// now add the commands to the router
foreach ($commands as $value => $method) {
    // set up a responder
    // This responder will handle any URI of the form /$value/x/y/z/.... and
    // will pass any arguments to the specified method.
    $klein->respond('GET', "/{$value}/[*]?", function ($request, $response) use($method) {
        // get the arguments
        $args = array();
        if ($request->uri()) {
            // explode the arguments
            $args = explode('/', $request->uri());
            // remove any empty values
            $args = array_values(array_filter($args));
            // remove the first element (which is the command)
            array_shift($args);
Пример #5
0
<?php

require_once 'vendor/autoload.php';
require_once './inc/Bootstrap.php';
require_once './lib/Model/queries.php';
Bootstrap::start();
// FIXME: apis use PDO in some case which requires a different connection
// object than the one instantiated by Database::obtain.
require_once 'lib/Model/PDOConnection.php';
PDOConnection::connectINIT();
$db = Database::obtain(INIT::$DB_SERVER, INIT::$DB_USER, INIT::$DB_PASS, INIT::$DB_DATABASE);
$db->connect();
Log::$uniqID = uniqid();
$klein = new \Klein\Klein();
// This is unreleased APIs. I'm no longer fond of the [i:id_job] in the path,
// so before releasing change it use a querystring.
//
$klein->respond('GET', '/api/v2/jobs/[i:id_job]/revision-data', function () {
    $reflect = new ReflectionClass('API_V2_JobRevisionData');
    $instance = $reflect->newInstanceArgs(func_get_args());
    $instance->respond('revisionData');
});
$klein->respond('GET', '/api/v2/jobs/[i:id_job]/revision-data/segments', function () {
    $reflect = new ReflectionClass('API_V2_JobRevisionData');
    $instance = $reflect->newInstanceArgs(func_get_args());
    $instance->respond('segments');
});
$klein->respond('GET', '/api/v2/project-completion-status/[i:id_project]', function () {
    $reflect = new ReflectionClass('API_V2_ProjectCompletionStatus');
    $instance = $reflect->newInstanceArgs(func_get_args());
    $instance->respond('status');
Пример #6
0
<?php

$klein = new \Klein\Klein();
$klein->respond('GET', '/', function () {
    return 'Hello World!';
});
$klein->dispatch();
Пример #7
0
<?php

require_once $_SERVER['DOCUMENT_ROOT'] . "/includes.php";
$klein = new \Klein\Klein();
$klein->respond("/?", function ($request, $response, $service) {
    $response->header("X-PJAX-URL", $request->pathname());
    disableCache($response);
    $data = array('pageTitle' => 'OpenCTF Test Page', 'viewName' => "test", "path" => $request->pathname(), "current" => "test");
    if ($request->headers()['X-PJAX']) {
        $service->layout('views/pjax-wrapper.phtml');
    } else {
        $service->layout('views/layout-wrapper.phtml');
    }
    $service->render('views/' . $data['viewName'] . '.phtml', $data);
});
$klein->respond("/login/?", function ($request, $response, $service) {
    $response->header("X-PJAX-URL", $request->pathname());
    disableCache($response);
    $data = array('pageTitle' => 'OpenCTF Test Page', 'viewName' => "login", "path" => $request->pathname(), "current" => "login");
    if ($request->headers()['X-PJAX']) {
        $service->layout('views/pjax-wrapper.phtml');
    } else {
        $service->layout('views/layout-wrapper.phtml');
    }
    $service->render('views/' . $data['viewName'] . '.phtml', $data);
});
$klein->respond("/register/[verify-email|team-pick:extra]?/?", function ($request, $response, $service) {
    $response->header("X-PJAX-URL", $request->pathname());
    disableCache($response);
    if ($request->extra == "team-pick") {
        $teamPick = true;
Пример #8
0
<?php

$router = new \Klein\Klein();
// Главная страница
$router->respond('GET', '/', function () {
    $controller = new Controller_Main();
    return $controller->action_index();
});
// Страница каталога
$router->respond(array('GET', 'POST'), '/products/?', function ($request, $response) {
    $controller = new Controller_Products();
    $messages = ['success_message' => '', 'error_message' => ''];
    $action = $request->action;
    switch ($action) {
        case 'new':
            if (!empty($_POST['title'])) {
                $messages = $controller->addCategory($request->title);
            } else {
                $messages['error_message'] = 'Укажите имя категории';
            }
            break;
        case 'edit':
            if (!empty($_POST['title'])) {
                $messages = $controller->editCategory($request->id, $request->title);
            } else {
                $messages['error_message'] = 'Укажите имя категории';
            }
            break;
        case 'delete':
            $messages = $controller->deleteCategory($request->id);
            break;
Пример #9
0
 /**
  * Старт приложения
  *
  * @return null
  *
  * @version 11.11.2016
  * @author Дмитрий Щербаков <*****@*****.**>
  */
 public function start()
 {
     //
     //                                     ,,
     //                       mm     mm     db
     //                       MM     MM
     //     ,pP"Ybd  .gP"Ya mmMMmm mmMMmm `7MM  `7MMpMMMb.  .P"Ybmmm ,pP"Ybd
     //     8I   `" ,M'   Yb  MM     MM     MM    MM    MM :MI  I8   8I   `"
     //     `YMMMa. 8M""""""  MM     MM     MM    MM    MM  WmmmP"   `YMMMa.
     //     L.   I8 YM.    ,  MM     MM     MM    MM    MM 8M        L.   I8
     //     M9mmmP'  `Mbmmd'  `Mbmo  `Mbmo.JMML..JMML  JMML.YMMMMMb  M9mmmP'
     //                                                    6'     dP
     //                                                    Ybmmmd'
     // Устанавливаем часовой пояс по Гринвичу
     date_default_timezone_set('UTC');
     // Где будут хранится php сессии (в файлах или в БД)
     if (Settings::PHP_SESSION === 'DB') {
         $session = new \Zebra_Session(mysqli_connect(Settings::DB_HOST, Settings::DB_USER, Settings::DB_PASSWORD, Settings::DB_DATABASE, Settings::DB_PORT), 'AVuVqYR6uwgEuhV79tln0tlKk');
     } else {
         session_start();
     }
     // Включим страницу с ошибками, если включен режим DEBUG
     if (Settings::DEBUG === true) {
         $whoops = new \Whoops\Run();
         $whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler());
         $whoops->register();
     }
     // Настраиваем соединение с БД
     \ORM::configure(['connection_string' => 'mysql:host=' . Settings::DB_HOST . ';port=' . Settings::DB_PORT . ';dbname=' . Settings::DB_DATABASE, 'username' => Settings::DB_USER, 'password' => Settings::DB_PASSWORD, 'logging' => Settings::DEBUG, 'driver_options' => [\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION, \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC, \PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8']]);
     // Инициализируем CSRF-токен
     $csrf = new \DimNS\SimpleCSRF();
     $this->csrf_token = $csrf->getToken();
     // Определим корневую папку, если переменная не пустая
     if (Settings::PATH_SHORT_ROOT != '/') {
         $_SERVER['REQUEST_URI'] = substr($_SERVER['REQUEST_URI'], strlen(Settings::PATH_SHORT_ROOT));
     }
     // Инициируем роутер
     $klein = new \Klein\Klein();
     //
     //
     //     `7MM"""Yb. `7MMF'
     //       MM    `Yb. MM
     //       MM     `Mb MM
     //       MM      MM MM
     //       MM     ,MP MM
     //       MM    ,dP' MM
     //     .JMMmmmdP' .JMML.
     //
     //
     // Создаем DI
     $klein->respond(function ($request, $response, $service, $di) use($csrf) {
         // Регистрируем доступ к настройкам
         $di->register('cfg', function () {
             return new \MFLPHP\Configs\Config();
         });
         // Регистрируем доступ к управлению пользователем
         $di->register('auth', function () {
             $dbh = new \PDO('mysql:host=' . Settings::DB_HOST . ';port=' . Settings::DB_PORT . ';dbname=' . Settings::DB_DATABASE, Settings::DB_USER, Settings::DB_PASSWORD, [\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION, \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC, \PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8']);
             return new \PHPAuth\Auth($dbh, new \PHPAuth\Config($dbh, 'phpauth_config'), 'ru_RU');
         });
         // Регистрируем доступ к информации о пользователе
         $di->register('userinfo', function () use($di) {
             if ($di->auth->isLogged()) {
                 $user_id = $di->auth->getSessionUID($di->auth->getSessionHash());
                 $user_info = \ORM::for_table('users')->join('users_info', array('users.id', '=', 'users_info.uid'))->where_equal('id', $user_id)->find_one();
                 if (is_object($user_info)) {
                     return $user_info;
                 }
             }
             return false;
         });
         // Регистрируем доступ к PHPMailer
         $di->register('phpmailer', function () use($di) {
             $phpmailer = new \PHPMailer();
             $phpmailer->setLanguage('ru', $di->cfg->abs_root_path . 'vendor/phpmailer/phpmailer/language/');
             $phpmailer->IsHTML(true);
             $phpmailer->CharSet = 'windows-1251';
             $phpmailer->From = $di->auth->config->site_email;
             $phpmailer->FromName = iconv('utf-8', 'windows-1251', $di->auth->config->site_name);
             if ('1' == $di->auth->config->smtp) {
                 $phpmailer->IsSMTP();
                 $phpmailer->SMTPDebug = 0;
                 $phpmailer->SMTPAuth = true;
                 $phpmailer->SMTPSecure = $di->auth->config->smtp_security;
                 $phpmailer->Host = $di->auth->config->smtp_host;
                 $phpmailer->Port = $di->auth->config->smtp_port;
                 $phpmailer->Username = $di->auth->config->smtp_username;
                 $phpmailer->Password = $di->auth->config->smtp_password;
             }
             return $phpmailer;
         });
         // Регистрируем доступ к отправке почты
         $di->register('mail', function () use($di) {
             return new \MFLPHP\Helpers\EmailSender($di);
         });
         // Регистрируем доступ к логгеру Monolog
         $di->register('log', function () use($di) {
             $log = new \Monolog\Logger('MainLog');
             $log->pushHandler(new \Monolog\Handler\StreamHandler($di->cfg->abs_root_path . 'errors.log', \Monolog\Logger::WARNING));
             return $log;
         });
         // Регистрируем доступ к проверке CSRF-токена
         $di->register('csrf', function () use($csrf) {
             return $csrf;
         });
         $views_path = $_SERVER['DOCUMENT_ROOT'] . Settings::PATH_SHORT_ROOT . 'app/Views/';
         $service->layout($views_path . 'layout-default.php');
         $service->csrf_token = $this->csrf_token;
         $service->path = Settings::PATH_SHORT_ROOT;
         $service->app_root_path = $_SERVER['DOCUMENT_ROOT'] . Settings::PATH_SHORT_ROOT . 'app';
     });
     //
     //
     //                                  mm
     //                                  MM
     //     `7Mb,od8 ,pW"Wq.`7MM  `7MM mmMMmm .gP"Ya  ,pP"Ybd
     //       MM' "'6W'   `Wb MM    MM   MM  ,M'   Yb 8I   `"
     //       MM    8M     M8 MM    MM   MM  8M"""""" `YMMMa.
     //       MM    YA.   ,A9 MM    MM   MM  YM.    , L.   I8
     //     .JMML.   `Ybmd9'  `Mbod"YML. `Mbmo`Mbmmd' M9mmmP'
     //
     //
     require_once $_SERVER['DOCUMENT_ROOT'] . Settings::PATH_SHORT_ROOT . 'app/Routes.php';
     //
     //
     //
     //
     //     `7Mb,od8 `7MM  `7MM  `7MMpMMMb.
     //       MM' "'   MM    MM    MM    MM
     //       MM       MM    MM    MM    MM
     //       MM       MM    MM    MM    MM
     //     .JMML.     `Mbod"YML..JMML  JMML.
     //
     //
     $klein->dispatch();
 }
Пример #10
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();
Пример #11
0
<?php

use Klein\Request;
use Klein\Response;
use Klein\ServiceProvider;
use App\Controllers\MainController;
$app = new \Klein\Klein();
$app->get('/', function () {
    return 'Active directory tool';
});
$app->get('/newUpdate', function (Request $req, Response $resp, ServiceProvider $service, $app) {
    $service->render('../views/views/updateFields.phtml', []);
});
$app->post('/update', function (Request $req, Response $resp, ServiceProvider $service, $app) {
    $params = $req->paramsPost()->all();
    echo $params['adFields'];
    //$service->render('../views/views/updateFields.phtml', []);
});
$app->post('/updReport', function (Request $req, Response $resp, ServiceProvider $service, $app) {
    $mainController = new MainController();
    $service->render('../views/views/updateReport.phtml', ['fromAD' => $mainController->getUpdateReport($req)]);
    /*
    $params = $req->paramsPost()->all();
    echo $params['adFields'];
    echo '<br>';
    echo $params['newVal'];
    echo '<br>';
    echo $params['excludeEmpty'];
    aa();
    */
});
Пример #12
0
<?php

require_once 'vendor/autoload.php';
$klein = new Klein\Klein();
date_default_timezone_set('Europe/Dublin');
$klein->respond(function ($request, $response, $service) {
    $service->layout('layouts/base.php');
});
$klein->respond('/api/popular/destinationProfits', function () {
    $f = new \AriesAir\Finance();
    return $f->getDestinationProfits();
});
$klein->respond('/api/popular/averageTicketPrice', function () {
    $f = new \AriesAir\Finance();
    return $f->getAverageTicketPrice();
});
$klein->respond('/api/popular/averageMonthlyTicketPrice', function () {
    $f = new \AriesAir\Finance();
    return $f->getAverageMonthlyTicketPrice();
});
$klein->respond('/api/popular/averageYearlyTicketCompare', function () {
    $f = new \AriesAir\Finance();
    return $f->getAverageYearlyTicketCompare();
});
$klein->respond('/api/ratings', function () {
    $cs = new \AriesAir\CustomerService();
    return $cs->customerRatings();
});
$klein->respond('/api/aoi', function () {
    $cs = new \AriesAir\CustomerService();
    return $cs->customerSuggestions();
Пример #13
0
define('BASE_DIR', dirname(__FILE__));
define('BASE_URL', 'http://' . $_SERVER['HTTP_HOST'] . str_replace('/index.php', '', $_SERVER['PHP_SELF']));
include_once 'vendor/autoload.php';
if (ENVIRONMENT != 'production') {
    /**
     * ROUTING
     */
    $base = dirname($_SERVER['PHP_SELF']);
    // Update request when we have a subdirectory
    if (ltrim($base, '/')) {
        $base = str_replace(' ', '%20', $base);
        $_SERVER['REQUEST_URI'] = substr($_SERVER['REQUEST_URI'], strlen($base));
    }
}
// Dispatch as always
$klein = new \Klein\Klein();
/**
 * Default controller & method
 */
$klein->respond('/', function () {
    //forward to home/index
    $controller = new Krikke\SlackEvent\Controller\Home();
    $controller->index();
});
/**
 * Fetch custom controller & method
 *
 * http://symfony.com/doc/current/components/routing/introduction.html (dynamische controller)
 */
$klein->respond('/[:controller]/[:method]?/[:action]?/[:value]?/?', function ($request) {
    $class = '\\Krikke\\SlackEvent\\Controller\\' . ucfirst($request->controller);
Пример #14
0
<?php

$pattern = ROOT . DS . 'app' . DS . 'models' . DS . '*.php';
$models = array();
foreach (glob($pattern) as $file) {
    $class = basename($file, '.php');
    if ($class != 'Model') {
        array_push($models, $class);
    }
}
$klein = new \Klein\Klein();
// This is where RESTful routes are mapped by Klein
foreach ($models as $model) {
    $modelName = strtolower($model);
    $mainUrl = '/' . $modelName;
    $resourceUrl = '/' . $modelName . '/' . '[:id]';
    $controllerName = $model . 'Controller';
    $controller = new $controllerName();
    if ($model::$get_all_enabled) {
        $klein->respond('get', $mainUrl, function ($request) use($controller) {
            $controller->getAll();
        });
    }
    if ($model::$get_enabled) {
        $klein->respond('get', $resourceUrl, function ($request) use($controller) {
            $controller->get($request->id);
        });
    }
    if ($model::$create_enabled) {
        $klein->respond('post', $mainUrl, function ($request) use($controller) {
            $postParams = json_decode(file_get_contents('php://input'));
Пример #15
0
<?php

/////////////
//SETTINGS //
/////////////
const CONTACT_EMAIL = '*****@*****.**';
const UPLOAD_DIR = 'uploads/';
const UPLOAD_ALLOWED_EXTENSIONS = 'doc docx pdf xml jpg jpeg png gif txt rtf';
const UPLOAD_MAX_FILESIZE = 25000000;
//////////
//SETUP //
//////////
require_once __DIR__ . '/vendor/autoload.php';
require_once __DIR__ . '/class/loader.php';
require_once __DIR__ . '/data.php';
$klein = new \Klein\Klein();
$klein->app()->renderer = new MustacheTemplateRenderer('templates', 'templates/partials', ['page' => 'templates/partials/pages']);
$routes = $klein->app()->routeData = json_decode(file_get_contents('routes.json'), true);
$klein->app()->prg = new FormPersister();
$klein->app()->mailer = Swift_Mailer::newInstance(Swift_SendmailTransport::newInstance());
$klein->app()->moddates = ['css' => filemtime('css/main.css'), 'js' => filemtime('js/main.js')];
$klein->app()->data = $data;
$klein->app()->production = !!apache_getenv('PRODUCTION');
/////////////////
//BASIC ROUTES //
/////////////////
$klein->respond('GET', '/', function ($req, $resp, $service, $app) {
    $routeData = $app->routeData;
    $routeData['about']['active'] = true;
    return $app->renderer->render('about', ['routes' => $routeData, 'moddates' => $app->moddates, 'production' => $app->production, 'data' => $app->data]);
});
Пример #16
0
<?php

/**
 * Created by Svyatoslav Svitlychnyi.
 * Date: 21.07.2015
 * Time: 11:34
 */
require_once __DIR__ . '/vendor/autoload.php';
require_once __DIR__ . '/models/Records.php';
$klein = new \Klein\Klein();
//$app = new \Models\Records();
// lazy services
$klein->respond(function ($request, $response, $service, $app) {
    $app->register('db', function () {
        try {
            $connection = new PDO("mysql:host=localhost;dbname=kievdevel_zam", 'kievdevel_zam', 'zaq12wsx');
        } catch (PDOException $exception) {
            echo "Connection error: " . $exception->getMessage();
        }
        return $connection;
    });
    // todo: register validators
});
// index
$klein->respond('GET', '/', function ($request, $response, $service, $app) {
    /**@var \PDO $db  PDO Object */
    $db = $app->db;
    $query = "SELECT * FROM notes";
    $stmt = $db->prepare($query);
    $stmt->execute();
    $num = $stmt->rowCount();
Пример #17
0
<?php

require_once __DIR__ . '/vendor/autoload.php';
$router = new \Klein\Klein();
require_once $_SERVER['DOCUMENT_ROOT'] . '/routes/home/home.router.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/routes/account/account.router.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/routes/download/download.router.php';
$router->dispatch();
/* 
 */
Пример #18
0
<?php

use Klein\Request;
use Klein\Response;
use Klein\ServiceProvider;
$klein = new \Klein\Klein();
require_once 'default_controller.php';
$klein->get('/', function (Request $request, Response $response, ServiceProvider $service, $app) {
    $error = '';
    $messages = $service->flashes('error');
    if (isset($messages[0])) {
        $error = $messages[0];
    }
    return $app->view->render('login.html', ['error' => $error]);
});
$klein->get('/auth', function (Request $request, Response $response, $service, $app) {
    return $response->redirect('/');
});
$klein->post('/auth', function (Request $request, Response $response, $service, $app) {
    $access = $app->auth->loginValidator($request);
    if (!$access) {
        $service->flash('Wrong username and/or password.', 'error');
        return $response->redirect('/');
    } else {
        $importedReport = getenv('REPORT_NAME');
        if (file_exists(ROOT . '/storage/' . $importedReport)) {
            $report = $importedReport;
        } else {
            $report = false;
        }
        return $app->view->render($access . '.html', ['report' => $report, 'user' => getenv('USERNAME'), 'admin' => getenv('ADMIN-USERNAME')]);
Пример #19
0
    Debugger::enable(Debugger::DEVELOPMENT, SRC_DIR . '/logs');
} else {
    Debugger::enable(Debugger::DETECT, SRC_DIR . '/logs');
}
Debugger::$strictMode = true;
/*
* MySQL PDO Connection Engine
*/
ORM::configure(array('connection_string' => 'mysql:host=' . Config::config('mysql')->host . ';port=' . Config::config('mysql')->port . ';dbname=' . Config::config('mysql')->database, 'username' => Config::config('mysql')->username, 'password' => Config::config('mysql')->password, 'driver_options' => array(PDO::ATTR_PERSISTENT => true, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC), 'logging' => true, 'logger' => function ($query, $time) {
    DatabaseManager::logQuery($query, $time);
}, 'caching' => true, 'caching_auto_clear' => true));
/*
 * Initalize Global core
 */
$core = new stdClass();
$klein = new \Klein\Klein();
$core->auth = new Authentication();
$core->user = new User();
$core->server = new Server();
$core->email = new Email();
$core->log = new Log();
$core->daemon = new Daemon();
$core->files = new Files();
$core->twig = new Twig_Environment(new Twig_Loader_Filesystem(APP_DIR . 'views/'));
$core->language = new Language();
$core->permissions = new Permissions($core->server->getData('id'));
/*
 * Twig Setup
 */
$core->twig->addGlobal('l', $core->language);
// @TODO Change this to addGlobal('language', $core->language) to allow access as {{ language.render('template') }}
<?php

/**
 * Created by IntelliJ IDEA.
 * User: david
 * Date: 10/9/15
 * Time: 8:31 PM
 */
$klein = new \Klein\Klein();
$klein->respond('GET', '/', function ($request, $response, $service, $app) {
    $service->render("view/main.php");
});
$klein->respond('POST', '/create_from_jsonpost/', function ($request, $response, $service, $app) {
    $c = new Creator();
    $c->createFromJson(file_get_contents('php://input'));
    global $errors;
    $errors = array_merge_recursive($errors, $c->getErrors());
    if (empty($errors)) {
        $c->flush();
    } else {
        return json_encode($errors);
    }
});
$klein->respond('POST', '/create/', function ($request, $response, $service, $app) {
    $c = new Creator();
    $c->createFromJson($_POST["data"]);
    global $errors;
    $errors = array_merge_recursive($errors, $c->getErrors());
    if (empty($errors)) {
        $c->flush();
    } else {
Пример #21
0
session_start();
require 'config.php';
require PATH_ROOT . '/lib/class_page.php';
require PATH_ROOT . '/lib/class_login.php';
require PATH_ROOT . '/lib/class_imetos.php';
require PATH_ROOT . '/lib/class_station.php';
require PATH_ROOT . '/lib/class_sensor.php';
require PATH_ROOT . '/lib/class_config.php';
require PATH_ROOT . '/lib/class_ftp.php';
require PATH_ROOT . '/lib/class_users.php';
require PATH_ROOT . '/lib/class_reports.php';
require PATH_ROOT . '/lib/class_log.php';
//
require PATH_ROOT . '/lib/functions_standard.php';
require_once PATH_ROOT . '/lib/vendor/autoload.php';
$router = new \Klein\Klein();
Page::header();
// API Klein https://github.com/klein/klein.php/wiki/Api
//controllers
/*
$router->with('/users', function () use ($router) {
   $router->respond('GET', '/?', function ($request, $response) {
       // listado de todos los usuarios
       $_POST['action']='listUsers';
   });

   $router->respond('GET', '/[:userid]', function ($request, $response) {
       // Muestra solo un usuario
       $_POST['action']='listUser';
       if(isset($request->userid)) $_POST['userid']=$request->userid;
   });
Пример #22
0
<?php

$route = new \Klein\Klein();
$config = new config();
$backend = $config->system->evany->backend;
define('BACKEND', $backend);
$route->respond(function ($request, $response, $service, $app) {
    $app->register('isUser', function () {
        $render = new render();
        $config = new config();
        if (!isset($_SESSION['user'])) {
            $render->render("admin.notice", ["system" => $config->system]);
            die;
        }
    });
});
//Error
$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"] != "/") {
Пример #23
0
// Enable verbose debug output
ini_set('display_errors', 'On');
error_reporting(E_ALL | E_STRICT);
// Include libraries
require_once __DIR__ . '/config.php';
require_once __DIR__ . '/vendor/autoload.php';
require_once __DIR__ . '/rb.php';
// Update request when app is installed in a subdirectory
$base = dirname($_SERVER['PHP_SELF']);
$trimmedBase = ltrim($base, '/');
// If we're not at the root of the server (Windows and Un*x), alter request
if ($trimmedBase !== '\\' && $trimmedBase !== '') {
    $_SERVER['REQUEST_URI'] = substr($_SERVER['REQUEST_URI'], strlen($base));
}
// Init Klein router
$klein = new Klein\Klein();
// Init Twig template engine
$loader = new Twig_Loader_Filesystem('templates');
$twig = new Twig_Environment($loader);
// Add global URL
$twig->addGlobal('baseURL', BASE_URL);
// Initialise database.
init();
//================================================================================
// Index page.
//================================================================================
$klein->respond('GET', '/', function () use($twig) {
    $blogs = R::findAll('blog', 'ORDER BY id DESC LIMIT 5');
    displayPage('index.twig', array('posts' => $blogs));
});
//================================================================================
Пример #24
0
<?php

require 'vendor/autoload.php';
require 'lib/Httpstatuses/Httpstatuses.php';
$klein = new \Klein\Klein();
$httpstatuses = new \Httpstatuses\httpstatuses();
$klein->respond('GET', '/', function ($request, $response, $service) use($httpstatuses) {
    $class_list = $httpstatuses->statuses();
    $service->render('views/index.php', array("class_list" => $class_list));
});
$klein->respond('GET', '/[i:id]', function ($request, $response, $service) use($httpstatuses) {
    $status_code = $request->param('id');
    $code = $httpstatuses->status($status_code);
    if (!$code) {
        $service->render('views/404.php');
    }
    $service->render('views/status_code.php', $code);
});
$klein->respond('GET', '404', function ($request, $response, $service) {
    $service->render('views/404.php');
});
$klein->dispatch();
<?php

require_once __DIR__ . '/include/php/autoload.php';
require_once __DIR__ . '/api/v1/init.php';
$klein = new \Klein\Klein();
$klein->respond(array('GET', 'POST'), $GLOBALS['config']['serverRoot'], function () {
    return "<h2>Welcome to the Cloud Compiler API</h2><p>Check out the documentation for the API <a href='docs/'>here</a></p>";
});
$klein->respond(array('GET', 'POST'), $GLOBALS['config']['serverRoot'] . 'docs/', function () {
    return file_get_contents(__DIR__ . '/docs/index.html');
});
$klein->respond(array('GET', 'POST'), $GLOBALS['config']['serverRoot'] . 'api/languages[/]?', function ($request, $response) {
    $responseData = \API\Languages\Response();
    $response->code($responseData['code']);
    $response->json($responseData['body']);
});
$klein->respond(array('GET', 'POST'), $GLOBALS['config']['serverRoot'] . 'api/languages/template/[i:id][/]?', function ($request, $response) {
    $responseData = \API\Languages\Template\Response($request->id);
    $response->code($responseData['code']);
    $response->json($responseData['body']);
});
$klein->respond(array('GET', 'POST'), $GLOBALS['config']['serverRoot'] . 'api/languages/sample/[i:id][/]?', function ($request, $response) {
    $responseData = \API\Languages\Sample\Response($request->id);
    $response->code($responseData['code']);
    $response->json($responseData['body']);
});
$klein->respond(array('GET', 'POST'), $GLOBALS['config']['serverRoot'] . 'api/maintain[/]?', function ($request, $response) {
    $responseData = \API\Maintain\Response();
    $response->code($responseData['code']);
    $response->json($responseData['body']);
});
Пример #26
0
<?php

date_default_timezone_set('UTC');
chdir('..');
require_once 'vendor/autoload.php';
require_once 'helpers/mods.php';
require_once 'data/config.php';
$klein = new \Klein\Klein();
/*
 * Attach the layout to the site and generate/check for cached mod list data.
 * TODO: incl. manual settings for no longer supported
 */
$klein->respond(function ($request, $response, $service, $app) use($klein) {
    $klein->onError(function ($klein, $err_msg) {
        $klein->service()->flash($err_msg);
        if ($err_msg === 'robot') {
            //TODO: Log and blacklist spambot IPs
        }
        if ($err_msg === 'submission') {
            $klein->response()->redirect('/submit/incomplete');
        }
        if ($err_msg !== 'api' && $err_msg !== 'submission') {
            $klein->service()->back();
        }
    });
    $modlist_mtime = filemtime('data/modlist.json');
    $modlist_fsize = filesize('data/modlist.json');
    $modlist_cache = "data/cache/{$modlist_mtime}-{$modlist_fsize}.json";
    if (!file_exists($modlist_cache)) {
        //Clear cache folder
        $obsolete = glob('data/cache/*');
Пример #27
0
<?php

/* A note to programmers - for comments don't use // and use only star-slash ones */
require_once __DIR__ . "/load.php";
/* This is not needed if Open is in site's document root, but needed if Open is in a sub folder
---------------------
// Make the request URL relative to the base URL of Lobby installation. http://localhost/open will be changed to "/" and http://open.local to "/"
$lobbyBase = str_replace($_SERVER['DOCUMENT_ROOT'], "", $docRoot);
$_SERVER['REQUEST_URI'] = str_replace($lobbyBase, "", $_SERVER['REQUEST_URI']);
* -------------------
*/
require_once "{$docRoot}/inc/vendor/autoload.php";
$router = new \Klein\Klein();
function makeSource($loc)
{
    global $OP, $docRoot, $LS, $who;
    global $_P, $uname, $uimg;
    // Extra Vars
    $_SERVER['REDIRECT_PAGE'] = "/{$loc}";
    include docRoot . "/source/{$loc}.php";
}
function idPage($file, $request)
{
    if (is_numeric($request->id)) {
        $_GET['id'] = $request->id;
    }
    $GLOBALS['itsMyPage'] = true;
    makeSource("{$file}");
}
/* The default 404 pages */
$router->respond('*', function ($request, $response) use($OP) {
Пример #28
0
<?php

if (!defined('MAIN')) {
    die('No way!');
}
$klein = new \Klein\Klein();
$klein->respond(function ($request, $response, $service) {
    $service->hashTag = getenv('HASHTAG');
    $service->siteName = getenv('SITENAME');
    $service->production = getenv('PRODUCTION');
    $service->siteURL = getenv('SITE_URL');
    $service->templatePath = 'templates/' . getenv('TEMPLATE') . '/';
    $service->layout($service->templatePath . 'layouts/default.php');
});
//Index page
$klein->respond('GET', '/', function ($request, $response, $service) {
    $time = time();
    $items = ORM::for_table('photos')->where_gt('created_time', $time - 86400)->where('banned', 0)->order_by_desc('likes')->limit(10)->find_many();
    $service->items = $items;
    $service->code = 'index';
    $service->render($service->templatePath . 'views/best.php');
});
//Topweek page
$klein->respond('GET', '/topweek', function ($request, $response, $service) {
    $time = time();
    $items = ORM::for_table('photos')->where_gt('created_time', $time - 86400 * 7)->where('banned', 0)->order_by_desc('likes')->limit(10)->find_many();
    $service->code = 'topweek';
    $service->items = $items;
    $service->render($service->templatePath . 'views/best.php');
});
//Best-ever page
Пример #29
0
    $bodyData = json_decode($bodyDataStr, true);
    $_POST = array_merge($_POST, $bodyData);
    if ($method === 'POST') {
        $_POST = array_merge($_POST, $bodyData);
    } elseif ($method === 'GET') {
        $_GET = array_merge($_GET, $bodyData);
    }
}
/*$rememberMeCookie = null;
if (!isset($_COOKIE['rememberme']) && empty($_COOKIE['rememberme'])){
    if (isset($_POST['REMEMBERMECOOKIE']))
        $_COOKIE['rememberme'] = $_POST['REMEMBERMECOOKIE'];
    else if (isset($_GET['REMEMBERMECOOKIE']))
        $_COOKIE['rememberme'] = $_GET['REMEMBERMECOOKIE'];
}*/
require_once __DIR__ . '/../libs/router/autoload.php';
require_once __DIR__ . '/../libs/medoo-db/medoo.min.php';
require_once __DIR__ . '/../libs/medoo-db/db.php';
require_once 'load-user-system.php';
require_once 'load-models.php';
global $klein;
//$klein = new \Klein\Klein();
define('APP_PATH', '/server');
$klein = new \Klein\Klein();
$request = \Klein\Request::createFromGlobals();
// Grab the server-passed "REQUEST_URI"
$uri = $request->server()->get('REQUEST_URI');
// Set the request URI to a modified one (without the "subdirectory") in it
$request->server()->set('REQUEST_URI', substr($uri, strlen(APP_PATH)));
require_once __DIR__ . '/../routes.php';
$klein->dispatch($request);
Пример #30
-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();