src/Controller/URLRedirectorController.php line 143

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Repository\ArticlesRepository;
  4. use App\Repository\GlossariesRepository;
  5. use App\Repository\TaxanomyRepository;
  6. use App\Repository\LocationsFossilRepository;
  7. use App\Repository\StratigraphyUnitsRepository;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
  11. use Symfony\Component\HttpFoundation\RedirectResponse;
  12. use Symfony\Component\HttpFoundation\Request;
  13. use Symfony\Contracts\Translation\TranslatorInterface;
  14. #use Doctrine\ORM\EntityManagerInterface;
  15. class URLRedirectorController extends AbstractController 
  16. {
  17.     private $router;
  18.     private $articlesRepository;
  19.     private $glossariesRepository;
  20.     private $taxanomyRepository;
  21.     private $locationsFossilRepository;
  22.     private $stratigraphyUnitsRepository;
  23.     private $translator;
  24.     public function __construct(
  25.         UrlGeneratorInterface $router,
  26.         ArticlesRepository $articlesRepository,
  27.         GlossariesRepository $glossariesRepository,
  28.         TaxanomyRepository $taxanomyRepository,
  29.         LocationsFossilRepository $locationsFossilRepository,
  30.         StratigraphyUnitsRepository $stratigraphyUnitsRepository,
  31.         TranslatorInterface $translator
  32.         ) {
  33.         $this->router $router;
  34.         $this->articlesRepository $articlesRepository;
  35.         $this->glossariesRepository $glossariesRepository;
  36.         $this->taxanomyRepository $taxanomyRepository;
  37.         $this->locationsFossilRepository $locationsFossilRepository;
  38.         $this->stratigraphyUnitsRepository $stratigraphyUnitsRepository;
  39.         $this->translator $translator;
  40.     }
  41.     /**
  42.      * @Route("/id_system")
  43.      * @Route("/id_system/{page}")
  44.      */
  45.     public function id_system(string $page nullRequest $requestTranslatorInterface $translator)
  46.     {
  47.         if($page == 'fossil_id_search.php') {
  48.             if($request->query->get('cat')) {
  49.                 if($request->query->get('pagina')) {
  50.                     $page $request->query->get('pagina');
  51.                 } else {
  52.                     $page '1';
  53.                 }
  54.                 if($request->query->get('tijdperk')) {
  55.                     $era_item $this->stratigraphyUnitsRepository->findById($request->query->get('tijdperk'))[0];
  56.                     $era '[{"id":'.$era_item->getId().',"age_start":'.$era_item->getAgeStart().',"age_end":'.$era_item->getAgeEnd().',"value":"'.$era_item->getNameNl().'","name_en":"'.$era_item->getnameEn().'","color":"'.$era_item->getColor().'"}]';
  57.                 } else {
  58.                     $era '[""]';
  59.                 }
  60.                 if($request->query->get('vindpl_id')) {
  61.                     $location_item $this->locationsFossilRepository->find($request->query->get('vindpl_id'));
  62.                     $location '[{"id":'.$location_item->getId().',"value":"'.$location_item->getNameNl().'","name_en":"'.$location_item->getNameEn().'","location":"'.$location_item->getLocation().'"}]';
  63.                 } else {
  64.                     $location '[""]';
  65.                 }
  66.                 $taxanomy $this->taxanomyRepository->findOldCategory($request->query->get('cat'))[0];
  67.                 if($translator->getLocale() == 'nl') {
  68.                     $name $taxanomy->getNameNl();
  69.                 } else {
  70.                     $name $taxanomy->getNameEn();
  71.                 }
  72.                 return new RedirectResponse($this->router->generate('fossildb', [ 'page' => $page'filter[era]' => $era'filter[location]' => $location'filter[taxanomy]' => '[{"id":'.$taxanomy->getId().',"value":"'.$name.' ('.$taxanomy->getNameScientific().')","filename":"'.strtolower($taxanomy->getNameScientific().$taxanomy->getNameScientificClarification()).'"}]', ]));
  73.             } else {
  74.                 return new RedirectResponse($this->router->generate('fossildb'));
  75.             }
  76.         } else {
  77.             return new RedirectResponse($this->router->generate('fossildb'));
  78.         }
  79.     }
  80.     /**
  81.      * @Route("/sites/{page}")
  82.      */
  83.     public function sites(string $page nullRequest $request)
  84.     {
  85.         #ToDo-Ante: deze pagina's bestaan niet op de nieuwe site.
  86.         # /sites/stratigraphic_column.php
  87.         # ToDo-Ante: https://www.paleontica.org/sites/fossil_site_category.php?cat=35
  88.         if($page == 'all_sites_overview.php' || $page == 'fossil_site_overview.php' || $page == 'geology_site_overview.php' || $page == 'museum_site_overview.php' || $page == 'society_site_overview.php') {
  89.             if($request->query->get('landselect')) {
  90.                 return new RedirectResponse($this->router->generate('locations_gis', [ 'country' => $request->query->get('landselect') ]));
  91.             } else {
  92.                 return new RedirectResponse($this->router->generate('locations_gis'));
  93.             }
  94.         }
  95.         elseif($page == 'fossil_site.php') {
  96.             if($request->query->get('plaats')) {
  97.                 return new RedirectResponse($this->router->generate('locations_fossil', [ 'id' => $request->query->get('plaats') ]));
  98.             } else {
  99.                 return new RedirectResponse($this->router->generate('locations_gis'));
  100.             }
  101.         }
  102.         elseif($page == 'geology_site.php') {
  103.             if($request->query->get('plaats')) {
  104.                 return new RedirectResponse($this->router->generate('locations_geology', [ 'id' => $request->query->get('plaats') ]));
  105.             } else {
  106.                 return new RedirectResponse($this->router->generate('locations_gis'));
  107.             }
  108.         }
  109.         elseif($page == 'museum_site.php') {
  110.             if($request->query->get('plaats')) {
  111.                 return new RedirectResponse($this->router->generate('locations_museum', [ 'id' => $request->query->get('plaats') ]));
  112.             } else {
  113.                 return new RedirectResponse($this->router->generate('locations_gis'));
  114.             }
  115.         }
  116.         elseif($page == 'society_site.php') {
  117.             if($request->query->get('plaats')) {
  118.                 return new RedirectResponse($this->router->generate('locations_society', [ 'id' => $request->query->get('plaats') ]));
  119.             } else {
  120.                 return new RedirectResponse($this->router->generate('locations_gis'));
  121.             }
  122.         }
  123.         elseif($page == 'geology_maps.php') {
  124.             return new RedirectResponse($this->router->generate('geologic_maps'));
  125.         }
  126.     }
  127.     /**
  128.      * @Route("/information/{page}")
  129.      */
  130.     public function information(string $page nullRequest $request)
  131.     {
  132.         if($page == 'links.php') {
  133.             return new RedirectResponse($this->router->generate('links'));
  134.         }
  135.         if($page == 'geologic_timescale.php') {
  136.             return new RedirectResponse($this->router->generate('geologic_timescale'));
  137.         }
  138.         elseif($page == 'article.php') {
  139.             $article $this->articlesRepository->find($request->query->get('id'));
  140.             if(!is_null($article)) {
  141.                 return new RedirectResponse($this->router->generate('article', ['id' => $article->getId(), 'url' => $article->getUrl()]));
  142.             }
  143.             elseif(is_null($article)) {
  144.                 $article $this->glossariesRepository->find($request->query->get('id'));
  145.                 return new RedirectResponse($this->router->generate('glossary', ['id' => $article->getId(), 'url' => $article->getUrl()]));
  146.             }
  147.         }
  148.     }
  149. }