wwwision/neos-addresseditor

Last activity on 5 May 2017
  • 1
  • 3
  • 112
composer require wwwision/neos-addresseditor

Simple Neos extension adding a custom property editor for addresses, including GeoCoding

v1.0.2

Simple Neos extension adding a custom property editor for addresses, including GeoCoding

Version
v1.0.2
Type
neos-package
Release Date
26.05.2017 08:19:53
Source
git
Distribution
zip
Requires
Requires (dev)
None
Suggest
None
Provides
None
Conflicts
None
Replaces
None
MIT 4c3aff28db9aeed94899733915eadaf0211416b1

Wwwision.Neos.AddressEditor

Simple Neos extension adding a custom property editor for postal addresses and GeoCoding support

Features

This package comes with two main features:

  1. A custom property editor for PostalAddress-properties
  2. A GeoCoding service that can look up GeoCoordinates by Postal- and IP Addresses (based on the great willdurand/geocoder package)

Usage

Install the package using composer:

composer require wwision/neos-addresseditor:^1.0

After successful installation you should configure a Google Maps API key:

Wwwision:
  Neos:
    AddressEditor:
      googleMapsApiKey: '<VALID_GOOGLE_MAPS_API_KEY>'

(For testing purposes you should be able to skip that step)

To make use of the new Property Editor, just add a property of PostalAddress to any NodeType configuration:

'Some.Package:SomeNodeType':
  # ...
  properties:
    'someProperty':
      type: 'Wwwision\Neos\AddressEditor\PostalAddress'

Afterwards you should be able to see the new PostalAddressEditor in the Neos Backend:

Screenshot expanded editor Screenshot collapsed editor

Note: The green checkmark indicates that the geocoding for this address has been successful

Display coordinates

When the geocoding was successful you can access the coordinates via the longitude and latitude fields of the address property. With a little bit of Fusion code you can make these available within a template (i.e. for rendering them in a Map):

prototype(Some.Package:SomeNodeType) < prototype(Neos.Fusion:Template) {
    templatePath = 'resource://Some.Package/Private/Templates/FusionObjects/Map.html'

    address = ${q(node).property('address')}
}

In the Fluid template you can then access the coordinates like this:

<f:if condition="{address}">
    <span class="marker" data-latitude="{address.latitude}" data-longitude="{address.longitude}">{address}</span>
</f:if>

License

Licensed under MIT, see LICENSE

The content of the readme is provided by Github
The same vendor provides 20 package(s).