Просмотр файла routes/web.php

Размер файла: 41.22Kb
  1. <?php
  2.  
  3. use Illuminate\Support\Facades\Route;
  4.  
  5. /*
  6. |--------------------------------------------------------------------------
  7. | Web Routes
  8. |--------------------------------------------------------------------------
  9. |
  10. | Here is where you can register web routes for your application. These
  11. | routes are loaded by the RouteServiceProvider within a group which
  12. | contains the "web" middleware group. Now create something great!
  13. |
  14. */
  15.  
  16. /*Route::get('/', function () {
  17. return view('welcome');
  18. });*/
  19. Route::pattern('id', '\d+');
  20. Route::pattern('login', '[\w\-]+');
  21.  
  22. Route::get('/', [\App\Http\Controllers\HomeController::class, 'index']);
  23. Route::get('/closed', [\App\Http\Controllers\HomeController::class, 'closed']);
  24. Route::get('/search', [\App\Http\Controllers\HomeController::class, 'search']);
  25. Route::get('/captcha', [\App\Http\Controllers\HomeController::class, 'captcha']);
  26. Route::get('/language/{lang}', [\App\Http\Controllers\HomeController::class, 'language'])->where('lang', '[a-z]+');
  27. Route::match(['get', 'post'], '/ipban', [\App\Http\Controllers\HomeController::class, 'ipban']);
  28.  
  29. /* Карта сайта */
  30. Route::get('/sitemap.xml', [\App\Http\Controllers\SitemapController::class, 'index']);
  31. Route::get('/sitemap/{page}.xml', [\App\Http\Controllers\SitemapController::class, 'page'])->where('page', '[a-z]+');
  32.  
  33. /* Категории объявления */
  34. Route::group(['prefix' => 'boards'], function () {
  35. Route::get('/{id?}', [\App\Http\Controllers\BoardController::class, 'index']);
  36. Route::get('/active', [\App\Http\Controllers\BoardController::class, 'active']);
  37. });
  38.  
  39. /* Объявления */
  40. Route::group(['prefix' => 'items'], function () {
  41. Route::get('/{id}', [\App\Http\Controllers\BoardController::class, 'view']);
  42. Route::get('/close/{id}', [\App\Http\Controllers\BoardController::class, 'close']);
  43. Route::get('/delete/{id}', [\App\Http\Controllers\BoardController::class, 'delete']);
  44. Route::match(['get', 'post'], '/create', [\App\Http\Controllers\BoardController::class, 'create']);
  45. Route::match(['get', 'post'], '/edit/{id}', [\App\Http\Controllers\BoardController::class, 'edit']);
  46. });
  47.  
  48. /* Гостевая книга */
  49. Route::group(['prefix' => '/guestbook'], function () {
  50. Route::get('', [\App\Http\Controllers\GuestbookController::class, 'index']);
  51. Route::post('/add', [\App\Http\Controllers\GuestbookController::class, 'add']);
  52. Route::match(['get', 'post'], '/edit/{id}', [\App\Http\Controllers\GuestbookController::class, 'edit']);
  53. });
  54.  
  55. /* Категория блогов */
  56. Route::group(['prefix' => 'blogs'], function () {
  57. Route::get('/', [\App\Http\Controllers\ArticleController::class, 'index']);
  58. Route::get('/{id}', [\App\Http\Controllers\ArticleController::class, 'blog']);
  59. Route::get('/tags', [\App\Http\Controllers\ArticleController::class, 'tags']);
  60. Route::get('/tags/{tag}', [\App\Http\Controllers\ArticleController::class, 'searchTag'])->where('tag', '.+');
  61. Route::get('/authors', [\App\Http\Controllers\ArticleController::class, 'authors']);
  62. Route::get('/active/articles', [\App\Http\Controllers\ArticleController::class, 'userArticles']);
  63. Route::get('/active/comments', [\App\Http\Controllers\ArticleController::class, 'userComments']);
  64. Route::get('/top', [\App\Http\Controllers\ArticleController::class, 'top']);
  65. Route::get('/rss', [\App\Http\Controllers\ArticleController::class, 'rss']);
  66. Route::match(['get', 'post'], '/create', [\App\Http\Controllers\ArticleController::class, 'create']);
  67. Route::match(['get', 'post'], '/search', [\App\Http\Controllers\ArticleController::class, 'search']);
  68. Route::get('/main', [\App\Http\Controllers\ArticleController::class, 'main']);
  69. });
  70.  
  71. /* Статьи блогов */
  72. Route::group(['prefix' => 'articles'], function () {
  73. Route::get('/', [\App\Http\Controllers\ArticleController::class, 'newArticles']);
  74. Route::get('/{id}', [\App\Http\Controllers\ArticleController::class, 'view']);
  75. Route::get('/print/{id}', [\App\Http\Controllers\ArticleController::class, 'print']);
  76. Route::get('/rss/{id}', [\App\Http\Controllers\ArticleController::class, 'rssComments']);
  77. Route::get('/comments', [\App\Http\Controllers\ArticleController::class, 'newComments']);
  78. Route::get('/end/{id}', [\App\Http\Controllers\ArticleController::class, 'end']);
  79. Route::get('/comment/{id}/{cid}', [\App\Http\Controllers\ArticleController::class, 'viewComment'])->whereNumber('cid');
  80. Route::match(['get', 'post'], '/edit/{id}', [\App\Http\Controllers\ArticleController::class, 'edit']);
  81. Route::match(['get', 'post'], '/comments/{id}', [\App\Http\Controllers\ArticleController::class, 'comments']);
  82. Route::match(['get', 'post'], '/edit/{id}/{cid}', [\App\Http\Controllers\ArticleController::class, 'editComment'])->whereNumber('cid');
  83. });
  84.  
  85. /* Новости */
  86. Route::group(['prefix' => 'news'], function () {
  87. Route::get('/', [\App\Http\Controllers\NewsController::class, 'index']);
  88. Route::get('/{id}', [\App\Http\Controllers\NewsController::class, 'view']);
  89. Route::get('/end/{id}', [\App\Http\Controllers\NewsController::class, 'end']);
  90. Route::get('/rss', [\App\Http\Controllers\NewsController::class, 'rss']);
  91. Route::get('/allcomments', [\App\Http\Controllers\NewsController::class, 'allComments']);
  92. Route::get('/comment/{id}/{cid}', [\App\Http\Controllers\NewsController::class, 'viewComment'])->whereNumber('cid');
  93. Route::match(['get', 'post'], '/comments/{id}', [\App\Http\Controllers\NewsController::class, 'comments']);
  94. Route::match(['get', 'post'], '/edit/{id}/{cid}', [\App\Http\Controllers\NewsController::class, 'editComment'])->whereNumber('cid');
  95. });
  96.  
  97. /* Галерея */
  98. Route::group(['prefix' => 'photos'], function () {
  99. Route::get('/', [\App\Http\Controllers\PhotoController::class, 'index']);
  100. Route::get('/{id}', [\App\Http\Controllers\PhotoController::class, 'view']);
  101. Route::get('/delete/{id}', [\App\Http\Controllers\PhotoController::class, 'delete']);
  102. Route::get('/end/{id}', [\App\Http\Controllers\PhotoController::class, 'end']);
  103. Route::get('/albums', [\App\Http\Controllers\PhotoController::class, 'albums']);
  104. Route::get('/albums/{login}', [\App\Http\Controllers\PhotoController::class, 'album']);
  105. Route::get('/comments', [\App\Http\Controllers\PhotoController::class, 'allComments']);
  106. Route::get('/comments/active/{login}', [\App\Http\Controllers\PhotoController::class, 'userComments']);
  107. Route::get('/comment/{id}/{cid}', [\App\Http\Controllers\PhotoController::class, 'viewComment'])->whereNumber('cid');
  108. Route::match(['get', 'post'], '/comments/{id}', [\App\Http\Controllers\PhotoController::class, 'comments']);
  109. Route::match(['get', 'post'], '/create', [\App\Http\Controllers\PhotoController::class, 'create']);
  110. Route::match(['get', 'post'], '/edit/{id}', [\App\Http\Controllers\PhotoController::class, 'edit']);
  111. Route::match(['get', 'post'], '/edit/{id}/{cid}', [\App\Http\Controllers\PhotoController::class, 'editComment'])->whereNumber('cid');
  112. Route::match(['get', 'post'], '/top', [\App\Http\Controllers\PhotoController::class, 'top']);
  113. });
  114.  
  115. /* Категория форума */
  116. Route::group(['prefix' => 'forums'], function () {
  117. Route::get('/', [\App\Http\Controllers\Forum\ForumController::class, 'index']);
  118. Route::get('/{id}', [\App\Http\Controllers\Forum\ForumController::class, 'forum']);
  119. Route::get('/search', [\App\Http\Controllers\Forum\SearchController::class, 'index']);
  120. Route::get('/active/posts', [\App\Http\Controllers\Forum\ActiveController::class, 'posts']);
  121. Route::get('/active/topics', [\App\Http\Controllers\Forum\ActiveController::class, 'topics']);
  122. Route::delete('/active/delete/{id}', [\App\Http\Controllers\Forum\ActiveController::class, 'destroy']);
  123. Route::get('/top/posts', [\App\Http\Controllers\Forum\ForumController::class, 'topPosts']);
  124. Route::get('/top/topics', [\App\Http\Controllers\Forum\ForumController::class, 'topTopics']);
  125. Route::get('/rss', [\App\Http\Controllers\Forum\ForumController::class, 'rss']);
  126. Route::get('/bookmarks', [\App\Http\Controllers\Forum\BookmarkController::class, 'index']);
  127. Route::post('/bookmarks/delete', [\App\Http\Controllers\Forum\BookmarkController::class, 'delete']);
  128. Route::post('/bookmarks/perform', [\App\Http\Controllers\Forum\BookmarkController::class, 'perform']);
  129. Route::match(['get', 'post'], '/create', [\App\Http\Controllers\Forum\ForumController::class, 'create']);
  130. });
  131.  
  132. /* Темы форума */
  133. Route::group(['prefix' => 'topics'], function () {
  134. Route::get('/', [\App\Http\Controllers\Forum\NewController::class, 'topics']);
  135. Route::get('/{id}', [\App\Http\Controllers\Forum\TopicController::class, 'index']);
  136. Route::get('/{id}/{pid}', [\App\Http\Controllers\Forum\TopicController::class, 'viewpost'])->whereNumber('pid');
  137. Route::post('/votes/{id}', [\App\Http\Controllers\Forum\TopicController::class, 'vote']);
  138. Route::get('/end/{id}', [\App\Http\Controllers\Forum\TopicController::class, 'end']);
  139. Route::get('/open/{id}', [\App\Http\Controllers\Forum\TopicController::class, 'open']);
  140. Route::get('/close/{id}', [\App\Http\Controllers\Forum\TopicController::class, 'close']);
  141. Route::post('/create/{id}', [\App\Http\Controllers\Forum\TopicController::class, 'create']);
  142. Route::post('/delete/{id}', [\App\Http\Controllers\Forum\TopicController::class, 'delete']);
  143. Route::get('/print/{id}', [\App\Http\Controllers\Forum\TopicController::class, 'print']);
  144. Route::get('/rss/{id}', [\App\Http\Controllers\Forum\ForumController::class, 'rssPosts']);
  145. Route::match(['get', 'post'], '/edit/{id}', [\App\Http\Controllers\Forum\TopicController::class, 'edit']);
  146. });
  147.  
  148. /* Посты форума */
  149. Route::group(['prefix' => 'posts'], function () {
  150. Route::get('/', [\App\Http\Controllers\Forum\NewController::class, 'posts']);
  151. Route::match(['get', 'post'], '/edit/{id}', [\App\Http\Controllers\Forum\TopicController::class, 'editPost']);
  152. });
  153.  
  154. /* Категории загрузок */
  155. Route::group(['prefix' => 'loads'], function () {
  156. Route::get('/', [\App\Http\Controllers\Load\LoadController::class, 'index']);
  157. Route::get('/rss', [\App\Http\Controllers\Load\LoadController::class, 'rss']);
  158. Route::get('/{id}', [\App\Http\Controllers\Load\LoadController::class, 'load']);
  159. Route::get('/top', [\App\Http\Controllers\Load\TopController::class, 'index']);
  160. Route::get('/search', [\App\Http\Controllers\Load\SearchController::class, 'index']);
  161. });
  162.  
  163. /* Загрузки */
  164. Route::group(['prefix' => 'downs'], function () {
  165. Route::get('/', [\App\Http\Controllers\Load\NewController::class, 'files']);
  166. Route::get('/{id}', [\App\Http\Controllers\Load\DownController::class, 'index']);
  167. Route::get('/delete/{id}/{fid}', [\App\Http\Controllers\Load\DownController::class, 'deleteFile'])->whereNumber('fid');
  168. Route::post('/votes/{id}', [\App\Http\Controllers\Load\DownController::class, 'vote']);
  169. Route::get('/comment/{id}/{cid}', [\App\Http\Controllers\Load\DownController::class, 'viewComment'])->whereNumber('cid');
  170. Route::get('/end/{id}', [\App\Http\Controllers\Load\DownController::class, 'end']);
  171. Route::get('/rss/{id}', [\App\Http\Controllers\Load\DownController::class, 'rss']);
  172. Route::get('/zip/{id}', [\App\Http\Controllers\Load\DownController::class, 'zip']);
  173. Route::get('/zip/{id}/{fid}', [\App\Http\Controllers\Load\DownController::class, 'zipView'])->whereNumber('fid');
  174. Route::get('/comments', [\App\Http\Controllers\Load\NewController::class, 'comments']);
  175. Route::get('/active/files', [\App\Http\Controllers\Load\ActiveController::class, 'files']);
  176. Route::get('/active/comments', [\App\Http\Controllers\Load\ActiveController::class, 'comments']);
  177. Route::match(['get', 'post'], '/edit/{id}', [\App\Http\Controllers\Load\DownController::class, 'edit']);
  178. Route::match(['get', 'post'], '/create', [\App\Http\Controllers\Load\DownController::class, 'create']);
  179. Route::match(['get', 'post'], '/download/{id}', [\App\Http\Controllers\Load\DownController::class, 'download']);
  180. Route::match(['get', 'post'], '/comments/{id}', [\App\Http\Controllers\Load\DownController::class, 'comments']);
  181. Route::match(['get', 'post'], '/edit/{id}/{cid}', [\App\Http\Controllers\Load\DownController::class, 'editComment'])->whereNumber('cid');
  182. });
  183.  
  184. /* Предложения и проблемы */
  185. Route::group(['prefix' => 'offers'], function () {
  186. Route::get('/{type?}', [\App\Http\Controllers\OfferController::class, 'index'])->where('type', 'offer|issue');
  187. Route::get('/{id}', [\App\Http\Controllers\OfferController::class, 'view']);
  188. Route::get('/end/{id}', [\App\Http\Controllers\OfferController::class, 'end']);
  189. Route::get('/comment/{id}/{cid}', [\App\Http\Controllers\OfferController::class, 'viewComment'])->whereNumber('cid');
  190. Route::match(['get', 'post'], '/create', [\App\Http\Controllers\OfferController::class, 'create']);
  191. Route::match(['get', 'post'], '/edit/{id}', [\App\Http\Controllers\OfferController::class, 'edit']);
  192. Route::match(['get', 'post'], '/comments/{id}', [\App\Http\Controllers\OfferController::class, 'comments']);
  193. Route::match(['get', 'post'], '/edit/{id}/{cid}', [\App\Http\Controllers\OfferController::class, 'editComment'])->whereNumber('cid');
  194. });
  195.  
  196. /* Ajax */
  197. Route::group(['prefix' => 'ajax'], function () {
  198. Route::get('/getstickers', [\App\Http\Controllers\AjaxController::class, 'getStickers']);
  199. Route::post('/bbcode', [\App\Http\Controllers\AjaxController::class, 'bbCode']);
  200. Route::post('/delcomment', [\App\Http\Controllers\AjaxController::class, 'delComment']);
  201. Route::post('/rating', [\App\Http\Controllers\AjaxController::class, 'rating']);
  202. Route::post('/vote', [\App\Http\Controllers\AjaxController::class, 'vote']);
  203. Route::post('/complaint', [\App\Http\Controllers\AjaxController::class, 'complaint']);
  204. Route::post('/file/upload', [\App\Http\Controllers\AjaxController::class, 'uploadFile']);
  205. Route::post('/file/delete', [\App\Http\Controllers\AjaxController::class, 'deleteFile']);
  206. });
  207.  
  208. /* Голосования */
  209. Route::group(['prefix' => 'votes'], function () {
  210. Route::get('/', [\App\Http\Controllers\VoteController::class, 'index']);
  211. Route::get('/voters/{id}', [\App\Http\Controllers\VoteController::class, 'voters']);
  212. Route::get('/history', [\App\Http\Controllers\VoteController::class, 'history']);
  213. Route::get('/history/{id}', [\App\Http\Controllers\VoteController::class, 'viewHistory']);
  214. Route::match(['get', 'post'], '/{id}', [\App\Http\Controllers\VoteController::class, 'view']);
  215. Route::match(['get', 'post'], '/create', [\App\Http\Controllers\VoteController::class, 'create']);
  216. });
  217.  
  218. /* Мои данные */
  219. Route::group(['prefix' => 'accounts'], function () {
  220. Route::get('/', [\App\Http\Controllers\User\UserController::class, 'account']);
  221. Route::get('/editmail', [\App\Http\Controllers\User\UserController::class, 'editMail']);
  222. Route::post('/changemail', [\App\Http\Controllers\User\UserController::class, 'changeMail']);
  223. Route::post('/editstatus', [\App\Http\Controllers\User\UserController::class, 'editStatus']);
  224. Route::post('/editcolor', [\App\Http\Controllers\User\UserController::class, 'editColor']);
  225. Route::post('/editpassword', [\App\Http\Controllers\User\UserController::class, 'editPassword']);
  226. Route::post('/apikey', [\App\Http\Controllers\User\UserController::class, 'apikey']);
  227. });
  228.  
  229. /* Фото профиля */
  230. Route::group(['prefix' => 'pictures'], function () {
  231. Route::match(['get', 'post'], '', [\App\Http\Controllers\User\PictureController::class, 'index']);
  232. Route::get('/delete', [\App\Http\Controllers\User\PictureController::class, 'delete']);
  233. });
  234.  
  235. /* Социальные сети */
  236. Route::group(['prefix' => 'socials'], function () {
  237. Route::match(['get', 'post'], '', [\App\Http\Controllers\SocialController::class, 'index']);
  238. Route::get('/delete/{id}', [\App\Http\Controllers\SocialController::class, 'delete']);
  239. });
  240.  
  241. /* Поиск пользователя */
  242. Route::group(['prefix' => 'searchusers'], function () {
  243. Route::get('/', [\App\Http\Controllers\User\SearchController::class, 'index']);
  244. Route::get('/{letter}', [\App\Http\Controllers\User\SearchController::class, 'sort'])->where('letter', '[0-9a-z]+');
  245. Route::match(['get', 'post'], '/search', [\App\Http\Controllers\User\SearchController::class, 'search']);
  246. });
  247.  
  248. /* Стена сообщений */
  249. Route::group(['prefix' => 'walls'], function () {
  250. Route::get('/{login}', [\App\Http\Controllers\WallController::class, 'index']);
  251. Route::post('/{login}/create', [\App\Http\Controllers\WallController::class, 'create']);
  252. Route::post('/{login}/delete', [\App\Http\Controllers\WallController::class, 'delete']);
  253. });
  254.  
  255. /* Личные сообщения */
  256. Route::group(['prefix' => 'messages', 'middleware' => 'check.user'], function () {
  257. Route::get('/', [\App\Http\Controllers\MessageController::class, 'index']);
  258. Route::get('/new', [\App\Http\Controllers\MessageController::class, 'newMessages']);
  259. Route::get('/talk/{login}', [\App\Http\Controllers\MessageController::class, 'talk']);
  260. Route::get('/delete/{uid}', [\App\Http\Controllers\MessageController::class, 'delete'])->whereNumber('uid');
  261. Route::match(['get', 'post'], '/send', [\App\Http\Controllers\MessageController::class, 'send']);
  262. });
  263.  
  264. /* Игнор-лист */
  265. Route::group(['prefix' => 'ignores'], function () {
  266. Route::post('/delete', [\App\Http\Controllers\IgnoreController::class, 'delete']);
  267. Route::match(['get', 'post'], '', [\App\Http\Controllers\IgnoreController::class, 'index']);
  268. Route::match(['get', 'post'], '/note/{id}', [\App\Http\Controllers\IgnoreController::class, 'note']);
  269. });
  270.  
  271. /* Контакт-лист */
  272. Route::group(['prefix' => 'contacts'], function () {
  273. Route::post('/delete', [\App\Http\Controllers\ContactController::class, 'delete']);
  274. Route::match(['get', 'post'], '', [\App\Http\Controllers\ContactController::class, 'index']);
  275. Route::match(['get', 'post'], '/note/{id}', [\App\Http\Controllers\ContactController::class, 'note']);
  276. });
  277.  
  278. /* Перевод денег */
  279. Route::group(['prefix' => 'transfers'], function () {
  280. Route::get('/', [\App\Http\Controllers\TransferController::class, 'index']);
  281. Route::post('/send', [\App\Http\Controllers\TransferController::class, 'send']);
  282. });
  283.  
  284. /* Личные заметки */
  285. Route::group(['prefix' => 'notebooks'], function () {
  286. Route::get('/', [\App\Http\Controllers\NotebookController::class, 'index']);
  287. Route::match(['get', 'post'], '/edit', [\App\Http\Controllers\NotebookController::class, 'edit']);
  288. });
  289.  
  290. /* Реклама */
  291. Route::group(['prefix' => 'adverts'], function () {
  292. Route::get('/', [\App\Http\Controllers\AdvertController::class, 'index']);
  293. Route::match(['get', 'post'], '/create', [\App\Http\Controllers\AdvertController::class, 'create']);
  294. });
  295.  
  296. /* Репутация пользователя */
  297. Route::group(['prefix' => 'ratings'], function () {
  298. Route::get('/{login}/gave', [\App\Http\Controllers\RatingController::class, 'gave']);
  299. Route::get('/{login}/{received?}', [\App\Http\Controllers\RatingController::class, 'received']);
  300. Route::post('/delete', [\App\Http\Controllers\RatingController::class, 'delete']);
  301. });
  302.  
  303. /* API */
  304. Route::group(['prefix' => 'api'], function () {
  305. Route::get('/', [\App\Http\Controllers\ApiController::class, 'index']);
  306. });
  307.  
  308. Route::group(['prefix' => 'users'], function () {
  309. Route::match(['get', 'post'], '/', [\App\Http\Controllers\User\ListController::class, 'userlist']);
  310. Route::match(['get', 'post'], '/{login}/rating', [\App\Http\Controllers\RatingController::class, 'index']);
  311. Route::match(['get', 'post'], '/{login}/note', [\App\Http\Controllers\User\UserController::class, 'note']);
  312. Route::get('/{login}', [\App\Http\Controllers\User\UserController::class, 'index']);
  313. });
  314.  
  315. Route::get('/restore', [\App\Http\Controllers\MailController::class, 'restore']);
  316. Route::match(['get', 'post'], '/recovery', [\App\Http\Controllers\MailController::class, 'recovery']);
  317. Route::match(['get', 'post'], '/mails', [\App\Http\Controllers\MailController::class, 'index']);
  318. Route::match(['get', 'post'], '/unsubscribe', [\App\Http\Controllers\MailController::class, 'unsubscribe']);
  319. Route::get('/authlogs', [\App\Http\Controllers\LoginController::class, 'index']);
  320. Route::match(['get', 'post'], '/ban', [\App\Http\Controllers\User\BanController::class, 'ban']);
  321. Route::get('/faq', [\App\Http\Controllers\PageController::class, 'faq']);
  322. Route::get('/statusfaq', [\App\Http\Controllers\PageController::class, 'statusfaq']);
  323. Route::get('/surprise', [\App\Http\Controllers\PageController::class, 'surprise']);
  324. Route::get('/logout', [\App\Http\Controllers\User\UserController::class, 'logout']);
  325. Route::match(['get', 'post'], '/key', [\App\Http\Controllers\User\UserController::class, 'key']);
  326. Route::match(['get', 'post'], '/login', [\App\Http\Controllers\User\UserController::class, 'login']);
  327. Route::match(['get', 'post'], '/register', [\App\Http\Controllers\User\UserController::class, 'register']);
  328. Route::match(['get', 'post'], '/profile', [\App\Http\Controllers\User\UserController::class, 'profile']);
  329. Route::match(['get', 'post'], '/settings', [\App\Http\Controllers\User\UserController::class, 'setting']);
  330. Route::post('/check-login', [\App\Http\Controllers\User\UserController::class, 'checkLogin']);
  331. Route::get('/pages/{page?}', [\App\Http\Controllers\PageController::class, 'index'])->where('page', '[\w\-]+');
  332. Route::get('/menu', [\App\Http\Controllers\PageController::class, 'menu']);
  333. Route::get('/tags', [\App\Http\Controllers\PageController::class, 'tags']);
  334. Route::get('/rules', [\App\Http\Controllers\PageController::class, 'rules']);
  335. Route::get('/stickers', [\App\Http\Controllers\PageController::class, 'stickers']);
  336. Route::get('/stickers/{id}', [\App\Http\Controllers\PageController::class, 'stickersCategory']);
  337. Route::get('/online', [\App\Http\Controllers\OnlineController::class, 'index']);
  338. Route::get('/online/all', [\App\Http\Controllers\OnlineController::class, 'all']);
  339. Route::get('/counters', [\App\Http\Controllers\CounterController::class, 'index']);
  340. Route::get('/files/{page?}', [\App\Http\Controllers\FileController::class, 'index'])->where('page', '.+');
  341.  
  342. /* Админ-панель */
  343. Route::group(['prefix' => 'admin', 'middleware' => 'check.admin'], function () {
  344. Route::get('/', [\App\Http\Controllers\Admin\AdminController::class, 'main']);
  345. Route::get('/upgrade', [\App\Http\Controllers\Admin\AdminController::class, 'upgrade']);
  346.  
  347. /* Админ-чат */
  348. Route::match(['get', 'post'], '/chats', [\App\Http\Controllers\Admin\ChatController::class, 'index']);
  349. Route::match(['get', 'post'], '/chats/edit/{id}', [\App\Http\Controllers\Admin\ChatController::class, 'edit']);
  350. Route::get('/chats/clear', [\App\Http\Controllers\Admin\ChatController::class, 'clear']);
  351.  
  352. /* Гостевая */
  353. Route::get('/guestbook', [\App\Http\Controllers\Admin\GuestbookController::class, 'index']);
  354. Route::match(['get', 'post'], '/guestbook/edit/{id}', [\App\Http\Controllers\Admin\GuestbookController::class, 'edit']);
  355. Route::match(['get', 'post'], '/guestbook/reply/{id}', [\App\Http\Controllers\Admin\GuestbookController::class, 'reply']);
  356. Route::post('/guestbook/delete', [\App\Http\Controllers\Admin\GuestbookController::class, 'delete']);
  357. Route::get('/guestbook/clear', [\App\Http\Controllers\Admin\GuestbookController::class, 'clear']);
  358.  
  359. /* Форум */
  360. Route::get('/forums', [\App\Http\Controllers\Admin\ForumController::class, 'index']);
  361. Route::post('/forums/create', [\App\Http\Controllers\Admin\ForumController::class, 'create']);
  362. Route::match(['get', 'post'], '/forums/edit/{id}', [\App\Http\Controllers\Admin\ForumController::class, 'edit']);
  363. Route::get('/forums/delete/{id}', [\App\Http\Controllers\Admin\ForumController::class, 'delete']);
  364. Route::get('/forums/restatement', [\App\Http\Controllers\Admin\ForumController::class, 'restatement']);
  365. Route::get('/forums/{id}', [\App\Http\Controllers\Admin\ForumController::class, 'forum']);
  366. Route::match(['get', 'post'], '/topics/edit/{id}', [\App\Http\Controllers\Admin\ForumController::class, 'editTopic']);
  367. Route::match(['get', 'post'], '/topics/move/{id}', [\App\Http\Controllers\Admin\ForumController::class, 'moveTopic']);
  368. Route::get('/topics/action/{id}', [\App\Http\Controllers\Admin\ForumController::class, 'actionTopic']);
  369. Route::get('/topics/delete/{id}', [\App\Http\Controllers\Admin\ForumController::class, 'deleteTopic']);
  370. Route::get('/topics/{id}', [\App\Http\Controllers\Admin\ForumController::class, 'topic']);
  371. Route::match(['get', 'post'], '/posts/edit/{id}', [\App\Http\Controllers\Admin\ForumController::class, 'editPost']);
  372. Route::post('/posts/delete', [\App\Http\Controllers\Admin\ForumController::class, 'deletePosts']);
  373. Route::get('/topics/end/{id}', [\App\Http\Controllers\Admin\ForumController::class, 'end']);
  374.  
  375. /* Галерея */
  376. Route::get('/photos', [\App\Http\Controllers\Admin\PhotoController::class, 'index']);
  377. Route::match(['get', 'post'], '/photos/edit/{id}', [\App\Http\Controllers\Admin\PhotoController::class, 'edit']);
  378. Route::get('/photos/restatement', [\App\Http\Controllers\Admin\PhotoController::class, 'restatement']);
  379. Route::get('/photos/delete/{id}', [\App\Http\Controllers\Admin\PhotoController::class, 'delete']);
  380.  
  381. /* Блоги */
  382. Route::get('/blogs', [\App\Http\Controllers\Admin\ArticleController::class, 'index']);
  383. Route::post('/blogs/create', [\App\Http\Controllers\Admin\ArticleController::class, 'create']);
  384. Route::get('/blogs/restatement', [\App\Http\Controllers\Admin\ArticleController::class, 'restatement']);
  385. Route::match(['get', 'post'], '/blogs/edit/{id}', [\App\Http\Controllers\Admin\ArticleController::class, 'edit']);
  386. Route::get('/blogs/delete/{id}', [\App\Http\Controllers\Admin\ArticleController::class, 'delete']);
  387. Route::get('/blogs/{id}', [\App\Http\Controllers\Admin\ArticleController::class, 'blog']);
  388. Route::match(['get', 'post'], '/articles/edit/{id}', [\App\Http\Controllers\Admin\ArticleController::class, 'editArticle']);
  389. Route::match(['get', 'post'], '/articles/move/{id}', [\App\Http\Controllers\Admin\ArticleController::class, 'moveArticle']);
  390. Route::get('/articles/delete/{id}', [\App\Http\Controllers\Admin\ArticleController::class, 'deleteArticle']);
  391.  
  392. /* Доска объявлений */
  393. Route::get('/boards/{id?}', [\App\Http\Controllers\Admin\BoardController::class, 'index']);
  394. Route::get('/boards/restatement', [\App\Http\Controllers\Admin\BoardController::class, 'restatement']);
  395. Route::match(['get', 'post'], '/items/edit/{id}', [\App\Http\Controllers\Admin\BoardController::class, 'editItem']);
  396. Route::get('/items/delete/{id}', [\App\Http\Controllers\Admin\BoardController::class, 'deleteItem']);
  397. Route::get('/boards/categories', [\App\Http\Controllers\Admin\BoardController::class, 'categories']);
  398. Route::post('/boards/create', [\App\Http\Controllers\Admin\BoardController::class, 'create']);
  399. Route::match(['get', 'post'], '/boards/edit/{id}', [\App\Http\Controllers\Admin\BoardController::class, 'edit']);
  400. Route::get('/boards/delete/{id}', [\App\Http\Controllers\Admin\BoardController::class, 'delete']);
  401.  
  402. /* Админская реклама */
  403. Route::match(['get', 'post'], '/admin-adverts', [\App\Http\Controllers\Admin\AdminAdvertController::class, 'index']);
  404.  
  405. /* Пользовательская реклама */
  406. Route::get('/adverts', [\App\Http\Controllers\Admin\AdvertController::class, 'index']);
  407.  
  408. /* Модер */
  409. Route::group(['middleware' => 'check.admin:moder'], function () {
  410. /* Жалобы */
  411. Route::get('/spam', [\App\Http\Controllers\Admin\SpamController::class, 'index']);
  412. Route::post('/spam/delete', [\App\Http\Controllers\Admin\SpamController::class, 'delete']);
  413.  
  414. /* Бан / разбан */
  415. Route::get('/bans', [\App\Http\Controllers\Admin\BanController::class, 'index']);
  416. Route::match(['get', 'post'], '/bans/edit', [\App\Http\Controllers\Admin\BanController::class, 'edit']);
  417. Route::match(['get', 'post'], '/bans/change', [\App\Http\Controllers\Admin\BanController::class, 'change']);
  418. Route::get('/bans/unban', [\App\Http\Controllers\Admin\BanController::class, 'unban']);
  419.  
  420. /* Забаненные */
  421. Route::get('/banlists', [\App\Http\Controllers\Admin\BanlistController::class, 'index']);
  422.  
  423. /* Ожидающие */
  424. Route::match(['get', 'post'], '/reglists', [\App\Http\Controllers\Admin\ReglistController::class, 'index']);
  425.  
  426. /* Голосования */
  427. Route::get('/votes', [\App\Http\Controllers\Admin\VoteController::class, 'index']);
  428. Route::get('/votes/history', [\App\Http\Controllers\Admin\VoteController::class, 'history']);
  429. Route::match(['get', 'post'], '/votes/edit/{id}', [\App\Http\Controllers\Admin\VoteController::class, 'edit']);
  430. Route::get('/votes/close/{id}', [\App\Http\Controllers\Admin\VoteController::class, 'close']);
  431. Route::get('/votes/delete/{id}', [\App\Http\Controllers\Admin\VoteController::class, 'delete']);
  432. Route::get('/votes/restatement', [\App\Http\Controllers\Admin\VoteController::class, 'restatement']);
  433.  
  434. /* Антимат */
  435. Route::match(['get', 'post'], '/antimat', [\App\Http\Controllers\Admin\AntimatController::class, 'index']);
  436. Route::get('/antimat/delete', [\App\Http\Controllers\Admin\AntimatController::class, 'delete']);
  437. Route::get('/antimat/clear', [\App\Http\Controllers\Admin\AntimatController::class, 'clear']);
  438.  
  439. /* История банов */
  440. Route::get('/banhists', [\App\Http\Controllers\Admin\BanhistController::class, 'index']);
  441. Route::get('/banhists/view', [\App\Http\Controllers\Admin\BanhistController::class, 'view']);
  442. Route::post('/banhists/delete', [\App\Http\Controllers\Admin\BanhistController::class, 'delete']);
  443.  
  444. /* Приглашения */
  445. Route::get('/invitations', [\App\Http\Controllers\Admin\InvitationController::class, 'index']);
  446. Route::match(['get', 'post'], '/invitations/create', [\App\Http\Controllers\Admin\InvitationController::class, 'create']);
  447. Route::get('/invitations/keys', [\App\Http\Controllers\Admin\InvitationController::class, 'keys']);
  448. Route::post('/invitations/send', [\App\Http\Controllers\Admin\InvitationController::class, 'send']);
  449. Route::post('/invitations/mail', [\App\Http\Controllers\Admin\InvitationController::class, 'mail']);
  450. Route::post('/invitations/delete', [\App\Http\Controllers\Admin\InvitationController::class, 'delete']);
  451.  
  452. /* Денежный переводы*/
  453. Route::get('/transfers', [\App\Http\Controllers\Admin\TransferController::class, 'index']);
  454. Route::get('/transfers/view', [\App\Http\Controllers\Admin\TransferController::class, 'view']);
  455. });
  456.  
  457. /* Админ */
  458. Route::group(['middleware' => 'check.admin:admin'], function () {
  459. /* Правила */
  460. Route::get('/rules', [\App\Http\Controllers\Admin\RuleController::class, 'index']);
  461. Route::match(['get', 'post'], '/rules/edit', [\App\Http\Controllers\Admin\RuleController::class, 'edit']);
  462.  
  463. /* Новости */
  464. Route::get('/news', [\App\Http\Controllers\Admin\NewsController::class, 'index']);
  465. Route::match(['get', 'post'], '/news/edit/{id}', [\App\Http\Controllers\Admin\NewsController::class, 'edit']);
  466. Route::match(['get', 'post'], '/news/create', [\App\Http\Controllers\Admin\NewsController::class, 'create']);
  467. Route::get('/news/restatement', [\App\Http\Controllers\Admin\NewsController::class, 'restatement']);
  468. Route::get('/news/delete/{id}', [\App\Http\Controllers\Admin\NewsController::class, 'delete']);
  469.  
  470.  
  471. /* IP-бан */
  472. Route::match(['get', 'post'], '/ipbans', [\App\Http\Controllers\Admin\IpBanController::class, 'index']);
  473. Route::post('/ipbans/delete', [\App\Http\Controllers\Admin\IpBanController::class, 'delete']);
  474. Route::get('/ipbans/clear', [\App\Http\Controllers\Admin\IpBanController::class, 'clear']);
  475.  
  476. /* PHP-info */
  477. Route::get('/phpinfo', [\App\Http\Controllers\Admin\AdminController::class, 'phpinfo']);
  478.  
  479. /* Загрузки */
  480. Route::get('/loads', [\App\Http\Controllers\Admin\LoadController::class, 'index']);
  481. Route::post('/loads/create', [\App\Http\Controllers\Admin\LoadController::class, 'create']);
  482. Route::match(['get', 'post'], '/loads/edit/{id}', [\App\Http\Controllers\Admin\LoadController::class, 'edit']);
  483. Route::get('/loads/delete/{id}', [\App\Http\Controllers\Admin\LoadController::class, 'delete']);
  484. Route::get('/loads/restatement', [\App\Http\Controllers\Admin\LoadController::class, 'restatement']);
  485. Route::get('/loads/{id}', [\App\Http\Controllers\Admin\LoadController::class, 'load']);
  486. Route::match(['get', 'post'], '/downs/edit/{id}', [\App\Http\Controllers\Admin\LoadController::class, 'editDown']);
  487. Route::match(['get', 'post'], '/downs/delete/{id}', [\App\Http\Controllers\Admin\LoadController::class, 'deleteDown']);
  488. Route::get('/downs/delete/{id}/{fid}', [\App\Http\Controllers\Admin\LoadController::class, 'deleteFile'])->whereNumber('fid');
  489. Route::get('/downs/new', [\App\Http\Controllers\Admin\LoadController::class, 'new']);
  490. Route::get('/downs/publish/{id}', [\App\Http\Controllers\Admin\LoadController::class, 'publish']);
  491.  
  492. /* Ошибки */
  493. Route::get('/errors', [\App\Http\Controllers\Admin\ErrorController::class, 'index']);
  494. Route::get('/errors/clear', [\App\Http\Controllers\Admin\ErrorController::class, 'clear']);
  495.  
  496. /* Черный список */
  497. Route::match(['get', 'post'], '/blacklists', [\App\Http\Controllers\Admin\BlacklistController::class, 'index']);
  498. Route::post('/blacklists/delete', [\App\Http\Controllers\Admin\BlacklistController::class, 'delete']);
  499.  
  500. /* Предложения / проблемы */
  501. Route::get('/offers/{type?}', [\App\Http\Controllers\Admin\OfferController::class, 'index'])->where('type', 'offer|issue');
  502. Route::get('/offers/{id}', [\App\Http\Controllers\Admin\OfferController::class, 'view']);
  503. Route::match(['get', 'post'], '/offers/edit/{id}', [\App\Http\Controllers\Admin\OfferController::class, 'edit']);
  504. Route::match(['get', 'post'], '/offers/reply/{id}', [\App\Http\Controllers\Admin\OfferController::class, 'reply']);
  505. Route::get('/offers/restatement', [\App\Http\Controllers\Admin\OfferController::class, 'restatement']);
  506. Route::match(['get', 'post'], '/offers/delete', [\App\Http\Controllers\Admin\OfferController::class, 'delete']);
  507.  
  508. /* Стикеры */
  509. Route::get('/stickers', [\App\Http\Controllers\Admin\StickerController::class, 'index']);
  510. Route::get('/stickers/{id}', [\App\Http\Controllers\Admin\StickerController::class, 'category']);
  511. Route::post('/stickers/create', [\App\Http\Controllers\Admin\StickerController::class, 'create']);
  512. Route::match(['get', 'post'], '/stickers/edit/{id}', [\App\Http\Controllers\Admin\StickerController::class, 'edit']);
  513. Route::get('/stickers/delete/{id}', [\App\Http\Controllers\Admin\StickerController::class, 'delete']);
  514. Route::match(['get', 'post'], '/stickers/sticker/create', [\App\Http\Controllers\Admin\StickerController::class, 'createSticker']);
  515. Route::match(['get', 'post'], '/stickers/sticker/edit/{id}', [\App\Http\Controllers\Admin\StickerController::class, 'editSticker']);
  516. Route::get('/stickers/sticker/delete/{id}', [\App\Http\Controllers\Admin\StickerController::class, 'deleteSticker']);
  517.  
  518. /* Статусы */
  519. Route::get('/status', [\App\Http\Controllers\Admin\StatusController::class, 'index']);
  520. Route::match(['get', 'post'], '/status/create', [\App\Http\Controllers\Admin\StatusController::class, 'create']);
  521. Route::match(['get', 'post'], '/status/edit', [\App\Http\Controllers\Admin\StatusController::class, 'edit']);
  522. Route::get('/status/delete', [\App\Http\Controllers\Admin\StatusController::class, 'delete']);
  523. });
  524.  
  525. /* Босс */
  526. Route::group(['middleware' => 'check.admin:boss'], function () {
  527. /* Настройки */
  528. Route::match(['get', 'post'], '/settings', [\App\Http\Controllers\Admin\SettingController::class, 'index']);
  529.  
  530. /* Пользователи */
  531. Route::get('/users', [\App\Http\Controllers\Admin\UserController::class, 'index']);
  532. Route::get('/users/search', [\App\Http\Controllers\Admin\UserController::class, 'search']);
  533. Route::match(['get', 'post'], '/users/edit', [\App\Http\Controllers\Admin\UserController::class, 'edit']);
  534. Route::match(['get', 'post'], '/users/delete', [\App\Http\Controllers\Admin\UserController::class, 'delete']);
  535.  
  536. /* Очистка кеша */
  537. Route::get('/caches', [\App\Http\Controllers\Admin\CacheController::class, 'index']);
  538. Route::post('/caches/clear', [\App\Http\Controllers\Admin\CacheController::class, 'clear']);
  539.  
  540. /* Бэкап */
  541. Route::get('/backups', [\App\Http\Controllers\Admin\BackupController::class, 'index']);
  542. Route::match(['get', 'post'], '/backups/create', [\App\Http\Controllers\Admin\BackupController::class, 'create']);
  543. Route::get('/backups/delete', [\App\Http\Controllers\Admin\BackupController::class, 'delete']);
  544.  
  545. /* Сканирование */
  546. Route::match(['get', 'post'], '/checkers', [\App\Http\Controllers\Admin\CheckerController::class, 'index']);
  547. Route::match(['get', 'post'], '/checkers/scan', [\App\Http\Controllers\Admin\CheckerController::class, 'scan']);
  548.  
  549. /* Приват рассылка */
  550. Route::match(['get', 'post'], '/delivery', [\App\Http\Controllers\Admin\DeliveryController::class, 'index']);
  551.  
  552. /* Логи */
  553. Route::get('/logs', [\App\Http\Controllers\Admin\LogController::class, 'index']);
  554. Route::get('/logs/clear', [\App\Http\Controllers\Admin\LogController::class, 'clear']);
  555.  
  556. /* Шаблоны писем */
  557. Route::get('/notices', [\App\Http\Controllers\Admin\NoticeController::class, 'index']);
  558. Route::match(['get', 'post'], '/notices/create', [\App\Http\Controllers\Admin\NoticeController::class, 'create']);
  559. Route::match(['get', 'post'], '/notices/edit/{id}', [\App\Http\Controllers\Admin\NoticeController::class, 'edit']);
  560. Route::get('/notices/delete/{id}', [\App\Http\Controllers\Admin\NoticeController::class, 'delete']);
  561.  
  562. /* Редактор */
  563. Route::get('/files', [\App\Http\Controllers\Admin\FileController::class, 'index']);
  564. Route::match(['get', 'post'], '/files/edit', [\App\Http\Controllers\Admin\FileController::class, 'edit']);
  565. Route::match(['get', 'post'], '/files/create', [\App\Http\Controllers\Admin\FileController::class, 'create']);
  566. Route::get('/files/delete', [\App\Http\Controllers\Admin\FileController::class, 'delete']);
  567.  
  568. /* Платная реклама */
  569. Route::match(['get', 'post'], '/adverts/edit/{id}', [\App\Http\Controllers\Admin\AdvertController::class, 'edit']);
  570. Route::post('/adverts/delete', [\App\Http\Controllers\Admin\AdvertController::class, 'delete']);
  571. Route::get('/paid-adverts', [\App\Http\Controllers\Admin\PaidAdvertController::class, 'index']);
  572. Route::match(['get', 'post'], '/paid-adverts/create', [\App\Http\Controllers\Admin\PaidAdvertController::class, 'create']);
  573. Route::match(['get', 'post'], '/paid-adverts/edit/{id}', [\App\Http\Controllers\Admin\PaidAdvertController::class, 'edit']);
  574. Route::get('/paid-adverts/delete/{id}', [\App\Http\Controllers\Admin\PaidAdvertController::class, 'delete']);
  575.  
  576. /* Пользовательские поля */
  577. Route::resource('user-fields', \App\Http\Controllers\Admin\UserFieldController::class)
  578. ->parameters(['user-fields' => 'id'])
  579. ->except('show');
  580.  
  581. /* Чистка пользователей */
  582. Route::match(['get', 'post'], '/delusers', [\App\Http\Controllers\Admin\DelUserController::class, 'index']);
  583. Route::post('/delusers/clear', [\App\Http\Controllers\Admin\DelUserController::class, 'clear']);
  584.  
  585. /* Модули */
  586. Route::get('/modules', [\App\Http\Controllers\Admin\ModuleController::class, 'index']);
  587. Route::get('/modules/module', [\App\Http\Controllers\Admin\ModuleController::class, 'module']);
  588. Route::get('/modules/install', [\App\Http\Controllers\Admin\ModuleController::class, 'install']);
  589. Route::get('/modules/uninstall', [\App\Http\Controllers\Admin\ModuleController::class, 'uninstall']);
  590. });
  591. });
  592.  
  593. if (file_exists(app_path('Http/Controllers/InstallController.php'))) {
  594. Route::group(['prefix' => 'install'], function () {
  595. Route::get('/', [\App\Http\Controllers\InstallController::class, 'index'])
  596. ->withoutMiddleware('web')
  597. ->name('install');
  598.  
  599. Route::get('/status', [\App\Http\Controllers\InstallController::class, 'status'])->withoutMiddleware('web');
  600. Route::get('/migrate', [\App\Http\Controllers\InstallController::class, 'migrate'])->withoutMiddleware('web');
  601. Route::get('/seed', [\App\Http\Controllers\InstallController::class, 'seed']);
  602. Route::match(['get', 'post'], '/account', [\App\Http\Controllers\InstallController::class, 'account']);
  603. Route::get('/finish', [\App\Http\Controllers\InstallController::class, 'finish']);
  604. });
  605. }
  606.  
  607. $modules = \App\Models\Module::getEnabledModules();
  608. foreach ($modules as $module) {
  609. if (file_exists(base_path('modules/' . $module . '/routes.php'))) {
  610. include_once base_path('modules/' . $module . '/routes.php');
  611. }
  612. }