<?phpnamespace App\Twig;use App\Services\Articles\Articles;use Twig\Extension\AbstractExtension;use Twig\TwigFunction;use Twig\TwigFilter;class ArticlesExtension extends AbstractExtension{ public function __construct(Articles $articles) { $this->articles = $articles; } /** * {@inheritdoc} */ public function getFunctions(): array { return [ new TwigFunction('articleResumeChain', [$this, 'articleResumeChain']), new TwigFunction('forTags', [$this, 'forTags']), new TwigFunction('rewriteTag', [$this, 'rewriteTag']), new TwigFunction('reverseRewriteTag', [$this, 'reverseRewriteTag']), new TwigFunction('getArticles', [$this, 'getArticles']), new TwigFunction('getArticleHasLanguages', array($this, 'getArticleHasLanguages')), new TwigFunction('getPathArticleHasLanguages', array($this, 'getPathArticleHasLanguages')), new TwigFunction('getArticlesHasLocale', array($this, 'getArticlesHasLocale')), new TwigFunction('getParentsCategories', array($this, 'getParentsCategories')), new TwigFunction('getCategoriesParent', array($this, 'getCategoriesParent')), new TwigFunction('getParentsRecruiterDirectoryCategories', array($this, 'getParentsRecruiterDirectoryCategories')), new TwigFunction('getCategories', array($this, 'getCategories')), new TwigFunction('getArticlesListing', array($this, 'getArticlesListing')), ]; } public function getArticlesListing($dbID,$locale) { return $this->articles->getArticlesListing($dbID,$locale); } public function getCategories($categoryID) { return $this->articles->getCategories($categoryID); } public function getParentsCategories($language) { return $this->articles->getParentsCategories($language); } public function getCategoriesParent($language,$parent) { return $this->articles->getCategoriesParent($language,$parent); } public function getParentsRecruiterDirectoryCategories($language) { return $this->articles->getParentsRecruiterDirectoryCategories($language); } public function getPathArticleHasLanguages($articleID,$language) { return $this->articles->getPathArticleHasLanguages($articleID,$language); } public function getArticleHasLanguages($articleID,$language) { $queries = $this->articles->getArticleHasLanguages($articleID,$language); if(!empty($queries)) { return $queries; } return null; } public function getArticlesHasLocale($language) { return $this->articles->getArticlesHasLocale($language); } public function getArticles($locale,$number) { return $this->articles->getLast($locale,$number); } public function articleResumeChain($chain,$numbers) { return $this->articles->resumeDescription($chain,$numbers); } public function forTags($tags) { return $this->articles->forTags($tags); } public function rewriteTag($tag) { return $this->articles->rewriteTag($tag); } public function reverseRewriteTag($tag) { return $this->articles->reverseRewriteTag($tag); }}