trinion_base-1.0.x-dev/src/TrinionBaseTwigExtension.php

src/TrinionBaseTwigExtension.php
<?php

namespace Drupal\trinion_base;

use Drupal\Core\Entity\EntityTypeManagerInterface;
use Twig\Extension\AbstractExtension;
use Twig\TwigFunction;

/**
 * Twig extension.
 */
class TrinionBaseTwigExtension extends AbstractExtension {

  /**
   * The entity type manager.
   *
   * @var \Drupal\Core\Entity\EntityTypeManagerInterface
   */
  protected $entityTypeManager;

  /**
   * Constructs a new ZooModTwigExtension object.
   *
   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
   *   The entity type manager.
   */
  public function __construct(EntityTypeManagerInterface $entity_type_manager) {
    $this->entityTypeManager = $entity_type_manager;
  }

  /**
   * {@inheritdoc}
   */
  public function getFunctions() {
    return [
      new TwigFunction('getTerm', [$this, 'getTerm']),
      new TwigFunction('getNode', [$this, 'getNode']),
      new TwigFunction('getUser', [$this, 'getUser']),
      new TwigFunction('getQueryParam', [$this, 'getQueryParam']),
      new TwigFunction('getCurrentDestination', [$this, 'getCurrentDestination']),
      new TwigFunction('currentPageNid', [$this, 'currentPageNid']),
      new TwigFunction('getSetting', [$this, 'getSetting']),
      new TwigFunction('getPluralDate', [$this, 'getPluralDate']),
      new TwigFunction('getPluralCost', [$this, 'getPluralCost']),
      new TwigFunction('isModuleEnabled', [$this, 'isModuleEnabled']),
      new TwigFunction('pregReplace', [$this, 'pregReplace']),
    ];
  }

  public function getCurrentDestination() {
    return \Drupal::request()->getRequestUri();
  }

  public function getQueryParam($param) {
    return \Drupal::request()->get($param);
  }

  public function getTerm($tid) {
    return $this->entityTypeManager->getStorage('taxonomy_term')->load($tid);
  }

  public function getSetting($config_name, $param_name) {
    return \Drupal::config($config_name)->get($param_name);
  }

  public function getNode($nid) {
    return $this->entityTypeManager->getStorage('node')->load($nid);
  }

  public function getUser($uid) {
    return $this->entityTypeManager->getStorage('user')->load($uid);
  }

  public function getPluralDate($data) {
    return \Drupal::service('trinion_tp.helper')->getPluralDate($data);
  }

  public function currentPageNid() {
    return ($node = \Drupal::routeMatch()->getParameter('node')) ? $node->id() : '';
  }

  public function getPluralCost($value) {
    return \Drupal::service('trinion_main.helper')->getPluralCost($value);
  }

  public function isModuleEnabled($module) {
    $moduleHandler = \Drupal::service('module_handler');
    return $moduleHandler->moduleExists($module);
  }

  public function pregReplace($regexp, $replace, $string) {
    return preg_replace($regexp, $replace, $string);
  }
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc