src/Controller/DefaultController.php line 274

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Doctrine\DBAL\Query\QueryBuilder;
  4. use Pimcore\Controller\FrontendController;
  5. use Pimcore\Mail;
  6. use Pimcore\Model\Asset;
  7. use Pimcore\Model\DataObject\Application;
  8. use Pimcore\Model\DataObject\ApplicationWorkshop;
  9. use Pimcore\Model\Document\Listing;
  10. use Symfony\Component\HttpFoundation\File\UploadedFile;
  11. use Symfony\Component\HttpFoundation\Request;
  12. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  13. use Symfony\Component\Routing\Annotation\Route;
  14. class DefaultController extends FrontendController
  15. {
  16.     /**
  17.      * @Template
  18.      * @param Request $request
  19.      * @return array
  20.      */
  21.     public function defaultAction(Request $request)
  22.     {
  23.         return [
  24.             'title' => $request->get('title'),
  25.             'length' => $request->get('length'),
  26.             'location' => $request->get('location'),
  27.             'production' => $request->get('production'),
  28.             'address' => $request->get('address'),
  29.             'phone' => $request->get('phone'),
  30.             'email' => $request->get('email'),
  31.             'contact' => $request->get('contact'),
  32.             'producer' => $request->get('producer'),
  33.             'director' => $request->get('director'),
  34.             'screenplay' => $request->get('screenplay'),
  35.             'camera' => $request->get('camera'),
  36.             'editing' => $request->get('editing'),
  37.             'photography' => $request->get('photography'),
  38.             'rest' => $request->get('rest'),
  39.             'synopsisSl' => $request->get('synopsisSl'),
  40.             'synopsisEn' => $request->get('synopsisEn'),
  41.             'CV' => $request->get('CV'),
  42.             'website' => $request->get('website'),
  43.             'password' => $request->get('password'),
  44.             'name' => $request->get('name'),
  45.             'birthdate' => $request->get('birthdate'),
  46.             'experience' => $request->get('experience'),
  47.             'subject' => $request->get('subject'),
  48.             'ownEquipment' => $request->get('ownEquipment'),
  49.             'equipment' => $request->get('equipment'),
  50.             'smallGroup' => $request->get('smallGroup'),
  51.             'recommendation' => $request->get('recommendation'),
  52.         ];
  53.     }
  54.     public function portalAction()
  55.     {
  56.         $listing = new Listing();
  57.         $listing->onCreateQueryBuilder(
  58.             function (QueryBuilder $queryBuilder) {
  59.                 $queryBuilder->join('documents', 'documents_editables', 'de',
  60.                     'documents.id = de.documentId AND de.type = "date" AND de.name = "date"')
  61.                     ->orderBy('de.data', 'DESC');
  62.             }
  63.         );
  64.         $listing->setCondition("`path` LIKE '/novice/%'")
  65.             ->setOrderKey(['id', 'published'])
  66.             ->setOrder('desc')
  67.             ->setLimit(3);
  68.         return $this->render('default/portal.html.twig', [
  69.             'news' => $listing
  70.         ]);
  71.     }
  72.     public function applicationAction(Request $request)
  73.     {
  74.         $view = [];
  75.         $view['success'] = false;
  76.         $view['error'] = false;
  77.         if ($request->getMethod() === Request::METHOD_POST) {
  78.             $view['success'] = true;
  79.             // @todo process captcha
  80.             $application = new Application();
  81.             $application->setKey($request->get('title'));
  82.             $application->setParentId(2);
  83.             $application->setTitle($request->get('title'));
  84.             $application->setLength($request->get('length'));
  85.             $application->setLocation($request->get('location'));
  86.             $application->setProduction($request->get('production'));
  87.             $application->setAddress($request->get('address'));
  88.             $application->setPhone($request->get('phone'));
  89.             $application->setEmail($request->get('email'));
  90.             $application->setContact($request->get('contact'));
  91.             $application->setProducer($request->get('producer'));
  92.             $application->setDirector($request->get('director'));
  93.             $application->setScreenplay($request->get('screenplay'));
  94.             $application->setCamera($request->get('camera'));
  95.             $application->setEditing($request->get('editing'));
  96.             $application->setPhotography($request->get('photography'));
  97.             $application->setRest($request->get('rest'));
  98.             $application->setSynopsisSl($request->get('synopsisSl'));
  99.             $application->setSynopsisEn($request->get('synopsisEn'));
  100.             $application->setCV($request->get('CV'));
  101.             $application->setWebsite($request->get('website'));
  102.             $application->setPassword($request->get('password'));
  103.             $application->setPublished(true);
  104.             // photo upload
  105. //            $application->setLength($request->get('length'));
  106. //            $application->setLength($request->get('length'));
  107.             try {
  108.                 /** @var UploadedFile $photo1 */
  109.                 $photo1 = $request->files->get('photo1');
  110.                 $filename = md5_file($photo1->getRealPath()) . '.' . $photo1->getClientOriginalExtension();
  111.                 $newAsset = Asset\Image::getByPath("/prijave/2022/" . $filename);
  112.                 if (!$newAsset) {
  113.                     $newAsset = new Asset\Image();
  114.                     $newAsset->setFilename($filename);
  115.                     $newAsset->setData(file_get_contents($photo1->getRealPath()));
  116.                     $newAsset->setParent(Asset::getByPath("/prijave/2022"));
  117.                     $newAsset->save();
  118.                 }
  119.                 $application->setMainPhoto($newAsset);
  120.                 /** @var UploadedFile $photo2 */
  121.                 $photo2 = $request->files->get('photo2');
  122.                 $filename = md5_file($photo2->getRealPath()) . '.' . $photo2->getClientOriginalExtension();
  123.                 $newAsset2 = Asset\Image::getByPath("/prijave/2022/" . $filename);
  124.                 if (!$newAsset2) {
  125.                     $newAsset2 = new Asset\Image();
  126.                     $newAsset2->setFilename($filename);
  127.                     $newAsset2->setData(file_get_contents($photo2->getRealPath()));
  128.                     $newAsset2->setParent(Asset::getByPath("/prijave/2022"));
  129.                     $newAsset2->save();
  130.                 }
  131.                 $application->setDirectorPhoto($newAsset2);
  132.                 $application->save();
  133.             } catch (\Exception $e) {
  134.                 $view['error'] = true;
  135.                 $view['success'] = false;
  136.             }
  137.             // send mail
  138.             $params = [
  139.                 'title' => $request->get('title'),
  140.                 'length' => $request->get('length'),
  141.                 'location' => $request->get('location'),
  142.                 'production' => $request->get('production'),
  143.                 'address' => $request->get('address'),
  144.                 'phone' => $request->get('phone'),
  145.                 'email' => $request->get('email'),
  146.                 'contact' => $request->get('contact'),
  147.                 'producer' => $request->get('producer'),
  148.                 'director' => $request->get('director'),
  149.                 'screenplay' => $request->get('screenplay'),
  150.                 'camera' => $request->get('camera'),
  151.                 'editing' => $request->get('editing'),
  152.                 'photography' => $request->get('photography'),
  153.                 'rest' => $request->get('rest'),
  154.                 'synopsisSl' => $request->get('synopsisSl'),
  155.                 'synopsisEn' => $request->get('synopsisEn'),
  156.                 'CV' => $request->get('CV'),
  157.                 'website' => $request->get('website'),
  158.                 'password' => $request->get('password'),
  159.             ];
  160.             $mail = new Mail();
  161.             $mail->setDocument('/email/prijavnica');
  162.             $mail->setParams($params);
  163.             try {
  164.                 $mail->send();
  165.             } catch (\Exception $e) {
  166.                 $view['error'] = true;
  167.                 $view['success'] = false;
  168.             }
  169.         }
  170.         return $this->render('default/application.html.twig', $view);
  171.     }
  172.     public function applicationLuksuzAction(Request $request)
  173.     {
  174.         $view = [];
  175.         $view['success'] = false;
  176.         $view['error'] = false;
  177.         if ($request->getMethod() === Request::METHOD_POST) {
  178.             $view['success'] = true;
  179.             // @todo process captcha
  180.             $application = new ApplicationWorkshop();
  181.             $application->setParentId(62);
  182.             $application->setName($request->get('name'));
  183.             $application->setAddress($request->get('address'));
  184.             $application->setPhone($request->get('phone'));
  185.             $application->setEmail($request->get('email'));
  186.             $application->setBirthdate($request->get('birthdate'));
  187.             $application->setExperience($request->get('experience'));
  188.             $application->setSubject($request->get('subject'));
  189.             $application->setOwnEquipment($request->get('ownEquipment'));
  190.             $application->setequipment($request->get('equipment'));
  191.             $application->setSmallGroup($request->get('smallGroup'));
  192.             $application->setRecommendation($request->get('recommendation'));
  193.             $application->setPublished(true);
  194.             $key = \Pimcore\Model\Element\Service::getValidKey($request->get('name'), 'object');
  195.             $application->setKey($key);
  196.             $key = \Pimcore\Model\Element\Service::getUniqueKey($application);
  197.             $application->setKey($key);
  198.             $application->save();
  199.             // send mail
  200.             $params = [
  201.                 'name' => $request->get('name'),
  202.                 'address' => $request->get('address'),
  203.                 'phone' => $request->get('phone'),
  204.                 'email' => $request->get('email'),
  205.                 'birthdate' => $request->get('birthdate'),
  206.                 'experience' => $request->get('experience'),
  207.                 'subject' => $request->get('subject'),
  208.                 'ownEquipment' => $request->get('ownEquipment'),
  209.                 'equipment' => $request->get('equipment'),
  210.                 'smallGroup' => $request->get('smallGroup'),
  211.                 'recommendation' => $request->get('recommendation'),
  212.             ];
  213.             $mail = new Mail();
  214.             $mail->setDocument('/email/prijavnica_luksuz');
  215.             $mail->setParams($params);
  216.             try {
  217.                 $mail->send();
  218.             } catch (\Exception $e) {
  219.                 $view['error'] = true;
  220.                 $view['success'] = false;
  221.             }
  222.         }
  223.         return $this->render('default/applicationLuksuz.html.twig', $view);
  224.     }
  225.     public function newsAction()
  226.     {
  227.         $listing = new Listing();
  228.         $listing->setCondition("`parentId` = 3")
  229.             ->setOrderKey(['key', 'published'])
  230.             ->setOrder('desc');
  231.         $listing->onCreateQueryBuilder(
  232.             function (QueryBuilder $queryBuilder) {
  233.                 $queryBuilder->join('documents', 'documents_editables', 'de',
  234.                     'documents.id = de.documentId AND de.type = "date" AND de.name = "date"')
  235.                     ->orderBy('de.data', 'DESC');
  236.             }
  237.         );
  238.         return $this->render('default/news.html.twig', [
  239.             'news' => $listing
  240.         ]);
  241.     }
  242.     public function newsDetailAction()
  243.     {
  244.         return $this->render('default/newsDetail.html.twig');
  245.     }
  246. }