src/Service/EditeurManager.php line 28

Open in your IDE?
  1. <?php
  2. namespace App\Service;
  3. use Symfony\Component\HttpFoundation\Request;
  4. use Symfony\Bundle\FrameworkBundle\Templating\EngineInterface;
  5. class EditeurManager
  6. {
  7.     private $em;
  8.     private $root;
  9.     private $container;
  10.     public function __construct($container)
  11.     {
  12.         $this->container $container;
  13.         $this->root $this->container->get('kernel')->getProjectDir();
  14.     }
  15.     // Recup les données en fonction des blocks include dans la page
  16.     public function getPageData($filePath$pageName$request)
  17.     {
  18.         $regexInclude '/\{\% include (.*?)%}/';
  19.         $filePath $this->root.'/templates/'.$filePath;
  20.         if(!file_exists($filePath)){
  21.             throw new \Symfony\Component\HttpKernel\Exception\NotFoundHttpException();
  22.         }
  23.         $fileContent file_get_contents($filePath);
  24.         preg_match_all($regexInclude$fileContent$allIncludes);
  25.         $allIncludes array_unique($allIncludes[0]);
  26.         
  27.         $pageData = [];
  28.         foreach ($allIncludes as $key => $include) {
  29.             $pageData array_merge($pageData$this->getBlockData($include$request));
  30.         }
  31.         return $pageData;
  32.     }
  33.     // Recup les données en fonction du nom du block
  34.     public function getBlockData($block$request)
  35.     {
  36.         // $odraziaManager = $this->container->get('App\Service\OdraziaManager');
  37.         if(strpos($block'articles-list') !== false) {
  38.             // $articles = $odraziaManager->getActualites($request->query->get('page', 1), $request->query->get('categorie[]', ['all']), $request->query->get('search', ''));
  39.             // $categories = $odraziaManager->getActualitesCategories();
  40.             // $last_articles = $odraziaManager->getLastActualites();
  41.             return [
  42.                 'articles' => [],
  43.                 'categories' => [],
  44.                 'last_articles' => []
  45.             ];
  46.         } else if(strpos($block'last-articles') !== false) {
  47.             // $last_articles = $odraziaManager->getLastActualites();
  48.             return [
  49.                 'last_articles' => []
  50.             ];
  51.         }
  52.         
  53.         return [];
  54.     }
  55.     
  56.     /**
  57.      * 
  58.      * Récupère les pages de l'éditeur
  59.      * 
  60.      */
  61.     public function getSitePages($siteUrl$type)
  62.     {
  63.         $curl_connection curl_init();
  64.         $lien $_ENV['INNOVDATA_EDITOR_URL'].'api/page?'.http_build_query([
  65.             'url_site' => $siteUrl,
  66.             'type' => $type
  67.         ]);
  68.         
  69.         curl_setopt($curl_connectionCURLOPT_SSL_VERIFYPEER0);
  70.         curl_setopt($curl_connectionCURLOPT_HTTPHEADER, [
  71.             'Accept: application/json',
  72.             'Authorization: Bearer ' .  $_ENV['INNOVDATA_EDITOR_TOKEN']
  73.         ]);
  74.         curl_setopt($curl_connection,CURLOPT_URL$lien);
  75.         curl_setopt($curl_connection,CURLOPT_RETURNTRANSFERtrue);
  76.                 
  77.         $responseCode curl_getinfo($curl_connectionCURLINFO_HTTP_CODE);
  78.         $requestResponse curl_exec($curl_connection);
  79.         $data json_decode($requestResponsetrue);
  80.         return $data;
  81.     }
  82. }