contrib_todo_list-1.1.1/src/TwigExtension/ContribTodoListTwigExtension.php

src/TwigExtension/ContribTodoListTwigExtension.php
<?php

namespace Drupal\contrib_todo_list\TwigExtension;

use Drupal\contrib_todo_list\data\TodoState;
use Twig\Extension\AbstractExtension;
use Twig\TwigFunction;

/**
 * Custom Twig extension.
 */
class ContribTodoListTwigExtension extends AbstractExtension {

  /**
   * {@inheritdoc}
   */
  public function getName() {
    return 'contrib_todo_list.twig.extension';
  }

  /**
   * {@inheritdoc}
   */
  public function getFunctions() {
    return [
      new TwigFunction('get_available_todo_state', [$this, 'getAvailableStates']),
      new TwigFunction('get_available_todo_state_keys', [$this, 'getAvailableKeys']),
      new TwigFunction('get_available_todo_state_labels', [$this, 'getAvailableLabels']),
      new TwigFunction('get_todo_state_key_by_label', [$this, 'getKeyByLabel']),
    ];
  }

  /**
   * Get available state.
   *
   * @return string[]
   */
  public function getAvailableStates(): array {
    return TodoState::getStates();
  }

  /**
   * Get available state keys.
   *
   * @return string[]
   */
  public function getAvailableKeys(): array {
    return TodoState::getStateKeys();
  }

  /**
   * Get available state labels.
   *
   * @return string[]
   */
  public function getAvailableLabels(): array {
    return TodoState::getStateLabels();
  }

  /**
   * Get key by label
   *
   * @param string $label
   *
   * @return string
   */
  public function getKeyByLabel(string $label): string {
    return TodoState::getKeyByLabel($label);
  }
}

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

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