<?php
namespace App\Twig;
use App\Repository\ArticleRepository;
use App\Repository\Category2Repository;
use App\Repository\Category3Repository;
use App\Repository\CategoryRepository;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Symfony\Contracts\Translation\TranslatorInterface;
use Twig\Extension\AbstractExtension;
use Twig\TwigFunction;
class CategoryExtention extends AbstractExtension
{
private $categoryRepository;
private $category2Repository;
private $category3Repository;
private $articleRepository;
public function __construct(ArticleRepository $articleRepository, CategoryRepository $categoryRepository,Category3Repository $category3Repository, Category2Repository $category2Repository)
{
$this->articleRepository = $articleRepository;
$this->categoryRepository = $categoryRepository;
$this->category3Repository = $category3Repository;
$this->category2Repository = $category2Repository;
}
public function getFunctions():array
{
return[
new TwigFunction('sidebar',[$this,'categories']),
new TwigFunction('categoryCount',[$this,'categoryCount']),
];
}
public function categoryCount(string $parent ,string $category ):int {
return $this->articleRepository->findCategoryCount($parent, $category);
}
public function filtre1(string $slug){
return $this->categoryRepository->findOneBy([
'slug'=>$slug,
]);
}
public function filtre3(string $slug){
return $this->category3Repository->findOneBy([
'slug'=>$slug
]);
}
public function filtre2(string $slug = null){
// dump($this->category2Repository->findAll());
return $this->category2Repository->findAll();
}
public function niveau3(){
return $this->category3Repository->findAll();
}
public function niveau2(){
return $this->category2Repository->findAll();
}
public function all()
{
return $this->categoryRepository->findAll();
}
}