src/WebContent/WebPage.php line 25

Open in your IDE?
  1. <?php
  2. namespace App\WebContent;
  3. use App\Entity\Article;
  4. use App\Entity\Component;
  5. use App\Entity\Tag;
  6. class WebPage extends AbstractWebContent
  7. {
  8.     public function moreData($entity
  9.     {
  10.         if (empty($entity->getTextResume())) {
  11.             $resume strip_tags($entity->getText());
  12.             $resume substr($resume0350);
  13.             $resume html_entity_decode($resumeENT_QUOTES);
  14.             $entity->setTextResume(trim($resume));
  15.         }
  16.     }
  17.     public function getData($slug)
  18.     {
  19.         return $this->manager->getRepository(\App\Entity\WebPage::class)
  20.             ->findOneBy(['slug' => $slug]);
  21.     }
  22.     public function getDataArticle($slug$slugCategory "blog")
  23.     {   
  24.         $category $this->manager->getRepository(Tag::class)
  25.                         ->findBy([ 'slug' => $slugCategory ]);
  26.         return $this->manager->getRepository(\App\Entity\Article::class)
  27.             ->findOneBy(['slug' => $slug'category' => $category ]);
  28.     }
  29.     public function getComponents($componentsPage)
  30.     {   
  31.         /** @TODO : si la fonction doit s'étendre alors il faudra refacto */
  32.         $results $this->manager->getRepository(Component::class)->findAll();
  33.         $components = [];
  34.         foreach($results as $result) {
  35.             if($result->getWebPages()->count() < 1) {
  36.                 $components[] = $this->getComponent($result);
  37.             }
  38.         }
  39.         foreach($componentsPage as $result) {
  40.             $components[] = $this->getComponent($result);
  41.         }
  42.         return $components;
  43.     }
  44.     private function getComponent($result)
  45.     {
  46.         $data = [];
  47.         if($result->getCategory()) {
  48.             $data $this->getDataComponent($result->getCategory()->getSlug());
  49.         }
  50.         return [
  51.             'slug' => $result->getSlug(),
  52.             'entity' => $result,
  53.             'data' => $data
  54.         ];
  55.     }
  56.     private function getDataComponent($slug)
  57.     {
  58.         switch ($slug) {
  59.             case 'last-articles':
  60.                     $category $this->manager->getRepository(Tag::class)
  61.                         ->findBy([ 'slug' => 'blog''isActive' => true ]);
  62.                     return $this->manager->getRepository(Article::class)
  63.                         ->findBy([ 'category' => $category'isActive' => true ], [ 'id' => 'DESC', ], 3);
  64.                 break;
  65.             case 'prestation-articles':
  66.                     $category $this->manager->getRepository(Tag::class)
  67.                         ->findBy([ 'slug' => 'prestation''isActive' => true ]);
  68.                     return $this->manager->getRepository(Article::class)
  69.                         ->findBy([ 'category' => $category'isActive' => true ]);
  70.                 break;
  71.             
  72.             case 'project-articles':
  73.                     $category $this->manager->getRepository(Tag::class)
  74.                         ->findBy([ 'slug' => 'project''isActive' => true ]);
  75.                     return $this->manager->getRepository(Article::class)
  76.                         ->findBy([ 'category' => $category'isActive' => true ]);
  77.                 break;
  78.             
  79.             case 'all-articles':
  80.                     $category $this->manager->getRepository(Tag::class)
  81.                         ->findBy([ 'slug' => 'blog''isActive' => true ]);
  82.                     return $this->manager->getRepository(Article::class)
  83.                         ->findBy([ 'category' => $category'isActive' => true ], [ 'id' => 'DESC' ]);
  84.                 break;
  85.             
  86.             case 'last-article':
  87.                     $category $this->manager->getRepository(Tag::class)
  88.                         ->findBy([ 'slug' => 'blog''isActive' => true ]);
  89.                     return $this->manager->getRepository(Article::class)
  90.                         ->findBy([ 'category' => $category'isActive' => true ], [ 'id' => 'DESC' ], 1);
  91.                 break;
  92.             default:
  93.                 
  94.                 break;
  95.         }
  96.         return [];
  97.     }
  98. }