src/Controller/PublicController.php line 32

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use DateTime;
  4. use App\Entity\Api\Article;
  5. use Score\BaseBundle\Services\SeoUrl;
  6. use Score\CmsBundle\Services\PageManager;
  7. use Score\CmsBundle\Services\StatManager;
  8. use Score\CmsBundle\Entity\Multisite\Site;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Symfony\Component\Console\Input\ArrayInput;
  12. use Symfony\Component\Routing\Annotation\Route;
  13. use Symfony\Component\HttpKernel\KernelInterface;
  14. use Score\CmsBundle\Entity\Article as EntityArticle;
  15. use Symfony\Component\Console\Output\BufferedOutput;
  16. use Score\CmsBundle\Entity\Multisite\SiteItemArticle;
  17. use Symfony\Bundle\FrameworkBundle\Console\Application;
  18. use Score\BaseBundle\Services\AdjacencyArrayTreeManager;
  19. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  20. use League\HTMLToMarkdown\HtmlConverter;
  21. class PublicController extends AbstractController
  22. {
  23.      /**
  24.      * @Route("/", name="default_in_homepage")
  25.      * @Route("/{seoid}", name="default_in_subpage", requirements={"seoid"="^(?!login$|logout$|registration$|api/|user/|clanky/|udalosti/|file/|admin/|cookies$|vyhladavanie|_profiler/).+"}, condition="!request.isXmlHttpRequest()")
  26.      */
  27.     public function subpageAction(PageManager $pageManager$seoid null$cmsTemplate true)
  28.     {
  29.         throw $this->createNotFoundException('Not found');
  30.         
  31.       
  32.     }
  33.     
  34.     
  35.     protected function updateEventSearch($event$seoUrl)
  36.     {
  37.         $text $event->getName().' '.$event->getTeaser().' '.$event->getContent().' '.$event->getContactPerson();
  38.         $search =   strip_tags(mb_strtolower($seoUrl->removeDiacritic($text)));
  39.         $event->setSearch($search);
  40.     }    
  41.     protected function updatePageSearch($page$seoUrl)
  42.     {
  43.         $text $page->getName().' '.$page->getTitle().' '.$page->getContent().' '.$page->getSeoId();
  44.         foreach($page->getPageBlocks() as $pb) {
  45.             $text .= $pb->getBlock()->getContent();
  46.             // TODO dorobit aj Texty a Widgety v html blokoch(aj opacne?)
  47.         }
  48.         $search =   strip_tags(mb_strtolower($seoUrl->removeDiacritic($text)));
  49.         $page->setSearch($search);
  50.     }
  51.     protected function duplicateMenu()
  52.     {
  53.     }
  54.     /**
  55.      * @Route("/pl", name="post_install")
  56.      */
  57.     public function postInstallAction(KernelInterface $kernelSeoUrl $seoUrl)
  58.     {
  59.        $this->duplicateMenu();
  60.        exit;
  61.        
  62.         // echo dirname(__DIR__);
  63.        $em $this->getDoctrine()->getManager();
  64.        $query $em->createQuery('SELECT u FROM \Score\CmsBundle\Entity\Event\Event u');
  65.        $events $query->getResult();
  66.         foreach($events as $event)
  67.         {
  68.             $this->updateEventSearch($event$seoUrl);
  69.             $em->persist($event);
  70.         }
  71.         $query $em->createQuery('SELECT u FROM \Score\CmsBundle\Entity\Page\Page u');
  72.         $pages$query->getResult();
  73.          foreach($pages as $page)
  74.          {
  75.              $this->updatePageSearch($page$seoUrl);
  76.              $em->persist($page);
  77.          }
  78.         $em->flush();
  79.       
  80.         exit;
  81.         /*
  82.         $em = $this->getDoctrine()->getManager();
  83.         $site1  = new Site();
  84.         $site1->setName('INSPIRE');
  85.         $site1->setUrl('inspire.gov.sk');
  86.         $em->persist($site1);
  87.         $site2  = new Site();
  88.         $site2->setName('Geoportal');
  89.         $site2->setUrl('geoportal.gov.sk');
  90.         $em->persist($site2);
  91.         $site3  = new Site();
  92.         $site3->setName('RPI');
  93.         $site3->setUrl('rpi.gov.sk');
  94.         $em->persist($site3);
  95.         $em->flush();
  96.         */
  97.     }
  98.     private function importArticles()
  99.     {
  100.         $em $this->getDoctrine()->getManager();
  101.         $file dirname(__DIR__).'/news_final.csv';
  102.         //$siteRepository = $em ->getRepository(SiteItemArticle::class);
  103.         $siteRepository $em ->getRepository(Site::class);
  104.         $inspireSite $siteRepository->findOneBy(['name' => 'INSPIRE']);
  105.         $row 1;
  106.         if (($handle fopen($file "r")) !== FALSE) {
  107.             while (($data fgetcsv($handle1000";")) !== FALSE) {
  108.                 //var_dump($data);
  109.                 $article = new EntityArticle();
  110.                 $article->setName($data[7]);
  111.                 $article->setBody($data[14]);
  112.                 $article->setPublished(1);
  113.                 $article->setCreatedBy(1);
  114.                 $article->setIcon('/bundles/scorecms/idsk/img/default-image.png');
  115.                 $article->setPriority(20);
  116.                 $article->setAuthor('Tím Inspire');
  117.                 $article->setPublishedFrom(new \DateTime($data[3]));
  118.                 $article->setSlug($data[6]);
  119.                 //$article->setSiteItemArticle([$articleSite]);
  120.                 //$article->setSearch();
  121.                 $article->setCategory('standard');
  122.                 $article->setVisibility(true);
  123.                 $article->setCreatedAt(new \DateTime($data[2]));
  124.                 $search =   strip_tags(mb_strtolower($seoUrl->removeDiacritic($article->getName().' '.$article->getTeaser().' '.$article->getBody().' '.$article->getAuthor())));
  125.                 $article->setSearch($search);
  126.                 $em->persist($article);
  127.                 $articleSite = new SiteItemArticle();
  128.                 $articleSite->setSite($inspireSite);
  129.                 $articleSite->setArticle($article);
  130.                 $em->persist($articleSite);
  131.                 $em->flush();
  132.                 
  133.                 /*
  134.                 $num = count($data);
  135.                 echo "<p> $num fields in line $row: <br /></p>\n";
  136.                 $row++;
  137.                 for ($c=0; $c < $num; $c++) {
  138.                     echo $data[$c] . "<br />\n";
  139.                 }
  140.                 */
  141.             }
  142.             fclose($handle);
  143.         }
  144.     }
  145. }