Вход Регистрация
Файл: app/Http/Controllers/PageController.php
Строк: 42
<?php

declare(strict_types=1);

namespace 
AppHttpControllers;

use 
AppModelsRule;
use 
AppModelsStatus;
use 
AppModelsSticker;
use 
AppModelsStickersCategory;
use 
IlluminateSupportFacadesDB;
use 
IlluminateViewView;

class 
PageController extends Controller
{
    
/**
     * Главная страница
     */
    
public function index(string $page = 'index'): View
    
{
        if (
            ! 
preg_match('|^[a-z0-9_-]+$|i', $page)
            || ! 
file_exists(resource_path('views/main/' . $page . '.blade.php'))
        ) {
            
abort(404);
        }

        return 
view('main/layout', compact('page'));
    }

    
/**
     * Правила
     */
    
public function rules(): View
    
{
        
$rules = Rule::query()->first();

        if (
$rules) {
            
$rules['text'] = str_replace('%SITENAME%', setting('title'), $rules['text']);
        }

        return 
view('pages/rules', compact('rules'));
    }

    
/**
     * Стикеры
     */
    
public function stickers(): View
    
{
        
$categories = StickersCategory::query()
            ->
selectRaw('sc.id, sc.name, count(s.id) cnt')
            ->
from('stickers_categories as sc')
            ->
leftJoin('stickers as s', 's.category_id', 'sc.id')
            ->
groupBy('sc.id')
            ->
orderBy('sc.id')
            ->
get();

        return 
view('pages/stickers', compact('categories'));
    }

    
/**
     * Стикеры
     */
    
public function stickersCategory(int $id): View
    
{
        
$category = StickersCategory::query()->where('id', $id)->first();

        if (! 
$category) {
            
abort(404, __('stickers.category_not_exist'));
        }

        
$stickers = Sticker::query()
            ->
where('category_id', $id)
            ->
orderBy(DB::raw('CHAR_LENGTH(code)'))
            ->
orderBy('name')
            ->
with('category')
            ->
paginate(setting('stickerlist'));

        return 
view('pages/stickers_category', compact('category', 'stickers'));
    }

    
/**
     * FAQ по сайту
     */
    
public function faq(): View
    
{
        return 
view('pages/faq');
    }

    
/**
     * FAQ по статусам
     */
    
public function statusfaq(): View
    
{
        
$statuses = Status::query()
            ->
orderByDesc('topoint')
            ->
get();

        return 
view('pages/statusfaq', compact('statuses'));
    }
}
Онлайн: 2
Реклама