remove experimental shit

This commit is contained in:
flash 2016-11-04 18:51:11 +01:00
parent 93e96334a6
commit d7e339bada
15 changed files with 144 additions and 609 deletions

View file

@ -1,73 +0,0 @@
<?php
/**
* Holds the CSRF token handler.
* @package Sakura
*/
namespace Sakura;
/**
* Used to generate and validate CSRF tokens.
* @package Sakura
* @author Julian van de Groep <me@flash.moe>
*/
class CSRF
{
/**
* The prefix to prevent collisions in the $_SESSION variable.
*/
const ID_PREFIX = '_sakura_csrf_';
/**
* The size of the randomly generated string.
*/
const RANDOM_SIZE = 16;
/**
* Create a new CSRF token.
* @param mixed $id
* @return string
*/
public static function create($id)
{
// Generate a token
$token = self::generate();
// Make identifier
$id = strtoupper(self::ID_PREFIX . $id);
// Assign to session
$_SESSION[$id] = $token;
// Return the token
return $token;
}
/**
* Generate a CSRF token.
* @return string
*/
public static function generate()
{
return bin2hex(random_bytes(self::RANDOM_SIZE));
}
/**
* Validate a CSRF token.
* @param string $token
* @param string $id
* @return bool
*/
public static function validate($token, $id)
{
// Set id
$id = strtoupper(self::ID_PREFIX . $id);
// Check if the token exists
if (!array_key_exists($id, $_SESSION)) {
return false;
}
return hash_equals($token, $_SESSION[$id]);
}
}

View file

@ -283,7 +283,7 @@ class AuthController extends Controller
}
// Check if the user is already active
if (!$user->activated) {
if ($user->activated) {
$message = "Your account is already activated! Why are you here?";
return view('global/information', compact('message', 'redirect'));
}
@ -344,7 +344,7 @@ class AuthController extends Controller
$user = User::construct($getUser[0]->user_id);
// Check if a user is activated
if (!$user->activated) {
if ($user->activated) {
$message = "Your account is already activated! Why are you here?";
return view('global/information', compact('message', 'redirect'));
}

View file

@ -16,7 +16,7 @@ use Phroute\Phroute\RouteCollector;
* @package Sakura
* @author Julian van de Groep <me@flash.moe>
*/
class Routerv1
class Router
{
/**
* Container for RouteCollector.

View file

@ -1,92 +0,0 @@
<?php
/**
* Holds the Route Collection object.
* @package Sakura
*/
namespace Sakura\Router;
/**
* A route collection.
* @package Sakura
* @author Julian van de Groep <me@flash.moe>
*/
class Collection
{
/**
* Contains the path list associated with the routes.
* @var array
*/
private $paths = [];
/**
* Contains the names list associated with the routes.
* @var array
*/
private $names = [];
/**
* Add multiple routes.
* @param Route $routes
*/
public function add(Route...$routes)
{
foreach ($routes as $route) {
foreach ($route->methods as $method) {
$this->paths[$method][$route->path] = $route;
}
if ($route->name !== null) {
$this->names[$route->name] = $route;
}
foreach ($route->subroutes as $subroute) {
$subroute->setPath($route->path . '/' . $subroute->path);
if ($subroute->controller === null) {
$subroute->controller($route->controller);
}
$this->add($subroute);
}
$route->subroutes = null;
}
}
/**
* Resolve route by path and method.
* @param Request $request
* @return mixed
*/
public function resolve(Request $request)
{
$path = trim(parse_url($request->path, PHP_URL_PATH), '/');
if (!array_key_exists($request->method, $this->paths)
|| !array_key_exists($path, $this->paths[$request->method])) {
throw new \Exception;
}
return $this->paths[$request->method][$path]->fire();
}
/**
* Generate a route's url by name.
* @param string $name
* @param array $params
* @return string
*/
public function url($name, $params = [])
{
if (!array_key_exists($name, $this->names)) {
throw new \Exception;
}
if (count($params)) {
//
}
return parse_url('/' . $this->names[$name]->path, PHP_URL_PATH);
}
}

View file

@ -1,77 +0,0 @@
<?php
/**
* Holds the request container.
* @package Sakura
*/
namespace Sakura\Router;
/**
* Request container.
* @package Sakura
* @author Julian van de Groep <me@flash.moe>
*/
class Request
{
public $path;
public $method;
public $query;
public $data;
public $body;
public $ip;
public $accept;
public $charset;
public $language;
public $host;
public $referrer;
public $agent;
public $secure;
public $username;
public $password;
public static function fromServer($server, $get, $post)
{
$instance = new static;
$instance->path = $server['REQUEST_URI'];
$instance->method = $server['REQUEST_METHOD'];
$instance->query = $get ?? [];
$instance->data = $post ?? [];
$instance->body = file_get_contents('php://input');
$instance->ip = $server['REMOTE_ADDR'];
$instance->accept = self::parseAcceptHeader($server['HTTP_ACCEPT'] ?? '');
$instance->charset = $server['HTTP_ACCEPT_CHARSET'] ?? 'utf-8';
$instance->language = self::parseAcceptHeader($server['HTTP_ACCEPT_LANGUAGE'] ?? 'en');
$instance->host = $server['HTTP_HOST'];
$instance->referrer = $server['HTTP_REFERER'] ?? null;
$instance->agent = $server['HTTP_USER_AGENT'] ?? '';
$instance->secure = $server['HTTPS'] ?? null === '1';
$instance->username = $server['PHP_AUTH_USER'] ?? null;
$instance->password = $server['PHP_AUTH_PW'] ?? null;
return $instance;
}
private static function parseAcceptHeader($header)
{
$accepted = [];
$header = explode(',', strtolower($header));
foreach ($header as $accepts) {
$quality = 1;
if (strpos($accepts, ';q=')) {
list($accepts, $quality) = explode(';q=', $accepts);
}
// if the quality is 0 its not supported
if ($quality === 0) {
continue;
}
$accepted[$accepts] = $quality;
}
return $accepted;
}
}

View file

@ -1,186 +0,0 @@
<?php
/**
* Holds the Route object.
* @package Sakura
*/
namespace Sakura\Router;
use Sakura\Exceptions\RouterInvalidMethodException;
use Sakura\Exceptions\RouterNonExistentControllerException;
/**
* A route.
* @package Sakura
* @author Julian van de Groep <me@flash.moe>
*/
class Route
{
/**
* Collection of handled HTTP request types.
*/
const METHODS = [
'GET',
'POST',
'PUT',
'PATCH',
'DELETE',
'HEAD',
'OPTIONS',
'ANY',
];
/**
* Method this route is intended for.
* @var array
*/
public $methods = [];
/**
* Path of this route.
* @var string
*/
public $path;
/**
* Controller class for this route.
* @var string
*/
public $controller;
/**
* Controller method for this route.
* @var string|Callable
*/
public $action;
/**
* Name for this route.
* @var string
*/
public $name;
/**
* Subroutes
* @var array
*/
public $subroutes = [];
/**
* Construct an instance and set path.
* @param string $path
* @return $this
*/
public static function path($path)
{
$instance = new static;
$instance->setPath($path);
return $instance;
}
/**
* Set path.
* @param string $path
* @return $this
*/
public function setPath($path)
{
$this->path = trim(parse_url($path, PHP_URL_PATH), '/');
return $this;
}
/**
* Define subroutes.
* @param Route $routes
* @return $this
*/
public function group(Route...$routes)
{
foreach ($routes as $route) {
if ($route->controller === null) {
$route->controller($this->controller);
}
$this->subroutes[] = $route;
}
return $this;
}
/**
* Set accepted methods.
* @param string|array $methods
* @throws RouterInvalidMethodException
* @return $this
*/
public function methods($methods)
{
if (!is_array($methods)) {
$methods = [$methods];
}
foreach ($methods as $method) {
if (!in_array($method, static::METHODS)) {
throw new RouterInvalidMethodException;
}
if (!in_array($method, $this->methods)) {
$this->methods[] = $method;
}
}
return $this;
}
/**
* Set controller class.
* @param string $class
* @return $this
*/
public function controller($class)
{
$this->controller = $class;
return $this;
}
/**
* Set action.
* @param string|Callable $action
* @return $this
*/
public function action($action)
{
$this->action = $action;
return $this;
}
/**
* Set name.
* @param string $name
* @return $this
*/
public function name($name)
{
$this->name = $name;
return $this;
}
/**
* Call the controller.
* @throws RouterNonExistentControllerException
* @return mixed
*/
public function fire($params = [])
{
if (is_callable($this->action)) {
return call_user_func_array($this->action, $params);
}
if (!class_exists($this->controller)
|| !method_exists($this->controller, $this->action)) {
throw new RouterNonExistentControllerException;
}
return (new $this->controller)->{$this->action}(...$params);
}
}

View file

@ -1,36 +0,0 @@
<?php
/**
* Holds the a static referencer to Collection.
* @package Sakura
*/
namespace Sakura\Router;
/**
* Collection except static.
* @package Sakura
* @author Julian van de Groep <me@flash.moe>
*/
class Router
{
/**
* Contains the collection.
* @var Collection
*/
protected static $instance = null;
/**
* Does the referencing.
* @param string $method
* @param array $params
* @return mixed
*/
public static function __callStatic($method, $params)
{
if (static::$instance === null) {
static::$instance = new Collection;
}
return static::$instance->$method(...$params);
}
}

View file

@ -32,4 +32,4 @@ Template::vars([
]);
// Handle requests
echo Routerv1::handle($_SERVER['REQUEST_METHOD'], $_SERVER['REQUEST_URI']);
echo Router::handle($_SERVER['REQUEST_METHOD'], $_SERVER['REQUEST_URI']);

View file

@ -1,8 +1,8 @@
{% set paginationSeparator %}{% if '%3F' in paginationUrl|url_encode %}&amp;{% else %}?{% endif %}{% endset %}
{% set paginationSeparator %}{% if '%3F' in paginationUrl|default('')|url_encode %}&amp;{% else %}?{% endif %}{% endset %}
{% set paginationPage = get.page|default(1) %}
<div class="pagination{% if paginationClass %} {{ paginationClass }}{% endif %}">
{% if paginationPages|length > 1 %}
{% if paginationPages is defined and paginationPages|length > 1 %}
{% if paginationPage > 1 %}
{% if paginationPages|length > 2 %}
<a href="{{ paginationUrl }}{{ paginationSeparator }}page=1" title="Jump to first page"><span class="fa fa-fast-backward"></span></a>

View file

@ -92,7 +92,7 @@
{% block content %}
<div class="content homepage forum viewtopic">
<div class="content-column">
<div class="head">{{ forum.name }} / <span id="topicTitle">{{ topic.title }}</span></div>
<div class="head">{{ forum.name }} / <span id="topicTitle">{{ topic.title|default(null) }}</span></div>
{% include 'forum/elements/forumBtns.twig' %}
<table class="posts">
{% if topic is defined %}
@ -151,8 +151,8 @@
</tr>
{% endfor %}
{% else %}
{% set titleCache = session.replyText['f' ~ forum.id].title %}
{% set textCache = session.replyText['f' ~ forum.id].text %}
{% set titleCache = session.replyText['f' ~ forum.id].title|default('') %}
{% set textCache = session.replyText['f' ~ forum.id].text|default('') %}
{% set postingAction = route('forums.new', forum.id) %}
{% endif %}
{% if forumReplyLink is defined or topic is not defined %}
@ -162,7 +162,7 @@
<img src="{{ route('user.avatar', user.id) }}" alt="{{ user.username }}" class="avatar" style="box-shadow: 0 3px 7px #484;">
<div class="userdata">
<div class="usertitle">{{ user.title }}</div>
<img src="/images/tenshi.png" alt="Tenshi"{% if not user.isPremium %} style="opacity: 0;"{% endif %}> <img src="/images/flags/{{ user.country|lower }}.png" alt="{{ user.country(true) }}">{% if user.id == (topic.posts|first).poster.id %} <img src="/images/op.png" alt="OP" title="Original Poster">{% endif %}
<img src="/images/tenshi.png" alt="Tenshi"{% if not user.isPremium %} style="opacity: 0;"{% endif %}> <img src="/images/flags/{{ user.country|lower }}.png" alt="{{ user.country(true) }}">{% if topic is defined and user.id == (topic.posts|first).poster.id %} <img src="/images/op.png" alt="OP" title="Original Poster">{% endif %}
</div>
</td>
<td class="post-content">

View file

@ -1 +0,0 @@
{% extends 'master.twig' %}

View file

@ -113,21 +113,21 @@
</div>
<div style="text-align: center;">
Day: <select name="birthday_day">
<option value="0"{% if not birthday[2] %} selected="selected"{% endif %}>--</option>
<option value="0"{% if birthday[2] is not defined %} selected="selected"{% endif %}>--</option>
{% for i in 1..31 %}
<option{% if birthday[2] == i %} selected="selected"{% endif %}>{{ i }}</option>
<option{% if birthday[2]|default(-1) == i %} selected="selected"{% endif %}>{{ i }}</option>
{% endfor %}
</select>
Month: <select name="birthday_month">
<option value="0"{% if not birthday[1] %} selected="selected"{% endif %}>--</option>
<option value="0"{% if not birthday[1] is not defined %} selected="selected"{% endif %}>--</option>
{% for i in 1..12 %}
<option value="{{ i }}"{% if birthday[1] == i %} selected="selected"{% endif %}>{{ months[i - 1] }}</option>
<option value="{{ i }}"{% if birthday[1]|default(-1) == i %} selected="selected"{% endif %}>{{ months[i - 1] }}</option>
{% endfor %}
</select>
Year: <select name="birthday_year">
<option value="0"{% if not birthday[0] %} selected="selected"{% endif %}>----</option>
<option value="0"{% if not birthday[0] is not defined %} selected="selected"{% endif %}>----</option>
{% for i in "now"|date('Y')..("now"|date('Y') - 100) %}
<option{% if birthday[0] == i %} selected="selected"{% endif %}>{{ i }}</option>
<option{% if birthday[0]|default(-1) == i %} selected="selected"{% endif %}>{{ i }}</option>
{% endfor %}
</select>
</div>

View file

@ -9,7 +9,7 @@ namespace Sakura;
use Phroute\Phroute\Exception\HttpRouteNotFoundException;
// Maintenance check
Routerv1::filter('maintenance', function () {
Router::filter('maintenance', function () {
if (config('general.maintenance')) {
CurrentSession::stop();
http_response_code(503);
@ -17,30 +17,30 @@ Routerv1::filter('maintenance', function () {
}
});
Routerv1::group(['before' => 'maintenance'], function () {
Router::group(['before' => 'maintenance'], function () {
// Meta pages
Routerv1::get('/', 'MetaController@index', 'main.index');
Routerv1::get('/faq', 'MetaController@faq', 'main.faq');
Routerv1::get('/search', 'MetaController@search', 'main.search');
Router::get('/', 'MetaController@index', 'main.index');
Router::get('/faq', 'MetaController@faq', 'main.faq');
Router::get('/search', 'MetaController@search', 'main.search');
// Auth
Routerv1::get('/login', 'AuthController@login', 'auth.login');
Routerv1::post('/login', 'AuthController@login', 'auth.login');
Routerv1::get('/register', 'AuthController@register', 'auth.register');
Routerv1::post('/register', 'AuthController@register', 'auth.register');
Routerv1::get('/resetpassword', 'AuthController@resetPassword', 'auth.resetpassword');
Routerv1::post('/resetpassword', 'AuthController@resetPassword', 'auth.resetpassword');
Routerv1::get('/reactivate', 'AuthController@reactivate', 'auth.reactivate');
Routerv1::post('/reactivate', 'AuthController@reactivate', 'auth.reactivate');
Routerv1::get('/activate', 'AuthController@activate', 'auth.activate');
Routerv1::get('/logout', 'AuthController@logout', 'auth.logout');
Routerv1::post('/logout', 'AuthController@logout', 'auth.logout');
Router::get('/login', 'AuthController@login', 'auth.login');
Router::post('/login', 'AuthController@login', 'auth.login');
Router::get('/register', 'AuthController@register', 'auth.register');
Router::post('/register', 'AuthController@register', 'auth.register');
Router::get('/resetpassword', 'AuthController@resetPassword', 'auth.resetpassword');
Router::post('/resetpassword', 'AuthController@resetPassword', 'auth.resetpassword');
Router::get('/reactivate', 'AuthController@reactivate', 'auth.reactivate');
Router::post('/reactivate', 'AuthController@reactivate', 'auth.reactivate');
Router::get('/activate', 'AuthController@activate', 'auth.activate');
Router::get('/logout', 'AuthController@logout', 'auth.logout');
Router::post('/logout', 'AuthController@logout', 'auth.logout');
// Link compatibility layer, prolly remove this in like a year
Routerv1::get('/r/{id}', function ($id) {
Router::get('/r/{id}', function ($id) {
redirect("/p/{$id}");
});
Routerv1::get('/p/{id}', function ($id) {
Router::get('/p/{id}', function ($id) {
$resolve = [
'terms' => 'info.terms',
'contact' => 'info.contact',
@ -68,199 +68,199 @@ Routerv1::group(['before' => 'maintenance'], function () {
});
// Info
Routerv1::group(['prefix' => 'info'], function () {
Routerv1::get('/terms', 'InfoController@terms', 'info.terms');
Routerv1::get('/privacy', 'InfoController@privacy', 'info.privacy');
Routerv1::get('/contact', 'InfoController@contact', 'info.contact');
Routerv1::get('/rules', 'InfoController@rules', 'info.rules');
Routerv1::get('/welcome', 'InfoController@welcome', 'info.welcome');
Router::group(['prefix' => 'info'], function () {
Router::get('/terms', 'InfoController@terms', 'info.terms');
Router::get('/privacy', 'InfoController@privacy', 'info.privacy');
Router::get('/contact', 'InfoController@contact', 'info.contact');
Router::get('/rules', 'InfoController@rules', 'info.rules');
Router::get('/welcome', 'InfoController@welcome', 'info.welcome');
});
// Status
Routerv1::group(['prefix' => 'status'], function () {
Routerv1::get('/', 'StatusController@index', 'status.index');
Router::group(['prefix' => 'status'], function () {
Router::get('/', 'StatusController@index', 'status.index');
});
// News
Routerv1::group(['prefix' => 'news'], function () {
Routerv1::get('/{category:c}?', 'NewsController@category', 'news.category');
Routerv1::get('/post/{id:i}', 'NewsController@post', 'news.post');
Router::group(['prefix' => 'news'], function () {
Router::get('/{category:c}?', 'NewsController@category', 'news.category');
Router::get('/post/{id:i}', 'NewsController@post', 'news.post');
});
// Chat
Routerv1::group(['prefix' => 'chat'], function () {
Routerv1::get('/redirect', 'ChatController@redirect', 'chat.redirect');
Routerv1::get('/settings', 'ChatController@settings', 'chat.settings');
Routerv1::get('/auth', 'ChatController@auth', 'chat.auth');
Routerv1::get('/resolve', 'ChatController@resolve', 'chat.resolve');
Routerv1::get('/irc', 'ChatController@irc', 'chat.irc');
Router::group(['prefix' => 'chat'], function () {
Router::get('/redirect', 'ChatController@redirect', 'chat.redirect');
Router::get('/settings', 'ChatController@settings', 'chat.settings');
Router::get('/auth', 'ChatController@auth', 'chat.auth');
Router::get('/resolve', 'ChatController@resolve', 'chat.resolve');
Router::get('/irc', 'ChatController@irc', 'chat.irc');
});
// Authentication for the "old" chat
Routerv1::get('/web/sock-auth.php', 'ChatController@authLegacy');
Router::get('/web/sock-auth.php', 'ChatController@authLegacy');
// Forum
Routerv1::group(['prefix' => 'forum'], function () {
Router::group(['prefix' => 'forum'], function () {
// Post
Routerv1::group(['prefix' => 'post'], function () {
Routerv1::get('/{id:i}', 'Forum.PostController@find', 'forums.post');
Routerv1::delete('/{id:i}', 'Forum.PostController@delete', 'forums.post.delete');
Routerv1::get('/{id:i}/raw', 'Forum.PostController@raw', 'forums.post.raw');
Routerv1::post('/{id:i}/edit', 'Forum.PostController@edit', 'forums.post.edit');
Router::group(['prefix' => 'post'], function () {
Router::get('/{id:i}', 'Forum.PostController@find', 'forums.post');
Router::delete('/{id:i}', 'Forum.PostController@delete', 'forums.post.delete');
Router::get('/{id:i}/raw', 'Forum.PostController@raw', 'forums.post.raw');
Router::post('/{id:i}/edit', 'Forum.PostController@edit', 'forums.post.edit');
});
// Topic
Routerv1::group(['prefix' => 'topic'], function () {
Routerv1::get('/{id:i}', 'Forum.TopicController@view', 'forums.topic');
Routerv1::get('/{id:i}/sticky', 'Forum.TopicController@sticky', 'forums.topic.sticky');
Routerv1::get('/{id:i}/announce', 'Forum.TopicController@announce', 'forums.topic.announce');
Routerv1::get('/{id:i}/lock', 'Forum.TopicController@lock', 'forums.topic.lock');
Routerv1::get('/{id:i}/delete', 'Forum.TopicController@delete', 'forums.topic.delete');
Routerv1::get('/{id:i}/restore', 'Forum.TopicController@restore', 'forums.topic.restore');
Routerv1::get('/{id:i}/move', 'Forum.TopicController@move', 'forums.topic.move');
Routerv1::post('/{id:i}/reply', 'Forum.TopicController@reply', 'forums.topic.reply');
Router::group(['prefix' => 'topic'], function () {
Router::get('/{id:i}', 'Forum.TopicController@view', 'forums.topic');
Router::get('/{id:i}/sticky', 'Forum.TopicController@sticky', 'forums.topic.sticky');
Router::get('/{id:i}/announce', 'Forum.TopicController@announce', 'forums.topic.announce');
Router::get('/{id:i}/lock', 'Forum.TopicController@lock', 'forums.topic.lock');
Router::get('/{id:i}/delete', 'Forum.TopicController@delete', 'forums.topic.delete');
Router::get('/{id:i}/restore', 'Forum.TopicController@restore', 'forums.topic.restore');
Router::get('/{id:i}/move', 'Forum.TopicController@move', 'forums.topic.move');
Router::post('/{id:i}/reply', 'Forum.TopicController@reply', 'forums.topic.reply');
});
// Forum
Routerv1::get('/', 'Forum.ForumController@index', 'forums.index');
Routerv1::get('/{id:i}', 'Forum.ForumController@forum', 'forums.forum');
Routerv1::get('/{id:i}/mark', 'Forum.ForumController@markRead', 'forums.mark');
Routerv1::get('/{id:i}/new', 'Forum.TopicController@create', 'forums.new');
Routerv1::post('/{id:i}/new', 'Forum.TopicController@create', 'forums.new');
Router::get('/', 'Forum.ForumController@index', 'forums.index');
Router::get('/{id:i}', 'Forum.ForumController@forum', 'forums.forum');
Router::get('/{id:i}/mark', 'Forum.ForumController@markRead', 'forums.mark');
Router::get('/{id:i}/new', 'Forum.TopicController@create', 'forums.new');
Router::post('/{id:i}/new', 'Forum.TopicController@create', 'forums.new');
});
// Members
Routerv1::group(['prefix' => 'members'], function () {
Routerv1::get('/', 'UserController@members', 'members.index');
Routerv1::get('/{rank:i}', 'UserController@members', 'members.rank');
Router::group(['prefix' => 'members'], function () {
Router::get('/', 'UserController@members', 'members.index');
Router::get('/{rank:i}', 'UserController@members', 'members.rank');
});
// User
Routerv1::group(['prefix' => 'u'], function () {
Routerv1::get('/{id}', 'UserController@profile', 'user.profile');
Routerv1::get('/{id}/report', 'UserController@report', 'user.report');
Router::group(['prefix' => 'u'], function () {
Router::get('/{id}', 'UserController@profile', 'user.profile');
Router::get('/{id}/report', 'UserController@report', 'user.report');
Routerv1::get('/{id}/nowplaying', 'UserController@nowPlaying', 'user.nowplaying');
Router::get('/{id}/nowplaying', 'UserController@nowPlaying', 'user.nowplaying');
Routerv1::get('/{id}/avatar', 'FileController@avatar', 'user.avatar');
Routerv1::post('/{id}/avatar', 'FileController@avatar', 'user.avatar');
Routerv1::delete('/{id}/avatar', 'FileController@avatar', 'user.avatar');
Router::get('/{id}/avatar', 'FileController@avatar', 'user.avatar');
Router::post('/{id}/avatar', 'FileController@avatar', 'user.avatar');
Router::delete('/{id}/avatar', 'FileController@avatar', 'user.avatar');
Routerv1::get('/{id}/background', 'FileController@background', 'user.background');
Routerv1::post('/{id}/background', 'FileController@background', 'user.background');
Routerv1::delete('/{id}/background', 'FileController@background', 'user.background');
Router::get('/{id}/background', 'FileController@background', 'user.background');
Router::post('/{id}/background', 'FileController@background', 'user.background');
Router::delete('/{id}/background', 'FileController@background', 'user.background');
Routerv1::get('/{id}/header', 'FileController@header', 'user.header');
Routerv1::post('/{id}/header', 'FileController@header', 'user.header');
Routerv1::delete('/{id}/header', 'FileController@header', 'user.header');
Router::get('/{id}/header', 'FileController@header', 'user.header');
Router::post('/{id}/header', 'FileController@header', 'user.header');
Router::delete('/{id}/header', 'FileController@header', 'user.header');
});
// Notifications
Routerv1::group(['prefix' => 'notifications'], function () {
Routerv1::get('/', 'NotificationsController@notifications', 'notifications.get');
Routerv1::get('/{id}/mark', 'NotificationsController@mark', 'notifications.mark');
Router::group(['prefix' => 'notifications'], function () {
Router::get('/', 'NotificationsController@notifications', 'notifications.get');
Router::get('/{id}/mark', 'NotificationsController@mark', 'notifications.mark');
});
// Comments
Routerv1::group(['prefix' => 'comments'], function () {
Routerv1::post('/{category:c}/post/{reply:i}?', 'CommentsController@post', 'comments.category.post');
Routerv1::post('/{id:i}/delete', 'CommentsController@delete', 'comments.comment.delete');
Routerv1::post('/{id:i}/vote', 'CommentsController@vote', 'comments.comment.vote');
Router::group(['prefix' => 'comments'], function () {
Router::post('/{category:c}/post/{reply:i}?', 'CommentsController@post', 'comments.category.post');
Router::post('/{id:i}/delete', 'CommentsController@delete', 'comments.comment.delete');
Router::post('/{id:i}/vote', 'CommentsController@vote', 'comments.comment.vote');
});
// Comments
Routerv1::group(['prefix' => 'friends'], function () {
Routerv1::post('/{id:i}/add', 'FriendsController@add', 'friends.add');
Routerv1::post('/{id:i}/remove', 'FriendsController@remove', 'friends.remove');
Router::group(['prefix' => 'friends'], function () {
Router::post('/{id:i}/add', 'FriendsController@add', 'friends.add');
Router::post('/{id:i}/remove', 'FriendsController@remove', 'friends.remove');
});
// Premium
Routerv1::group(['prefix' => 'support'], function () {
Routerv1::get('/', 'PremiumController@index', 'premium.index');
Routerv1::get('/error', 'PremiumController@error', 'premium.error');
Routerv1::get('/handle', 'PremiumController@handle', 'premium.handle');
Routerv1::get('/complete', 'PremiumController@complete', 'premium.complete');
Routerv1::post('/purchase', 'PremiumController@purchase', 'premium.purchase');
Router::group(['prefix' => 'support'], function () {
Router::get('/', 'PremiumController@index', 'premium.index');
Router::get('/error', 'PremiumController@error', 'premium.error');
Router::get('/handle', 'PremiumController@handle', 'premium.handle');
Router::get('/complete', 'PremiumController@complete', 'premium.complete');
Router::post('/purchase', 'PremiumController@purchase', 'premium.purchase');
});
// Helpers
Routerv1::group(['prefix' => 'helper'], function () {
Router::group(['prefix' => 'helper'], function () {
// BBcode
Routerv1::group(['prefix' => 'bbcode'], function () {
Routerv1::post('/parse', 'HelperController@bbcodeParse', 'helper.bbcode.parse');
Router::group(['prefix' => 'bbcode'], function () {
Router::post('/parse', 'HelperController@bbcodeParse', 'helper.bbcode.parse');
});
});
// Settings
Routerv1::group(['prefix' => 'settings'], function () {
Routerv1::get('/', function () {
Router::group(['prefix' => 'settings'], function () {
Router::get('/', function () {
redirect(route('settings.account.profile'));
}, 'settings.index');
// Account section
Routerv1::group(['prefix' => 'account'], function () {
Routerv1::get('/', function () {
Router::group(['prefix' => 'account'], function () {
Router::get('/', function () {
redirect(route('settings.account.profile'));
});
Routerv1::get('/profile', 'Settings.AccountController@profile', 'settings.account.profile');
Routerv1::post('/profile', 'Settings.AccountController@profile', 'settings.account.profile');
Routerv1::get('/details', 'Settings.AccountController@details', 'settings.account.details');
Routerv1::post('/details', 'Settings.AccountController@details', 'settings.account.details');
Routerv1::get('/ranks', 'Settings.AccountController@ranks', 'settings.account.ranks');
Routerv1::post('/ranks', 'Settings.AccountController@ranks', 'settings.account.ranks');
Routerv1::get('/userpage', 'Settings.AccountController@userpage', 'settings.account.userpage');
Routerv1::post('/userpage', 'Settings.AccountController@userpage', 'settings.account.userpage');
Routerv1::get('/signature', 'Settings.AccountController@signature', 'settings.account.signature');
Routerv1::post('/signature', 'Settings.AccountController@signature', 'settings.account.signature');
Router::get('/profile', 'Settings.AccountController@profile', 'settings.account.profile');
Router::post('/profile', 'Settings.AccountController@profile', 'settings.account.profile');
Router::get('/details', 'Settings.AccountController@details', 'settings.account.details');
Router::post('/details', 'Settings.AccountController@details', 'settings.account.details');
Router::get('/ranks', 'Settings.AccountController@ranks', 'settings.account.ranks');
Router::post('/ranks', 'Settings.AccountController@ranks', 'settings.account.ranks');
Router::get('/userpage', 'Settings.AccountController@userpage', 'settings.account.userpage');
Router::post('/userpage', 'Settings.AccountController@userpage', 'settings.account.userpage');
Router::get('/signature', 'Settings.AccountController@signature', 'settings.account.signature');
Router::post('/signature', 'Settings.AccountController@signature', 'settings.account.signature');
});
// Friends section
Routerv1::group(['prefix' => 'friends'], function () {
Routerv1::get('/', function () {
Router::group(['prefix' => 'friends'], function () {
Router::get('/', function () {
redirect(route('settings.account.listing'));
});
Routerv1::get('/listing', 'Settings.FriendsController@listing', 'settings.friends.listing');
Routerv1::get('/requests', 'Settings.FriendsController@requests', 'settings.friends.requests');
Router::get('/listing', 'Settings.FriendsController@listing', 'settings.friends.listing');
Router::get('/requests', 'Settings.FriendsController@requests', 'settings.friends.requests');
});
// Notifications section
Routerv1::group(['prefix' => 'notifications'], function () {
Routerv1::get('/', function () {
Router::group(['prefix' => 'notifications'], function () {
Router::get('/', function () {
redirect(route('settings.account.history'));
});
Routerv1::get('/history', 'Settings.NotificationsController@history', 'settings.notifications.history');
Router::get('/history', 'Settings.NotificationsController@history', 'settings.notifications.history');
});
// Advanced section
Routerv1::group(['prefix' => 'advanced'], function () {
Routerv1::get('/', function () {
Router::group(['prefix' => 'advanced'], function () {
Router::get('/', function () {
redirect(route('settings.account.sessions'));
});
Routerv1::get('/sessions', 'Settings.AdvancedController@sessions', 'settings.advanced.sessions');
Routerv1::post('/sessions', 'Settings.AdvancedController@sessions', 'settings.advanced.sessions');
Routerv1::get('/deactivate', 'Settings.AdvancedController@deactivate', 'settings.advanced.deactivate');
Routerv1::post('/deactivate', 'Settings.AdvancedController@deactivate', 'settings.advanced.deactivate');
Router::get('/sessions', 'Settings.AdvancedController@sessions', 'settings.advanced.sessions');
Router::post('/sessions', 'Settings.AdvancedController@sessions', 'settings.advanced.sessions');
Router::get('/deactivate', 'Settings.AdvancedController@deactivate', 'settings.advanced.deactivate');
Router::post('/deactivate', 'Settings.AdvancedController@deactivate', 'settings.advanced.deactivate');
});
});
// Settings
Routerv1::group(['prefix' => 'manage'], function () {
Routerv1::get('/', function () {
Router::group(['prefix' => 'manage'], function () {
Router::get('/', function () {
redirect(route('manage.overview.index'));
}, 'manage.index');
// Overview section
Routerv1::group(['prefix' => 'overview'], function () {
Routerv1::get('/', function () {
Router::group(['prefix' => 'overview'], function () {
Router::get('/', function () {
redirect(route('manage.overview.index'));
});
Routerv1::get('/index', 'Manage.OverviewController@index', 'manage.overview.index');
Routerv1::get('/data', 'Manage.OverviewController@data', 'manage.overview.data');
Router::get('/index', 'Manage.OverviewController@index', 'manage.overview.index');
Router::get('/data', 'Manage.OverviewController@data', 'manage.overview.data');
});
});
});

View file

@ -12,5 +12,5 @@ ExceptionHandler::register();
Config::load(path('config/config.ini'));
DB::connect(config('database'));
Routerv1::init();
Router::init();
include_once path('routes.php');

View file

@ -7,7 +7,7 @@ use Sakura\Config;
use Sakura\Exceptions\ConfigValueNotFoundException;
use Sakura\FileSystem;
use Sakura\Net;
use Sakura\Routerv1;
use Sakura\Router;
use Sakura\Template;
// Sort of alias for Config::get
@ -28,10 +28,10 @@ function config($value)
}
}
// Alias for Routerv1::route
// Alias for Router::route
function route($name, $args = null, $full = false)
{
return ($full ? full_domain() : '') . Routerv1::route($name, $args);
return ($full ? full_domain() : '') . Router::route($name, $args);
}
// Getting the full domain (+protocol) of the current host, only works for http