cforge-2.0.x-dev/modules/cforge_address/src/AddressSubscriber.php

modules/cforge_address/src/AddressSubscriber.php
<?php

namespace Drupal\cforge_address;

use Drupal\address\Event\AddressFormatEvent;
use Drupal\address\Event\AddressEvents;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

/**
 * Rewrites the french address format
 */
class AddressSubscriber implements EventSubscriberInterface {

  /**
   * {@inheritdoc}
   */
  public static function getSubscribedEvents() : array {
    $events[AddressEvents::ADDRESS_FORMAT] = [['rewriteAddress']];
    return $events;
  }

  /**
   * Ensure every address format has %dependentLocality, sticking it on the end
   * if necessary, that that field is required, and called neighbourhood
   */
  public function rewriteAddress(AddressFormatEvent $event) {
    $addressFormat = $event->getDefinition();
    // Ensure every format contrains the 'neighbourhood' field.
    if (!strpos($addressFormat['format'], '%dependentLocality')) {
      $addressFormat['format'] .= "\n%dependentLocality";
    }
    $addressFormat['required_fields'][] = 'dependentLocality';
    $addressFormat['dependent_locality_type'] = 'neighborhood';
    $event->setDefinition($addressFormat);
  }

}

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

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