S2OJ/web/app/controllers/subdomain/blog/route.php

53 lines
1.6 KiB
PHP
Raw Normal View History

2016-07-18 16:39:37 +00:00
<?php
2022-11-06 02:26:21 +00:00
call_user_func(function () { // to prevent variable scope leak
Route::pattern('id', '[1-9][0-9]{0,9}');
Route::pattern('blog_username', '[a-zA-Z0-9_\-]{1,20}');
switch (UOJConfig::$data['switch']['blog-domain-mode']) {
case 1:
2022-11-06 02:26:21 +00:00
$domain = '{blog_username}.' . UOJConfig::$data['web']['blog']['host'];
$prefix = '';
break;
case 2:
$domain = UOJConfig::$data['web']['blog']['host'];
$prefix = '/{blog_username}';
break;
case 3:
$domain = UOJConfig::$data['web']['main']['host'];
$prefix = '/blog/{blog_username}';
break;
2016-07-18 16:39:37 +00:00
}
2022-11-06 02:26:21 +00:00
Route::group(
[
'domain' => UOJConfig::$data['web']['blog']['host']
2022-11-06 02:26:21 +00:00
],
function () {
Route::any("/", '/blogs.php');
Route::any("/blogs/{id}", '/blog_show.php');
Route::any("/post/{id}", '/blog_show.php');
}
);
2022-11-06 02:26:21 +00:00
Route::group(
[
'domain' => $domain,
2022-11-06 02:26:21 +00:00
'onload' => function () {
UOJContext::setupBlog();
}
2022-11-06 02:26:21 +00:00
],
function () use ($prefix) {
Route::any("$prefix/", '/subdomain/blog/index.php');
Route::any("$prefix/archive", '/subdomain/blog/archive.php');
Route::any("$prefix/aboutme", '/subdomain/blog/aboutme.php');
2022-09-22 01:41:21 +00:00
Route::any("$prefix/self_reviews", '/subdomain/blog/self_reviews.php');
Route::any("$prefix/click-zan", '/click_zan.php');
Route::any("$prefix/post/{id}", '/subdomain/blog/blog.php');
Route::any("$prefix/slide/{id}", '/subdomain/blog/slide.php');
Route::any("$prefix/post/(?:{id}|new)/write", '/subdomain/blog/blog_write.php');
Route::any("$prefix/slide/(?:{id}|new)/write", '/subdomain/blog/slide_write.php');
Route::any("$prefix/post/{id}/delete", '/subdomain/blog/blog_delete.php');
}
);
});