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. }