You are here

abstract class MapLinkBase in Address Map (& Directions) Link 8

Base class for Map link plugins.

Hierarchy

Expanded class hierarchy of MapLinkBase

10 files declare their use of MapLinkBase
AppleMaps.php in src/Plugin/MapLink/AppleMaps.php
BingMaps.php in src/Plugin/MapLink/BingMaps.php
GoogleMaps.php in src/Plugin/MapLink/GoogleMaps.php
GoogleMapsDirections.php in src/Plugin/MapLink/GoogleMapsDirections.php
HereWeGoMaps.php in src/Plugin/MapLink/HereWeGoMaps.php

... See full list

File

src/MapLinkBase.php, line 12

Namespace

Drupal\address_map_link
View source
abstract class MapLinkBase extends PluginBase implements MapLinkInterface {

  /**
   * {@inheritdoc}
   */
  public function getName() {
    return $this->pluginDefinition['name'];
  }

  /**
   * Gets the map link url from an address.
   *
   * @param \Drupal\address\AddressInterface $address
   *   The address.
   *
   * @return \Drupal\Core\Url
   *   The Url.
   */
  public function getAddressUrl(AddressInterface $address) {
    return Url::fromUri('https://google.com/maps', [
      'query' => [
        'q' => $this
          ->addressString($address),
      ],
    ]);
  }

  /**
   * Builds a query for use in a url for a single address item.
   *
   * @param \Drupal\address\AddressInterface $address
   *   The address.
   *
   * @return string
   *   A query string.
   */
  protected function addressString(AddressInterface $address) {
    $addressParameters = [];
    if ($address
      ->getAddressLine1()) {
      $addressParameters[] = $address
        ->getAddressLine1();
    }
    if ($address
      ->getAddressLine2()) {
      $addressParameters[] = $address
        ->getAddressLine2();
    }
    if ($address
      ->getLocality()) {
      $addressParameters[] = $address
        ->getLocality();
    }
    if ($address
      ->getAdministrativeArea()) {
      $addressParameters[] = $address
        ->getAdministrativeArea();
    }
    if ($address
      ->getDependentLocality()) {
      $addressParameters[] = $address
        ->getDependentLocality();
    }
    if ($address
      ->getPostalCode()) {
      $addressParameters[] = $address
        ->getPostalCode();
    }
    if ($address
      ->getCountryCode()) {
      $addressParameters[] = $address
        ->getCountryCode();
    }
    return implode(' ', $addressParameters);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
MapLinkBase::addressString protected function Builds a query for use in a url for a single address item.
MapLinkBase::getAddressUrl public function Gets the map link url from an address. Overrides MapLinkInterface::getAddressUrl 10
MapLinkBase::getName public function Return the name of the map link plugin. Overrides MapLinkInterface::getName
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