src/Controller/ThemesWebsite/Whileresume/Website/PagesController.php line 109

Open in your IDE?
  1. <?php
  2. namespace App\Controller\ThemesWebsite\Whileresume\Website;
  3. use App\Entity\Core\Users;
  4. use App\Entity\Pages\Pages;
  5. use App\Entity\Pages\PagesHasBlocks;
  6. use App\Services\EncryptionService;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Doctrine\ORM\EntityManagerInterface;
  10. use Psr\Log\LoggerInterface;
  11. use function App\Controller\Vitrine\dump;
  12. /**
  13. * Gestion des pages
  14. */
  15. class PagesController extends AbstractController
  16. {
  17. private $em;
  18. private $us;
  19. private $es;
  20. private $decryptionLogger;
  21. public function __construct(EntityManagerInterface $em,
  22. \App\Services\Core\Users $us,
  23. EncryptionService $es,
  24. LoggerInterface $decryptionLogger
  25. ){
  26. $this->em = $em;
  27. $this->us = $us;
  28. $this->es = $es;
  29. $this->decryptionLogger = $decryptionLogger;
  30. }
  31. /**
  32. * 1er niveau
  33. * @param Request $request
  34. * @param $folderslug
  35. * @return mixed
  36. */
  37. public function fiche(Request $request, $folderslug)
  38. {
  39. $themeSelection = $_ENV['THEME_BLOG'];
  40. $session = $request->getSession();
  41. $locale = $request->getLocale();
  42. // Article sur une page.
  43. $pageArticle = $this->em->getRepository(\App\Entity\Articles\Articles::class)->getPage($locale,$folderslug);
  44. if($pageArticle !== null) {
  45. return $this->render('application/whileresume/website/page_article.html.twig', [
  46. 'article' => $pageArticle
  47. ]);
  48. }
  49. $page = $this->em->getRepository(Pages::class)->getPage($locale,$folderslug);
  50. if(!$page) {
  51. return $this->redirectToRoute('homepage');
  52. }
  53. $user = $this->getUser();
  54. if($user == null) {
  55. if($page->getType() == "brouillon") {
  56. return $this->redirectToRoute('homepage');
  57. }
  58. if(!empty($page->getRedirect())) {
  59. return $this->redirect($page->getRedirect());
  60. }
  61. } else {
  62. $grant = $this->em->getRepository(Users::class)->userHasRole($user->getId(),"ROLE_SUPER_ADMIN");
  63. if($grant == "0") {
  64. if($page->getType() == "brouillon") {
  65. return $this->redirectToRoute('homepage');
  66. }
  67. if(!empty($page->getRedirect())) {
  68. return $this->redirect($page->getRedirect());
  69. }
  70. }
  71. }
  72. $blocks = $this->em->getRepository(PagesHasBlocks::class)->findBy(['page' => $page, 'type' => 'prod', 'startPage' => false],['sequence' => 'ASC']);
  73. $page->setViews((int)$page->getViews() + 1);
  74. $this->em->persist($page);
  75. $this->em->flush();
  76. return $this->render('application/whileresume/website/page.html.twig',[
  77. 'page' => $page,
  78. 'blocks' => $blocks
  79. ]);
  80. }
  81. /**
  82. * 2ème niveau
  83. * @param Request $request
  84. * @param $folderslug
  85. * @param $folderslug2
  86. * @return mixed
  87. */
  88. public function fiche2(Request $request, $folderslug, $folderslug2)
  89. {
  90. $themeSelection = $_ENV['THEME_BLOG'];
  91. $locale = $request->getLocale();
  92. $user = $this->getUser();
  93. $pageArticle = $this->em->getRepository(\App\Entity\Articles\Articles::class)->getPage($locale,$folderslug,$folderslug2);
  94. if($pageArticle !== null) {
  95. return $this->render('application/whileresume/website/page_article.html.twig', [
  96. 'article' => $pageArticle
  97. ]);
  98. }
  99. $page = $this->em->getRepository(Pages::class)->getPage($locale,$folderslug,$folderslug2);
  100. if(!$page) {
  101. return $this->redirectToRoute('homepage');
  102. }
  103. if($user == null) {
  104. if($page->getType() == "brouillon") {
  105. return $this->redirectToRoute('homepage');
  106. }
  107. if(!empty($page->getRedirect())) {
  108. return $this->redirect($page->getRedirect());
  109. }
  110. } else {
  111. $grant = $this->em->getRepository(Users::class)->userHasRole($user->getId(),"ROLE_SUPER_ADMIN");
  112. if($grant == "0") {
  113. if($page->getType() == "brouillon") {
  114. return $this->redirectToRoute('homepage');
  115. }
  116. if(!empty($page->getRedirect())) {
  117. return $this->redirect($page->getRedirect());
  118. }
  119. }
  120. }
  121. $blocks = $this->em->getRepository(PagesHasBlocks::class)->findBy(['page' => $page, 'type' => 'prod', 'startPage' => false],['sequence' => 'ASC']);
  122. $page->setViews((int)$page->getViews() + 1);
  123. $this->em->persist($page);
  124. $this->em->flush();
  125. return $this->render('application/whileresume/website/page.html.twig',[
  126. 'page' => $page,
  127. 'blocks' => $blocks
  128. ]);
  129. }
  130. /**
  131. * 3ème niveau
  132. * @param Request $request
  133. * @param $folderslug
  134. * @param $folderslug2
  135. * @param $folderslug3
  136. * @return mixed
  137. */
  138. public function fiche3(Request $request, $folderslug, $folderslug2, $folderslug3)
  139. {
  140. $themeSelection = $_ENV['THEME_BLOG'];
  141. $locale = $request->getLocale();
  142. $user = $this->getUser();
  143. $pageArticle = $this->em->getRepository(\App\Entity\Articles\Articles::class)->getPage($locale,$folderslug,$folderslug2,$folderslug3);
  144. if($pageArticle !== null) {
  145. return $this->render('application/whileresume/website/page_article.html.twig', [
  146. 'article' => $pageArticle
  147. ]);
  148. }
  149. $page = $this->em->getRepository(Pages::class)->getPage($locale,$folderslug,$folderslug2,$folderslug3);
  150. if(!$page) {
  151. return $this->redirectToRoute('homepage');
  152. }
  153. $user = $this->getUser();
  154. if($user == null) {
  155. if($page->getType() == "brouillon") {
  156. return $this->redirectToRoute('homepage');
  157. }
  158. if(!empty($page->getRedirect())) {
  159. return $this->redirect($page->getRedirect());
  160. }
  161. } else {
  162. $grant = $this->em->getRepository(Users::class)->userHasRole($user->getId(),"ROLE_SUPER_ADMIN");
  163. if($grant == "0") {
  164. if($page->getType() == "brouillon") {
  165. return $this->redirectToRoute('homepage');
  166. }
  167. if(!empty($page->getRedirect())) {
  168. return $this->redirect($page->getRedirect());
  169. }
  170. }
  171. }
  172. $blocks = $this->em->getRepository(PagesHasBlocks::class)->findBy(['page' => $page, 'type' => 'prod', 'startPage' => false],['sequence' => 'ASC']);
  173. $page->setViews((int)$page->getViews() + 1);
  174. $this->em->persist($page);
  175. $this->em->flush();
  176. return $this->render('application/whileresume/website/page.html.twig',[
  177. 'page' => $page,
  178. 'blocks' => $blocks
  179. ]);
  180. }
  181. }