src/Controller/KbController.php line 32

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\ForumTopics;
  4. use App\Entity\KnowledgeBase;
  5. use App\Entity\KnowledgeBaseCategories;
  6. use App\Entity\User;
  7. use App\Service\GlobalFunctions;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. class KbController extends AbstractController
  11. {
  12.     /**
  13.      * @Route("/kb", name="kb")
  14.      */
  15.     public function index()
  16.     {
  17.         $GetCategory $this->getDoctrine()->getRepository(KnowledgeBaseCategories::class)->findBy(['Public' => 1]);
  18.         $GetAdminCategory $this->getDoctrine()->getRepository(KnowledgeBaseCategories::class)->findBy(['Public' => 0]);
  19.         $GetTopics $this->getDoctrine()->getRepository(ForumTopics::class)->findAll();
  20.         return $this->render('kb/index.html.twig', [
  21.             'categories' => $GetCategory,
  22.             'admincategories' => $GetAdminCategory,
  23.             'forum_topics' => $GetTopics,
  24.         ]);
  25.     }
  26.     public function article($article_slug)
  27.     {
  28.         $GetArticle $this->getDoctrine()->getRepository(KnowledgeBase::class)->findOneBy(['KBSlug' => $article_slug]);
  29.         $GetCategory $GetArticle->getCategory();
  30.         $GetCategoryArticles $GetCategory->getArticles();
  31.         $GetAuthor $this->getDoctrine()->getRepository(User::class)->find($GetArticle->getAuthorId());
  32.         if (false !== strpos($GetArticle->getOptions(), '[is_query_article]')) {
  33.             @$EntityId $_GET['id'];
  34.             if (!isset($EntityId)) {
  35.                 $EntityId 'select';
  36.             }
  37.             $template 'kb/query.html.twig';
  38.             /*$GlobalFn = new GlobalFunctions();
  39.             $ShowHeaders = explode(",",$GlobalFn->parse_filter_options($GetArticle->getOptions(), "entity_output_cols"));
  40.             $Entity = $GlobalFn->parse_filter_options($GetArticle->getOptions(), "entity_name");
  41.             $EntitySearch = $this->getDoctrine()->getRepository($Entity::class)->findBy(['Slug'=>$category_slug]);*/
  42.         } else {
  43.             $template 'kb/article.html.twig';
  44.             $entity_id 0;
  45.             $ShowHeaders = [];
  46.         }
  47.         return $this->render($template, [
  48.             'controller_name' => 'KbController',
  49.             'article_info' => $GetArticle,
  50.             'category_info' => $GetCategory,
  51.             'author_info' => $GetAuthor,
  52.             'other_articles' => $GetCategoryArticles,
  53.         ]);
  54.     }
  55.     public function category($category_slug)
  56.     {
  57.         $GetCategory $this->getDoctrine()->getRepository(KnowledgeBaseCategories::class)->findOneBy(['Slug' => $category_slug]);
  58.         $GetCategoryArticles $GetCategory->getArticles();
  59.         return $this->render('kb/category.html.twig', [
  60.             'category_info' => $GetCategory,
  61.             'category_articles' => $GetCategoryArticles,
  62.         ]);
  63.     }
  64.     public function categoryBlank()
  65.     {
  66.         return $this->redirectToRoute('kb');
  67.     }
  68.     public function search()
  69.     {
  70.         if (isset($_GET['search_term'])) {
  71.             $search_term $_GET['search_term'];
  72.         }
  73.         $conn $this->getDoctrine()->getManager()->getConnection();
  74.         $sql "
  75.             SELECT * FROM knowledge_base INNER JOIN knowledge_base_categories ON knowledge_base.category_id=knowledge_base_categories.id WHERE (article_title LIKE '%$search_term%' OR article LIKE '%$search_term%') AND publish_date<now() AND knowledge_base_categories.public='1'";
  76.         $stmt $conn->prepare($sql);
  77.         $stmt->execute();
  78.         $GetSearch $stmt->fetchAll();
  79.         return $this->render('kb/search.html.twig', [
  80.             'results' => $GetSearch,
  81.             'search_term' => $search_term,
  82.         ]);
  83.     }
  84. }