MapLinkBase.php in Address Map (& Directions) Link 8
Namespace
Drupal\address_map_linkFile
src/MapLinkBase.phpView source
<?php
namespace Drupal\address_map_link;
use Drupal\address\AddressInterface;
use Drupal\Component\Plugin\PluginBase;
use Drupal\Core\Url;
/**
* Base class for Map link plugins.
*/
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);
}
}
Classes
Name | Description |
---|---|
MapLinkBase | Base class for Map link plugins. |