src/Controller/DefaultController.php line 1128

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\AdmissionInfo;
  4. use App\Entity\AdmissionPage;
  5. use App\Entity\Article;
  6. use App\Entity\ArticleCategory;
  7. use App\Entity\ClassCourse;
  8. use App\Entity\ClassLevel;
  9. use App\Entity\ClassLevelAndCourse;
  10. use App\Entity\ClassLevelItem;
  11. use App\Entity\Club;
  12. use App\Entity\EventSchool;
  13. use App\Entity\GalleryItem;
  14. use App\Entity\Infrastructure;
  15. use App\Entity\Message;
  16. use App\Entity\Notification;
  17. use App\Entity\OpenDay;
  18. use App\Entity\Page;
  19. use App\Entity\Partner;
  20. use App\Entity\Phone;
  21. use App\Entity\School;
  22. use App\Entity\SchoolDepartment;
  23. use App\Entity\SchoolTest;
  24. use App\Entity\Story;
  25. use App\Entity\Student;
  26. use App\Entity\StudentNote;
  27. use App\Entity\Team;
  28. use App\Entity\User;
  29. use App\Service\MySerializer;
  30. use App\Service\SocialMedia;
  31. use Doctrine\ORM\EntityManagerInterface;
  32. use Knp\Component\Pager\PaginatorInterface;
  33. use Symfony\Bridge\Twig\Mime\BodyRenderer;
  34. use Symfony\Bridge\Twig\Mime\TemplatedEmail;
  35. use Symfony\Component\DependencyInjection\ContainerInterface;
  36. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  37. use Symfony\Component\HttpFoundation\Cookie;
  38. use Symfony\Component\HttpFoundation\File\Exception\FileException;
  39. use Symfony\Component\HttpFoundation\JsonResponse;
  40. use Symfony\Component\HttpFoundation\RedirectResponse;
  41. use Symfony\Component\HttpFoundation\Request;
  42. use Symfony\Component\HttpFoundation\Response;
  43. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  44. use Symfony\Component\Mailer\Mailer;
  45. use Symfony\Component\Mailer\Transport;
  46. use Symfony\Contracts\HttpClient\Exception\TransportExceptionInterface;
  47. use Symfony\Contracts\HttpClient\HttpClientInterface;
  48. use Twig\Environment;
  49. use Twig\Error\LoaderError;
  50. use Twig\Loader\FilesystemLoader;
  51. class DefaultController extends BaseController
  52. {
  53.     private $session;
  54.     private $bag;
  55.     private $clientHttp;
  56.     /**
  57.      * DefaultController constructor.
  58.      * @param ContainerInterface $c
  59.      * @param EntityManagerInterface $em
  60.      * @param ParameterBagInterface $params
  61.      * @param SessionInterface $s
  62.      * @param ParameterBagInterface $bag
  63.      * @param HttpClientInterface $client
  64.      */
  65.     public function __construct(ContainerInterface $cEntityManagerInterface $emParameterBagInterface $paramsSessionInterface $sParameterBagInterface $bagHttpClientInterface $client)
  66.     {
  67.         $this->session $s;
  68.         $this->bag $bag;
  69.         $this->clientHttp $client;
  70.         parent::__construct($c,  $em$params);
  71.         $frontPages $this->em->getRepository(Page::class)->findBy(['isActive'=>true,'isFrontend'=>1,'stage'=>1],['isActive'=>'DESC','position'=>'ASC']);
  72.         foreach ($frontPages as $item){
  73.             $item->setTranslatableLocale($this->locale);
  74.             $this->em->refresh($item);
  75.             if($c->get('request_stack')->getMainRequest()->attributes->get('_route') === $item->getAdminLink()){
  76.                 $this->siteInfo['currentPage'] = $item;
  77.             }
  78.         }
  79.         $this->siteInfo['frontend_page'] = $frontPages;
  80.     }
  81.     public function index(Request $request):Response{
  82.         if(!is_null($request->query->get('l'))){
  83.             if(in_array($request->query->get('l'),['first','second','third'])){
  84.                 $response = new RedirectResponse($this->generateUrl('index'),302,[]);
  85.                 $response->headers->setCookie(Cookie::create('lang',$request->query->get('l'), 0'/'nullfalsefalse));
  86.                 return $response;
  87.             }
  88.         }
  89.         $page $this->em->getRepository(Page::class)->findOneBy(['adminLink'=>'admin_page_home']);
  90.         if($page === null){
  91.             $this->addFlash(
  92.                 'notice',
  93.                 $this->mycontainer->get('translator')->trans('page_not_found')
  94.             );
  95.             return $this->redirect($referer ?? '/');
  96.         }
  97.         $page->setTranslatableLocale($this->locale);
  98.         $this->em->refresh($page);
  99.         $this->siteInfo['page'] = $page;
  100.         $this->siteInfo['page_admink_link'] = $page->getAdminLink();
  101.         $images $this->em->getRepository(GalleryItem::class)->findBy(['isActive'=>1,'stage'=>1],['position'=>'ASC']);
  102.         $this->siteInfo['images_slider'] = [];
  103.         foreach ($images as $i){
  104.             $i->setTranslatableLocale($this->locale);
  105.             if($i->getPage() === $page){
  106.                 $this->siteInfo['images_slider'][]=$i;
  107.             }
  108.         }
  109.         $this->siteInfo['images'] = $images;
  110.         $school $this->em->getRepository(School::class)->findOneBy([]);
  111.         if($school !== null){
  112.             $schoolType $school->getSchoolType();
  113.             $schoolReligion $school->getSchoolReligion();
  114.             $schoolLanguage $school->getSchoolLanguage();
  115.             $schoolCycles $school->getSchoolCycles();
  116.             $schoolType->setTranslatableLocale($this->locale);
  117.             $this->em->refresh($schoolType);
  118.             $schoolReligion->setTranslatableLocale($this->locale);
  119.             $this->em->refresh($schoolReligion);
  120.             $schoolLanguage->setTranslatableLocale($this->locale);
  121.             $this->em->refresh($schoolLanguage);
  122.             $school->setTranslatableLocale($this->locale);
  123.             $this->em->refresh($school);
  124.             foreach ($schoolCycles as $sc){
  125.                 $sc->setTranslatableLocale($this->locale);
  126.                 $this->em->refresh($sc);
  127.                 $school->addSchoolCycle($sc);
  128.             }
  129.             $school->setSchoolType($schoolType);
  130.             $school->setSchoolReligion($schoolReligion);
  131.             $school->setSchoolLanguage($schoolLanguage);
  132.         }
  133.         $this->siteInfo['info'] = $school;
  134.         $pageBlog $this->em->getRepository(Page::class)->findOneBy(['adminLink'=>'admin_page_blog']);
  135.         if($pageBlog !== null && $pageBlog->getStage()){
  136.             $entities2 $this->em->getRepository(Article::class)->findBy(['isActive'=>true,'stage'=>1],['position'=>'ASC'],10,0);
  137.             $this->siteInfo['articles'] = [];
  138.             $this->siteInfo['educati_articles'] = [];
  139.             if(count($entities2)>0){
  140.                 foreach ($entities2 as $n){
  141.                     $cat $n->getCategory();
  142.                     $cat->setTranslatableLocale($this->locale);
  143.                     $this->em->refresh($cat);
  144.                     $n->setTranslatableLocale($this->locale);
  145.                     $this->em->refresh($n);
  146.                     $n->setCategory($cat);
  147.                 }
  148.                 $this->siteInfo['articles'] = $entities2;
  149.             }
  150.             if($this->siteInfo['school_global']['display_educati_news']){
  151.                 $index $request->query->getInt('page'1) -1;
  152.                 $url $this->bag->get('educati_articles')."/10/".$index.'?lang='.$this->locale;
  153.                 $curl curl_init($url);
  154.                 curl_setopt($curlCURLOPT_URL$url);
  155.                 curl_setopt($curlCURLOPT_RETURNTRANSFERtrue);
  156.                 curl_setopt($curlCURLOPT_SSL_VERIFYHOSTfalse);
  157.                 curl_setopt($curlCURLOPT_SSL_VERIFYPEERfalse);
  158.                 $resp curl_exec($curl);
  159.                 curl_close($curl);
  160.                 $content json_decode($resptrue);
  161.                 if($content['data'] === null){
  162.                     $content['data'] = [];
  163.                 }
  164.                 $this->siteInfo['educati_articles'] =$content['data'];
  165.             }
  166.             $this->siteInfo['display_articles'] =1;
  167.             $pageBlog->setTranslatableLocale($this->locale);
  168.             $this->em->refresh($pageBlog);
  169.             $this->siteInfo['page_blog'] =$pageBlog;
  170.         }
  171.         else{
  172.             $this->siteInfo['articles']=[];
  173.             $this->siteInfo['educati_articles'] = [];
  174.             $this->siteInfo['display_articles'] =0;
  175.         }
  176.         $notifs $this->em->getRepository(Notification::class)->findBy(['isActive'=>true,'stage'=>1],['date'=>'DESC']);
  177.         foreach ($notifs as $n){
  178.             $n->setTranslatableLocale($this->locale);
  179.             $this->em->refresh($n);
  180.         }
  181.         //$result = file_get_contents($this->bag->get('educati_notifications'));
  182.         //$content = json_decode($result, true);
  183.         $url $this->bag->get('educati_notifications').'?lang='.$this->locale;
  184.         $curl curl_init($url);
  185.         curl_setopt($curlCURLOPT_URL$url);
  186.         curl_setopt($curlCURLOPT_RETURNTRANSFERtrue);
  187.         curl_setopt($curlCURLOPT_SSL_VERIFYHOSTfalse);
  188.         curl_setopt($curlCURLOPT_SSL_VERIFYPEERfalse);
  189.         $resp curl_exec($curl);
  190.         curl_close($curl);
  191.         $content json_decode($resptrue);
  192.         $this->siteInfo['educati_notifs'] =$content['data'];
  193.         $this->siteInfo['school_notifs'] =$notifs;
  194.         $this->siteInfo['date_now'] =new \DateTime();
  195.         $this->siteInfo['events'] = [];
  196.         $this->siteInfo['event_page']='';
  197.         if($page->getModel()===3){
  198.             $pageCalendar $this->em->getRepository(Page::class)->findOneBy(['adminLink'=>'admin_page_calendar','stage'=>1]);
  199.             if($pageCalendar !== null){
  200.                 $pageCalendar->setTranslatableLocale($this->locale);
  201.                 $this->em->refresh($pageCalendar);
  202.                 $entitiesE $this->em->getRepository(EventSchool::class)->findBy(['isActive'=>true'stage'=>1],['dateEvent'=>'DESC']);
  203.                 $send =[];
  204.                 foreach ($entitiesE as $s){
  205.                     $s->setTranslatableLocale($this->locale);
  206.                     $this->em->refresh($s);
  207.                     $i $this->mycontainer->get(MySerializer::class)->singleObjectToArray($s,'event_all');
  208.                     $i['date_event2'] = explode('T',$i['date_event'])[0];
  209.                     if((new \DateTime())>$s->getDateEvent()){
  210.                         $i['past']='1';
  211.                     }
  212.                     else{
  213.                         $i['past']='0';
  214.                     }
  215.                     $send[] = $i;
  216.                 }
  217.                 $this->siteInfo['events'] = $send;
  218.                 $this->siteInfo['event_page'] = $pageCalendar->getName();
  219.             }
  220.         }
  221.         return $this->render('frontend/home/model_'.$page->getModel().'.html.twig'$this->siteInfo);
  222.         //return $this->render('frontend/home/model_1.html.twig', $this->siteInfo);
  223.     }
  224.     public function cgu():Response
  225.     {
  226.         return $this->render('cgu.html.twig'$this->siteInfo);
  227.     }
  228.     public function getOneEntity(Request $request,$entity$id): JsonResponse{
  229.         $class '';
  230.         $trans false;
  231.         $group '';
  232.         switch ($entity){
  233.             case 'story':
  234.                 $class Story::class;
  235.                 $trans true;
  236.                 $group 'story_all';
  237.                 break;
  238.             case 'event':
  239.                 $class EventSchool::class;
  240.                 $trans true;
  241.                 $group 'event_all';
  242.                 break;
  243.             case 'notification':
  244.                 $class Notification::class;
  245.                 $trans true;
  246.                 $group 'notif_all';
  247.                 break;
  248.             case 'infrastructure':
  249.                 $class Infrastructure::class;
  250.                 $trans true;
  251.                 $group 'infra_all';
  252.                 break;
  253.             case 'team':
  254.                 $class Team::class;
  255.                 $group 'team_all';
  256.                 break;
  257.             case 'admission':
  258.                 $class AdmissionInfo::class;
  259.                 $trans true;
  260.                 $group 'admission_all';
  261.                 break;
  262.             case 'gallery_item':
  263.                 $class GalleryItem::class;
  264.                 $trans true;
  265.                 $group 'gallery_all';
  266.                 break;
  267.             case 'club':
  268.                 $class Club::class;
  269.                 $trans true;
  270.                 $group 'club_all';
  271.                 break;
  272.             case 'partner':
  273.                 $class Partner::class;
  274.                 $trans true;
  275.                 $group 'partner_all';
  276.                 break;
  277.             case 'phone':
  278.                 $class Phone::class;
  279.                 $group 'phone_all';
  280.                 break;
  281.             case 'article':
  282.                 $class Article::class;
  283.                 $trans true;
  284.                 $group 'article_all';
  285.                 break;
  286.             case 'category':
  287.                 $class ArticleCategory::class;
  288.                 $trans true;
  289.                 $group 'category_all';
  290.                 break;
  291.             case 'open_hour':
  292.                 $class OpenDay::class;
  293.                 $trans false;
  294.                 $group 'day_all';
  295.                 break;
  296.             case 'class_level':
  297.                 $class ClassLevel::class;
  298.                 $trans false;
  299.                 $group 'level_all';
  300.                 break;
  301.             case 'course':
  302.                 $class ClassCourse::class;
  303.                 $trans true;
  304.                 $group 'course_all';
  305.                 break;
  306.             case 'school_test':
  307.                 $class SchoolTest::class;
  308.                 $trans false;
  309.                 $group 'school_test_all';
  310.                 break;
  311.             case 'student':
  312.                 $class Student::class;
  313.                 $trans false;
  314.                 $group 'student_all';
  315.                 break;
  316.             case 'class':
  317.                 $class ClassLevelItem::class;
  318.                 $trans false;
  319.                 $group 'level_item_all';
  320.                 break;
  321.             default:
  322.                 return new JsonResponse(["data"=>null,"message"=>"bad object"],401);
  323.         }
  324.         $item $this->em->getRepository($class)->findOneBy(['id'=>$id]);
  325.         if($trans){
  326.             $item->setTranslatableLocale($this->locale);
  327.             $this->em->refresh($item);
  328.         }
  329.         if($item !== null){
  330.             $data $this->mycontainer->get(MySerializer::class)->singleObjectToArray($item,$group);
  331.             return new JsonResponse(['data'=>$data,'message'=>''],201);
  332.         }
  333.         return new JsonResponse(["data"=>null,"message"=>$this->mycontainer->get('translator')->trans('object_not_found')],401);
  334.     }
  335.     public function getTeamByDepartement(Request $request$id): JsonResponse{
  336.         $dept $this->em->getRepository(SchoolDepartment::class)->findOneBy(['id'=>$id]);
  337.         if($dept !== null){
  338.             $teams $this->em->getRepository(Team::class)->findBy(['department'=>$dept,'isActive'=>true,'stage'=>1]);
  339.             $r = [];
  340.             foreach ($teams as $t){
  341.                 $r[] = $this->mycontainer->get(MySerializer::class)->singleObjectToArray($t,'team_all');
  342.             }
  343.             return new JsonResponse(["data"=>$r,"message"=>''],201);
  344.         }
  345.         return new JsonResponse(["data"=>null,"message"=>$this->mycontainer->get('translator')->trans('object_not_found')],401);
  346.     }
  347.     public function getClassCourseList(Request $request$id): JsonResponse{
  348.         $class $this->em->getRepository(ClassLevel::class)->findOneBy(['id'=>$id]);
  349.         if($class === null){
  350.             return new JsonResponse(["data"=>null,"message"=>$this->mycontainer->get('translator')->trans('object_not_found')],401);
  351.         }
  352.         $classAndCourse $this->em->getRepository(ClassLevelAndCourse::class)->findBy(['classLevel'=>$class]);
  353.         $data = [];
  354.         foreach ($classAndCourse as $i){
  355.             $data[] = $this->mycontainer->get(MySerializer::class)->singleObjectToArray($i,'class_course_all');
  356.         }
  357.         return new JsonResponse(["data"=>$data,"message"=>""],201);
  358.     }
  359.     public function showFrontendPage(Request $request$slugPaginatorInterface $paginator=null){
  360.         $referer $request->headers->get('referer');
  361.         $page $this->em->getRepository(Page::class)->findOneBy(['slug'=>$slug]);
  362.         if($page === null){
  363.             $this->addFlash(
  364.                 'notice',
  365.                 $this->mycontainer->get('translator')->trans('page_not_found')
  366.             );
  367.             return $this->redirect($referer ?? '/');
  368.         }
  369.         $page->setTranslatableLocale($this->locale);
  370.         $this->em->refresh($page);
  371.         $this->siteInfo['page'] = $page;
  372.         $this->siteInfo['page_admink_link'] = $page->getAdminLink();
  373.         switch ($page->getAdminLink()){
  374.             case 'admin_page_home':
  375.                 $images $this->em->getRepository(GalleryItem::class)->findBy(['isActive'=>1,'stage'=>1],['position'=>'ASC'],9,0);
  376.                 $this->siteInfo['images_slider'] = [];
  377.                 foreach ($images as $i){
  378.                     $i->setTranslatableLocale($this->locale);
  379.                     if($i->getPage() === $page){
  380.                         $this->siteInfo['images_slider'][]=$i;
  381.                     }
  382.                 }
  383.                 $this->siteInfo['images'] = $images;
  384.                 $school $this->em->getRepository(School::class)->findOneBy([]);
  385.                 if($school !== null){
  386.                     $schoolType $school->getSchoolType();
  387.                     $schoolReligion $school->getSchoolReligion();
  388.                     $schoolLanguage $school->getSchoolLanguage();
  389.                     $schoolCycles $school->getSchoolCycles();
  390.                     $schoolType->setTranslatableLocale($this->locale);
  391.                     $this->em->refresh($schoolType);
  392.                     $schoolReligion->setTranslatableLocale($this->locale);
  393.                     $this->em->refresh($schoolReligion);
  394.                     $schoolLanguage->setTranslatableLocale($this->locale);
  395.                     $this->em->refresh($schoolLanguage);
  396.                     $school->setTranslatableLocale($this->locale);
  397.                     $this->em->refresh($school);
  398.                     foreach ($schoolCycles as $sc){
  399.                         $sc->setTranslatableLocale($this->locale);
  400.                         $this->em->refresh($sc);
  401.                         $school->addSchoolCycle($sc);
  402.                     }
  403.                     $school->setSchoolType($schoolType);
  404.                     $school->setSchoolReligion($schoolReligion);
  405.                     $school->setSchoolLanguage($schoolLanguage);
  406.                 }
  407.                 $this->siteInfo['info'] = $school;
  408.                 $pageBlog $this->em->getRepository(Page::class)->findOneBy(['adminLink'=>'admin_page_blog']);
  409.                 if($pageBlog !== null && $pageBlog->getStage()){
  410.                     $entities2 $this->em->getRepository(Article::class)->findBy(['isActive'=>true,'stage'=>1],['position'=>'ASC'],10,0);
  411.                     $this->siteInfo['articles'] = [];
  412.                     $this->siteInfo['educati_articles'] = [];
  413.                     if(count($entities2)>0){
  414.                         foreach ($entities2 as $n){
  415.                             $cat $n->getCategory();
  416.                             $cat->setTranslatableLocale($this->locale);
  417.                             $this->em->refresh($cat);
  418.                             $n->setTranslatableLocale($this->locale);
  419.                             $this->em->refresh($n);
  420.                             $n->setCategory($cat);
  421.                         }
  422.                         $this->siteInfo['articles'] = $entities2;
  423.                     }
  424.                     if($this->siteInfo['school_global']['display_educati_news']){
  425.                         $index $request->query->getInt('page'1) -1;
  426.                         $url $this->bag->get('educati_articles')."/10/".$index.'?lang='.$this->locale;
  427.                         $curl curl_init($url);
  428.                         curl_setopt($curlCURLOPT_URL$url);
  429.                         curl_setopt($curlCURLOPT_RETURNTRANSFERtrue);
  430.                         curl_setopt($curlCURLOPT_SSL_VERIFYHOSTfalse);
  431.                         curl_setopt($curlCURLOPT_SSL_VERIFYPEERfalse);
  432.                         $resp curl_exec($curl);
  433.                         curl_close($curl);
  434.                         $content json_decode($resptrue);
  435.                         if($content['data'] === null){
  436.                             $content['data'] = [];
  437.                         }
  438.                         $this->siteInfo['educati_articles'] =$content['data'];
  439.                     }
  440.                     $this->siteInfo['display_articles'] =1;
  441.                     $pageBlog->setTranslatableLocale($this->locale);
  442.                     $this->em->refresh($pageBlog);
  443.                     $this->siteInfo['page_blog'] =$pageBlog;
  444.                 }
  445.                 else{
  446.                     $this->siteInfo['articles']=[];
  447.                     $this->siteInfo['educati_articles'] = [];
  448.                     $this->siteInfo['display_articles']=0;
  449.                 }
  450.                 //$result = file_get_contents($this->bag->get('educati_notifications'));
  451.                 //$content = json_decode($result, true);
  452.                 $url $this->bag->get('educati_notifications').'?lang='.$this->locale;
  453.                 $curl curl_init($url);
  454.                 curl_setopt($curlCURLOPT_URL$url);
  455.                 curl_setopt($curlCURLOPT_RETURNTRANSFERtrue);
  456.                 curl_setopt($curlCURLOPT_SSL_VERIFYHOSTfalse);
  457.                 curl_setopt($curlCURLOPT_SSL_VERIFYPEERfalse);
  458.                 $resp curl_exec($curl);
  459.                 curl_close($curl);
  460.                 $content json_decode($resptrue);
  461.                 $notifs $this->em->getRepository(Notification::class)->findBy(['isActive'=>true,'stage'=>1],['date'=>'DESC']);
  462.                 foreach ($notifs as $n){
  463.                     $n->setTranslatableLocale($this->locale);
  464.                     $this->em->refresh($n);
  465.                 }
  466.                 $this->siteInfo['educati_notifs'] =$content['data'];
  467.                 $this->siteInfo['school_notifs'] =$notifs;
  468.                 $this->siteInfo['date_now'] =new \DateTime();
  469.                 /*switch ($page->getModel()){
  470.                     case 1:
  471.                         return $this->render('frontend/home/model_1.html.twig', $this->siteInfo);
  472.                     default:
  473.                         break;
  474.                 }*/
  475.                 return $this->render('frontend/home/model_'.$page->getModel().'.html.twig'$this->siteInfo);
  476.             case 'admin_page_director_speech':
  477.                 switch ($page->getModel()){
  478.                     case 1:
  479.                         return $this->render('frontend/director_speech/model_1.html.twig'$this->siteInfo);
  480.                     default:
  481.                         break;
  482.                 }
  483.                 return $this->render('frontend/director_speech/model_1.html.twig'$this->siteInfo);
  484.             case 'admin_page_about_us':
  485.                 switch ($page->getModel()){
  486.                     case 1:
  487.                         return $this->render('frontend/about_us/model_1.html.twig'$this->siteInfo);
  488.                     default:
  489.                         break;
  490.                 }
  491.                 return $this->render('frontend/about_us/model_1.html.twig'$this->siteInfo);
  492.             case 'admin_page_our_mission':
  493.                 switch ($page->getModel()){
  494.                     case 1:
  495.                         return $this->render('frontend/our_mission/model_1.html.twig'$this->siteInfo);
  496.                     default:
  497.                         break;
  498.                 }
  499.                 return $this->render('frontend/about_us/model_1.html.twig'$this->siteInfo);
  500.             case 'admin_page_story':
  501.                 $entities $this->em->getRepository(Story::class)->findBy(['isActive'=>true,'stage'=>1],['position'=>'ASC']);
  502.                 foreach ($entities as $s){
  503.                     $s->setTranslatableLocale($this->locale);
  504.                     $this->em->refresh($s);
  505.                 }
  506.                 $this->siteInfo['stories'] = $entities;
  507.                 switch ($page->getModel()){
  508.                     case 1:
  509.                         return $this->render('frontend/our_story/model_1.html.twig'$this->siteInfo);
  510.                     default:
  511.                         break;
  512.                 }
  513.                 return $this->render('frontend/our_story/model_1.html.twig'$this->siteInfo);
  514.             case 'admin_page_team':
  515.                 $entities $this->em->getRepository(Team::class)->findBy(['isActive'=>true,'stage'=>1],['rank'=>'ASC']);
  516.                 $this->siteInfo['teams'] = $entities;
  517.                 switch ($page->getModel()){
  518.                     case 1:
  519.                         return $this->render('frontend/team/model_1.html.twig'$this->siteInfo);
  520.                     default:
  521.                         break;
  522.                 }
  523.                 return $this->render('frontend/team/model_1.html.twig'$this->siteInfo);
  524.             case 'admin_page_activity':
  525.                 $entities $this->em->getRepository(Club::class)->findBy(['isActive'=>true,'stage'=>1],['position'=>'ASC']);
  526.                 foreach ($entities as $s){
  527.                     $s->setTranslatableLocale($this->locale);
  528.                     $this->em->refresh($s);
  529.                 }
  530.                 $this->siteInfo['clubs'] = $entities;
  531.                 switch ($page->getModel()){
  532.                     case 1:
  533.                         return $this->render('frontend/club/model_1.html.twig'$this->siteInfo);
  534.                     default:
  535.                         break;
  536.                 }
  537.                 return $this->render('frontend/club/model_1.html.twig'$this->siteInfo);
  538.             case 'admin_page_infrastructure':
  539.                 $entities $this->em->getRepository(Infrastructure::class)->findBy(['isActive'=>true,'stage'=>1],['position'=>'ASC']);
  540.                 foreach ($entities as $s){
  541.                     $s->setTranslatableLocale($this->locale);
  542.                     $this->em->refresh($s);
  543.                 }
  544.                 $this->siteInfo['infras'] = $entities;
  545.                 switch ($page->getModel()){
  546.                     case 1:
  547.                         return $this->render('frontend/infrastructure/model_1.html.twig'$this->siteInfo);
  548.                     default:
  549.                         break;
  550.                 }
  551.                 return $this->render('frontend/infrastructure/model_1.html.twig'$this->siteInfo);
  552.             case 'admin_page_pedagogy':
  553.                 $entities $this->em->getRepository(ClassLevel::class)->findBy(['isActive'=>true,'stage'=>1],['position'=>'ASC']);
  554.                 $entities2 $this->em->getRepository(SchoolDepartment::class)->findBy(['isActive'=>true],['id'=>'ASC']);
  555.                 foreach ($entities as $s){
  556.                     $s->setTranslatableLocale($this->locale);
  557.                     $this->em->refresh($s);
  558.                 }
  559.                 foreach ($entities2 as $s){
  560.                     $s->setTranslatableLocale($this->locale);
  561.                     $this->em->refresh($s);
  562.                 }
  563.                 $this->siteInfo['classes'] = $entities;
  564.                 $this->siteInfo['departments'] = $entities2;
  565.                 switch ($page->getModel()){
  566.                     case 1:
  567.                         return $this->render('frontend/pedagogy/model_1.html.twig'$this->siteInfo);
  568.                     default:
  569.                         break;
  570.                 }
  571.                 return $this->render('frontend/pedagogy/model_1.html.twig'$this->siteInfo);
  572.             case 'admin_page_admission':
  573.                 $entities $this->em->getRepository(AdmissionInfo::class)->findBy(['isActive'=>true,'stage'=>1]);
  574.                 $entities2 $this->em->getRepository(AdmissionPage::class)->findBy(['isActive'=>true,]);
  575.                 foreach ($entities as $s){
  576.                     $s->setTranslatableLocale($this->locale);
  577.                     $this->em->refresh($s);
  578.                 }
  579.                 foreach ($entities2 as $s){
  580.                     $s->setTranslatableLocale($this->locale);
  581.                     $this->em->refresh($s);
  582.                 }
  583.                 $this->siteInfo['admission_pages'] = $entities2;
  584.                 $this->siteInfo['admission_infos'] = $entities;
  585.                 switch ($page->getModel()){
  586.                     case 1:
  587.                         return $this->render('frontend/admission/model_1.html.twig'$this->siteInfo);
  588.                     default:
  589.                         break;
  590.                 }
  591.                 return $this->render('frontend/admission/model_1.html.twig'$this->siteInfo);
  592.             case 'admin_page_calendar':
  593.                 $entities $this->em->getRepository(EventSchool::class)->findBy(['isActive'=>true'stage'=>1],['dateEvent'=>'DES']);
  594.                 $send =[];
  595.                 foreach ($entities as $s){
  596.                     $s->setTranslatableLocale($this->locale);
  597.                     $this->em->refresh($s);
  598.                     $i $this->mycontainer->get(MySerializer::class)->singleObjectToArray($s,'event_all');
  599.                     $i['date_event2'] = explode('T',$i['date_event'])[0];
  600.                     if((new \DateTime())>$s->getDateEvent()){
  601.                         $i['past']='1';
  602.                     }
  603.                     else{
  604.                         $i['past']='0';
  605.                     }
  606.                     $send[] = $i;
  607.                 }
  608.                 $this->siteInfo['events'] = $send;
  609.                 switch ($page->getModel()){
  610.                     case 1:
  611.                         return $this->render('frontend/calendar/model_1.html.twig'$this->siteInfo);
  612.                     default:
  613.                         break;
  614.                 }
  615.                 return $this->render('frontend/calendar/model_1.html.twig'$this->siteInfo);
  616.             case 'admin_page_partner':
  617.                 $entities $this->em->getRepository(Partner::class)->findBy(['isActive'=>true,'stage'=>1],['position'=>'ASC']);
  618.                 foreach ($entities as $s){
  619.                     $s->setTranslatableLocale($this->locale);
  620.                     $this->em->refresh($s);
  621.                 }
  622.                 $this->siteInfo['partners'] = $entities;
  623.                 switch ($page->getModel()){
  624.                     case 1:
  625.                         return $this->render('frontend/partner/model_1.html.twig'$this->siteInfo);
  626.                     default:
  627.                         break;
  628.                 }
  629.                 return $this->render('frontend/partner/model_1.html.twig'$this->siteInfo);
  630.             case 'admin_page_gallery':
  631.                 $entities $this->em->getRepository(GalleryItem::class)->findBy(['isActive'=>true,'stage'=>1]);
  632.                 foreach ($entities as $s){
  633.                     $s->setTranslatableLocale($this->locale);
  634.                     $this->em->refresh($s);
  635.                 }
  636.                 $this->siteInfo['items'] = $entities;
  637.                 switch ($page->getModel()){
  638.                     case 1:
  639.                         return $this->render('frontend/gallery/model_1.html.twig'$this->siteInfo);
  640.                     default:
  641.                         break;
  642.                 }
  643.                 return $this->render('frontend/gallery/model_1.html.twig'$this->siteInfo);
  644.             case 'admin_page_contact':
  645.                 $entities $this->em->getRepository(Phone::class)->findBy(['isActive'=>true,'stage'=>1]);
  646.                 $entities2 $this->em->getRepository(OpenDay::class)->findBy(['isActive'=>true,'stage'=>1]);
  647.                 $this->siteInfo['phones'] = $entities;
  648.                 $this->siteInfo['days'] = $entities2;
  649.                 switch ($page->getModel()){
  650.                     case 1:
  651.                         return $this->render('frontend/contact/model_1.html.twig'$this->siteInfo);
  652.                     default:
  653.                         break;
  654.                 }
  655.                 return $this->render('frontend/contact/model_1.html.twig'$this->siteInfo);
  656.             case 'admin_page_blog':
  657.                 $entities $this->em->getRepository(ArticleCategory::class)->findBy(['isActive'=>true,'stage'=>1]);
  658.                 $entities2 $this->em->getRepository(Article::class)->findBy(['isActive'=>true,'stage'=>1],['position'=>'ASC','id'=>'DESC']);
  659.                 $totalAr count($entities2);
  660.                 $notifs $this->em->getRepository(Notification::class)->findBy(['isActive'=>true,'stage'=>1],['date'=>'DESC']);
  661.                 foreach ($notifs as $n){
  662.                     $n->setTranslatableLocale($this->locale);
  663.                     $this->em->refresh($n);
  664.                 }
  665.                 foreach ($entities as $n){
  666.                     $n->setTranslatableLocale($this->locale);
  667.                     $this->em->refresh($n);
  668.                 }
  669.                 foreach ($entities2 as $n){
  670.                     $cat $n->getCategory();
  671.                     $cat->setTranslatableLocale($this->locale);
  672.                     $this->em->refresh($cat);
  673.                     $n->setTranslatableLocale($this->locale);
  674.                     $this->em->refresh($n);
  675.                     $n->setCategory($cat);
  676.                 }
  677.                 //$result = file_get_contents($this->bag->get('educati_notifications'));
  678.                 //$content = json_decode($result, true);
  679.                 $url $this->bag->get('educati_notifications').'?lang='.$this->locale;
  680.                 $curl curl_init($url);
  681.                 curl_setopt($curlCURLOPT_URL$url);
  682.                 curl_setopt($curlCURLOPT_RETURNTRANSFERtrue);
  683.                 curl_setopt($curlCURLOPT_SSL_VERIFYHOSTfalse);
  684.                 curl_setopt($curlCURLOPT_SSL_VERIFYPEERfalse);
  685.                 $resp curl_exec($curl);
  686.                 curl_close($curl);
  687.                 $content json_decode($resptrue);
  688.                 $this->siteInfo['educati_notifs'] =$content['data'];
  689.                 $this->siteInfo['school_notifs'] =$notifs;
  690.                 $this->siteInfo['date_now'] =new \DateTime();
  691.                 $articles $paginator->paginate(
  692.                     $entities2,$request->query->getInt('page'1), 10
  693.                 );
  694.                 $this->siteInfo['categories'] = $entities;
  695.                 $this->siteInfo['articles'] = $articles;
  696.                 $this->siteInfo['articles_to_display'] = $articles;
  697.                 if($this->siteInfo['school_global']['display_educati_news']){
  698.                     $index $request->query->getInt('page'1) -1;
  699.                     $url $this->bag->get('educati_articles')."/10/".$index.'?lang='.$this->locale;
  700.                     $curl curl_init($url);
  701.                     curl_setopt($curlCURLOPT_URL$url);
  702.                     curl_setopt($curlCURLOPT_RETURNTRANSFERtrue);
  703.                     curl_setopt($curlCURLOPT_SSL_VERIFYHOSTfalse);
  704.                     curl_setopt($curlCURLOPT_SSL_VERIFYPEERfalse);
  705.                     $resp curl_exec($curl);
  706.                     curl_close($curl);
  707.                     $content json_decode($resptrue);
  708.                     $this->siteInfo['educati_articles'] = $content['data']===null?[]:$content['data'];
  709.                     if($content['data'] === null){
  710.                         $content['data'] = [];
  711.                     }
  712.                     $this->siteInfo['articles_to_display'] = array_merge($articles->getItems(),$content['data']);
  713.                     shuffle($this->siteInfo['articles_to_display']);
  714.                 }
  715.                 switch ($page->getModel()){
  716.                     case 1:
  717.                         return $this->render('frontend/blog/model_1.html.twig'$this->siteInfo);
  718.                     default:
  719.                         break;
  720.                 }
  721.                 return $this->render('frontend/blog/model_1.html.twig'$this->siteInfo);
  722.             case 'admin_page_bank_of_test':
  723.                 switch ($page->getModel()){
  724.                     case 1:
  725.                         $class $request->query->get('class');
  726.                         $level $request->query->get('level');
  727.                         $field $request->query->get('field');
  728.                         $arrayFilter = ['isActive'=>true,'stage'=>1];
  729.                         if($class !== null && strlen($class)>&& $class!= "x"){
  730.                             $arrayFilter['schoolClass']=$class;
  731.                         }
  732.                         if($level !== null && strlen($level)>&& $level!= "x"){
  733.                             $arrayFilter['difficultyLevel']=$level;
  734.                         }
  735.                         if($field !== null && strlen($field)>&& $field!= "x"){
  736.                             $arrayFilter['classCourse']=$field;
  737.                         }
  738.                         $entities $this->em->getRepository(SchoolTest::class)->findBy($arrayFilter,['date'=>'DESC']);
  739.                         $classesLevel $this->em->getRepository(ClassLevel::class)->findBy(['isActive'=>true],['position'=>'ASC']);
  740.                         $courses $this->em->getRepository(ClassCourse::class)->findBy(['isActive'=>true],['position'=>'ASC']);
  741.                         $this->siteInfo['class_level'] = [];
  742.                         $this->siteInfo['courses'] = [];
  743.                         foreach ($courses as $e){
  744.                             $e->setTranslatableLocale($this->locale);
  745.                             $this->em->refresh($e);
  746.                             $this->siteInfo['courses'][]=$e;
  747.                         }
  748.                         foreach ($classesLevel as $e){
  749.                             $e->setTranslatableLocale($this->locale);
  750.                             $this->em->refresh($e);
  751.                             $this->siteInfo['class_level'][]=$e;
  752.                         }
  753.                         foreach ($entities as $n){
  754.                             $cat $n->getClassCourse();
  755.                             $cat->setTranslatableLocale($this->locale);
  756.                             $this->em->refresh($cat);
  757.                             $cl $n->getSchoolClass();
  758.                             $cl->setTranslatableLocale($this->locale);
  759.                             $this->em->refresh($cl);
  760.                             $n->setClassCourse($cat);
  761.                             $n->setSchoolClass($cl);
  762.                         }
  763.                         $tests $paginator->paginate(
  764.                             $entities,$request->query->getInt('page'1), 20
  765.                         );
  766.                         $this->siteInfo['tests'] = $tests;
  767.                         return $this->render('frontend/bank_of_test/model_1.html.twig'$this->siteInfo);
  768.                     default:
  769.                         break;
  770.                 }
  771.                 return $this->render('frontend/home/model_1.html.twig'$this->siteInfo);
  772.             case 'admin_page_students':
  773.                 switch ($page->getModel()){
  774.                     case 1:
  775.                         $cu $this->mycontainer->get('security.token_storage')->getToken();
  776.                         $res = [];
  777.                         if($cu !== null && $cu !=='.anon'){
  778.                             $cu $cu->getUser();
  779.                             $students $this->em->getRepository(StudentNote::class)->findByParent($cu->getEmail());
  780.                             foreach ($students as $item){
  781.                                 $key $item->getStudent()->getRegistrationNumber();
  782.                                 if(!array_key_exists(trim($key),$res)){
  783.                                     $res[trim($key)]=['name'=>$item->getStudent()->getName()." ".$item->getStudent()->getSurName(),'notes'=>[],'class'=>$item->getStudent()->getClassLevelItem()->getName()];
  784.                                     $res[trim($key)]['notes'][]=$item;
  785.                                 }
  786.                                 else{
  787.                                     $res[trim($key)]['notes'][]=$item;
  788.                                 }
  789.                             }
  790.                         }
  791.                         $this->siteInfo['data']=$res;
  792.                         return $this->render('frontend/student_mark/model_1.html.twig'$this->siteInfo);
  793.                     default:
  794.                         break;
  795.                 }
  796.                 return $this->render('frontend/home/model_1.html.twig'$this->siteInfo);
  797.         }
  798.     }
  799.     public function showArticleCategory(Request $request,$slugPaginatorInterface $paginator){
  800.         $referer $request->headers->get('referer');
  801.         $page $this->em->getRepository(Page::class)->findOneBy(['adminLink'=>'admin_page_blog']);
  802.         if($page === null){
  803.             $this->addFlash(
  804.                 'notice',
  805.                 $this->mycontainer->get('translator')->trans('page_not_found')
  806.             );
  807.             return $this->redirect($referer ?? '/');
  808.         }
  809.         $page->setTranslatableLocale($this->locale);
  810.         $this->em->refresh($page);
  811.         $this->siteInfo['page'] = $page;
  812.         $this->siteInfo['page_admink_link'] = $page->getAdminLink();
  813.         $category $this->em->getRepository(ArticleCategory::class)->findOneBy(['slug'=>$slug]);
  814.         if($category === null){
  815.             $this->addFlash(
  816.                 'notice',
  817.                 $this->mycontainer->get('translator')->trans('page_not_found')
  818.             );
  819.             return $this->redirect($referer ?? '/');
  820.         }
  821.         $entities2 $this->em->getRepository(Article::class)->findBy(['isActive'=>true,'stage'=>1,'category'=>$category],['position'=>'ASC','id'=>'DESC']);
  822.         foreach ($entities2 as $n){
  823.             $cat $n->getCategory();
  824.             $cat->setTranslatableLocale($this->locale);
  825.             $this->em->refresh($cat);
  826.             $n->setTranslatableLocale($this->locale);
  827.             $this->em->refresh($n);
  828.             $n->setCategory($cat);
  829.         }
  830.         $articles $paginator->paginate(
  831.             $entities2,$request->query->getInt('page'1), 10
  832.         );
  833.         $entities $this->em->getRepository(ArticleCategory::class)->findBy(['isActive'=>true,'stage'=>1]);
  834.         foreach ($entities as $n){
  835.             $n->setTranslatableLocale($this->locale);
  836.             $this->em->refresh($n);
  837.         }
  838.         $this->siteInfo['articles'] = $articles;
  839.         $this->siteInfo['categories'] = $entities;
  840.         $this->siteInfo['cat_current'] = $category->getId();
  841.         $this->siteInfo['articles_to_display'] = $articles;
  842.         if($this->siteInfo['school_global']['display_educati_news']){
  843.             $index $request->query->getInt('page'1) -1;
  844.             //$result = file_get_contents($this->bag->get('educati_articles')."/3/".$index);
  845.             //$content = json_decode($result, true);
  846.             $url $this->bag->get('educati_articles')."/10/".$index;
  847.             $curl curl_init($url);
  848.             curl_setopt($curlCURLOPT_URL$url);
  849.             curl_setopt($curlCURLOPT_RETURNTRANSFERtrue);
  850.             curl_setopt($curlCURLOPT_SSL_VERIFYHOSTfalse);
  851.             curl_setopt($curlCURLOPT_SSL_VERIFYPEERfalse);
  852.             $resp curl_exec($curl);
  853.             curl_close($curl);
  854.             $content json_decode($resptrue);
  855.             if($content['data'] === null){
  856.                 $content['data'] = [];
  857.             }
  858.             $this->siteInfo['educati_articles'] =$content['data'];
  859.             $this->siteInfo['articles_to_display'] = array_merge($articles->getItems(),$content['data']);
  860.             shuffle($this->siteInfo['articles_to_display']);
  861.         }
  862.         return $this->render('frontend/blog/articles_model_1.html.twig'$this->siteInfo);
  863.     }
  864.     public function showArticleByUser(Request $request,$idPaginatorInterface $paginator){
  865.         $referer $request->headers->get('referer');
  866.         $page $this->em->getRepository(Page::class)->findOneBy(['adminLink'=>'admin_page_blog']);
  867.         if($page === null){
  868.             $this->addFlash(
  869.                 'notice',
  870.                 $this->mycontainer->get('translator')->trans('page_not_found')
  871.             );
  872.             return $this->redirect($referer ?? '/');
  873.         }
  874.         $page->setTranslatableLocale($this->locale);
  875.         $this->em->refresh($page);
  876.         $this->siteInfo['page'] = $page;
  877.         $this->siteInfo['page_admink_link'] = $page->getAdminLink();
  878.         $tab explode('-',$id);
  879.         $user $this->em->getRepository(User::class)->findOneBy(['id'=>$tab[array_key_last($tab)]]);
  880.         if($user === null){
  881.             $this->addFlash(
  882.                 'notice',
  883.                 $this->mycontainer->get('translator')->trans('user_not_found')
  884.             );
  885.             return $this->redirect($referer ?? '/');
  886.         }
  887.         $entities2 $this->em->getRepository(Article::class)->findBy(['isActive'=>true,'stage'=>1,'user'=>$user],['position'=>'ASC','id'=>'DESC']);
  888.         foreach ($entities2 as $n){
  889.             $cat $n->getCategory();
  890.             $cat->setTranslatableLocale($this->locale);
  891.             $this->em->refresh($cat);
  892.             $n->setTranslatableLocale($this->locale);
  893.             $this->em->refresh($n);
  894.             $n->setCategory($cat);
  895.         }
  896.         $articles $paginator->paginate(
  897.             $entities2,$request->query->getInt('page'1), 10
  898.         );
  899.         $entities $this->em->getRepository(ArticleCategory::class)->findBy(['isActive'=>true,'stage'=>1]);
  900.         foreach ($entities as $n){
  901.             $n->setTranslatableLocale($this->locale);
  902.             $this->em->refresh($n);
  903.         }
  904.         $this->siteInfo['articles'] = $articles;
  905.         $this->siteInfo['categories'] = $entities;
  906.         $this->siteInfo['user'] = $user;
  907.         $this->siteInfo['articles_to_display'] = $articles;
  908.         if($this->siteInfo['school_global']['display_educati_news']){
  909.             $index $request->query->getInt('page'1) -1;
  910.             //$result = file_get_contents($this->bag->get('educati_articles')."/3/".$index);
  911.             //$content = json_decode($result, true);
  912.             $url $this->bag->get('educati_articles')."/10/".$index.'?lang='.$this->locale;
  913.             $curl curl_init($url);
  914.             curl_setopt($curlCURLOPT_URL$url);
  915.             curl_setopt($curlCURLOPT_RETURNTRANSFERtrue);
  916.             curl_setopt($curlCURLOPT_SSL_VERIFYHOSTfalse);
  917.             curl_setopt($curlCURLOPT_SSL_VERIFYPEERfalse);
  918.             $resp curl_exec($curl);
  919.             curl_close($curl);
  920.             $content json_decode($resptrue);
  921.             $this->siteInfo['educati_articles'] =$content['data'];
  922.             if($content['data'] === null){
  923.                 $content['data'] = [];
  924.             }
  925.             $this->siteInfo['articles_to_display'] = array_merge($articles->getItems(),$content['data']);
  926.             shuffle($this->siteInfo['articles_to_display']);
  927.         }
  928.         return $this->render('frontend/blog/articles_user_model_1.html.twig'$this->siteInfo);
  929.     }
  930.     public function showArticle(Request $request$slug){
  931.         $referer $request->headers->get('referer');
  932.         $article $this->em->getRepository(Article::class)->findOneBy(['slug'=>$slug]);
  933.         if($article === null){
  934.             $this->addFlash(
  935.                 'notice',
  936.                 $this->mycontainer->get('translator')->trans('page_not_found')
  937.             );
  938.             return $this->redirect($referer ?? '/');
  939.         }
  940.             $cat $article->getCategory();
  941.             $cat->setTranslatableLocale($this->locale);
  942.             $this->em->refresh($cat);
  943.             $article->setTranslatableLocale($this->locale);
  944.             $this->em->refresh($article);
  945.             $article->setCategory($cat);
  946.         $page $this->em->getRepository(Page::class)->findOneBy(['adminLink'=>'admin_page_blog']);
  947.         if($page === null){
  948.             $this->addFlash(
  949.                 'notice',
  950.                 $this->mycontainer->get('translator')->trans('page_not_found')
  951.             );
  952.             return $this->redirect($referer ?? '/');
  953.         }
  954.         $page->setTranslatableLocale($this->locale);
  955.         $this->em->refresh($page);
  956.         $this->siteInfo['page'] = $page;
  957.         $this->siteInfo['page_admink_link'] = $page->getAdminLink();
  958.         $recents $this->em->getRepository(Article::class)->findRecentExcept($article->getId());
  959.         foreach ($recents as $n){
  960.             $cat $n->getCategory();
  961.             $cat->setTranslatableLocale($this->locale);
  962.             $this->em->refresh($cat);
  963.             $n->setTranslatableLocale($this->locale);
  964.             $this->em->refresh($n);
  965.             $n->setCategory($cat);
  966.         }
  967.         $this->siteInfo['article'] = $article;
  968.         $this->siteInfo['recents'] = $recents;
  969.         $social = new SocialMedia();
  970.         $links $social->GetSocialMediaSiteLinks_WithShareLinks([
  971.             'url'=>$this->bag->get('base_url').$this->generateUrl('blog_show_article',['slug'=>$article->getSlug()]),
  972.             'title'=>$article->getTitle()
  973.         ]);
  974.         $this->siteInfo['links'] = $links;
  975.         $this->siteInfo['articles_to_display'] = $recents;
  976.         if($this->siteInfo['school_global']['display_educati_news']){
  977.             $index $request->query->getInt('page'1) -1;
  978.             //$result = file_get_contents($this->bag->get('educati_articles')."/5/".$index);
  979.             //$content = json_decode($result, true);
  980.             $url $this->bag->get('educati_articles')."/10/".$index.'?lang='.$this->locale;
  981.             $curl curl_init($url);
  982.             curl_setopt($curlCURLOPT_URL$url);
  983.             curl_setopt($curlCURLOPT_RETURNTRANSFERtrue);
  984.             curl_setopt($curlCURLOPT_SSL_VERIFYHOSTfalse);
  985.             curl_setopt($curlCURLOPT_SSL_VERIFYPEERfalse);
  986.             $resp curl_exec($curl);
  987.             curl_close($curl);
  988.             $content json_decode($resptrue);
  989.             $this->siteInfo['educati_articles'] =$content['data'];
  990.             if($content['data'] === null){
  991.                 $content['data'] = [];
  992.             }
  993.             $this->siteInfo['articles_to_display'] = array_merge($recents,$content['data']);
  994.             shuffle($this->siteInfo['articles_to_display']);
  995.         }
  996.         return $this->render('frontend/blog/show_article_model_1.html.twig'$this->siteInfo);
  997.     }
  998.     public function summarySchool(Request $request){
  999.         $school $this->em->getRepository(School::class)->findOneBy([]);
  1000.         if($school !== null){
  1001.             $schoolType $school->getSchoolType();
  1002.             $schoolReligion $school->getSchoolReligion();
  1003.             $schoolLanguage $school->getSchoolLanguage();
  1004.             $schoolCycles $school->getSchoolCycles();
  1005.             $schoolType->setTranslatableLocale($this->locale);
  1006.             $this->em->refresh($schoolType);
  1007.             $schoolReligion->setTranslatableLocale($this->locale);
  1008.             $this->em->refresh($schoolReligion);
  1009.             $schoolLanguage->setTranslatableLocale($this->locale);
  1010.             $this->em->refresh($schoolLanguage);
  1011.             $school->setTranslatableLocale($this->locale);
  1012.             $this->em->refresh($school);
  1013.             foreach ($schoolCycles as $sc){
  1014.                 $sc->setTranslatableLocale($this->locale);
  1015.                 $this->em->refresh($sc);
  1016.                 $school->addSchoolCycle($sc);
  1017.             }
  1018.             $school->setSchoolType($schoolType);
  1019.             $school->setSchoolReligion($schoolReligion);
  1020.             $school->setSchoolLanguage($schoolLanguage);
  1021.         }
  1022.         $this->siteInfo['info'] = $school;
  1023.         return $this->render('frontend/summary/model_1.html.twig'$this->siteInfo);
  1024.     }
  1025.     public function about(Request $request){
  1026.         $pageAbout $this->em->getRepository(Page::class)->findOneBy(['adminLink'=>'admin_page_about_us','stage'=>1]);
  1027.         if($pageAbout !== null){
  1028.             $pageAbout->setTranslatableLocale($this->locale);
  1029.             $this->em->refresh($pageAbout);
  1030.         }
  1031.         $pageStory $this->em->getRepository(Page::class)->findOneBy(['adminLink'=>'admin_page_story','stage'=>1]);
  1032.         if($pageStory !== null){
  1033.             $pageStory->setTranslatableLocale($this->locale);
  1034.             $this->em->refresh($pageStory);
  1035.         }
  1036.         $pageTeam $this->em->getRepository(Page::class)->findOneBy(['adminLink'=>'admin_page_team','stage'=>1]);
  1037.         if($pageTeam !== null){
  1038.             $pageTeam->setTranslatableLocale($this->locale);
  1039.             $this->em->refresh($pageTeam);
  1040.         }
  1041.         if($pageStory !== null){
  1042.             $entitiesStory $this->em->getRepository(Story::class)->findBy(['isActive'=>true,'stage'=>1],['position'=>'ASC']);
  1043.             foreach ($entitiesStory as $s){
  1044.                 $s->setTranslatableLocale($this->locale);
  1045.                 $this->em->refresh($s);
  1046.             }
  1047.             $this->siteInfo['stories'] = $entitiesStory;
  1048.         }
  1049.         else{
  1050.             $this->siteInfo['stories']=[];
  1051.         }
  1052.         if($pageTeam !== null){
  1053.             $this->siteInfo['teams'] = [];
  1054.             $entitiesTeam $this->em->getRepository(Team::class)->findBy(['isActive'=>true,'stage'=>1],['rank'=>'ASC']);
  1055.             foreach ($entitiesTeam as $s){
  1056.                 $position $s->getPosition();
  1057.                 $departement $s->getDepartment();
  1058.                 $position->setTranslatableLocale($this->locale);
  1059.                 $departement->setTranslatableLocale($this->locale);
  1060.                 $this->em->refresh($position);
  1061.                 $this->em->refresh($departement);
  1062.                 $s->setDepartment($departement);
  1063.                 $s->setPosition($position);
  1064.                 $this->siteInfo['teams'][] = $s;
  1065.             }
  1066.         }
  1067.         else{
  1068.             $this->siteInfo['teams'] = [];
  1069.         }
  1070.         $this->siteInfo['page_about'] = $pageAbout;
  1071.         $this->siteInfo['page_story'] = $pageStory;
  1072.         $this->siteInfo['page_team'] = $pageTeam;
  1073.         return $this->render('frontend/static/about.html.twig'$this->siteInfo);
  1074.     }
  1075.     public function schoolLife(Request $request){
  1076.         $pageInfras $this->em->getRepository(Page::class)->findOneBy(['adminLink'=>'admin_page_infrastructure','stage'=>1]);
  1077.         if($pageInfras !== null){
  1078.             $pageInfras->setTranslatableLocale($this->locale);
  1079.             $this->em->refresh($pageInfras);
  1080.         }
  1081.         $pageActivities $this->em->getRepository(Page::class)->findOneBy(['adminLink'=>'admin_page_activity','stage'=>1]);
  1082.         if($pageActivities !== null){
  1083.             $pageActivities->setTranslatableLocale($this->locale);
  1084.             $this->em->refresh($pageActivities);
  1085.         }
  1086.         $pagePartners $this->em->getRepository(Page::class)->findOneBy(['adminLink'=>'admin_page_partner','stage'=>1]);
  1087.         if($pagePartners !== null){
  1088.             $pagePartners->setTranslatableLocale($this->locale);
  1089.             $this->em->refresh($pagePartners);
  1090.         }
  1091.         $pageMission $this->em->getRepository(Page::class)->findOneBy(['adminLink'=>'admin_page_our_mission','stage'=>1]);
  1092.         if($pageMission !== null){
  1093.             $pageMission->setTranslatableLocale($this->locale);
  1094.             $this->em->refresh($pageMission);
  1095.         }
  1096.         if($pageInfras !== null){
  1097.             $entities1 $this->em->getRepository(Infrastructure::class)->findBy(['stage'=>1,'isActive'=>true],['position'=>'ASC','name'=>'ASC']);
  1098.             foreach ($entities1 as $s){
  1099.                 $s->setTranslatableLocale($this->locale);
  1100.                 $this->em->refresh($s);
  1101.             }
  1102.             $this->siteInfo['infras'] = $entities1;
  1103.         }
  1104.         else{
  1105.             $this->siteInfo['infras'] = [];
  1106.         }
  1107.         if($pageActivities !== null){
  1108.             $entities2 $this->em->getRepository(Club::class)->findBy(['isActive'=>true,'stage'=>1],['position'=>'ASC']);
  1109.             foreach ($entities2 as $s){
  1110.                 $s->setTranslatableLocale($this->locale);
  1111.                 $this->em->refresh($s);
  1112.             }
  1113.             $this->siteInfo['clubs'] = $entities2;
  1114.         }
  1115.         else{
  1116.             $this->siteInfo['clubs'] = [];
  1117.         }
  1118.         if($pagePartners !== null){
  1119.             $entities $this->em->getRepository(Partner::class)->findBy(['isActive'=>true,'stage'=>1],['position'=>'ASC']);
  1120.             foreach ($entities as $s){
  1121.                 $s->setTranslatableLocale($this->locale);
  1122.                 $this->em->refresh($s);
  1123.             }
  1124.             $this->siteInfo['partners'] = $entities;
  1125.         }
  1126.         else{
  1127.             $this->siteInfo['partners'] = [];
  1128.         }
  1129.         $this->siteInfo['page_infrastructure'] = $pageInfras;
  1130.         $this->siteInfo['page_activity'] = $pageActivities;
  1131.         $this->siteInfo['page_partner'] = $pagePartners;
  1132.         $this->siteInfo['page_mission'] = $pageMission;
  1133.         return $this->render('frontend/static/school_life.html.twig'$this->siteInfo);
  1134.     }
  1135.     public function studentAndParent(Request $request){
  1136.         $pagePeda$this->em->getRepository(Page::class)->findOneBy(['adminLink'=>'admin_page_pedagogy','stage'=>1]);
  1137.         if($pagePeda !== null){
  1138.             $pagePeda->setTranslatableLocale($this->locale);
  1139.             $this->em->refresh($pagePeda);
  1140.         }
  1141.         $pageCalendar $this->em->getRepository(Page::class)->findOneBy(['adminLink'=>'admin_page_calendar','stage'=>1]);
  1142.         if($pageCalendar !== null){
  1143.             $pageCalendar->setTranslatableLocale($this->locale);
  1144.             $this->em->refresh($pageCalendar);
  1145.         }
  1146.         $pageAdmission $this->em->getRepository(Page::class)->findOneBy(['adminLink'=>'admin_page_admission','stage'=>1]);
  1147.         if($pageAdmission !== null){
  1148.             $pageAdmission->setTranslatableLocale($this->locale);
  1149.             $this->em->refresh($pageAdmission);
  1150.         }
  1151.         if($pageCalendar !== null)
  1152.         {
  1153.             $entities3 $this->em->getRepository(EventSchool::class)->findBy(['isActive'=>true'stage'=>1],['dateEvent'=>'DESC']);
  1154.             $send =[];
  1155.             foreach ($entities3 as $s){
  1156.                 $s->setTranslatableLocale($this->locale);
  1157.                 $this->em->refresh($s);
  1158.                 $i $this->mycontainer->get(MySerializer::class)->singleObjectToArray($s,'event_all');
  1159.                 $i['date_event2'] = explode('T',$i['date_event'])[0];
  1160.                 if((new \DateTime())>$s->getDateEvent()){
  1161.                     $i['past']='1';
  1162.                 }
  1163.                 else{
  1164.                     $i['past']='0';
  1165.                 }
  1166.                 $send[] = $i;
  1167.             }
  1168.             $this->siteInfo['events'] = $send;
  1169.         }
  1170.         else{
  1171.             $this->siteInfo['events'] = [];
  1172.         }
  1173.         if($pagePeda !== null){
  1174.             $entities $this->em->getRepository(ClassLevel::class)->findBy(['isActive'=>true,'stage'=>1],['position'=>'ASC']);
  1175.             $entities2 $this->em->getRepository(SchoolDepartment::class)->findBy(['isActive'=>true],['id'=>'ASC']);
  1176.             foreach ($entities as $s){
  1177.                 $s->setTranslatableLocale($this->locale);
  1178.                 $this->em->refresh($s);
  1179.             }
  1180.             foreach ($entities2 as $s){
  1181.                 $s->setTranslatableLocale($this->locale);
  1182.                 $this->em->refresh($s);
  1183.             }
  1184.             $this->siteInfo['classes'] = $entities;
  1185.             $this->siteInfo['departments'] = $entities2;
  1186.         }
  1187.         else{
  1188.             $this->siteInfo['classes'] = [];
  1189.             $this->siteInfo['departments'] = [];
  1190.         }
  1191.         if($pageAdmission !== null){
  1192.             $entities4 $this->em->getRepository(AdmissionInfo::class)->findBy(['isActive'=>true,'stage'=>1]);
  1193.             $entities5 $this->em->getRepository(AdmissionPage::class)->findBy(['isActive'=>true,]);
  1194.             foreach ($entities4 as $s){
  1195.                 $s->setTranslatableLocale($this->locale);
  1196.                 $this->em->refresh($s);
  1197.             }
  1198.             foreach ($entities5 as $s){
  1199.                 $s->setTranslatableLocale($this->locale);
  1200.                 $this->em->refresh($s);
  1201.             }
  1202.             $this->siteInfo['admission_pages'] = $entities5;
  1203.             $this->siteInfo['admission_infos'] = $entities4;
  1204.         }
  1205.         else{
  1206.             $this->siteInfo['admission_pages'] = [];
  1207.             $this->siteInfo['admission_infos'] = [];
  1208.         }
  1209.         $this->siteInfo['page_pedagogy'] = $pagePeda;
  1210.         $this->siteInfo['page_calendar'] = $pageCalendar;
  1211.         $this->siteInfo['page_admission'] = $pageAdmission;
  1212.         return $this->render('frontend/static/student_parent.html.twig'$this->siteInfo);
  1213.     }
  1214.     public function bankOfTest(Request $request): Response
  1215.     {
  1216.         $pagePeda$this->em->getRepository(Page::class)->findOneBy(['adminLink'=>'admin_page_pedagogy','stage'=>1]);
  1217.         if($pagePeda !== null){
  1218.             $pagePeda->setTranslatableLocale($this->locale);
  1219.             $this->em->refresh($pagePeda);
  1220.         }
  1221.         $pageCalendar $this->em->getRepository(Page::class)->findOneBy(['adminLink'=>'admin_page_calendar','stage'=>1]);
  1222.         if($pageCalendar !== null){
  1223.             $pageCalendar->setTranslatableLocale($this->locale);
  1224.             $this->em->refresh($pageCalendar);
  1225.         }
  1226.         $pageAdmission $this->em->getRepository(Page::class)->findOneBy(['adminLink'=>'admin_page_admission','stage'=>1]);
  1227.         if($pageAdmission !== null){
  1228.             $pageAdmission->setTranslatableLocale($this->locale);
  1229.             $this->em->refresh($pageAdmission);
  1230.         }
  1231.         if($pageCalendar !== null)
  1232.         {
  1233.             $entities3 $this->em->getRepository(EventSchool::class)->findBy(['isActive'=>true'stage'=>1],['dateEvent'=>'DESC']);
  1234.             $send =[];
  1235.             foreach ($entities3 as $s){
  1236.                 $s->setTranslatableLocale($this->locale);
  1237.                 $this->em->refresh($s);
  1238.                 $i $this->mycontainer->get(MySerializer::class)->singleObjectToArray($s,'event_all');
  1239.                 $i['date_event2'] = explode('T',$i['date_event'])[0];
  1240.                 if((new \DateTime())>$s->getDateEvent()){
  1241.                     $i['past']='1';
  1242.                 }
  1243.                 else{
  1244.                     $i['past']='0';
  1245.                 }
  1246.                 $send[] = $i;
  1247.             }
  1248.             $this->siteInfo['events'] = $send;
  1249.         }
  1250.         else{
  1251.             $this->siteInfo['events'] = [];
  1252.         }
  1253.         if($pagePeda !== null){
  1254.             $entities $this->em->getRepository(ClassLevel::class)->findBy(['isActive'=>true,'stage'=>1],['position'=>'ASC']);
  1255.             $entities2 $this->em->getRepository(SchoolDepartment::class)->findBy(['isActive'=>true],['id'=>'ASC']);
  1256.             foreach ($entities as $s){
  1257.                 $s->setTranslatableLocale($this->locale);
  1258.                 $this->em->refresh($s);
  1259.             }
  1260.             foreach ($entities2 as $s){
  1261.                 $s->setTranslatableLocale($this->locale);
  1262.                 $this->em->refresh($s);
  1263.             }
  1264.             $this->siteInfo['classes'] = $entities;
  1265.             $this->siteInfo['departments'] = $entities2;
  1266.         }
  1267.         else{
  1268.             $this->siteInfo['classes'] = [];
  1269.             $this->siteInfo['departments'] = [];
  1270.         }
  1271.         if($pageAdmission !== null){
  1272.             $entities4 $this->em->getRepository(AdmissionInfo::class)->findBy(['isActive'=>true,'stage'=>1]);
  1273.             $entities5 $this->em->getRepository(AdmissionPage::class)->findBy(['isActive'=>true,]);
  1274.             foreach ($entities4 as $s){
  1275.                 $s->setTranslatableLocale($this->locale);
  1276.                 $this->em->refresh($s);
  1277.             }
  1278.             foreach ($entities5 as $s){
  1279.                 $s->setTranslatableLocale($this->locale);
  1280.                 $this->em->refresh($s);
  1281.             }
  1282.             $this->siteInfo['admission_pages'] = $entities5;
  1283.             $this->siteInfo['admission_infos'] = $entities4;
  1284.         }
  1285.         else{
  1286.             $this->siteInfo['admission_pages'] = [];
  1287.             $this->siteInfo['admission_infos'] = [];
  1288.         }
  1289.         $this->siteInfo['page_pedagogy'] = $pagePeda;
  1290.         $this->siteInfo['page_calendar'] = $pageCalendar;
  1291.         $this->siteInfo['page_admission'] = $pageAdmission;
  1292.         return $this->render('frontend/static/student_parent.html.twig'$this->siteInfo);
  1293.     }
  1294.     public function contactMessage(Request  $request): RedirectResponse
  1295.     {
  1296.         $referer $request->headers->get('referer');
  1297.         $data $request->request->all();
  1298.         if(!array_key_exists('name',$data)){
  1299.             $this->addFlash(
  1300.                 'notice',
  1301.                 $this->mycontainer->get('translator')->trans('field required').' name'
  1302.             );
  1303.             return $this->redirect($referer);
  1304.         }
  1305.         if(!array_key_exists('email',$data)){
  1306.             $this->addFlash(
  1307.                 'notice',
  1308.                 $this->mycontainer->get('translator')->trans('field required').' email'
  1309.             );
  1310.             return $this->redirect($referer);
  1311.         }
  1312.         if(!array_key_exists('message',$data)){
  1313.             $this->addFlash(
  1314.                 'notice',
  1315.                 $this->mycontainer->get('translator')->trans('field required').' message'
  1316.             );
  1317.             $referer $request->headers->get('referer');
  1318.             return $this->redirect($referer);
  1319.         }
  1320.         if (!filter_var($data["email"], FILTER_VALIDATE_EMAIL))
  1321.         {
  1322.             $this->addFlash(
  1323.                 'notice',
  1324.                 $this->mycontainer->get('translator')->trans('invalid email')
  1325.             );
  1326.             return $this->redirect($referer);
  1327.         }
  1328.         $mess = new Message();
  1329.         $mess->setName($data['name']);
  1330.         $mess->setEmail($data['email']);
  1331.         $mess->setMessage($data['message']);
  1332.         $test strlen($this->siteInfo['message_email'])>&& strlen($this->siteInfo['message_password'])>0
  1333.             && strlen($this->siteInfo['message_smtp'])>&& strlen($this->siteInfo['message_port']);
  1334.         if($test === false){
  1335.             $this->addFlash(
  1336.                 'notice',
  1337.                 $this->mycontainer->get('translator')->trans('smtp server parameters are not set')
  1338.             );
  1339.             return $this->redirect($referer);
  1340.         }
  1341.         $dsn "smtp://".trim($this->siteInfo['message_email']).":".trim($this->siteInfo['message_password'])."@".trim($this->siteInfo['message_smtp']).":".trim($this->siteInfo['message_port']);
  1342.         $transport Transport::fromDsn($dsn);
  1343.         $customMailer = new Mailer($transport);
  1344.         $email $data['email'];
  1345.         $logo $this->siteInfo['school_global']['logo'];
  1346.         $message = (new TemplatedEmail())
  1347.             ->subject('Contact '.$this->siteInfo['school_global']['name'])
  1348.             //->from($this->siteInfo['email'])
  1349.             ->from($this->siteInfo['message_email'])
  1350.             ->to($email)
  1351.             ->cc($this->siteInfo['message_email'])
  1352.             ->htmlTemplate('mail_message.html.twig')
  1353.             ->context(['message' => $mess->getMessage(),'name'=>$data['name'],'email1'=>$email,'logo'=>$logo,'company'=>$this->siteInfo['school_global']['name']]);
  1354.         $message2 = (new TemplatedEmail())
  1355.             ->subject('Contact '.$this->siteInfo['school_global']['name'])
  1356.             ->from($this->siteInfo['message_email'])
  1357.             ->to($email)
  1358.             ->htmlTemplate('thanks.html.twig')
  1359.             ->context(['name' => $data['name'],'message'=>$data['message'],'email1'=>$data['email'],'logo'=>$logo,'company'=>$this->siteInfo['school_global']['name']])
  1360.         ;
  1361.         $loader = new FilesystemLoader([$this->mycontainer->get("kernel")->getProjectDir().'/templates/']);
  1362.         try {
  1363.             $loader->addPath($this->mycontainer->get("kernel")->getProjectDir() . '/public/uploads/''images');
  1364.         } catch (LoaderError $e) {
  1365.             $this->addFlash(
  1366.                 'notice',
  1367.                 $e->getMessage()
  1368.             );
  1369.             return $this->redirect($referer);
  1370.         }
  1371.         $twigEnv = new Environment($loader);
  1372.         $twigBodyRenderer = new BodyRenderer($twigEnv);
  1373.         $twigBodyRenderer->render($message);
  1374.         try {
  1375.             $customMailer->send($message);
  1376.         }catch (\Symfony\Component\Mailer\Exception\TransportExceptionInterface $e) {
  1377.             $this->addFlash(
  1378.                 'notice',
  1379.                 $e->getMessage()
  1380.             );
  1381.             return $this->redirect($referer);
  1382.         }
  1383.         $twigBodyRenderer2 = new BodyRenderer($twigEnv);
  1384.         $twigBodyRenderer2->render($message2);
  1385.         try {
  1386.             $customMailer->send($message2);
  1387.         } catch (\Symfony\Component\Mailer\Exception\TransportExceptionInterface $e) {
  1388.             $this->addFlash(
  1389.                 'notice',
  1390.                 $e->getMessage()
  1391.             );
  1392.             return $this->redirect($referer);
  1393.         }
  1394.         $this->em->persist($mess);
  1395.         $this->em->flush();
  1396.         $this->addFlash(
  1397.             'notice',
  1398.             $this->mycontainer->get('translator')->trans('message saved')
  1399.         );
  1400.         return $this->redirect($referer);
  1401.     }
  1402.     public function studentNote(Request $request): Response
  1403.     {
  1404.         $pagePeda$this->em->getRepository(Page::class)->findOneBy(['adminLink'=>'admin_page_pedagogy','stage'=>1]);
  1405.         if($pagePeda !== null){
  1406.             $pagePeda->setTranslatableLocale($this->locale);
  1407.             $this->em->refresh($pagePeda);
  1408.         }
  1409.         $pageCalendar $this->em->getRepository(Page::class)->findOneBy(['adminLink'=>'admin_page_calendar','stage'=>1]);
  1410.         if($pageCalendar !== null){
  1411.             $pageCalendar->setTranslatableLocale($this->locale);
  1412.             $this->em->refresh($pageCalendar);
  1413.         }
  1414.         $pageAdmission $this->em->getRepository(Page::class)->findOneBy(['adminLink'=>'admin_page_admission','stage'=>1]);
  1415.         if($pageAdmission !== null){
  1416.             $pageAdmission->setTranslatableLocale($this->locale);
  1417.             $this->em->refresh($pageAdmission);
  1418.         }
  1419.         if($pageCalendar !== null)
  1420.         {
  1421.             $entities3 $this->em->getRepository(EventSchool::class)->findBy(['isActive'=>true'stage'=>1],['dateEvent'=>'DESC']);
  1422.             $send =[];
  1423.             foreach ($entities3 as $s){
  1424.                 $s->setTranslatableLocale($this->locale);
  1425.                 $this->em->refresh($s);
  1426.                 $i $this->mycontainer->get(MySerializer::class)->singleObjectToArray($s,'event_all');
  1427.                 $i['date_event2'] = explode('T',$i['date_event'])[0];
  1428.                 if((new \DateTime())>$s->getDateEvent()){
  1429.                     $i['past']='1';
  1430.                 }
  1431.                 else{
  1432.                     $i['past']='0';
  1433.                 }
  1434.                 $send[] = $i;
  1435.             }
  1436.             $this->siteInfo['events'] = $send;
  1437.         }
  1438.         else{
  1439.             $this->siteInfo['events'] = [];
  1440.         }
  1441.         if($pagePeda !== null){
  1442.             $entities $this->em->getRepository(ClassLevel::class)->findBy(['isActive'=>true,'stage'=>1],['position'=>'ASC']);
  1443.             $entities2 $this->em->getRepository(SchoolDepartment::class)->findBy(['isActive'=>true],['id'=>'ASC']);
  1444.             foreach ($entities as $s){
  1445.                 $s->setTranslatableLocale($this->locale);
  1446.                 $this->em->refresh($s);
  1447.             }
  1448.             foreach ($entities2 as $s){
  1449.                 $s->setTranslatableLocale($this->locale);
  1450.                 $this->em->refresh($s);
  1451.             }
  1452.             $this->siteInfo['classes'] = $entities;
  1453.             $this->siteInfo['departments'] = $entities2;
  1454.         }
  1455.         else{
  1456.             $this->siteInfo['classes'] = [];
  1457.             $this->siteInfo['departments'] = [];
  1458.         }
  1459.         if($pageAdmission !== null){
  1460.             $entities4 $this->em->getRepository(AdmissionInfo::class)->findBy(['isActive'=>true,'stage'=>1]);
  1461.             $entities5 $this->em->getRepository(AdmissionPage::class)->findBy(['isActive'=>true,]);
  1462.             foreach ($entities4 as $s){
  1463.                 $s->setTranslatableLocale($this->locale);
  1464.                 $this->em->refresh($s);
  1465.             }
  1466.             foreach ($entities5 as $s){
  1467.                 $s->setTranslatableLocale($this->locale);
  1468.                 $this->em->refresh($s);
  1469.             }
  1470.             $this->siteInfo['admission_pages'] = $entities5;
  1471.             $this->siteInfo['admission_infos'] = $entities4;
  1472.         }
  1473.         else{
  1474.             $this->siteInfo['admission_pages'] = [];
  1475.             $this->siteInfo['admission_infos'] = [];
  1476.         }
  1477.         $this->siteInfo['page_pedagogy'] = $pagePeda;
  1478.         $this->siteInfo['page_calendar'] = $pageCalendar;
  1479.         $this->siteInfo['page_admission'] = $pageAdmission;
  1480.         return $this->render('frontend/static/student_parent.html.twig'$this->siteInfo);
  1481.     }
  1482. }