src/IUTUDC/WebsiteBundle/Twig/FunctionTwigExtension.php line 41

Open in your IDE?
  1. <?php
  2. namespace IUTUDC\WebsiteBundle\Twig;
  3. use Doctrine\Common\Collections\ArrayCollection;
  4. use Doctrine\ORM\EntityManagerInterface;
  5. use Twig\Extension\AbstractExtension;
  6. use Twig\TwigFunction;
  7. use IUTUDC\WebsiteBundle\Entity\FormationContinue;
  8. use App\Entity\NewsTag;
  9. use App\Entity\Pages\NewsPage;
  10. class FunctionTwigExtension extends AbstractExtension
  11. {
  12.     /**
  13.      * @var EntityManagerInterface
  14.      */
  15.     protected $manager;
  16.     /**
  17.      * @param EntityManagerInterface $manager
  18.      */
  19.     public function __construct(EntityManagerInterface $manager)
  20.     {
  21.         $this->manager $manager;
  22.     }
  23.     public function getFunctions()
  24.     {
  25.         return array(
  26.             new TwigFunction('get_formations', array($this'getFormations')),
  27.             new TwigFunction('get_Formations_Continue', array($this'getFormationsContinue')),
  28.             new TwigFunction('get_last_news', array($this'getLastNews')),
  29.             new TwigFunction('get_news_by_tag_alumni', array($this'getNewsByTagAlumni')),
  30.             new TwigFunction('get_annee_de_promotion', array($this'getAnneeDePromotion')),
  31.             new TwigFunction('get_bg_color', array($this'getBgColor')),
  32.             new TwigFunction('get_public_cible', array($this'getPublicCible'))
  33.         );
  34.     }
  35.     public function getFormations()
  36.     {
  37.         $formations $this->manager->getRepository('App\Entity\Pages\FormationsPage')->getArticles();
  38.         return $formations;
  39.         
  40.     }
  41.     public function getFormationsContinue()
  42.     {
  43.         $formations $this->manager->getRepository(FormationContinue::class)->findAll();
  44.         return $formations;
  45.         
  46.     }
  47.     public function getLastNews()
  48.     {
  49.         return $this->manager->getRepository('App\Entity\Pages\NewsPage')->getLastArticles();
  50.     }
  51.     
  52.     public function getNewsByTagAlumni()
  53.     {
  54.       //  $tag = $this->manager->getRepository(NewsTag::class)->findOneByName('Alumni');
  55.         $news $this->manager->getRepository(NewsPage::class)->getAlumniArticles();
  56.         return $news;
  57.     }
  58.     public function getAnneeDePromotion()
  59.     {
  60.         $year = [];
  61.         for ($i=2005$i <= date('Y'); $i++)
  62.         {
  63.             $year[$i] = $i;
  64.         }
  65.         return new ArrayCollection($year);
  66.     }
  67.     public function getBgColor($formation)
  68.     {
  69.         $color '';
  70.         switch ($formation->getUri()) {
  71.             case 'genie-informatique':
  72.                 $color '#0d8acc';
  73.                 break;
  74.             case 'habitat-et-son-environnement':
  75.                 $color '#0d5b84';
  76.                 break;
  77.             case 'tourisme-hotellerie':
  78.                 $color '#68c62b';
  79.                 break;
  80.             case 'gestion-administration':
  81.                 $color '#535353';
  82.                 break;
  83.             case 'statistiques':
  84.                 $color '#ccc717';
  85.                 break;
  86.             case 'commerce':
  87.                 $color '#cc780d';
  88.                 break;
  89.         }
  90.         return $color;
  91.     }
  92.     
  93.     public function getPublicCible($value)
  94.     {
  95.         $array array_unique(array_filter(array_map('trim'explode(','$value))));
  96.         return $array;
  97.     }
  98. }