You are here

class BaseMoment in Twig Extender 8.4

Same name and namespace in other branches
  1. 8.2 modules/twig_extender_extras/src/Plugin/TwigPlugin/BaseMoment.php \Drupal\twig_extender_extras\Plugin\TwigPlugin\BaseMoment
  2. 8.3 modules/twig_extender_extras/src/Plugin/TwigPlugin/BaseMoment.php \Drupal\twig_extender_extras\Plugin\TwigPlugin\BaseMoment
  3. 4.x modules/twig_extender_extras/src/Plugin/TwigPlugin/BaseMoment.php \Drupal\twig_extender_extras\Plugin\TwigPlugin\BaseMoment

Base class for moment plugins.

Hierarchy

Expanded class hierarchy of BaseMoment

File

modules/twig_extender_extras/src/Plugin/TwigPlugin/BaseMoment.php, line 11

Namespace

Drupal\twig_extender_extras\Plugin\TwigPlugin
View source
class BaseMoment extends TwigPluginBase {

  /**
   * Get current language.
   *
   * @return string
   *   Return language id if exists. Default ist 'en_GB'.
   */
  protected function getLocale() {
    $language = \Drupal::service('language_manager')
      ->getCurrentLanguage();
    $default = 'en_GB';
    $reflector = new \ReflectionClass('\\Moment\\Moment');
    $lang = implode('_', [
      $language
        ->getId(),
      strtoupper($language
        ->getId()),
    ]);
    if (!file_exists(dirname($reflector
      ->getFileName()) . '/Locales/' . $lang . '.php')) {
      return $default;
    }
    return $lang;
  }

  /**
   * Get default drupal timezone.
   *
   * @see https://api.drupal.org/api/drupal/core%21includes%21bootstrap.inc/function/drupal_get_user_timezone/8.4.x
   *
   * @return string
   *   Return timezone.
   */
  protected function getDefaultTimezone() {
    return date_default_timezone_get();
  }

  /**
   * Get moment library.
   *
   * @param mixed $date
   *   String or DateTime Object.
   * @param string $timezone
   *   Override timezone.
   */
  protected function getMoment($date, $timezone = NULL) {
    if ($timezone === NULL) {
      $timezone = $this
        ->getDefaultTimezone();
    }
    Moment::setLocale($this
      ->getLocale());
    if ($date === NULL) {
      return (new Moment())
        ->setTimezone($timezone);
    }
    if (is_numeric($date)) {
      return (new Moment())
        ->setTimestamp($date)
        ->setTimezone($timezone);
    }
    if (is_a($date, '\\Moment\\Moment')) {
      return $date;
    }
    return new Moment($date, $timezone);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
BaseMoment::getDefaultTimezone protected function Get default drupal timezone.
BaseMoment::getLocale protected function Get current language.
BaseMoment::getMoment protected function Get moment library.
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 3
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
PluginBase::__construct public function Constructs a \Drupal\Component\Plugin\PluginBase object. 92
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.
TwigPluginBase::getFunction public function Get type of the twig extension. Overrides TwigExtensionInterface::getFunction
TwigPluginBase::getName public function Get type of the twig extension. Overrides TwigExtensionInterface::getName
TwigPluginBase::getType public function Get type of the twig extension. Overrides TwigExtensionInterface::getType
TwigPluginBase::register public function Get type of the twig extension. Overrides TwigExtensionInterface::register