src/Controller/Homepage/IndexController.php line 150

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Homepage;
  3. use App\Entity\Main\Client\Advertisers;
  4. use App\Service\AppnexusService;
  5. use App\Entity\Main\Xandr\NetworkAnalytics;
  6. use App\Entity\Main\Xandr\NetworkAnalyticsBasic;
  7. use App\Entity\BackofficeProjet\Trafficking\Implementation;
  8. use App\Entity\Main\SelfService\PurchasedCampaign;
  9. use App\Entity\Main\Xandr\SegmentLoad;
  10. use Symfony\Component\Mercure\Update;
  11. use App\Entity\Main\Client\AdvertisersThemed;
  12. use Symfony\Component\Mercure\Publisher;
  13. use Symfony\Component\HttpFoundation\Request;
  14. use App\Entity\BackofficeProjet\Administration\ProjetsGestionAcces;
  15. use App\Service\NotificationService;
  16. use App\Entity\Main\Administration\User;
  17. use App\Entity\Main\Activation\ProjetsOldActivation;
  18. use App\Entity\DashboardDbm\ReportingNetwork;
  19. use Symfony\Component\HttpFoundation\Response;
  20. use Symfony\Component\Routing\Annotation\Route;
  21. use Symfony\Component\Mercure\Jwt\StaticJwtProvider;
  22. use Symfony\Component\HttpFoundation\Session\Session;
  23. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  24. use Doctrine\Persistence\ManagerRegistry;
  25. use Symfony\Contracts\Translation\TranslatorInterface;
  26. use \App\Entity\Main\Administration\WhitelistAuthorizationUsersBackofficeAccessControl;
  27. use App\Service\RssService;
  28. use App\Entity\DashboardSystem\Client\Clients;
  29. use App\Entity\Main\SelfService\Abonnement;
  30. use App\Entity\Main\SelfService\Wallet;
  31. use App\Entity\Main\SelfService\GrandsComptes;
  32. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
  33. use App\Service\MercureCookieGenerator;
  34. class IndexController extends AbstractController
  35. {
  36.     private $userRule "";
  37.     private $notificationService;
  38.     private $em;
  39.     private $emDashboardSystem;
  40.     private $emDashboardFacebook;
  41.     private $emBackofficeProjet;
  42.     private $emDashboardDbm;
  43.     private $userActive;
  44.     private $rssService;
  45.     public function __construct(ManagerRegistry $emTokenStorageInterface $tokenStorageNotificationService $notificationServiceRssService $rssService)
  46.     {
  47.         $this->userRule $tokenStorage->getToken()->getUser()->getRules();
  48.         $this->userActive $tokenStorage->getToken()->getUser()->getIsActive();
  49.         if ($this->userRule == "ROLE_CLIENT") {
  50.             session_destroy();
  51.             header('Location: https://laplateforme.tradespotting.com');
  52.             die();
  53.         }
  54.         if ($this->userRule == "ROLE_PIMS") {
  55.             session_destroy();
  56.             header('Location: https://laplateforme.tradespotting.com');
  57.             die();
  58.         }
  59.         if ($this->userActive == 0) {
  60.             session_destroy();
  61.             header('Location: https://tradespotting.com');
  62.             die();
  63.         }
  64.         $this->rssService $rssService;
  65.         $this->em $em->getManager();
  66.         $this->emDashboardSystem $em->getManager('dashboard_system');
  67.         $this->emDashboardFacebook $em->getManager('dashboard_facebook');
  68.         $this->emBackofficeProjet $em->getManager('backoffice_projet');
  69.         $this->emDashboardDbm $em->getManager('dashboard_dbm');
  70.     }
  71.     //Regarde les accès que l'utilisateur possède, puis l'enregistre sur le navigateur via JWT
  72.     private function convertUserAccessToJWT()
  73.     {
  74.         $entityManager $this->em;
  75.         $accesscontrol $entityManager->getRepository(WhitelistAuthorizationUsersBackofficeAccessControl::class)->findBy(array("role" => $this->userRule));
  76.         $soleil = (array) $accesscontrol[0];
  77.         $accessControlSimplified = array();
  78.         foreach ($soleil as $key => $value) {
  79.             if ($value) {
  80.                 $accessControlSimplified[substr($key82)] = $value;
  81.             }
  82.         }
  83.         $accesscontrol $this->emBackofficeProjet->getRepository(ProjetsGestionAcces::class)->findBy(array("rule" => $this->userRule));
  84.         if (!empty($accesscontrol)) {
  85.             foreach ((array) $accesscontrol[0] as $key => $value) {
  86.                 if ($value) {
  87.                     $accessControlSimplified['GP' substr($key44)] = $value;
  88.                 }
  89.             }
  90.         } else {
  91.             $accessControlSimplified[0] = 0;
  92.         }
  93.         $session = new Session();
  94.         $session->set('userId'$this->get('security.token_storage')->getToken()->getUser()->getId());
  95.         $cancer str_replace('\u0000'""json_encode($accessControlSimplified));
  96.         // Create token header as a JSON string
  97.         $header json_encode(['typ' => 'JWT''alg' => 'HS256']);
  98.         // Create token payload as a JSON string
  99.         $payload $cancer;
  100.         // Encode Header to Base64Url String
  101.         $base64UrlHeader str_replace(['+''/''='], ['-''_'''], base64_encode($header));
  102.         // Encode Payload to Base64Url String
  103.         $base64UrlPayload str_replace(['+''/''='], ['-''_'''], base64_encode($payload));
  104.         // Create Signature Hash
  105.         $signature hash_hmac('sha256'$base64UrlHeader "." $base64UrlPayload'pano561zef@déédéramanesaitpasimplemlespixels!'true);
  106.         // Encode Signature to Base64Url String
  107.         $base64UrlSignature str_replace(['+''/''='], ['-''_'''], base64_encode($signature));
  108.         // Create JWT
  109.         $jwt $base64UrlHeader "." $base64UrlPayload "." $base64UrlSignature;
  110.         setcookie('token'$jwttime() + 36000);
  111.         return $jwt;
  112.     }
  113.     /**
  114.      * @Route("/isConnected", name="isConnected")
  115.      */
  116.     public function isConnected()
  117.     {
  118.         return new Response(
  119.             1,
  120.             Response::HTTP_OK,
  121.             ['content-type' => 'application/json']
  122.         );
  123.     }
  124.     /**
  125.      * @Route("/", name="redirectionBackup")
  126.      */
  127.     public function redirectionBackup()
  128.     {
  129.         return $this->redirect($this->generateUrl('index'));
  130.     }
  131.     /**
  132.      * @Route("/logoff", name="logoff")
  133.      */
  134.     public function logoff()
  135.     {
  136.         if (isset($_SERVER['HTTP_COOKIE'])) {
  137.             $cookies explode(';'$_SERVER['HTTP_COOKIE']);
  138.             foreach ($cookies as $cookie) {
  139.                 $parts explode('='$cookie);
  140.                 $name trim($parts[0]);
  141.                 setcookie($name''time() - 1000);
  142.                 setcookie($name''time() - 1000'/');
  143.             }
  144.         }
  145.         session_destroy();
  146.         return new Response(
  147.             1,
  148.             Response::HTTP_OK,
  149.             ['content-type' => 'application/json']
  150.         );
  151.     }
  152.     /**
  153.      * @Route("/lazyload/index", name="indexLazyload")
  154.      */
  155.     public function indexLazyload(TranslatorInterface $translator)
  156.     {
  157.         $entityManager $this->em;
  158.         //Declaration pour le QueryBuilder
  159.         $dm $this->em;
  160.         $qb $dm->createQueryBuilder();
  161.         //Le nombre total d'imp
  162.         $nbImpsTotal $this->em->getRepository(NetworkAnalyticsBasic::class)->totalImps();
  163.         //Le nombre total de campagne effectuée
  164.         $nbCampaignTotal $this->em->getRepository(NetworkAnalyticsBasic::class)->totalCampaignDistinct();
  165.         //Le nombre de cookie en base
  166.         $nbCookieTotal $this->em->getRepository(SegmentLoad::class)->totalCookie();
  167.         //Le nombre de pixel en base
  168.         $nbPixelTotal $this->em->getRepository(SegmentLoad::class)->nbPixelDistinct();
  169.         //Le nombre de client
  170.         $nbClient $this->em->getRepository(Advertisers::class)->nombreTotalClientDistinct();
  171.         //Le nombre de campagne self-service
  172.         $nbCampaignSelfService $this->em->getRepository(PurchasedCampaign::class)->nbCampaignDistinct();
  173.         //Le nombre d'utilisateur activé
  174.         $nbActiveUser $this->em->getRepository(User::class)->countUsersByActive(1);
  175.         //Le nombre de projet activation en cours
  176.         $nbProjetsEnCours $this->em->getRepository(ProjetsOldActivation::class)->countActivationActive();
  177.         //Le nombre de projet activation a activé
  178.         $nbProjetsAActiver $this->em->getRepository(ProjetsOldActivation::class)->countActivationAActiver();
  179.         //Le nombre de projet activation en attente
  180.         $nbProjetsEnAttente $this->em->getRepository(ProjetsOldActivation::class)->countActivationEnAttente();
  181.         //Le nombre de go tech
  182.         $nbGoTech $this->emBackofficeProjet->getRepository(Implementation::class)->countGoTech();
  183.         //Le nombre de sujet implémentation en cours
  184.         $nbImplementationEnCours $this->emBackofficeProjet->getRepository(Implementation::class)->countEnCours();
  185.         //Le nombre de Grands Compte Actif
  186.         $nbGcActif $this->em->getRepository(GrandsComptes::class)->countActiveGC();
  187.         //Le nombre de wallets credités
  188.         $nbWalletsCredites $this->em->getRepository(Wallet::class)->countWalletsCredites();
  189.         //Le nombre d'abonnement actif
  190.         $nbAbonnementActif $this->em->getRepository(Abonnement::class)->countActiveAbonnement();
  191.         //Le nombre de key client actif
  192.         $nbKeyClientActif $this->emDashboardSystem->getRepository(Clients::class)->countActiveKeyClients();
  193.         //Le nombre de client actif
  194.         $nbClientActif $this->emDashboardSystem->getRepository(Clients::class)->countActive();
  195.         //Le nombre de client actif
  196.         $nbCampagneSelfClient $this->em->getRepository(PurchasedCampaign::class)->countAllPaidCampaignWithoutTest();
  197.         return new Response(
  198.             json_encode(array(
  199.                 'nbImpsTotal' => $nbImpsTotal,
  200.                 'nbCampaignTotal' => $nbCampaignTotal,
  201.                 'nbCookieTotal' => $nbCookieTotal,
  202.                 'nbPixelTotal' => $nbPixelTotal,
  203.                 'nbClient' => $nbClient,
  204.                 'nbProjetsEnCours' => $nbProjetsEnCours,
  205.                 'nbProjetsAActiver' => $nbProjetsAActiver,
  206.                 'nbActiveUser' => $nbActiveUser,
  207.                 'nbCampaignSelfService' => $nbCampaignSelfService,
  208.                 'nbGoTech' => $nbGoTech,
  209.                 'nbGcActif' => $nbGcActif,
  210.                 'nbCampagneSelfClient' => $nbCampagneSelfClient,
  211.                 'nbWalletsCredites' => $nbWalletsCredites,
  212.                 'nbAbonnementActif' => $nbAbonnementActif,
  213.                 'nbKeyClientActif' => $nbKeyClientActif,
  214.                 'nbImplementationEnCours' => $nbImplementationEnCours,
  215.                 'nbClientActif' => $nbClientActif,
  216.                 'nbProjetsEnAttente' => $nbProjetsEnAttente
  217.             )),
  218.             Response::HTTP_OK,
  219.             ['content-type' => 'application/json']
  220.         );
  221.     }
  222.     /**
  223.      * @Route("/old/lazyload/index", name="indexOldLazyload")
  224.      */
  225.     public function indexOldLazyload(TranslatorInterface $translator)
  226.     {
  227.         $entityManager $this->em;
  228.         //Declaration pour le QueryBuilder
  229.         $dm $this->em;
  230.         $qb $dm->createQueryBuilder();
  231.         //Le nombre total d'imp
  232.         $nbImpsTotal $this->em->getRepository(NetworkAnalyticsBasic::class)->totalImps();
  233.         //Le nombre total de campagne effectuée
  234.         $nbCampaignTotal $this->em->getRepository(NetworkAnalyticsBasic::class)->totalCampaignDistinct();
  235.         //Le nombre de cookie en base
  236.         $nbCookieTotal $this->em->getRepository(SegmentLoad::class)->totalCookie();
  237.         //Le nombre de pixel en base
  238.         $nbPixelTotal $this->em->getRepository(SegmentLoad::class)->nbPixelDistinct();
  239.         //Le nombre de client
  240.         $nbClient $this->em->getRepository(Advertisers::class)->nombreTotalClientDistinct();
  241.         //Le nombre de campagne self-service
  242.         $nbCampaignSelfService $this->em->getRepository(PurchasedCampaign::class)->nbCampaignDistinct();
  243.         //Le nombre d'utilisateur activé
  244.         $nbActiveUser $this->em->getRepository(User::class)->countUsersByActive(1);
  245.         //Le nombre de projet activation en cours
  246.         $nbProjetsEnCours $this->em->getRepository(ProjetsOldActivation::class)->countActivationActive();
  247.         //Le nombre de projet activation a activé
  248.         $nbProjetsAActiver $this->em->getRepository(ProjetsOldActivation::class)->countActivationAActiver();
  249.         //Le nombre de projet activation en attente
  250.         $nbProjetsEnAttente $this->em->getRepository(ProjetsOldActivation::class)->countActivationEnAttente();
  251.         //Le nombre de go tech
  252.         $nbGoTech $this->emBackofficeProjet->getRepository(Implementation::class)->countGoTech();
  253.         //Le nombre de sujet implémentation en cours
  254.         $nbImplementationEnCours $this->emBackofficeProjet->getRepository(Implementation::class)->countEnCours();
  255.         //Le nombre de Grands Compte Actif
  256.         $nbGcActif $this->em->getRepository(GrandsComptes::class)->countActiveGC();
  257.         //Le nombre de wallets credités
  258.         $nbWalletsCredites $this->em->getRepository(Wallet::class)->countWalletsCredites();
  259.         //Le nombre d'abonnement actif
  260.         $nbAbonnementActif $this->em->getRepository(Abonnement::class)->countActiveAbonnement();
  261.         //Le nombre de key client actif
  262.         $nbKeyClientActif $this->emDashboardSystem->getRepository(Clients::class)->countActiveKeyClients();
  263.         //Le nombre de client actif
  264.         $nbClientActif $this->emDashboardSystem->getRepository(Clients::class)->countActive();
  265.         //Le nombre de client actif
  266.         $nbCampagneSelfClient $this->em->getRepository(PurchasedCampaign::class)->countAllPaidCampaignWithoutTest();
  267.         //Nombre de campagne active
  268.         //$parameters = array(
  269.         //    'date' => date('Y-m-d', time()- 60 * 60 * 48),
  270.         //    'seconddate' => date('Y-m-d', time())
  271.         //);
  272.         //$query = $entityManager->createQuery(
  273.         //    'SELECT DISTINCT p.insertionOrderName
  274.         //    FROM App\Entity\Main\Xandr\NetworkAnalyticsBasic p
  275.         //    WHERE p.date BETWEEN :date AND :seconddate AND p.imps > 1500
  276.         //    ORDER BY p.convsRate ASC'
  277.         //)->setParameters($parameters);
  278.         //try{
  279.         //$nbCampagneActiveQuery = $query->execute();
  280.         //}catch (\Throwable $th) {
  281.         //    //throw $th;
  282.         //    $nbCampagneActiveQuery[0] = 0;
  283.         //}
  284.         //$nbCampagneActive = count($nbCampagneActiveQuery);
  285.         //$nbCampagneActive = $this->em->getRepository(NetworkAnalyticsBasic::class)->totalCampaignActive();
  286.         //Nombre d'imp last 1 years
  287.         $parameters = array(
  288.             'firstdate' =>  date('Y-m-d'strtotime('today - 1 years')),
  289.             'seconddate' => date('Y-m-d'strtotime('today'))
  290.         );
  291.         $query $entityManager->createQuery(
  292.             'SELECT p.date, SUM(p.imps), SUM(p.clicks), SUM(p.totalConvs)
  293.             FROM App\Entity\Main\Xandr\NetworkAnalytics p
  294.             WHERE   p.date BETWEEN :firstdate AND :seconddate
  295.             GROUP BY p.date
  296.             ORDER BY p.date  ASC'
  297.         )->setParameters($parameters);
  298.         $impsLast2Years $query->execute();
  299.         $DBMdm $this->emDashboardDbm;
  300.         //$DBMqb = $dm->createQueryBuilder();
  301.         $query $DBMdm->createQuery(
  302.             'SELECT p.date, SUM(p.impressions), SUM(p.clicks), SUM(p.totalConversions)
  303.                     FROM \App\Entity\DashboardDbm\ReportingNetwork p
  304.                     WHERE   p.date BETWEEN :firstdate AND :seconddate
  305.                     GROUP BY p.date
  306.                     ORDER BY p.date  ASC'
  307.         )->setParameters($parameters);
  308.         $DbmImpsLast2Years $query->execute();
  309.         $fbdm $this->emDashboardFacebook;
  310.         //$DBMqb = $dm->createQueryBuilder();
  311.         $query $fbdm->createQuery(
  312.             'SELECT p.date, SUM(p.impressions), SUM(p.clicks), SUM(p.actions_purchase)
  313.                     FROM \App\Entity\DashboardFacebook\Campaign p
  314.                     WHERE   p.date BETWEEN :firstdate AND :seconddate
  315.                     GROUP BY p.date
  316.                     ORDER BY p.date  ASC'
  317.         )->setParameters($parameters);
  318.         $FbImpsLast2Years $query->execute();
  319.         $testDbmDate = array();
  320.         $testAppnexusDate = array();
  321.         $testFbDate = array();
  322.         //Get the list of date of DBM and put it in an array
  323.         foreach ($DbmImpsLast2Years as $item) {
  324.             array_push($testDbmDate$item['date']->format('Y-m-d'));
  325.         }
  326.         //Get the list of date of Appnexus and put it in an array
  327.         foreach ($impsLast2Years as $item) {
  328.             array_push($testAppnexusDate$item['date']->format('Y-m-d'));
  329.         }
  330.         //Get the list of date of fb and put it in an array
  331.         foreach ($FbImpsLast2Years as $item) {
  332.             array_push($testFbDate$item['date']->format('Y-m-d'));
  333.         }
  334.         //Merge les tables de date DBM & Appnexus et enleve les doublons
  335.         $testUnique array_unique(array_merge($testDbmDate$testAppnexusDate$testFbDate), SORT_REGULAR);
  336.         //Met la table dans l'ordre croissant
  337.         usort($testUnique, function ($time1$time2) {
  338.             if (strtotime($time1) > strtotime($time2))
  339.                 return 1;
  340.             else if (strtotime($time1) < strtotime($time2))
  341.                 return -1;
  342.             else
  343.                 return 0;
  344.         });
  345.         //DBM DATA MERGE
  346.         $networkMerged = array();
  347.         foreach ($DbmImpsLast2Years as $item) {
  348.             $tempDate =  $item["date"]->format('Y-m-d');
  349.             $networkMerged[$tempDate][0] = $item;
  350.         }
  351.         //XANDR DATA MERGE
  352.         foreach ($impsLast2Years as $item) {
  353.             $tempDate =  $item["date"]->format('Y-m-d');
  354.             if (empty($networkMerged[$item["date"]->format('Y-m-d')])) {
  355.                 $networkMerged[$tempDate][0] = null;
  356.                 $networkMerged[$tempDate][1] = $item;
  357.             } else {
  358.                 $temp $networkMerged[$tempDate];
  359.                 $arrayTemp = array();
  360.                 $arrayTemp[0] = $temp[0];
  361.                 $arrayTemp[1] = $item;
  362.                 $networkMerged[$tempDate] = $arrayTemp;
  363.             }
  364.         }
  365.         //FACEBOOK DATA MERGE
  366.         foreach ($FbImpsLast2Years as $item) {
  367.             $tempDate =  $item["date"]->format('Y-m-d');
  368.             if (empty($networkMerged[$tempDate])) {
  369.                 $networkMerged[$tempDate][0] = null;
  370.                 $networkMerged[$tempDate][1] = null;
  371.                 $networkMerged[$tempDate][2] = $item;
  372.             } else {
  373.                 $temp $networkMerged[$tempDate];
  374.                 $arrayTemp = array();
  375.                 $arrayTemp[0] = $temp[0];
  376.                 $arrayTemp[1] = $temp[1];
  377.                 $arrayTemp[2] = $item;
  378.                 $networkMerged[$tempDate] = $arrayTemp;
  379.             }
  380.         }
  381.         $mainChartDate "[";
  382.         $mainChartImps "[";
  383.         $mainChartClick "[";
  384.         $mainChartTotalConv "[";
  385.         $mainChartDBMImps "[";
  386.         $mainChartDBMClick "[";
  387.         $mainChartDBMTotalConv "[";
  388.         $mainChartFbImps "[";
  389.         $mainChartFbClick "[";
  390.         $mainChartFbTotalConv "[";
  391.         $mainChartQSTotalImps 0;
  392.         $mainChartQSTotalClick 0;
  393.         $mainChartQSTotalConv 0;
  394.         $i = -1;
  395.         foreach ($testUnique as $item) {
  396.             $i++;
  397.             $mainChartDate .= "'" $item "'" ",";
  398.             $tempStateAppnexus = empty($networkMerged[$item][1]);
  399.             $tempStateDBM = empty($networkMerged[$item][0]);
  400.             $tempStateFB = empty($networkMerged[$item][2]);
  401.             //Build JSON table with DBM data
  402.             if ($tempStateDBM) {
  403.                 $mainChartDBMImps .= '0,';
  404.                 $mainChartDBMClick .= "0,";
  405.                 $mainChartDBMTotalConv .= "0,";
  406.             } else {
  407.                 $mainChartDBMImps .= $networkMerged[$item][0][1] . ",";
  408.                 $mainChartDBMClick .= $networkMerged[$item][0][2] . ",";
  409.                 $mainChartDBMTotalConv .= $networkMerged[$item][0][3] . ",";
  410.             }
  411.             $mainChartQSTotalImps += $item[1];
  412.             $mainChartQSTotalClick += $item[2];
  413.             $mainChartQSTotalConv += $item[3];
  414.             //Build JSON table with Appnexus data
  415.             if ($tempStateAppnexus) {
  416.                 $mainChartImps .= "0,";
  417.                 $mainChartClick .= "0,";
  418.                 $mainChartTotalConv .= "0,";
  419.             } else {
  420.                 $mainChartImps .= $networkMerged[$item][1][1] . ",";
  421.                 $mainChartClick .= $networkMerged[$item][1][2] . ",";
  422.                 $mainChartTotalConv .= $networkMerged[$item][1][3] . ",";
  423.                 $mainChartQSTotalImps += $networkMerged[$item][1][1];
  424.                 $mainChartQSTotalClick += $networkMerged[$item][1][2];
  425.                 $mainChartQSTotalConv += $networkMerged[$item][1][3];
  426.             }
  427.             //Build JSON table with Facebook data
  428.             if ($tempStateFB) {
  429.                 $mainChartFbImps .= "0,";
  430.                 $mainChartFbClick .= "0,";
  431.             } else {
  432.                 $mainChartFbImps .= $networkMerged[$item][2][1] . ",";
  433.                 $mainChartFbClick .= $networkMerged[$item][2][2] . ",";
  434.                 if ($networkMerged[$item][2][3] == "") {
  435.                     $mainChartFbTotalConv .= "0,";
  436.                 } else {
  437.                     $mainChartFbTotalConv .= $networkMerged[$item][2][3] . ",";
  438.                 }
  439.                 $mainChartQSTotalImps += $networkMerged[$item][2][1];
  440.                 $mainChartQSTotalClick += $networkMerged[$item][2][2];
  441.             }
  442.         }
  443.         $mainChartDate substr($mainChartDate0, -1) . ']';
  444.         $mainChartImps substr($mainChartImps0, -1) . ']';
  445.         $mainChartClick substr($mainChartClick0, -1) . ']';
  446.         $mainChartTotalConv substr($mainChartTotalConv0, -1) . ']';
  447.         $mainChartDBMImps substr($mainChartDBMImps0, -1) . ']';
  448.         $mainChartDBMClick substr($mainChartDBMClick0, -1) . ']';
  449.         $mainChartDBMTotalConv substr($mainChartDBMTotalConv0, -1) . ']';
  450.         $mainChartFbImps substr($mainChartFbImps0, -1) . ']';
  451.         $mainChartFbClick substr($mainChartFbClick0, -1) . ']';
  452.         $mainChartFbTotalConv substr($mainChartFbTotalConv0, -1) . ']';
  453.         if ($mainChartQSTotalImps == 0) {
  454.             $mainChartCtr 0;
  455.         } else {
  456.             $mainChartCtr $mainChartQSTotalClick 100 $mainChartQSTotalImps;
  457.         }
  458.         if ($mainChartFbTotalConv == ']') {
  459.             $mainChartFbTotalConv '[]';
  460.         }
  461.         //Liste de theme pour les advertisers
  462.         $advTheme $this->em
  463.             ->getRepository(AdvertisersThemed::class)
  464.             ->findAll();
  465.         $chart3Name '[';
  466.         $chart3Data '[';
  467.         $chart3BackgroundColor '[';
  468.         foreach ($advTheme as $theme) {
  469.             $chart3Name .= '"' $theme->getName() . '",';
  470.             $advTheme $this->em
  471.                 ->getRepository(Advertisers::class)
  472.                 ->findBy(array("themeId" => $theme->getId()));
  473.             $chart3Data .= "" count($advTheme) . ",";
  474.             $chart3BackgroundColor .= "'" $theme->getColor() . "',";
  475.         }
  476.         $advTheme $this->em
  477.             ->getRepository(Advertisers::class)
  478.             ->findBy(array("themeId" => null));
  479.         count($advTheme);
  480.         $chart3Name .= '"' $translator->trans('Sans catégorie') . '",';
  481.         $chart3Data .= "" count($advTheme) . ",";
  482.         $chart3Name substr($chart3Name0, -1) . ']';
  483.         $chart3BackgroundColor substr($chart3BackgroundColor0, -1) . ']';
  484.         $chart3Data substr($chart3Data0, -1) . ']';
  485.         $chart5Label "[";
  486.         $chart5Data "[";
  487.         /*
  488.                 Line Item qui ne respecte pas la nomenclature
  489.                 */
  490.         $parameters = array(
  491.             'lineitemname1' => '%IAB%',
  492.             'lineitemname2' => '%habillage%',
  493.             'lineitemname3' => '%natif%',
  494.             'lineitemname4' => '%preroll%',
  495.             'lineitemname5' => '%inread%',
  496.             'lineitemname6' => '%IPTV%',
  497.             'date' => date('Y-m-d'time() - 60 60 48),
  498.             'seconddate' => date('Y-m-d'time() - 60 60 24)
  499.         );
  500.         $query $entityManager->createQuery(
  501.             'SELECT p
  502.                     FROM App\Entity\Main\Xandr\NetworkAnalytics p
  503.                     WHERE p.date BETWEEN :date AND :seconddate AND p.lineItemName NOT LIKE :lineitemname1 AND p.lineItemName NOT LIKE :lineitemname2 AND p.lineItemName NOT LIKE :lineitemname3 AND p.lineItemName NOT LIKE :lineitemname4 AND p.lineItemName NOT LIKE :lineitemname5 AND p.lineItemName NOT LIKE :lineitemname6'
  504.         )->setParameters($parameters);
  505.         $liBadName $query->execute();
  506.         $liBadNameCount 0;
  507.         if (count($liBadName) != 0) {
  508.             $liBadNameCount count($liBadName);
  509.             $chart5Label .= "'" $translator->trans('Mauvais nommage') . "',";
  510.             $chart5Data .= $liBadNameCount ",";
  511.         }
  512.         /*
  513.                 Line Item ayant le nom IAB
  514.                 */
  515.         $parameters = array(
  516.             'lineitemname' => '%IAB%',
  517.             'date' => date('Y-m-d'time() - 60 60 48),
  518.             'seconddate' => date('Y-m-d'time() - 60 60 24)
  519.         );
  520.         $query $entityManager->createQuery(
  521.             'SELECT p
  522.                     FROM App\Entity\Main\Xandr\NetworkAnalytics p
  523.                     WHERE p.date BETWEEN :date AND :seconddate AND p.lineItemName LIKE :lineitemname'
  524.         )->setParameters($parameters);
  525.         $liIab $query->execute();
  526.         $liIabCount 0;
  527.         if (count($liIab) != 0) {
  528.             $liIabCount count($liIab);
  529.             $chart5Label .= "'" $translator->trans('Iab') . "',";
  530.             $chart5Data .= $liIabCount ",";
  531.         }
  532.         /*
  533.                 Line Item ayant le nom habillage
  534.                 */
  535.         $parameters = array(
  536.             'lineitemname' => '%habillage%',
  537.             'date' => date('Y-m-d'time() - 60 60 48),
  538.             'seconddate' => date('Y-m-d'time() - 60 60 24)
  539.         );
  540.         $query $entityManager->createQuery(
  541.             'SELECT p
  542.                     FROM App\Entity\Main\Xandr\NetworkAnalytics p
  543.                     WHERE p.date BETWEEN :date AND :seconddate AND p.lineItemName LIKE :lineitemname'
  544.         )->setParameters($parameters);
  545.         $liHabillage $query->execute();
  546.         $liHabillageCount 0;
  547.         if (count($liHabillage) != 0) {
  548.             $liHabillageCount count($liHabillage);
  549.             $chart5Label .= "'" $translator->trans('Habillage') . "',";
  550.             $chart5Data .= $liHabillageCount ",";
  551.         }
  552.         /*
  553.                 Line Item ayant le nom natif
  554.                 */
  555.         $parameters = array(
  556.             'lineitemname' => '%natif%',
  557.             'date' => date('Y-m-d'time() - 60 60 48),
  558.             'seconddate' => date('Y-m-d'time() - 60 60 24)
  559.         );
  560.         $query $entityManager->createQuery(
  561.             'SELECT p
  562.                     FROM App\Entity\Main\Xandr\NetworkAnalytics p
  563.                     WHERE p.date BETWEEN :date AND :seconddate AND p.lineItemName LIKE :lineitemname'
  564.         )->setParameters($parameters);
  565.         $liNatif $query->execute();
  566.         $liNatifCount 0;
  567.         if (count($liNatif) != 0) {
  568.             $liNatifCount count($liNatif);
  569.             $chart5Label .= "'" $translator->trans('Natif') . "',";
  570.             $chart5Data .= $liNatifCount ",";
  571.         }
  572.         /*
  573.                Line Item ayant le nom preroll
  574.                */
  575.         $parameters = array(
  576.             'lineitemname' => '%preroll%',
  577.             'date' => date('Y-m-d'time() - 60 60 48),
  578.             'seconddate' => date('Y-m-d'time() - 60 60 24)
  579.         );
  580.         $query $entityManager->createQuery(
  581.             'SELECT p
  582.                    FROM App\Entity\Main\Xandr\NetworkAnalytics p
  583.                    WHERE p.date BETWEEN :date AND :seconddate AND p.lineItemName LIKE :lineitemname'
  584.         )->setParameters($parameters);
  585.         $liPreroll $query->execute();
  586.         $liPrerollCount 0;
  587.         if (count($liPreroll) != 0) {
  588.             $liPrerollCount count($liPreroll);
  589.             $chart5Label .= "'" $translator->trans('Pre-roll') . "',";
  590.             $chart5Data .= $liPrerollCount ",";
  591.         }
  592.         /*
  593.                Line Item ayant le nom inread
  594.                */
  595.         $parameters = array(
  596.             'lineitemname' => '%inread%',
  597.             'date' => date('Y-m-d'time() - 60 60 48),
  598.             'seconddate' => date('Y-m-d'time() - 60 60 24)
  599.         );
  600.         $query $entityManager->createQuery(
  601.             'SELECT p
  602.                     FROM App\Entity\Main\Xandr\NetworkAnalytics p
  603.                     WHERE p.date BETWEEN :date AND :seconddate AND p.lineItemName LIKE :lineitemname'
  604.         )->setParameters($parameters);
  605.         $liInread $query->execute();
  606.         $liInreadCount 0;
  607.         if (count($liInread) != 0) {
  608.             $liInreadCount count($liInread);
  609.             $chart5Label .= "'" $translator->trans("In-Read") . "',";
  610.             $chart5Data .= $liInreadCount ",";
  611.         }
  612.         /*
  613.                Line Item ayant le nom IPTV
  614.                */
  615.         $parameters = array(
  616.             'lineitemname' => '%IPTV%',
  617.             'date' => date('Y-m-d'time() - 60 60 48),
  618.             'seconddate' => date('Y-m-d'time() - 60 60 24)
  619.         );
  620.         $query $entityManager->createQuery(
  621.             'SELECT p
  622.                     FROM App\Entity\Main\Xandr\NetworkAnalytics p
  623.                     WHERE p.date BETWEEN :date AND :seconddate AND p.lineItemName LIKE :lineitemname'
  624.         )->setParameters($parameters);
  625.         $liIPTV $query->execute();
  626.         $liIPTVCount 0;
  627.         if (count($liIPTV) != 0) {
  628.             $liIPTVCount count($liIPTV);
  629.             $chart5Label .= "'" $translator->trans('IPTV') . "',";
  630.             $chart5Data .= $liIPTVCount ",";
  631.         }
  632.         $chart5Label substr($chart5Label0, -1) . ']';
  633.         $chart5Data substr($chart5Data0, -1) . ']';
  634.         $parameters = array(
  635.             'firstdate' =>  date('Y-m-d'strtotime('today - 30 days')),
  636.             'seconddate' => date('Y-m-d'strtotime('today'))
  637.         );
  638.         $query $entityManager->createQuery(
  639.             'SELECT p.date, SUM(p.imps), SUM(p.clicks), SUM(p.totalConvs)
  640.                     FROM App\Entity\Main\Xandr\NetworkAnalytics p
  641.                     WHERE   p.date BETWEEN :firstdate AND :seconddate
  642.                     GROUP BY p.date
  643.                     ORDER BY p.date  ASC'
  644.         )->setParameters($parameters);
  645.         $impsLast30Days $query->execute();
  646.         //$DBMqb = $dm->createQueryBuilder();
  647.         $query $DBMdm->createQuery(
  648.             'SELECT p.date, SUM(p.impressions), SUM(p.clicks), SUM(p.totalConversions)
  649.                     FROM \App\Entity\DashboardDbm\ReportingNetwork p
  650.                     WHERE   p.date BETWEEN :firstdate AND :seconddate
  651.                     GROUP BY p.date
  652.                     ORDER BY p.date  ASC'
  653.         )->setParameters($parameters);
  654.         $dbmImpsLast30Days $query->execute();
  655.         $testDbmDate = array();
  656.         $testAppnexusDate = array();
  657.         //Get the list of date of DBM and put it in an array
  658.         foreach ($dbmImpsLast30Days as $item) {
  659.             array_push($testDbmDate$item['date']->format('Y-m-d'));
  660.         }
  661.         //Get the list of date of Appnexus and put it in an array
  662.         foreach ($impsLast30Days as $item) {
  663.             array_push($testAppnexusDate$item['date']->format('Y-m-d'));
  664.         }
  665.         //Merge les tables de date DBM & Appnexus et enleve les doublons
  666.         $testUnique array_unique(array_merge($testDbmDate$testAppnexusDate), SORT_REGULAR);
  667.         //Met la table dans l'ordre croissant
  668.         usort($testUnique, function ($time1$time2) {
  669.             if (strtotime($time1) > strtotime($time2))
  670.                 return 1;
  671.             else if (strtotime($time1) < strtotime($time2))
  672.                 return -1;
  673.             else
  674.                 return 0;
  675.         });
  676.         $networkMerged = array();
  677.         foreach ($dbmImpsLast30Days as $item) {
  678.             $tempDate =  $item["date"]->format('Y-m-d');
  679.             $networkMerged[$tempDate] = $item;
  680.         }
  681.         foreach ($impsLast30Days as $item) {
  682.             $tempDate =  $item["date"]->format('Y-m-d');
  683.             if (empty($networkMerged[$item["date"]->format('Y-m-d')])) {
  684.                 $networkMerged[$tempDate][0] = null;
  685.                 $networkMerged[$tempDate][1] = $item;
  686.             } else {
  687.                 $temp $networkMerged[$tempDate];
  688.                 $arrayTemp = array();
  689.                 $arrayTemp[0] = $temp;
  690.                 $arrayTemp[1] = $item;
  691.                 $networkMerged[$tempDate] = $arrayTemp;
  692.             }
  693.         }
  694.         $chart1Date "[";
  695.         $chart1Imps "[";
  696.         $chart1Click "[";
  697.         $chart1TotalConv "[";
  698.         $chart1DBMImps "[";
  699.         $chart1DBMClick "[";
  700.         $chart1DBMTotalConv "[";
  701.         foreach ($testUnique as $item) {
  702.             $chart1Date .= "'" $item "'" ",";
  703.             $tempStateAppnexus = empty($networkMerged[$item][1]);
  704.             $tempStateDBM = empty($networkMerged[$item][0]);
  705.             //Build JSON table with DBM data
  706.             if ($tempStateDBM) {
  707.                 $chart1DBMImps .= '0,';
  708.                 $chart1DBMClick .= "0,";
  709.                 $chart1DBMTotalConv .= "0,";
  710.             } else {
  711.                 $chart1DBMImps .= $networkMerged[$item][0][1] . ",";
  712.                 $chart1DBMClick .= $networkMerged[$item][0][2] * 100 ",";
  713.                 $chart1DBMTotalConv .= $networkMerged[$item][0][3] * 100 ",";
  714.             }
  715.             //Build JSON table with Appnexus data
  716.             if ($tempStateAppnexus) {
  717.                 $chart1Imps .= "0,";
  718.                 $chart1Click .= "0,";
  719.                 $chart1TotalConv .= "0,";
  720.             } else {
  721.                 $chart1Imps .= $networkMerged[$item][1][1] . ",";
  722.                 $chart1Click .= $networkMerged[$item][1][2] * 100 ",";
  723.                 $chart1TotalConv .= $networkMerged[$item][1][3] * 100 ",";
  724.             }
  725.         }
  726.         $chart1Date substr($chart1Date0, -1) . ']';
  727.         $chart1Imps substr($chart1Imps0, -1) . ']';
  728.         $chart1Click substr($chart1Click0, -1) . ']';
  729.         $chart1TotalConv substr($chart1TotalConv0, -1) . ']';
  730.         $chart1DBMImps substr($chart1DBMImps0, -1) . ']';
  731.         $chart1DBMClick substr($chart1DBMClick0, -1) . ']';
  732.         $chart1DBMTotalConv substr($chart1DBMTotalConv0, -1) . ']';
  733.         //$chartcard3Label = "[";
  734.         //$chartcard3Data = "[";
  735.         //$query = $entityManager->createQuery(
  736.         //    'SELECT COUNT(p.id) as nbCampaign, SUBSTRING(p.purchasedDate, 6, 2) as month, SUBSTRING(p.purchasedDate, 1, 4) as year
  737.         //     FROM App\Entity\Main\SelfService\PurchasedCampaign p
  738.         //     GROUP BY month, year
  739.         //     ORDER BY p.purchasedDate ASC'
  740.         // );
  741.         // try {
  742.         //    $selfServiceCampaign = $query->execute();
  743.         //    foreach ($selfServiceCampaign as $item) {
  744.         //        $chartcard3Label .= "'".$item['month']."-".$item['year']."',";
  745.         //        $chartcard3Data .= $item['nbCampaign'].",";
  746.         //    }
  747.         // } catch (\Throwable $th) {
  748.         //    $chartcard3Label .= "'".$translator->trans("Pas de data")."''";
  749.         //    $chartcard3Data .= 0;
  750.         // }
  751.         //
  752.         //$chartcard3Label = substr($chartcard3Label, 0, -1).']';
  753.         //$chartcard3Data = substr($chartcard3Data, 0, -1).']';
  754.         //$chartcard2Label = "[";
  755.         //$chartcard2Data = "[";
  756.         ////Nombre de campagne active par jour
  757.         //$parameters = array(
  758.         //    'date' => date('Y-m-d', time()- 60 * 60 * 168),
  759.         //    'seconddate' => date('Y-m-d', time())
  760.         //);
  761.         //$query = $entityManager->createQuery(
  762.         //   'SELECT COUNT(DISTINCT p.insertionOrderName) as ioname, SUBSTRING(p.date, 6, 2) as month, SUBSTRING(p.date, 1, 4) as year, SUBSTRING(p.date, 9, 2) as day
  763.         //    FROM App\Entity\Main\Xandr\NetworkAnalyticsBasic p
  764.         //    WHERE p.date BETWEEN :date AND :seconddate AND p.imps > 1500
  765.         //    GROUP BY day, month, year
  766.         //    ORDER BY p.date ASC'
  767.         //)->setParameters($parameters);
  768.         //try {
  769.         //    $nbCampagneActiveQuery = $query->execute();
  770.         //    foreach ($nbCampagneActiveQuery as $item) {
  771.         //        $chartcard2Label .= "'".$item['day']."-".$item['month']."-".$item['year']."',";
  772.         //        $chartcard2Data .= $item['ioname'].",";
  773.         //    }
  774.         //} catch (\Throwable $th) {
  775.         //    $chartcard2Label .= "'".$translator->trans("Pas de data")."''";
  776.         //    $chartcard2Data .= "0";
  777.         //}
  778.         //$chartcard2Label = substr($chartcard2Label, 0, -1).']';
  779.         //$chartcard2Data = substr($chartcard2Data, 0, -1).']';
  780.         //Historique client
  781.         //$chartcard1Label = "[";
  782.         //$chartcard1Data = "[";
  783.         //$parameters = array(
  784.         //    'date' => date('Y-m-d', time()- 60 * 60 * 24 * 730),
  785.         //    'seconddate' => date('Y-m-d', time())
  786.         //);
  787.         //$query = $entityManager->createQuery(
  788.         //   'SELECT COUNT(DISTINCT p.advertiserName) as nbClient, SUBSTRING(p.date, 6, 2) as month, SUBSTRING(p.date, 1, 4) as year
  789.         //    FROM App\Entity\Main\Xandr\NetworkAnalyticsBasic p
  790.         //    WHERE p.date BETWEEN :date AND :seconddate
  791.         //    GROUP BY month, year
  792.         //    ORDER BY p.date ASC'
  793.         //)->setParameters($parameters);
  794.         //
  795.         //try {
  796.         //    $nbClientPerDay = $query->execute();
  797.         //    foreach ($nbClientPerDay as $item) {
  798.         //        $chartcard1Label .= "'".$item['month']."-".$item['year']."',";
  799.         //        $chartcard1Data .= $item['nbClient'].",";
  800.         //    }
  801.         //} catch (\Throwable $th) {
  802.         //    $chartcard1Label .= "'".$translator->trans("Pas de data")."''";
  803.         //    $chartcard1Data .= "0";
  804.         //}
  805.         //$chartcard1Label = substr($chartcard1Label, 0, -1).']';
  806.         //$chartcard1Data = substr($chartcard1Data, 0, -1).']';
  807.         if ($chart5Label == ']') {
  808.             $chart5Label '["no data"]';
  809.         }
  810.         if ($chart5Data == ']') {
  811.             $chart5Data '[100]';
  812.         }
  813.         return new Response(
  814.             json_encode(array(
  815.                 'nbImpsTotal' => $nbImpsTotal,
  816.                 'nbCampaignTotal' => $nbCampaignTotal,
  817.                 'nbCookieTotal' => $nbCookieTotal,
  818.                 'nbPixelTotal' => $nbPixelTotal,
  819.                 'nbClient' => $nbClient,
  820.                 'nbProjetsEnCours' => $nbProjetsEnCours,
  821.                 'nbProjetsAActiver' => $nbProjetsAActiver,
  822.                 'nbActiveUser' => $nbActiveUser,
  823.                 //'nbCampagneActive' => $nbCampagneActive,
  824.                 'nbCampaignSelfService' => $nbCampaignSelfService,
  825.                 //'chartcard1Data' => $chartcard1Data,
  826.                 //'chartcard1Label' => $chartcard1Label,
  827.                 //'chartcard2Label' => $chartcard2Label,
  828.                 //'chartcard2Data' => $chartcard2Data,
  829.                 //'chartcard3Label' => $chartcard3Label,
  830.                 //'chartcard3Data' => $chartcard3Data,
  831.                 'chart1Date' => $chart1Date,
  832.                 'chart1Imps' => $chart1Imps,
  833.                 'chart1Click' => $chart1Click,
  834.                 'chart1TotalConv' => $chart1TotalConv,
  835.                 'chart1DBMImps' => $chart1DBMImps,
  836.                 'chart1DBMClick' => $chart1DBMClick,
  837.                 'chart1DBMTotalConv' => $chart1DBMTotalConv,
  838.                 'chart5Label' => $chart5Label,
  839.                 'chart5Data' => $chart5Data,
  840.                 'mainChartCtr' => $mainChartCtr,
  841.                 'nbGoTech' => $nbGoTech,
  842.                 'nbGcActif' => $nbGcActif,
  843.                 'nbCampagneSelfClient' => $nbCampagneSelfClient,
  844.                 'nbWalletsCredites' => $nbWalletsCredites,
  845.                 'nbAbonnementActif' => $nbAbonnementActif,
  846.                 'nbKeyClientActif' => $nbKeyClientActif,
  847.                 'nbImplementationEnCours' => $nbImplementationEnCours,
  848.                 'mainChartQSTotalImps' => $mainChartQSTotalImps,
  849.                 'mainChartQSTotalClick' => $mainChartQSTotalClick,
  850.                 'mainChartQSTotalConv' => $mainChartQSTotalConv,
  851.                 'chart3BackgroundColor' => $chart3BackgroundColor,
  852.                 'mainChartDate' => $mainChartDate,
  853.                 'mainChartImps' => $mainChartImps,
  854.                 'mainChartClick' => $mainChartClick,
  855.                 'mainChartTotalConv' => $mainChartTotalConv,
  856.                 'mainChartDBMImps' => $mainChartDBMImps,
  857.                 'mainChartDBMClick' => $mainChartDBMClick,
  858.                 'mainChartDBMTotalConv' => $mainChartDBMTotalConv,
  859.                 'mainChartFbImps' => $mainChartFbImps,
  860.                 'mainChartFbClick' => $mainChartFbClick,
  861.                 'mainChartFbTotalConv' => $mainChartFbTotalConv,
  862.                 'chart3Name' => $chart3Name,
  863.                 'chart3Data' => $chart3Data,
  864.                 'nbClientActif' => $nbClientActif,
  865.                 'nbProjetsEnAttente' => $nbProjetsEnAttente
  866.             )),
  867.             Response::HTTP_OK,
  868.             ['content-type' => 'application/json']
  869.         );
  870.     }
  871.     /**
  872.      * @Route("/homepage", name="index")
  873.      */
  874.     public function index(MercureCookieGenerator $cookieGenerator)
  875.     {
  876.         $session = new Session();
  877.         $session->set('userRule'$this->userRule);
  878.         $jwt $this->convertUserAccessToJWT();
  879.         $notificationsUser =  $this->emDashboardSystem
  880.             ->getRepository(\App\Entity\DashboardSystem\Notification::class)
  881.             ->findBy(
  882.                 array(
  883.                     'userId' => $this->get('security.token_storage')->getToken()->getUser()->getId(),
  884.                     'isRead' => 0
  885.                 ),
  886.                 array(
  887.                     "id" => "DESC"
  888.                 ),
  889.                 5
  890.             );
  891.         $notificationsGeneral =  $this->emDashboardSystem
  892.             ->getRepository(\App\Entity\DashboardSystem\Notification::class)
  893.             ->findBy(
  894.                 array(
  895.                     'userId' => 0
  896.                 ),
  897.                 array(
  898.                     "id" => "DESC"
  899.                 ),
  900.                 5
  901.             );
  902.         $response =  $this->render('index/index.html.twig', [
  903.             'notificationsUser' => $notificationsUser,
  904.             'notificationsGeneral' => $notificationsGeneral,
  905.             'controller_name' => 'IndexController',
  906.             'jwt' => $jwt,
  907.             'rss' => array()
  908.         ]);
  909.         $response->headers->set('set-cookie'$cookieGenerator->generate("*"));
  910.         return $response;
  911.     }
  912.     /**
  913.      * @Route("/accessrefused", name="accessrefused")
  914.      */
  915.     public function accessrefused()
  916.     {
  917.         return $this->render('error/error.html.twig', [
  918.             'message' => "Eh! Oh! Tu n'as pas le droit de venir ici !!! :'(",
  919.         ]);
  920.     }
  921.     /**
  922.      * @Route("/colors/", name="colors")
  923.      */
  924.     public function colors()
  925.     {
  926.         return $this->render('index/template/colors.html.twig', [
  927.             'controller_name' => 'IndexController',
  928.         ]);
  929.     }
  930.     /**
  931.      * @Route("/typography/", name="typography")
  932.      */
  933.     public function typography()
  934.     {
  935.         return $this->render('index/template/typography.html.twig', [
  936.             'controller_name' => 'IndexController',
  937.         ]);
  938.     }
  939.     /**
  940.      * @Route("/base-breadcrumb/", name="basebreadcrumb")
  941.      */
  942.     public function basebreadcrumb()
  943.     {
  944.         return $this->render('index/template/base-breadcrumb.html.twig', [
  945.             'controller_name' => 'IndexController',
  946.         ]);
  947.     }
  948.     /**
  949.      * @Route("/base-cards/", name="base-cards")
  950.      */
  951.     public function basecards()
  952.     {
  953.         return $this->render('index/template/base-cards.html.twig', [
  954.             'controller_name' => 'IndexController',
  955.         ]);
  956.     }
  957.     /**
  958.      * @Route("/base-carousel/", name="base-carousel")
  959.      */
  960.     public function basecarousel()
  961.     {
  962.         return $this->render('index/template/base-carousel.html.twig', [
  963.             'controller_name' => 'IndexController',
  964.         ]);
  965.     }
  966.     /**
  967.      * @Route("/base-collapse/", name="base-collapse")
  968.      */
  969.     public function basecollapse()
  970.     {
  971.         return $this->render('index/template/base-collapse.html.twig', [
  972.             'controller_name' => 'IndexController',
  973.         ]);
  974.     }
  975.     /**
  976.      * @Route("/base-forms/", name="base-forms")
  977.      */
  978.     public function baseforms()
  979.     {
  980.         return $this->render('index/template/base-forms.html.twig', [
  981.             'controller_name' => 'IndexController',
  982.         ]);
  983.     }
  984.     /**
  985.      * @Route("/base-jumbotron/", name="base-jumbotron")
  986.      */
  987.     public function basejumbotron()
  988.     {
  989.         return $this->render('index/template/base-jumbotron.html.twig', [
  990.             'controller_name' => 'IndexController',
  991.         ]);
  992.     }
  993.     /**
  994.      * @Route("/base-list-group/", name="base-list-group")
  995.      */
  996.     public function baselistgroup()
  997.     {
  998.         return $this->render('index/template/base-list-group.html.twig', [
  999.             'controller_name' => 'IndexController',
  1000.         ]);
  1001.     }
  1002.     /**
  1003.      * @Route("/base-navs/", name="base-navs")
  1004.      */
  1005.     public function basenavs()
  1006.     {
  1007.         return $this->render('index/template/base-navs.html.twig', [
  1008.             'controller_name' => 'IndexController',
  1009.         ]);
  1010.     }
  1011.     /**
  1012.      * @Route("/base-pagination/", name="base-pagination")
  1013.      */
  1014.     public function basepagination()
  1015.     {
  1016.         return $this->render('index/template/base-pagination.html.twig', [
  1017.             'controller_name' => 'IndexController',
  1018.         ]);
  1019.     }
  1020.     /**
  1021.      * @Route("/base-popovers/", name="base-popovers")
  1022.      */
  1023.     public function basepopovers()
  1024.     {
  1025.         return $this->render('index/template/base-popovers.html.twig', [
  1026.             'controller_name' => 'IndexController',
  1027.         ]);
  1028.     }
  1029.     /**
  1030.      * @Route("/base-progress/", name="base-progress")
  1031.      */
  1032.     public function baseprogress()
  1033.     {
  1034.         return $this->render('index/template/base-progress.html.twig', [
  1035.             'controller_name' => 'IndexController',
  1036.         ]);
  1037.     }
  1038.     /**
  1039.      * @Route("/base-scrollspy/", name="base-scrollspy")
  1040.      */
  1041.     public function basescrollspy()
  1042.     {
  1043.         return $this->render('index/template/base-scrollspy.html.twig', [
  1044.             'controller_name' => 'IndexController',
  1045.         ]);
  1046.     }
  1047.     /**
  1048.      * @Route("/base-switches/", name="base-switches")
  1049.      */
  1050.     public function baseswitches()
  1051.     {
  1052.         return $this->render('index/template/base-switches.html.twig', [
  1053.             'controller_name' => 'IndexController',
  1054.         ]);
  1055.     }
  1056.     /**
  1057.      * @Route("/base-tables/", name="base-tables")
  1058.      */
  1059.     public function basetables()
  1060.     {
  1061.         return $this->render('index/template/base-tables.html.twig', [
  1062.             'controller_name' => 'IndexController',
  1063.         ]);
  1064.     }
  1065.     /**
  1066.      * @Route("/base-tabs/", name="base-tabs")
  1067.      */
  1068.     public function basetabs()
  1069.     {
  1070.         return $this->render('index/template/base-tabs.html.twig', [
  1071.             'controller_name' => 'IndexController',
  1072.         ]);
  1073.     }
  1074.     /**
  1075.      * @Route("/base-tooltips/", name="base-tooltips")
  1076.      */
  1077.     public function basetooltips()
  1078.     {
  1079.         return $this->render('index/template/base-tooltips.html.twig', [
  1080.             'controller_name' => 'IndexController',
  1081.         ]);
  1082.     }
  1083.     /**
  1084.      * @Route("/buttons-buttons/", name="buttons-buttons")
  1085.      */
  1086.     public function buttonsbuttons()
  1087.     {
  1088.         return $this->render('index/template/buttons-buttons.html.twig', [
  1089.             'controller_name' => 'IndexController',
  1090.         ]);
  1091.     }
  1092.     /**
  1093.      * @Route("/buttons-button-group/", name="buttons-button-group")
  1094.      */
  1095.     public function buttonsbuttongroup()
  1096.     {
  1097.         return $this->render('index/template/buttons-button-group.html.twig', [
  1098.             'controller_name' => 'IndexController',
  1099.         ]);
  1100.     }
  1101.     /**
  1102.      * @Route("/buttons-dropdowns/", name="buttons-dropdowns")
  1103.      */
  1104.     public function buttonsdropdowns()
  1105.     {
  1106.         return $this->render('index/template/buttons-dropdowns.html.twig', [
  1107.             'controller_name' => 'IndexController',
  1108.         ]);
  1109.     }
  1110.     /**
  1111.      * @Route("/buttons-brand-buttons/", name="buttons-brand-buttons")
  1112.      */
  1113.     public function buttonsbrandbuttons()
  1114.     {
  1115.         return $this->render('index/template/buttons-brand-buttons.html.twig', [
  1116.             'controller_name' => 'IndexController',
  1117.         ]);
  1118.     }
  1119.     /**
  1120.      * @Route("/charts/", name="charts")
  1121.      */
  1122.     public function charts()
  1123.     {
  1124.         return $this->render('index/template/charts.html.twig', [
  1125.             'controller_name' => 'IndexController',
  1126.         ]);
  1127.     }
  1128.     /**
  1129.      * @Route("/icons-coreui-icons/", name="icons-coreui-icons")
  1130.      */
  1131.     public function iconscoreuiicons()
  1132.     {
  1133.         return $this->render('index/template/icons-coreui-icons.html.twig', [
  1134.             'controller_name' => 'IndexController',
  1135.         ]);
  1136.     }
  1137.     /**
  1138.      * @Route("/icons-flags/", name="icons-flags")
  1139.      */
  1140.     public function iconsflags()
  1141.     {
  1142.         return $this->render('index/template/icons-flags.html.twig', [
  1143.             'controller_name' => 'IndexController',
  1144.         ]);
  1145.     }
  1146.     /**
  1147.      * @Route("/icons-font-awesome/", name="icons-font-awesome")
  1148.      */
  1149.     public function iconsfontawesome()
  1150.     {
  1151.         return $this->render('index/template/icons-font-awesome.html.twig', [
  1152.             'controller_name' => 'IndexController',
  1153.         ]);
  1154.     }
  1155.     /**
  1156.      * @Route("/icons-simple-line-icons/", name="icons-simple-line-icons")
  1157.      */
  1158.     public function iconssimplelineicons()
  1159.     {
  1160.         return $this->render('index/template/icons-simple-line-icons.html.twig', [
  1161.             'controller_name' => 'IndexController',
  1162.         ]);
  1163.     }
  1164.     /**
  1165.      * @Route("/notifications-alerts/", name="notifications-alerts")
  1166.      */
  1167.     public function notificationsalerts()
  1168.     {
  1169.         return $this->render('index/template/notifications-alerts.html.twig', [
  1170.             'controller_name' => 'IndexController',
  1171.         ]);
  1172.     }
  1173.     /**
  1174.      * @Route("/notifications-badge/", name="notifications-badge")
  1175.      */
  1176.     public function notificationsbadge()
  1177.     {
  1178.         return $this->render('index/template/notifications-badge.html.twig', [
  1179.             'controller_name' => 'IndexController',
  1180.         ]);
  1181.     }
  1182.     /**
  1183.      * @Route("/notifications-modals/", name="notifications-modals")
  1184.      */
  1185.     public function notificationsmodals()
  1186.     {
  1187.         return $this->render('index/template/notifications-modals.html.twig', [
  1188.             'controller_name' => 'IndexController',
  1189.         ]);
  1190.     }
  1191.     /**
  1192.      * @Route("/widgets/", name="widgets")
  1193.      */
  1194.     public function widgets()
  1195.     {
  1196.         return $this->render('index/template/widgets.html.twig', [
  1197.             'controller_name' => 'IndexController',
  1198.         ]);
  1199.     }
  1200.     /**
  1201.      * @Route("/404/", name="404")
  1202.      */
  1203.     public function notFound()
  1204.     {
  1205.         return $this->render('index/404.html.twig', [
  1206.             'controller_name' => 'IndexController',
  1207.         ]);
  1208.     }
  1209.     /**
  1210.      * @Route("/500/", name="500")
  1211.      */
  1212.     public function serverErrorpage()
  1213.     {
  1214.         return $this->render('index/500.html.twig', [
  1215.             'controller_name' => 'IndexController',
  1216.         ]);
  1217.     }
  1218. }