src/Twig/ArticlesExtension.php line 13

Open in your IDE?
  1. <?php
  2. namespace App\Twig;
  3. use App\Services\Articles\Articles;
  4. use Twig\Extension\AbstractExtension;
  5. use Twig\TwigFunction;
  6. use Twig\TwigFilter;
  7. class ArticlesExtension extends AbstractExtension
  8. {
  9.     public function __construct(Articles $articles)
  10.     {
  11.         $this->articles = $articles;
  12.     }
  13.     /**
  14.      * {@inheritdoc}
  15.      */
  16.     public function getFunctions(): array
  17.     {
  18.         return [
  19.             new  TwigFunction('articleResumeChain', [$this, 'articleResumeChain']),
  20.             new  TwigFunction('forTags', [$this, 'forTags']),
  21.             new  TwigFunction('rewriteTag', [$this, 'rewriteTag']),
  22.             new  TwigFunction('reverseRewriteTag', [$this, 'reverseRewriteTag']),
  23.             new  TwigFunction('getArticles', [$this, 'getArticles']),
  24.             new  TwigFunction('getArticleHasLanguages', array($this, 'getArticleHasLanguages')),
  25.             new  TwigFunction('getPathArticleHasLanguages', array($this, 'getPathArticleHasLanguages')),
  26.             new  TwigFunction('getArticlesHasLocale', array($this, 'getArticlesHasLocale')),
  27.             new  TwigFunction('getParentsCategories', array($this, 'getParentsCategories')),
  28.             new  TwigFunction('getCategoriesParent', array($this, 'getCategoriesParent')),
  29.             new  TwigFunction('getParentsRecruiterDirectoryCategories', array($this, 'getParentsRecruiterDirectoryCategories')),
  30.             new  TwigFunction('getCategories', array($this, 'getCategories')),
  31.             new  TwigFunction('getArticlesListing', array($this, 'getArticlesListing')),
  32.         ];
  33.     }
  34.     public function getArticlesListing($dbID,$locale) {
  35.         return $this->articles->getArticlesListing($dbID,$locale);
  36.     }
  37.     public function getCategories($categoryID)
  38.     {
  39.         return $this->articles->getCategories($categoryID);
  40.     }
  41.     public function getParentsCategories($language) {
  42.         return $this->articles->getParentsCategories($language);
  43.     }
  44.     public function getCategoriesParent($language,$parent) {
  45.         return $this->articles->getCategoriesParent($language,$parent);
  46.     }
  47.     public function getParentsRecruiterDirectoryCategories($language) {
  48.         return $this->articles->getParentsRecruiterDirectoryCategories($language);
  49.     }
  50.     public function getPathArticleHasLanguages($articleID,$language)
  51.     {
  52.         return $this->articles->getPathArticleHasLanguages($articleID,$language);
  53.     }
  54.     public function getArticleHasLanguages($articleID,$language)
  55.     {
  56.         $queries = $this->articles->getArticleHasLanguages($articleID,$language);
  57.         if(!empty($queries)) {
  58.             return $queries;
  59.         }
  60.         return null;
  61.     }
  62.     public function getArticlesHasLocale($language)
  63.     {
  64.         return $this->articles->getArticlesHasLocale($language);
  65.     }
  66.     public function getArticles($locale,$number)
  67.     {
  68.         return $this->articles->getLast($locale,$number);
  69.     }
  70.     public function articleResumeChain($chain,$numbers)
  71.     {
  72.         return $this->articles->resumeDescription($chain,$numbers);
  73.     }
  74.     public function forTags($tags)
  75.     {
  76.         return $this->articles->forTags($tags);
  77.     }
  78.     public function rewriteTag($tag)
  79.     {
  80.         return $this->articles->rewriteTag($tag);
  81.     }
  82.     public function reverseRewriteTag($tag)
  83.     {
  84.         return $this->articles->reverseRewriteTag($tag);
  85.     }
  86. }