src/Controller/FrontendBundle/Ideas/TeacherIdeasController.php line 23

Open in your IDE?
  1. <?php
  2. namespace App\Controller\FrontendBundle\Ideas;
  3. use Doctrine\ORM\EntityManagerInterface;
  4. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use App\BackendBundle\Helper\UserHelper;
  8. use App\BackendBundle\Helper\EventHelper;
  9. use App\BackendBundle\Helper\SiteTitleHelper;
  10. use App\BackendBundle\Helper\InfoSectionHelper;
  11. use App\BackendBundle\Helper\BoPartnerHelper;
  12. use App\Entity\InfoSectionCategory;
  13. class TeacherIdeasController extends AbstractController {
  14.     
  15.     private $siteTitleHelper;
  16.     private $infoSectionHelper;
  17.     private $userHelper;
  18.     private $eventHelper;
  19.     
  20.     public function __construct(InfoSectionHelper $infosectionhelperSiteTitleHelper $sitetitlehelperUserHelper $userhelperEventHelper $eventhelperBoPartnerHelper $bopartnerhelper)
  21.            {
  22.         $this->infoSectionHelper $infosectionhelper;
  23.         $this->siteTitleHelper $sitetitlehelper;
  24.         $this->userHelper $userhelper;
  25.         $this->eventHelper $eventhelper;
  26.         $this->boPartnerHelper $bopartnerhelper;
  27.         }
  28.     /**
  29.     * @return \Symfony\Component\HttpFoundation\Response
  30.     * @Route("/ideen-lehrer", name="teacher_ideas_list", defaults={"title": "Informationsbereich für Lehrpersonen", "description": "Sie sind eine Lehrperson in der Berufsorientierung und möchten wissen, wie man mit berufsreise.at den Unterricht gestalten kann? Hier finden Sie hilfreiche Informationen und Materialien für Ihren Berufsorientierungsunterricht."}) 
  31.     */
  32.     public function listIdeasAction(Request $request) {
  33.         $this->siteTitleHelper->setTitleDescription($request);          
  34.         
  35.         $em $this->getDoctrine()->getManager();
  36.         $entities $em->getRepository(InfoSectionCategory::class)->findBy(array('sectionType' => 2), array('position' => 'ASC'));
  37.         return $this->render('@frontend/public/ideas/ideas_teacher.html.twig', array(
  38.                     'heading' => 'Ideen für Lehrpersonen',
  39.                     'categoryRoute' => 'teacher_ideas_category',
  40.                     'entities' => $entities
  41.         ));
  42.     }
  43.     /**
  44.     * @return \Symfony\Component\HttpFoundation\Response
  45.     * @Route("/ideen-lehrer/{category}", name="teacher_ideas_category", defaults={"title": "Informationsbereich für Lehrpersonen", "description": "Sie sind eine Lehrperson in der Berufsorientierung und möchten wissen, wie man mit berufsreise.at den Unterricht gestalten kann? Hier finden Sie hilfreiche Informationen und Materialien für Ihren Berufsorientierungsunterricht."}) 
  46.     */
  47.     public function categoryAction(Request $request$category) {
  48.         $infoSectionCategory $this->infoSectionHelper->getInfoSectionCategoryByUrlText($category);
  49.         if (empty($category)) {
  50.             throw new NotFoundHttpException("Category $category wurde nicht gefunden");
  51.         }
  52.         $this->siteTitleHelper->setInfoSectionCategoryTitle($request$infoSectionCategory);        
  53.         
  54.         $entities $this->infoSectionHelper->getInfoSectionSubCategoriesByCategory($infoSectionCategory);
  55.         return $this->render('@frontend/public/ideas/ideas_category.html.twig', array(
  56.                     'category' => $infoSectionCategory,
  57.                     'entities' => $entities
  58.         ));
  59.     }
  60.     
  61.     /**
  62.     * @return \Symfony\Component\HttpFoundation\Response
  63.     * @Route("/ideen-lehrer/fortbildungen/bildungsconsulting", name="teacher_ideas_bildungsconsulting") 
  64.     */
  65.     public function bildungsconsultingAction(Request $request) {
  66.         
  67.         $uuid "7f2ab9fa-441d-4c90-8000-0c78909233b7";
  68.         
  69.         /* @var $boProfile BoPartnerProfile */
  70.         $boProfile $this->boPartnerHelper->getBoPartnerProfileByUUID($uuid);
  71.         if ($boProfile == null) {
  72.             throw new NotFoundHttpException();
  73.         }
  74.         
  75.         $user $this->userHelper->getUserByEmail("bildungsconsulting@wktirol.at");
  76.         
  77.         $eventJuniorCompany $this->eventHelper->getEventById(755);
  78.         
  79.         $events $this->getBildungsconsultingTeacherEvents($boProfile->getId(), $boProfile->getProfileTypeID());
  80.         array_push($events$eventJuniorCompany);
  81.         $eventsData $this->eventHelper->getEventDataItems($user$events);
  82.         return $this->render('@frontend/public/ideas/ideas_bildungsconsulting.html.twig', array(
  83.                     'eventsData' => $eventsData,
  84.         ));
  85.     }
  86.     
  87.     private function getBildungsconsultingTeacherEvents($profileID$profileTypeID) {
  88.         
  89.         $sqlText 'SELECT event FROM App\Entity\Event event
  90.                         JOIN event.eventState eventState
  91.                         JOIN event.profileType pt
  92.                         JOIN App\Entity\Appointment appointment
  93.                         JOIN event.tagMappings tags
  94.                         JOIN tags.eventTag tag
  95.                         JOIN tag.eventTagCategory tagCategory
  96.                         WHERE eventState.name=:evtStateName
  97.                         AND event.profileID = :profileID
  98.                         AND pt.id=:profileTypeID
  99.                         AND tagCategory.id = 4
  100.                         AND appointment.event = event
  101.                         AND ((appointment.bookableUntil is NULL AND appointment.endDate >= :today) OR appointment.bookableUntil >= :today)';
  102.         $query $this->getDoctrine()->getManager()->createQuery($sqlText);
  103.         $query->setParameter('evtStateName''active');
  104.         $query->setParameter('profileID'$profileID);
  105.         $query->setParameter('profileTypeID'$profileTypeID);
  106.         $query->setParameter('today', new \DateTime());
  107.         $events $query->getResult();
  108.         if (isset($events) && count($events) > 0) {
  109.             return $events;
  110.         } else {
  111.             return null;
  112.         }
  113.     }
  114. }