src/Controller/SiteController.php line 54

  1. <?php
  2. namespace App\Controller;
  3. use App\Repository\ContentRepository;
  4. use App\Repository\MenuRepository;
  5. use App\Repository\UsersCommentRepository;
  6. use App\Repository\UsersRepository;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\RequestStack;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. class SiteController extends AbstractController
  13. {
  14.     private $display = [];
  15.     function __construct(MenuRepository $menuRepositoryUsersRepository $usersRepository,private RequestStack $request)
  16.     {
  17.         $menuList $menuRepository->findBy(['controller'=>'site','user_logged'=>0],['ord'=>'desc']);
  18.         $this->addDisplay('menuList',$menuList);
  19.         #$this->addDisplay("action",$request->getCurrentRequest()->get)
  20.         if($request->getSession()->get("userid")){
  21.             $this->display['userInfo'] = $usersRepository->findOneById($request->getSession()->get("userid"));
  22.         }
  23.     }
  24.     function addDisplay($key,$value){
  25.       $this->display[$key] = $value;
  26.     }
  27.     #[Route('/'name'app_site_mainpage'defaults: ['_locale'=>'ru'])]
  28.     public function index(String $_localeMenuRepository $menuRepository,UsersCommentRepository $usersCommentRepository): Response
  29.     {
  30.         $usersComments $usersCommentRepository->findBy(['status'=>0],['date'=>'desc'],10);
  31.         return $this->view('site/index.html.twig',[
  32.             'reviews'=>$usersComments
  33.         ]);
  34.     }
  35.     #[Route('/{_locale}/site'name'app_site')]
  36.     public function indexSite(String $_locale): Response
  37.     {  return $this->redirect('/'.$_locale);
  38.     }
  39.     #[Route('/{_locale}/site/content/{url}'name'app_content'defaults: ['_locale'=>'ru'] )]
  40.     public function content(String $url,
  41.                             ContentRepository $contentRepository,
  42.                             MenuRepository $menuRepository): Response
  43.     {
  44.         return $this->view('site/content.html.twig', [
  45.            'content'=>$contentRepository->findOneBy(['url'=>$url])
  46.         ]);
  47.     }
  48.     #[Route('/{_locale}/site/replies/{page}'name'app_content_replies'defaults: ['page'=>1,'_locale'=>'ru'] )]
  49.     public function replies(String $page,UsersCommentRepository $usersCommentRepository): Response
  50.     {
  51.         $perPage 5;
  52.         $offset $page*$perPage-$perPage;
  53.         return $this->view('site/replies.html.twig', [
  54.             'list'=>$usersCommentRepository->findBy(['status'=>0],['date'=>'desc',$perPage,$offset])
  55.         ]);
  56.     }
  57.     function view($template,$params=[]){
  58.         foreach($this->display as $K =>$v){
  59.             $params[$K] = $v;
  60.         }
  61.         return $this->render($template,$params);
  62.     }
  63.     #[Route('/app/auth'name'auth')]
  64.     function auth(Request $requestUsersRepository $usersRepository){
  65.         if($request->get("login")){
  66.             $checkUser $usersRepository->auth($request->get("login"),$request->get("password"));
  67.             if($checkUser['status'] == 1){
  68.                 $request->getSession()->set("userid",$checkUser['userid']);
  69.                 return $this->redirect("/user/profile");
  70.             }
  71.             $this->display['errorMessage'] = $checkUser['desc'];
  72.         }
  73.         return $this->render("user/auth.html.twig",$this->display);
  74.     }
  75.     #[Route('/register'name'register')]
  76.     function register(Request $requestUsersRepository $usersRepository){
  77.         if($request->get("login")){
  78.             $checkUser $usersRepository->auth($request->get("login"),$request->get("password"));
  79.             if($checkUser['status'] == 1){
  80.                 $request->getSession()->set("userid",$checkUser['userid']);
  81.                 return $this->redirect("/user/");
  82.             }
  83.         }
  84.         return $this->render("user/auth.html.twig",$this->display);
  85.     }
  86.     #[Route('/app/exit'name'register')]
  87.     function exitApp(Request $request){
  88.         $request->getSession()->clear();
  89.         return $this->redirect('/');
  90.     }
  91.     }