<?php
namespace 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);
}
}