src/Controller/Website/Site/Product/ProductCategoryController.php line 50

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Website\Site\Product;
  3. use App\Controller\Website\ThemeRenderController;
  4. use App\Entity\Generic\User;
  5. use App\Entity\Website\Product\ProductCategory;
  6. use App\Entity\Website\Product\ProductTag;
  7. use App\Service\Website\Product\ProductService;
  8. use App\Service\WebsiteManager;
  9. use App\ViewModel\Website\Product\ProductViewModel;
  10. use Doctrine\ORM\EntityManagerInterface;
  11. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  12. use Symfony\Component\HttpFoundation\JsonResponse;
  13. use Symfony\Component\HttpFoundation\Request;
  14. use Symfony\Component\HttpFoundation\RequestStack;
  15. use Symfony\Component\Routing\Annotation\Route;
  16. class ProductCategoryController extends ThemeRenderController
  17. {
  18.     public EntityManagerInterface $entityManager;
  19.     public ProductService $productService;
  20.     public WebsiteManager $shopManager;
  21.     public ?Request $request;
  22.     public function __construct(RequestStack $requestStackEntityManagerInterface $entityManagerProductService $productCategoryServiceWebsiteManager $shopManager)
  23.     {
  24. //        parent::__construct($requestStack, $entityManager);
  25.         $this->entityManager $entityManager;
  26.         $this->productService $productCategoryService;
  27.         $this->shopManager $shopManager;
  28.         $this->request $requestStack->getCurrentRequest();
  29.     }
  30.     public function getFilters(): array
  31.     {
  32.         return [
  33.             [
  34.                 'name' => 's',
  35.                 'type' => 'text',
  36.                 'label' => 'جستجو',
  37.                 'class' => '',
  38.                 'value' => $this->request->get('s')
  39.             ],
  40.         ];
  41.     }
  42.     #[Route('/product-category/{urlSlug}'name'app_shop_site_product_category')]
  43.     public function index(ProductCategory $productCategoryRequest $request)
  44.     {
  45.         /**
  46.          * @var User $user
  47.          */
  48.         $user $this->getUser();
  49.         $info = new ProductViewModel($request);
  50.         $info->setCategory($productCategory);
  51.         $data $this->productService->getListOnSiteMegaSearch($info$this->shopManager->getShop());
  52.         return $this->renderUserTemplate('products-category.html.twig', [
  53.             'paginator' => $data,
  54.             'currentPage' => 'app_shop_site_product_category',
  55.             'parameters' => $info,
  56.             'filters' => $this->getFilters(),
  57.             'category' => $productCategory,
  58.         ]);
  59.     }
  60.     #[Route('/product-tag/{urlSlug}'name'app_shop_site_product_tag')]
  61.     public function app_shop_site_product_tag(ProductTag $productTag Request $request)
  62.     {
  63.         /**
  64.          * @var User $user
  65.          */
  66.         $user $this->getUser();
  67.         $info = new ProductViewModel($request);
  68.         $info->setTag($productTag);
  69.         $data $this->productService->getListOnSiteMegaSearch($info$this->shopManager->getShop());
  70.         return $this->renderUserTemplate('products-tag.html.twig', [
  71.             'paginator' => $data,
  72.             'currentPage' => 'app_shop_site_product_category',
  73.             'parameters' => $info,
  74.             'filters' => $this->getFilters(),
  75.             'tag' => $productTag,
  76.         ]);
  77.     }
  78. }