Compare commits

...

30 Commits

Author SHA1 Message Date
David Molineus
099cd6ca9d Update changelog. 2017-10-19 09:38:25 +02:00
David Molineus
86fb4f4e12 Update the readme. 2017-10-19 09:35:31 +02:00
David Molineus
ae4d9cec13 Update changelog. 2017-10-19 09:31:50 +02:00
David Molineus
08dea6e1da Code style. 2017-10-19 09:28:58 +02:00
David Molineus
ef7b493b2d Use the repository manager. 2017-10-19 08:45:39 +02:00
David Molineus
ce9de6ded3 Use template engine to render the map. 2017-10-18 17:01:03 +02:00
David Molineus
7498aef141 Fix query. 2017-10-18 16:48:16 +02:00
David Molineus
28adc54d36 Fix query. 2017-10-18 16:46:05 +02:00
David Molineus
451d13fe98 Work on repository manager usage. 2017-10-18 16:43:33 +02:00
David Molineus
a4192b4b1a Code style. 2017-10-18 16:36:36 +02:00
David Molineus
7741f44428 Use the repository manager. 2017-10-18 16:36:12 +02:00
David Molineus
0716354952 Work on service oriented listeners. 2017-10-18 16:26:27 +02:00
David Molineus
dd23d386eb Use latest Repository feature to replace static model calls. 2017-10-18 15:30:24 +02:00
David Molineus
edb4ac9eeb Support geojson and topojson as file types for the file layer. 2017-10-18 11:47:04 +02:00
David Molineus
5501887231 Refactor the factories so that they don't use the container. 2017-10-18 08:27:49 +02:00
David Molineus
60306459d2 Add the file path to the layer label. 2017-10-17 18:18:33 +02:00
David Molineus
c465b724f4 Convert array syntax and other minor code style adjustments. 2017-10-17 18:11:28 +02:00
David Molineus
6ded7441d9 Code style. 2017-10-17 18:03:49 +02:00
David Molineus
ae5fe11d20 Move Request to Mapper namespace. 2017-10-17 18:03:42 +02:00
David Molineus
8dbe464ca8 Move hash subscriber to the listener namespace. 2017-10-17 17:58:55 +02:00
David Molineus
d261e8b4ba Refactor GeoJsonSubscriber to an listener. 2017-10-17 17:57:40 +02:00
David Molineus
57fe57b8ea Move encoder subscriber to encoder namespace. 2017-10-17 17:48:14 +02:00
David Molineus
46e6dcc2fa Support bounds changing after files got loaded. 2017-10-17 17:43:12 +02:00
David Molineus
01b3962b78 Optimize use statements. 2017-10-17 17:11:35 +02:00
David Molineus
734aecf738 Add changelog. 2017-10-17 17:09:29 +02:00
David Molineus
50465e4026 Bypass filesystem cache in debug mode. 2017-10-17 17:09:00 +02:00
David Molineus
0abc4676f1 Merge branch 'feature/file-layer' into release/3.0.0 2017-10-17 16:51:10 +02:00
David Molineus
d1f26056e9 Implement a file layer for gpx,kml,wkt support. 2017-10-17 16:50:29 +02:00
David Molineus
31a5cc40a5 Optimize import statements. 2017-10-17 16:22:24 +02:00
David Molineus
59df74c3f9 Replace string class names with the ::class attribute. 2017-10-17 13:51:09 +02:00
115 changed files with 1799 additions and 781 deletions

16
CHANGELOG.md Normal file
View File

@@ -0,0 +1,16 @@
Changelog
=========
3.0.0-alpha1 (2017-10-19)
------------------------
[Full Changelog](https://github.com/netzmacht/contao-leaflet-maps/compare/3.0.0-alpha1...2.0.0-alpha2)
Implemented enhancements
- Refactor to a more service oriented architecture
- Use a proper template for the map templates (Customize templates has to be adjusted!)
- New file layer for gpx,kml,wkt,topojson,geojson files added
- Bypass filesystem cache in debug mode
- Changelog added

View File

@@ -17,17 +17,19 @@ Features
- Define Leaflet maps with multiple layers. - Define Leaflet maps with multiple layers.
- Manage map controls - Manage map controls
- [Layers control](http://leafletjs.com/reference-1.0.0.html#control-layers) - [Layers control](http://leafletjs.com/reference-1.2.0.html#control-layers)
- [Zoom control](http://leafletjs.com/reference-1.0.0.html#control-zoom) - [Zoom control](http://leafletjs.com/reference-1.2.0.html#control-zoom)
- [Scale control]((http://leafletjs.com/reference-1.0.0.html#control-scale)) - [Scale control]((http://leafletjs.com/reference-1.2.0.html#control-scale))
- [Attribution control](http://leafletjs.com/reference-1.0.0.html#control-attribution) - [Attribution control](http://leafletjs.com/reference-1.2.0.html#control-attribution)
- [Loading control](https://github.com/ebrelsford/Leaflet.loading) - [Loading control](https://github.com/ebrelsford/Leaflet.loading)
- Manage layers - Manage layers
- [Tile provider](https://github.com/leaflet-extras/leaflet-providers) - [Tile provider](https://github.com/leaflet-extras/leaflet-providers)
- Markers - A set of [markers](http://leafletjs.com/reference-1.0.0.html#marker) - Markers - A set of [markers](http://leafletjs.com/reference-1.2.0.html#marker)
- Vectors - A set of [vectors](http://leafletjs.com/reference-1.0.0.html) - Vectors - A set of [vectors](http://leafletjs.com/reference-1.2.0.html)
- Groups - A group of layers - Groups - A group of layers
- Reference - A link to another layer - Reference - A link to another layer
- [Markercluster](https://github.com/Leaflet/Leaflet.markercluster)
- External geo data files (gpx,kml,wkt,geojson,topojson)
- Manage marker icons - Manage marker icons
- Manage vector styles - Manage vector styles
- Optional deferred ajax loading of layer data - Optional deferred ajax loading of layer data
@@ -36,11 +38,22 @@ Features
- Autoloading of required assets. - Autoloading of required assets.
- [Layer for MetaModels](https://github.com/netzmacht/contao-leaflet-metamodels) - [Layer for MetaModels](https://github.com/netzmacht/contao-leaflet-metamodels)
Changelog
---------
View the [CHANGELOG.md](CHANGELOG.md) for the latest changes.
Requirements
------------
- Contao 4.4
- PHP >= 7.0
Install Install
------- -------
``` ```
$ php composer.phar require netzmacht/contao-leaflet-maps:~2.0 $ php composer.phar require netzmacht/contao-leaflet-maps:~3.0
``` ```
Credits Credits

View File

@@ -26,8 +26,8 @@
"contao/core-bundle": "~4.4", "contao/core-bundle": "~4.4",
"netzmacht/contao-leaflet-libraries": "^1.0", "netzmacht/contao-leaflet-libraries": "^1.0",
"netzmacht/php-javascript-builder": "^1.0", "netzmacht/php-javascript-builder": "^1.0",
"netzmacht/php-leaflet": "^1.0.1", "netzmacht/php-leaflet": "^1.0.2",
"netzmacht/contao-toolkit": "^3.0@dev", "netzmacht/contao-toolkit": "~3.0@beta",
"contao-community-alliance/meta-palettes": "^1.5", "contao-community-alliance/meta-palettes": "^1.5",
"menatwork/contao-multicolumnwizard": "^3.2", "menatwork/contao-multicolumnwizard": "^3.2",
"doctrine/cache": "^1.0" "doctrine/cache": "^1.0"

View File

@@ -124,8 +124,22 @@ L.Contao = L.Evented.extend({
* @param map Pass a map object so that the data loading events are passed to the map. * @param map Pass a map object so that the data loading events are passed to the map.
*/ */
load: function (hash, type, options, customLayer, map) { load: function (hash, type, options, customLayer, map) {
var url = this.createRequestUrl(hash, map), var url = this.createRequestUrl(hash, map);
layer = omnivore[type](url, options, customLayer);
return this.loadFile(url, type, options, customLayer, map);
},
/**
* Load data from an url into a layer using omnivore.
*
* @param url A file url.
* @param type The response content format.
* @param options Parser options
* @param customLayer optional custom layer.
* @param map Pass a map object so that the data loading events are passed to the map.
*/
loadFile: function (url, type, options, customLayer, map) {
var layer = omnivore[type](url, options, customLayer);
if (map) { if (map) {
// Required because Control.Loading tries to get _leafet_id which is created here. // Required because Control.Loading tries to get _leafet_id which is created here.

View File

@@ -48,10 +48,10 @@ class About
return array_map( return array_map(
function ($library) { function ($library) {
$library = array_merge( $library = array_merge(
array( [
'homepage' => null, 'homepage' => null,
'version' => null, 'version' => null,
), ],
$library $library
); );
@@ -86,30 +86,30 @@ class About
$lockFile = TL_ROOT . '/composer.lock'; $lockFile = TL_ROOT . '/composer.lock';
if (!file_exists($extFile) || !file_exists($lockFile)) { if (!file_exists($extFile) || !file_exists($lockFile)) {
return array(); return [];
} }
$extension = json_decode(file_get_contents($extFile), true); $extension = json_decode(file_get_contents($extFile), true);
$installed = json_decode(file_get_contents($lockFile), true); $installed = json_decode(file_get_contents($lockFile), true);
$deps = array(); $deps = [];
$version = null; $version = null;
foreach ($installed['packages'] as $package) { foreach ($installed['packages'] as $package) {
if ($package['name'] === 'netzmacht/contao-leaflet-maps') { if ($package['name'] === 'netzmacht/contao-leaflet-maps') {
$version = $package['version']; $version = $package['version'];
} elseif (isset($extension['require'][$package['name']])) { } elseif (isset($extension['require'][$package['name']])) {
$deps[] = array( $deps[] = [
'name' => $package['name'], 'name' => $package['name'],
'version' => $package['version'], 'version' => $package['version'],
'license' => !empty($package['license']) ? implode(', ', $package['license']) : '', 'license' => !empty($package['license']) ? implode(', ', $package['license']) : '',
'homepage' => sprintf( 'homepage' => sprintf(
'<a href="https://packagist.org/packages/%s" target="_blank">Visit packagist</a>', '<a href="https://packagist.org/packages/%s" target="_blank">Visit packagist</a>',
$package['name'] $package['name']
) ),
); ];
} }
} }
return array($version, $deps); return [$version, $deps];
} }
} }

View File

@@ -0,0 +1,67 @@
<?php
/**
* Leaflet maps for Contao CMS.
*
* @package contao-leaflet-maps
* @author David Molineus <david.molineus@netzmacht.de>
* @copyright 2014-2017 netzmacht David Molineus. All rights reserved.
* @license LGPL-3.0 https://github.com/netzmacht/contao-leaflet-maps/blob/master/LICENSE
* @filesource
*/
declare(strict_types=1);
namespace Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer;
use Contao\FilesModel;
use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
use Symfony\Component\Translation\TranslatorInterface as Translator;
/**
* Class FileLabelRenderer
*
* @package Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer
*/
class FileLabelRenderer extends AbstractLabelRenderer
{
/**
* Repository manager.
*
* @var RepositoryManager
*/
private $repositoryManager;
/**
* FileLabelRenderer constructor.
*
* @param RepositoryManager $repositoryManager Repository manager.
*/
public function __construct(RepositoryManager $repositoryManager)
{
$this->repositoryManager = $repositoryManager;
}
/**
* {@inheritDoc}
*/
protected function getLayerType(): string
{
return 'file';
}
/**
* {@inheritDoc}
*/
public function render(array $row, string $label, Translator $translator): string
{
$repository = $this->repositoryManager->getRepository(FilesModel::class);
$file = $repository->findByPk($row['file']);
if ($file) {
$label .= ' <span class="tl_gray">(' . $file->path . ')</span>';
}
return $label;
}
}

View File

@@ -15,6 +15,7 @@ declare(strict_types=1);
namespace Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer; namespace Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer;
use Netzmacht\Contao\Leaflet\Model\MarkerModel; use Netzmacht\Contao\Leaflet\Model\MarkerModel;
use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
use Symfony\Component\Translation\TranslatorInterface as Translator; use Symfony\Component\Translation\TranslatorInterface as Translator;
/** /**
@@ -24,6 +25,23 @@ use Symfony\Component\Translation\TranslatorInterface as Translator;
*/ */
final class MarkersLabelRenderer extends AbstractLabelRenderer final class MarkersLabelRenderer extends AbstractLabelRenderer
{ {
/**
* Repository manager.
*
* @var RepositoryManager
*/
private $repositoryManager;
/**
* FileLabelRenderer constructor.
*
* @param RepositoryManager $repositoryManager Repository manager.
*/
public function __construct(RepositoryManager $repositoryManager)
{
$this->repositoryManager = $repositoryManager;
}
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
@@ -37,8 +55,9 @@ final class MarkersLabelRenderer extends AbstractLabelRenderer
*/ */
public function render(array $row, string $label, Translator $translator): string public function render(array $row, string $label, Translator $translator): string
{ {
$count = MarkerModel::countBy('pid', $row['id']); $repository = $this->repositoryManager->getRepository(MarkerModel::class);
$label .= sprintf( $count = $repository->countBy(['pid=?'], [$row['pid']]);
$label .= sprintf(
'<span class="tl_gray"> (%s %s)</span>', '<span class="tl_gray"> (%s %s)</span>',
$count, $count,
$translator->trans('countEntries', [], 'contao_tl_leaflet_layer') $translator->trans('countEntries', [], 'contao_tl_leaflet_layer')

View File

@@ -29,7 +29,7 @@ final class OverpassLabelRenderer extends AbstractLabelRenderer
*/ */
protected function getLayerType(): string protected function getLayerType(): string
{ {
return 'vectors'; return 'overpass';
} }
/** /**

View File

@@ -15,6 +15,7 @@ declare(strict_types=1);
namespace Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer; namespace Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer;
use Netzmacht\Contao\Leaflet\Model\LayerModel; use Netzmacht\Contao\Leaflet\Model\LayerModel;
use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
use Symfony\Component\Translation\TranslatorInterface as Translator; use Symfony\Component\Translation\TranslatorInterface as Translator;
/** /**
@@ -24,12 +25,29 @@ use Symfony\Component\Translation\TranslatorInterface as Translator;
*/ */
final class ReferenceLabelRenderer extends AbstractLabelRenderer final class ReferenceLabelRenderer extends AbstractLabelRenderer
{ {
/**
* Repository manager.
*
* @var RepositoryManager
*/
private $repositoryManager;
/**
* FileLabelRenderer constructor.
*
* @param RepositoryManager $repositoryManager Repository manager.
*/
public function __construct(RepositoryManager $repositoryManager)
{
$this->repositoryManager = $repositoryManager;
}
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
protected function getLayerType(): string protected function getLayerType(): string
{ {
return 'vectors'; return 'reference';
} }
/** /**
@@ -37,7 +55,8 @@ final class ReferenceLabelRenderer extends AbstractLabelRenderer
*/ */
public function render(array $row, string $label, Translator $translator): string public function render(array $row, string $label, Translator $translator): string
{ {
$reference = LayerModel::findByPk($row['reference']); $repository = $this->repositoryManager->getRepository(LayerModel::class);
$reference = $repository->find((int) $row['reference']);
if ($reference) { if ($reference) {
$label .= '<span class="tl_gray"> (' . $reference->title . ')</span>'; $label .= '<span class="tl_gray"> (' . $reference->title . ')</span>';

View File

@@ -15,6 +15,7 @@ declare(strict_types=1);
namespace Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer; namespace Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer;
use Netzmacht\Contao\Leaflet\Model\VectorModel; use Netzmacht\Contao\Leaflet\Model\VectorModel;
use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
use Symfony\Component\Translation\TranslatorInterface as Translator; use Symfony\Component\Translation\TranslatorInterface as Translator;
/** /**
@@ -24,6 +25,23 @@ use Symfony\Component\Translation\TranslatorInterface as Translator;
*/ */
final class VectorsLabelRenderer extends AbstractLabelRenderer final class VectorsLabelRenderer extends AbstractLabelRenderer
{ {
/**
* Repository manager.
*
* @var RepositoryManager
*/
private $repositoryManager;
/**
* FileLabelRenderer constructor.
*
* @param RepositoryManager $repositoryManager Repository manager.
*/
public function __construct(RepositoryManager $repositoryManager)
{
$this->repositoryManager = $repositoryManager;
}
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
@@ -37,8 +55,9 @@ final class VectorsLabelRenderer extends AbstractLabelRenderer
*/ */
public function render(array $row, string $label, Translator $translator): string public function render(array $row, string $label, Translator $translator): string
{ {
$count = VectorModel::countBy('pid', $row['id']); $repository = $this->repositoryManager->getRepository(VectorModel::class);
$label .= sprintf( $count = $repository->countBy(['pid=?'], [$row['id']]);
$label .= sprintf(
'<span class="tl_gray"> (%s %s)</span>', '<span class="tl_gray"> (%s %s)</span>',
$count, $count,
$translator->trans('countEntries', [], 'contao_tl_leaflet_layer') $translator->trans('countEntries', [], 'contao_tl_leaflet_layer')

View File

@@ -36,7 +36,7 @@ class Plugin implements BundlePluginInterface
return [ return [
BundleConfig::create(NetzmachtContaoLeafletBundle::class) BundleConfig::create(NetzmachtContaoLeafletBundle::class)
->setLoadAfter([ContaoCoreBundle::class, NetzmachtContaoToolkitBundle::class]) ->setLoadAfter([ContaoCoreBundle::class, NetzmachtContaoToolkitBundle::class])
->setReplace(['leaflet']) ->setReplace(['leaflet']),
]; ];
} }
} }

View File

@@ -33,7 +33,7 @@ class NetzmachtContaoLeafletExtension extends Extension
{ {
$loader = new YamlFileLoader( $loader = new YamlFileLoader(
$container, $container,
new FileLocator(dirname(__DIR__) .'/Resources/config') new FileLocator(dirname(__DIR__) . '/Resources/config')
); );
// Common config, services and listeners // Common config, services and listeners
@@ -49,5 +49,13 @@ class NetzmachtContaoLeafletExtension extends Extension
$loader->load('mappers.yml'); $loader->load('mappers.yml');
$loader->load('encoders.yml'); $loader->load('encoders.yml');
$loader->load('layers.yml'); $loader->load('layers.yml');
if (!$container->hasDefinition('netzmacht.contao_leaflet.cache')) {
if ($container->getParameter('kernel.debug')) {
$container->setAlias('netzmacht.contao_leaflet.cache', 'netzmacht.contao_leaflet.cache.debug');
} else {
$container->setAlias('netzmacht.contao_leaflet.cache', 'netzmacht.contao_leaflet.cache.default');
}
}
} }
} }

View File

@@ -14,9 +14,9 @@ declare(strict_types=1);
namespace Netzmacht\Contao\Leaflet\Bundle; namespace Netzmacht\Contao\Leaflet\Bundle;
use Netzmacht\Contao\Leaflet\Bundle\DependencyInjection\Pass\RegisterLibrariesPass;
use Netzmacht\Contao\Leaflet\Bundle\DependencyInjection\Pass\RegisterDefinitionMapperPass; use Netzmacht\Contao\Leaflet\Bundle\DependencyInjection\Pass\RegisterDefinitionMapperPass;
use Netzmacht\Contao\Leaflet\Bundle\DependencyInjection\Pass\RegisterEncodersPass; use Netzmacht\Contao\Leaflet\Bundle\DependencyInjection\Pass\RegisterEncodersPass;
use Netzmacht\Contao\Leaflet\Bundle\DependencyInjection\Pass\RegisterLibrariesPass;
use Netzmacht\Contao\Toolkit\Bundle\DependencyInjection\Compiler\AddTaggedServicesAsArgumentPass; use Netzmacht\Contao\Toolkit\Bundle\DependencyInjection\Compiler\AddTaggedServicesAsArgumentPass;
use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\HttpKernel\Bundle\Bundle; use Symfony\Component\HttpKernel\Bundle\Bundle;

View File

@@ -38,6 +38,13 @@ parameters:
- 'circle' - 'circle'
- 'circleMarker' - 'circleMarker'
netzmacht.contao_leaflet.file_formats:
gpx: ['gpx']
kml: ['kml']
wkt: ['wkt']
geojson: ['json', 'geojson']
topojson: ['json', 'topojson']
# When creating a GeoJSON feature of a map object a feature.properties.model object is passed. # When creating a GeoJSON feature of a map object a feature.properties.model object is passed.
# Define the properties you always want to set. # Define the properties you always want to set.
# #

View File

@@ -42,6 +42,6 @@ services:
- { name: netzmacht.contao_leaflet.encoder } - { name: netzmacht.contao_leaflet.encoder }
netzmacht.contao_leaflet.encoder.subscriber: netzmacht.contao_leaflet.encoder.subscriber:
class: Netzmacht\Contao\Leaflet\Subscriber\EncoderSubscriber class: Netzmacht\Contao\Leaflet\Encoder\Subscriber\EncoderSubscriber
tags: tags:
- { name: netzmacht.contao_leaflet.encoder } - { name: netzmacht.contao_leaflet.encoder }

View File

@@ -45,6 +45,12 @@ parameters:
extend: true extend: true
fit: true fit: true
file:
children: false
icon: 'bundles/netzmachtcontaoleaflet/img/file.png'
boundsMode:
extend: true
services: services:
_defaults: _defaults:
public: false public: false
@@ -56,6 +62,8 @@ services:
netzmacht.contao_leaflet.layer_label_renderer.markers: netzmacht.contao_leaflet.layer_label_renderer.markers:
class: Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer\MarkersLabelRenderer class: Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer\MarkersLabelRenderer
arguments:
- '@netzmacht.contao_toolkit.repository_manager'
tags: tags:
- { name: 'netzmacht.contao_leaflet.layer_label_renderer' } - { name: 'netzmacht.contao_leaflet.layer_label_renderer' }
@@ -71,10 +79,21 @@ services:
netzmacht.contao_leaflet.layer_label_renderer.reference: netzmacht.contao_leaflet.layer_label_renderer.reference:
class: Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer\ReferenceLabelRenderer class: Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer\ReferenceLabelRenderer
arguments:
- '@netzmacht.contao_toolkit.repository_manager'
tags: tags:
- { name: 'netzmacht.contao_leaflet.layer_label_renderer' } - { name: 'netzmacht.contao_leaflet.layer_label_renderer' }
netzmacht.contao_leaflet.layer_label_renderer.vectors: netzmacht.contao_leaflet.layer_label_renderer.vectors:
class: Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer\VectorsLabelRenderer class: Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer\VectorsLabelRenderer
arguments:
- '@netzmacht.contao_toolkit.repository_manager'
tags:
- { name: 'netzmacht.contao_leaflet.layer_label_renderer' }
netzmacht.contao_leaflet.layer_label_renderer.file:
class: Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer\FileLabelRenderer
arguments:
- '@netzmacht.contao_toolkit.repository_manager'
tags: tags:
- { name: 'netzmacht.contao_leaflet.layer_label_renderer' } - { name: 'netzmacht.contao_leaflet.layer_label_renderer' }

View File

@@ -2,7 +2,10 @@ services:
netzmacht.contao_leaflet.listeners.dca.leaflet: netzmacht.contao_leaflet.listeners.dca.leaflet:
class: Netzmacht\Contao\Leaflet\Listener\Dca\LeafletDcaListener class: Netzmacht\Contao\Leaflet\Listener\Dca\LeafletDcaListener
arguments: arguments:
- '@netzmacht.contao_toolkit.repository_manager'
- '@templating'
- '@filesystem' - '@filesystem'
- '@netzmacht.contao_toolkit.contao.system_adapter'
- '%netzmacht.contao_leaflet.cache_dir%' - '%netzmacht.contao_leaflet.cache_dir%'
netzmacht.contao_leaflet.listeners.dca.validator: netzmacht.contao_leaflet.listeners.dca.validator:
@@ -14,6 +17,7 @@ services:
netzmacht.contao_leaflet.listeners.dca.frontend_integration: netzmacht.contao_leaflet.listeners.dca.frontend_integration:
class: Netzmacht\Contao\Leaflet\Listener\Dca\FrontendIntegrationListener class: Netzmacht\Contao\Leaflet\Listener\Dca\FrontendIntegrationListener
arguments: arguments:
- '@netzmacht.contao_toolkit.repository_manager'
- '@translator' - '@translator'
netzmacht.contao_leaflet.listeners.dca.map: netzmacht.contao_leaflet.listeners.dca.map:
@@ -21,6 +25,8 @@ services:
arguments: arguments:
- '@netzmacht.contao_toolkit.dca.manager' - '@netzmacht.contao_toolkit.dca.manager'
- '@database_connection' - '@database_connection'
- '@netzmacht.contao_toolkit.repository_manager'
- '@netzmacht.contao_toolkit.repository_manager'
netzmacht.contao_leaflet.listeners.dca.control: netzmacht.contao_leaflet.listeners.dca.control:
class: Netzmacht\Contao\Leaflet\Listener\Dca\ControlDcaListener class: Netzmacht\Contao\Leaflet\Listener\Dca\ControlDcaListener
@@ -34,21 +40,26 @@ services:
arguments: arguments:
- '@netzmacht.contao_toolkit.dca.manager' - '@netzmacht.contao_toolkit.dca.manager'
- '@database_connection' - '@database_connection'
- '@netzmacht.contao_toolkit.repository_manager'
- '@translator' - '@translator'
- '@netzmacht.contao_leaflet.layer_label_renderer' - '@netzmacht.contao_leaflet.layer_label_renderer'
- '@netzmacht.contao_toolkit.contao.backend_adapter'
- '%netzmacht.contao_leaflet.layers%' - '%netzmacht.contao_leaflet.layers%'
- '%netzmacht.contao_leaflet.providers%' - '%netzmacht.contao_leaflet.providers%'
- '%netzmacht.contao_leaflet.amenities%' - '%netzmacht.contao_leaflet.amenities%'
- '%netzmacht.contao_leaflet.file_formats%'
netzmacht.contao_leaflet.listeners.dca.marker: netzmacht.contao_leaflet.listeners.dca.marker:
class: Netzmacht\Contao\Leaflet\Listener\Dca\MarkerDcaListener class: Netzmacht\Contao\Leaflet\Listener\Dca\MarkerDcaListener
arguments: arguments:
- '@database_connection' - '@database_connection'
- '@netzmacht.contao_toolkit.repository_manager'
netzmacht.contao_leaflet.listeners.dca.vector: netzmacht.contao_leaflet.listeners.dca.vector:
class: Netzmacht\Contao\Leaflet\Listener\Dca\VectorDcaListener class: Netzmacht\Contao\Leaflet\Listener\Dca\VectorDcaListener
arguments: arguments:
- '@netzmacht.contao_toolkit.dca.manager' - '@netzmacht.contao_toolkit.dca.manager'
- '@netzmacht.contao_toolkit.repository_manager'
- '%netzmacht.contao_leaflet.vectors%' - '%netzmacht.contao_leaflet.vectors%'
netzmacht.contao_leaflet.listeners.dca.icon: netzmacht.contao_leaflet.listeners.dca.icon:
@@ -61,15 +72,16 @@ services:
arguments: arguments:
- '%netzmacht.contao_leaflet.styles%' - '%netzmacht.contao_leaflet.styles%'
netzmacht.contao_leaflet.listeners.geo_json_subscriber: netzmacht.contao_leaflet.listeners.geo_json_listener:
class: Netzmacht\Contao\Leaflet\Subscriber\GeoJsonSubscriber class: Netzmacht\Contao\Leaflet\Listener\GeoJsonListener
arguments: arguments:
- '@netzmacht.contao_toolkit.repository_manager'
- '%netzmacht.contao_leaflet.feature_model_properties%' - '%netzmacht.contao_leaflet.feature_model_properties%'
tags: tags:
- { name: 'kernel.event_subscriber' } - { name: 'kernel.event_listener', event: 'netzmacht.contao_leaflet.mapper.convert_to_geojson', method: 'handle' }
netzmacht.contao_leaflet.listeners.hash_subscriber: netzmacht.contao_leaflet.listeners.hash_subscriber:
class: Netzmacht\Contao\Leaflet\Subscriber\HashSubscriber class: Netzmacht\Contao\Leaflet\Listener\HashSubscriber
tags: tags:
- { name: 'kernel.event_subscriber' } - { name: 'kernel.event_subscriber' }
@@ -78,6 +90,7 @@ services:
arguments: arguments:
- '@netzmacht.contao_leaflet.map.assets' - '@netzmacht.contao_leaflet.map.assets'
- '@netzmacht.contao_leaflet.definition.mapper' - '@netzmacht.contao_leaflet.definition.mapper'
- '@netzmacht.contao_toolkit.repository_manager'
- '@netzmacht.contao_leaflet.libraries' - '@netzmacht.contao_leaflet.libraries'
tags: tags:
- { name: 'kernel.event_listener', event: 'netzmacht.contao_leaflet.get_javascript', method: 'onGetJavascriptEvent' } - { name: 'kernel.event_listener', event: 'netzmacht.contao_leaflet.get_javascript', method: 'onGetJavascriptEvent' }

View File

@@ -9,6 +9,8 @@ services:
# Map mapper # Map mapper
netzmacht.contao_leaflet.mapper.map: netzmacht.contao_leaflet.mapper.map:
class: Netzmacht\Contao\Leaflet\Mapper\MapMapper class: Netzmacht\Contao\Leaflet\Mapper\MapMapper
arguments:
- '@netzmacht.contao_toolkit.repository_manager'
tags: tags:
- { name: netzmacht.contao_leaflet.mapper } - { name: netzmacht.contao_leaflet.mapper }
@@ -28,26 +30,36 @@ services:
netzmacht.contao_leaflet.mapper.markers_layer: netzmacht.contao_leaflet.mapper.markers_layer:
class: Netzmacht\Contao\Leaflet\Mapper\Layer\MarkersLayerMapper class: Netzmacht\Contao\Leaflet\Mapper\Layer\MarkersLayerMapper
arguments:
- '@netzmacht.contao_toolkit.repository_manager'
tags: tags:
- { name: netzmacht.contao_leaflet.mapper } - { name: netzmacht.contao_leaflet.mapper }
netzmacht.contao_leaflet.mapper.group_layer: netzmacht.contao_leaflet.mapper.group_layer:
class: Netzmacht\Contao\Leaflet\Mapper\Layer\GroupLayerMapper class: Netzmacht\Contao\Leaflet\Mapper\Layer\GroupLayerMapper
arguments:
- '@netzmacht.contao_toolkit.repository_manager'
tags: tags:
- { name: netzmacht.contao_leaflet.mapper } - { name: netzmacht.contao_leaflet.mapper }
netzmacht.contao_leaflet.mapper.vectors_layer: netzmacht.contao_leaflet.mapper.vectors_layer:
class: Netzmacht\Contao\Leaflet\Mapper\Layer\VectorsLayerMapper class: Netzmacht\Contao\Leaflet\Mapper\Layer\VectorsLayerMapper
arguments:
- '@netzmacht.contao_toolkit.repository_manager'
tags: tags:
- { name: netzmacht.contao_leaflet.mapper } - { name: netzmacht.contao_leaflet.mapper }
netzmacht.contao_leaflet.mapper.reference_layer: netzmacht.contao_leaflet.mapper.reference_layer:
class: Netzmacht\Contao\Leaflet\Mapper\Layer\ReferenceLayerMapper class: Netzmacht\Contao\Leaflet\Mapper\Layer\ReferenceLayerMapper
arguments:
- '@netzmacht.contao_toolkit.repository_manager'
tags: tags:
- { name: netzmacht.contao_leaflet.mapper } - { name: netzmacht.contao_leaflet.mapper }
netzmacht.contao_leaflet.mapper.overpass_layer: netzmacht.contao_leaflet.mapper.overpass_layer:
class: Netzmacht\Contao\Leaflet\Mapper\Layer\OverpassLayerMapper class: Netzmacht\Contao\Leaflet\Mapper\Layer\OverpassLayerMapper
arguments:
- '@netzmacht.contao_toolkit.repository_manager'
tags: tags:
- { name: netzmacht.contao_leaflet.mapper } - { name: netzmacht.contao_leaflet.mapper }
@@ -55,9 +67,16 @@ services:
class: Netzmacht\Contao\Leaflet\Mapper\Layer\MarkerClusterLayerMapper class: Netzmacht\Contao\Leaflet\Mapper\Layer\MarkerClusterLayerMapper
arguments: arguments:
- '@netzmacht.contao_leaflet.map.assets' - '@netzmacht.contao_leaflet.map.assets'
- '@netzmacht.contao_toolkit.repository_manager'
tags: tags:
- { name: netzmacht.contao_leflet_maps.mapper } - { name: netzmacht.contao_leflet_maps.mapper }
netzmacht.contao_leaflet.mapper.file_layer:
class: Netzmacht\Contao\Leaflet\Mapper\Layer\FileLayerMapper
arguments:
- '@netzmacht.contao_toolkit.repository_manager'
tags:
- { name: netzmacht.contao_leaflet.mapper }
# Control mappers # Control mappers
netzmacht.contao_leaflet.mapper.zoom_control: netzmacht.contao_leaflet.mapper.zoom_control:
@@ -82,6 +101,8 @@ services:
netzmacht.contao_leaflet.mapper.loading_control: netzmacht.contao_leaflet.mapper.loading_control:
class: Netzmacht\Contao\Leaflet\Mapper\Control\LoadingControlMapper class: Netzmacht\Contao\Leaflet\Mapper\Control\LoadingControlMapper
arguments:
- '@netzmacht.contao_toolkit.repository_manager'
tags: tags:
- { name: netzmacht.contao_leaflet.mapper } - { name: netzmacht.contao_leaflet.mapper }
@@ -95,6 +116,7 @@ services:
netzmacht.contao_leaflet.mapper.polyline: netzmacht.contao_leaflet.mapper.polyline:
class: Netzmacht\Contao\Leaflet\Mapper\Vector\PolylineMapper class: Netzmacht\Contao\Leaflet\Mapper\Vector\PolylineMapper
arguments: arguments:
- '@netzmacht.contao_toolkit.repository_manager'
- '@netzmacht.contao_leaflet.frontend.value_filter' - '@netzmacht.contao_leaflet.frontend.value_filter'
tags: tags:
- { name: netzmacht.contao_leaflet.mapper } - { name: netzmacht.contao_leaflet.mapper }
@@ -102,6 +124,7 @@ services:
netzmacht.contao_leaflet.mapper.multi_polyline: netzmacht.contao_leaflet.mapper.multi_polyline:
class: Netzmacht\Contao\Leaflet\Mapper\Vector\MultiPolylineMapper class: Netzmacht\Contao\Leaflet\Mapper\Vector\MultiPolylineMapper
arguments: arguments:
- '@netzmacht.contao_toolkit.repository_manager'
- '@netzmacht.contao_leaflet.frontend.value_filter' - '@netzmacht.contao_leaflet.frontend.value_filter'
tags: tags:
- { name: netzmacht.contao_leaflet.mapper } - { name: netzmacht.contao_leaflet.mapper }
@@ -109,6 +132,7 @@ services:
netzmacht.contao_leaflet.mapper.polygon: netzmacht.contao_leaflet.mapper.polygon:
class: Netzmacht\Contao\Leaflet\Mapper\Vector\PolygonMapper class: Netzmacht\Contao\Leaflet\Mapper\Vector\PolygonMapper
arguments: arguments:
- '@netzmacht.contao_toolkit.repository_manager'
- '@netzmacht.contao_leaflet.frontend.value_filter' - '@netzmacht.contao_leaflet.frontend.value_filter'
tags: tags:
- { name: netzmacht.contao_leaflet.mapper } - { name: netzmacht.contao_leaflet.mapper }
@@ -116,6 +140,7 @@ services:
netzmacht.contao_leaflet.mapper.multi_polygon: netzmacht.contao_leaflet.mapper.multi_polygon:
class: Netzmacht\Contao\Leaflet\Mapper\Vector\MultiPolygonMapper class: Netzmacht\Contao\Leaflet\Mapper\Vector\MultiPolygonMapper
arguments: arguments:
- '@netzmacht.contao_toolkit.repository_manager'
- '@netzmacht.contao_leaflet.frontend.value_filter' - '@netzmacht.contao_leaflet.frontend.value_filter'
tags: tags:
- { name: netzmacht.contao_leaflet.mapper } - { name: netzmacht.contao_leaflet.mapper }
@@ -123,6 +148,7 @@ services:
netzmacht.contao_leaflet.mapper.circle: netzmacht.contao_leaflet.mapper.circle:
class: Netzmacht\Contao\Leaflet\Mapper\Vector\CircleMapper class: Netzmacht\Contao\Leaflet\Mapper\Vector\CircleMapper
arguments: arguments:
- '@netzmacht.contao_toolkit.repository_manager'
- '@netzmacht.contao_leaflet.frontend.value_filter' - '@netzmacht.contao_leaflet.frontend.value_filter'
tags: tags:
- { name: netzmacht.contao_leaflet.mapper } - { name: netzmacht.contao_leaflet.mapper }
@@ -130,6 +156,7 @@ services:
netzmacht.contao_leaflet.mapper.circle_mapper: netzmacht.contao_leaflet.mapper.circle_mapper:
class: Netzmacht\Contao\Leaflet\Mapper\Vector\CircleMarkerMapper class: Netzmacht\Contao\Leaflet\Mapper\Vector\CircleMarkerMapper
arguments: arguments:
- '@netzmacht.contao_toolkit.repository_manager'
- '@netzmacht.contao_leaflet.frontend.value_filter' - '@netzmacht.contao_leaflet.frontend.value_filter'
tags: tags:
- { name: netzmacht.contao_leaflet.mapper } - { name: netzmacht.contao_leaflet.mapper }
@@ -137,6 +164,7 @@ services:
netzmacht.contao_leaflet.mapper.rectangle_mapper: netzmacht.contao_leaflet.mapper.rectangle_mapper:
class: Netzmacht\Contao\Leaflet\Mapper\Vector\RectangleMapper class: Netzmacht\Contao\Leaflet\Mapper\Vector\RectangleMapper
arguments: arguments:
- '@netzmacht.contao_toolkit.repository_manager'
- '@netzmacht.contao_leaflet.frontend.value_filter' - '@netzmacht.contao_leaflet.frontend.value_filter'
tags: tags:
- { name: netzmacht.contao_leaflet.mapper } - { name: netzmacht.contao_leaflet.mapper }
@@ -150,6 +178,8 @@ services:
netzmacht.contao_leaflet.mapper.image_icon: netzmacht.contao_leaflet.mapper.image_icon:
class: Netzmacht\Contao\Leaflet\Mapper\Type\ImageIconMapper class: Netzmacht\Contao\Leaflet\Mapper\Type\ImageIconMapper
arguments:
- '@netzmacht.contao_toolkit.repository_manager'
tags: tags:
- { name: netzmacht.contao_leaflet.mapper } - { name: netzmacht.contao_leaflet.mapper }
@@ -171,6 +201,7 @@ services:
netzmacht.contao_leaflet.mapper.marker: netzmacht.contao_leaflet.mapper.marker:
class: Netzmacht\Contao\Leaflet\Mapper\UI\MarkerMapper class: Netzmacht\Contao\Leaflet\Mapper\UI\MarkerMapper
arguments: arguments:
- '@netzmacht.contao_toolkit.repository_manager'
- '@netzmacht.contao_leaflet.frontend.value_filter' - '@netzmacht.contao_leaflet.frontend.value_filter'
tags: tags:
- { name: netzmacht.contao_leaflet.mapper } - { name: netzmacht.contao_leaflet.mapper }

View File

@@ -15,6 +15,8 @@ services:
- '@netzmacht.contao_leaflet.map.assets' - '@netzmacht.contao_leaflet.map.assets'
- '@netzmacht.contao_leaflet.cache' - '@netzmacht.contao_leaflet.cache'
- '@netzmacht.contao_leaflet.frontend.data_controller' - '@netzmacht.contao_leaflet.frontend.data_controller'
- '@netzmacht.contao_toolkit.repository_manager'
- '@templating'
netzmacht.contao_leaflet.libraries: netzmacht.contao_leaflet.libraries:
class: Netzmacht\Contao\Leaflet\Frontend\Assets\LibrariesConfiguration class: Netzmacht\Contao\Leaflet\Frontend\Assets\LibrariesConfiguration
@@ -26,9 +28,6 @@ services:
arguments: arguments:
- '%netzmacht.contao_leaflet.filters%' - '%netzmacht.contao_leaflet.filters%'
netzmacht.contao_leaflet.cache:
alias: 'netzmacht.contao_leaflet.cache.default'
netzmacht.contao_leaflet.cache.default: netzmacht.contao_leaflet.cache.default:
class: Doctrine\Common\Cache\FilesystemCache class: Doctrine\Common\Cache\FilesystemCache
arguments: arguments:
@@ -86,7 +85,11 @@ services:
netzmacht.contao_leaflet.frontend.element_factory: netzmacht.contao_leaflet.frontend.element_factory:
class: Netzmacht\Contao\Leaflet\Frontend\ContentElement\MapElementFactory class: Netzmacht\Contao\Leaflet\Frontend\ContentElement\MapElementFactory
arguments: arguments:
- '@service_container' - '@templating'
- '@translator'
- '@netzmacht.contao_leaflet.map.provider'
- '@netzmacht.contao_toolkit.repository_manager'
- '@netzmacht.contao_toolkit.contao.input_adapter'
tags: tags:
- { name: 'netzmacht.contao_toolkit.component.content_element_factory' } - { name: 'netzmacht.contao_toolkit.component.content_element_factory' }
- { name: 'netzmacht.contao_toolkit.component.content_element', alias: 'leaflet', category: 'includes' } - { name: 'netzmacht.contao_toolkit.component.content_element', alias: 'leaflet', category: 'includes' }
@@ -94,7 +97,11 @@ services:
netzmacht.contao_leaflet.frontend.module_factory: netzmacht.contao_leaflet.frontend.module_factory:
class: Netzmacht\Contao\Leaflet\Frontend\Module\MapModuleFactory class: Netzmacht\Contao\Leaflet\Frontend\Module\MapModuleFactory
arguments: arguments:
- '@service_container' - '@templating'
- '@translator'
- '@netzmacht.contao_leaflet.map.provider'
- '@netzmacht.contao_toolkit.repository_manager'
- '@netzmacht.contao_toolkit.contao.input_adapter'
tags: tags:
- { name: 'netzmacht.contao_toolkit.component.frontend_module_factory' } - { name: 'netzmacht.contao_toolkit.component.frontend_module_factory' }
- { name: 'netzmacht.contao_toolkit.component.frontend_module', alias: 'leaflet', category: 'includes' } - { name: 'netzmacht.contao_toolkit.component.frontend_module', alias: 'leaflet', category: 'includes' }

View File

@@ -17,44 +17,42 @@
array_insert( array_insert(
$GLOBALS['BE_MOD'], $GLOBALS['BE_MOD'],
1, 1,
array( [
'leaflet' => array 'leaflet' => [
( 'leaflet_map' => [
'leaflet_map' => array 'tables' => [
(
'tables' => array
(
'tl_leaflet_map', 'tl_leaflet_map',
'tl_leaflet_control', 'tl_leaflet_control',
), ],
'icon' => 'bundles/netzmachtcontaoleaflet/img/map.png', 'icon' => 'bundles/netzmachtcontaoleaflet/img/map.png',
'stylesheet' => 'bundles/netzmachtcontaoleaflet/css/backend.css', 'stylesheet' => 'bundles/netzmachtcontaoleaflet/css/backend.css',
), ],
'leaflet_layer' => array 'leaflet_layer' => [
( 'tables' => [
'tables' => array
(
'tl_leaflet_layer', 'tl_leaflet_layer',
'tl_leaflet_marker', 'tl_leaflet_marker',
'tl_leaflet_vector', 'tl_leaflet_vector',
'tl_leaflet_icon', 'tl_leaflet_icon',
'tl_leaflet_style', 'tl_leaflet_style',
'tl_leaflet_popup', 'tl_leaflet_popup',
), ],
'icon' => 'bundles/netzmachtcontaoleaflet/img/layers.png', 'icon' => 'bundles/netzmachtcontaoleaflet/img/layers.png',
'stylesheet' => 'bundles/netzmachtcontaoleaflet/css/backend.css', 'stylesheet' => 'bundles/netzmachtcontaoleaflet/css/backend.css',
'javascript' => 'bundles/netzmachtcontaoleaflet/js/backend.js' 'javascript' => 'bundles/netzmachtcontaoleaflet/js/backend.js',
), ],
'leaflet_about' => array 'leaflet_about' => [
(
'callback' => Netzmacht\Contao\Leaflet\Backend\About::class, 'callback' => Netzmacht\Contao\Leaflet\Backend\About::class,
'icon' => 'bundles/netzmachtcontaoleaflet/img/about.png', 'icon' => 'bundles/netzmachtcontaoleaflet/img/about.png',
'stylesheet' => 'bundles/netzmachtcontaoleaflet/css/about.css', 'stylesheet' => 'bundles/netzmachtcontaoleaflet/css/about.css',
) ],
) ],
) ]
); );
if (TL_MODE === 'BE') {
$GLOBALS['TL_CSS'][] = 'bundles/netzmachtcontaoleaflet/css/backend_hacks.css';
}
/* /*
* Models. * Models.
*/ */
@@ -74,5 +72,5 @@ $GLOBALS['TL_MODELS']['tl_leaflet_vector'] = \Netzmacht\Contao\Leaflet\Model\Ve
$GLOBALS['TL_HOOKS']['initializeSystem'][] = [ $GLOBALS['TL_HOOKS']['initializeSystem'][] = [
'netzmacht.contao_leaflet.listeners.register_libraries', 'netzmacht.contao_leaflet.listeners.register_libraries',
'onInitializeSystem' 'onInitializeSystem',
]; ];

View File

@@ -217,6 +217,14 @@ $GLOBALS['TL_DCA']['tl_leaflet_layer'] = [
'pointToLayer', 'pointToLayer',
], ],
], ],
'file extends default' => [
'+config' => ['boundsMode', 'fileFormat'],
'+expert' => [
'onEachFeature',
'pointToLayer',
],
],
], ],
'metasubselectpalettes' => [ 'metasubselectpalettes' => [
@@ -227,6 +235,9 @@ $GLOBALS['TL_DCA']['tl_leaflet_layer'] = [
'MapBox' => ['tile_provider_key'], 'MapBox' => ['tile_provider_key'],
'HERE' => ['tile_provider_key', 'tile_provider_code'], 'HERE' => ['tile_provider_key', 'tile_provider_code'],
], ],
'fileFormat' => [
'!' => ['file']
]
], ],
'metasubpalettes' => [ 'metasubpalettes' => [
@@ -853,5 +864,37 @@ $GLOBALS['TL_DCA']['tl_leaflet_layer'] = [
], ],
'sql' => 'mediumtext NULL', 'sql' => 'mediumtext NULL',
], ],
'fileFormat' => [
'label' => &$GLOBALS['TL_LANG']['tl_leaflet_layer']['fileFormat'],
'exclude' => true,
'inputType' => 'select',
'filter' => true,
'eval' => [
'mandatory' => true,
'tl_class' => 'w50',
'includeBlankOption' => true,
'submitOnChange' => true,
'chosen' => true,
'helpwizard' => true,
],
'options_callback' => ['netzmacht.contao_leaflet.listeners.dca.layer', 'getFileFormats'],
'reference' => &$GLOBALS['TL_LANG']['tl_leaflet_layer']['fileFormats'],
'sql' => "varchar(32) NOT NULL default ''",
],
'file' => [
'label' => &$GLOBALS['TL_LANG']['tl_leaflet_layer']['file'],
'exclude' => true,
'inputType' => 'fileTree',
'load_callback' => [
['netzmacht.contao_leaflet.listeners.dca.layer', 'prepareFileWidget'],
],
'eval' => [
'filesOnly' => true,
'fieldType' => 'radio',
'mandatory' => true,
'tl_class' => 'clr',
],
'sql' => 'binary(16) NULL',
],
], ],
]; ];

View File

@@ -23,7 +23,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_marker'] = [
], ],
], ],
'onload_callback' => [ 'onload_callback' => [
['netzmacht.contao_leaflet.listeners.dca.marker', 'initialize'], ['netzmacht.contao_leaflet.listeners.dca.leaflet', 'loadLanguageFile'],
], ],
'onsubmit_callback' => [ 'onsubmit_callback' => [
['netzmacht.contao_leaflet.listeners.dca.leaflet', 'clearCache'], ['netzmacht.contao_leaflet.listeners.dca.leaflet', 'clearCache'],

View File

@@ -3,8 +3,8 @@
* Translations are managed using Transifex. To create a new translation * Translations are managed using Transifex. To create a new translation
* or to help to maintain an existing one, please register at transifex.com. * or to help to maintain an existing one, please register at transifex.com.
* *
* @link http://help.transifex.com/intro/translating.html * @link http://help.transifex.com/intro/translating.html
* @link https://www.transifex.com/projects/p/contao-leaflet-maps/language/de/ * @link https://www.transifex.com/projects/p/contao-leaflet-maps/language/de/
* *
* @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL * @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL
* *

View File

@@ -3,8 +3,8 @@
* Translations are managed using Transifex. To create a new translation * Translations are managed using Transifex. To create a new translation
* or to help to maintain an existing one, please register at transifex.com. * or to help to maintain an existing one, please register at transifex.com.
* *
* @link http://help.transifex.com/intro/translating.html * @link http://help.transifex.com/intro/translating.html
* @link https://www.transifex.com/projects/p/contao-leaflet-maps/language/de/ * @link https://www.transifex.com/projects/p/contao-leaflet-maps/language/de/
* *
* @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL * @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL
* *

View File

@@ -3,8 +3,8 @@
* Translations are managed using Transifex. To create a new translation * Translations are managed using Transifex. To create a new translation
* or to help to maintain an existing one, please register at transifex.com. * or to help to maintain an existing one, please register at transifex.com.
* *
* @link http://help.transifex.com/intro/translating.html * @link http://help.transifex.com/intro/translating.html
* @link https://www.transifex.com/projects/p/contao-leaflet-maps/language/de/ * @link https://www.transifex.com/projects/p/contao-leaflet-maps/language/de/
* *
* @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL * @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL
* *

View File

@@ -3,8 +3,8 @@
* Translations are managed using Transifex. To create a new translation * Translations are managed using Transifex. To create a new translation
* or to help to maintain an existing one, please register at transifex.com. * or to help to maintain an existing one, please register at transifex.com.
* *
* @link http://help.transifex.com/intro/translating.html * @link http://help.transifex.com/intro/translating.html
* @link https://www.transifex.com/projects/p/contao-leaflet-maps/language/de/ * @link https://www.transifex.com/projects/p/contao-leaflet-maps/language/de/
* *
* @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL * @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL
* *

View File

@@ -3,8 +3,8 @@
* Translations are managed using Transifex. To create a new translation * Translations are managed using Transifex. To create a new translation
* or to help to maintain an existing one, please register at transifex.com. * or to help to maintain an existing one, please register at transifex.com.
* *
* @link http://help.transifex.com/intro/translating.html * @link http://help.transifex.com/intro/translating.html
* @link https://www.transifex.com/projects/p/contao-leaflet-maps/language/de/ * @link https://www.transifex.com/projects/p/contao-leaflet-maps/language/de/
* *
* @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL * @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL
* *

View File

@@ -3,8 +3,8 @@
* Translations are managed using Transifex. To create a new translation * Translations are managed using Transifex. To create a new translation
* or to help to maintain an existing one, please register at transifex.com. * or to help to maintain an existing one, please register at transifex.com.
* *
* @link http://help.transifex.com/intro/translating.html * @link http://help.transifex.com/intro/translating.html
* @link https://www.transifex.com/projects/p/contao-leaflet-maps/language/de/ * @link https://www.transifex.com/projects/p/contao-leaflet-maps/language/de/
* *
* @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL * @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL
* *

View File

@@ -3,8 +3,8 @@
* Translations are managed using Transifex. To create a new translation * Translations are managed using Transifex. To create a new translation
* or to help to maintain an existing one, please register at transifex.com. * or to help to maintain an existing one, please register at transifex.com.
* *
* @link http://help.transifex.com/intro/translating.html * @link http://help.transifex.com/intro/translating.html
* @link https://www.transifex.com/projects/p/contao-leaflet-maps/language/de/ * @link https://www.transifex.com/projects/p/contao-leaflet-maps/language/de/
* *
* @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL * @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL
* *

View File

@@ -3,8 +3,8 @@
* Translations are managed using Transifex. To create a new translation * Translations are managed using Transifex. To create a new translation
* or to help to maintain an existing one, please register at transifex.com. * or to help to maintain an existing one, please register at transifex.com.
* *
* @link http://help.transifex.com/intro/translating.html * @link http://help.transifex.com/intro/translating.html
* @link https://www.transifex.com/projects/p/contao-leaflet-maps/language/de/ * @link https://www.transifex.com/projects/p/contao-leaflet-maps/language/de/
* *
* @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL * @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL
* *

View File

@@ -3,8 +3,8 @@
* Translations are managed using Transifex. To create a new translation * Translations are managed using Transifex. To create a new translation
* or to help to maintain an existing one, please register at transifex.com. * or to help to maintain an existing one, please register at transifex.com.
* *
* @link http://help.transifex.com/intro/translating.html * @link http://help.transifex.com/intro/translating.html
* @link https://www.transifex.com/projects/p/contao-leaflet-maps/language/de/ * @link https://www.transifex.com/projects/p/contao-leaflet-maps/language/de/
* *
* @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL * @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL
* *

View File

@@ -3,8 +3,8 @@
* Translations are managed using Transifex. To create a new translation * Translations are managed using Transifex. To create a new translation
* or to help to maintain an existing one, please register at transifex.com. * or to help to maintain an existing one, please register at transifex.com.
* *
* @link http://help.transifex.com/intro/translating.html * @link http://help.transifex.com/intro/translating.html
* @link https://www.transifex.com/projects/p/contao-leaflet-maps/language/de/ * @link https://www.transifex.com/projects/p/contao-leaflet-maps/language/de/
* *
* @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL * @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL
* *

View File

@@ -3,8 +3,8 @@
* Translations are managed using Transifex. To create a new translation * Translations are managed using Transifex. To create a new translation
* or to help to maintain an existing one, please register at transifex.com. * or to help to maintain an existing one, please register at transifex.com.
* *
* @link http://help.transifex.com/intro/translating.html * @link http://help.transifex.com/intro/translating.html
* @link https://www.transifex.com/projects/p/contao-leaflet-maps/language/de/ * @link https://www.transifex.com/projects/p/contao-leaflet-maps/language/de/
* *
* @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL * @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL
* *

View File

@@ -3,8 +3,8 @@
* Translations are managed using Transifex. To create a new translation * Translations are managed using Transifex. To create a new translation
* or to help to maintain an existing one, please register at transifex.com. * or to help to maintain an existing one, please register at transifex.com.
* *
* @link http://help.transifex.com/intro/translating.html * @link http://help.transifex.com/intro/translating.html
* @link https://www.transifex.com/projects/p/contao-leaflet-maps/language/de/ * @link https://www.transifex.com/projects/p/contao-leaflet-maps/language/de/
* *
* @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL * @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL
* *

View File

@@ -39,6 +39,8 @@ $GLOBALS['TL_LANG']['leaflet_layer']['tile'][0] = 'Tile layer';
$GLOBALS['TL_LANG']['leaflet_layer']['tile'][1] = 'Tile layer with full config options.'; $GLOBALS['TL_LANG']['leaflet_layer']['tile'][1] = 'Tile layer with full config options.';
$GLOBALS['TL_LANG']['leaflet_layer']['overpass'][0] = 'Overpass API'; $GLOBALS['TL_LANG']['leaflet_layer']['overpass'][0] = 'Overpass API';
$GLOBALS['TL_LANG']['leaflet_layer']['overpass'][1] = 'Overpass API data layer.'; $GLOBALS['TL_LANG']['leaflet_layer']['overpass'][1] = 'Overpass API data layer.';
$GLOBALS['TL_LANG']['leaflet_layer']['file'][0] = 'File';
$GLOBALS['TL_LANG']['leaflet_layer']['file'][1] = 'Geo data from a file (gpx,kml,wkt).';
$GLOBALS['TL_LANG']['leaflet_vector']['polyline'][0] = 'Polyline'; $GLOBALS['TL_LANG']['leaflet_vector']['polyline'][0] = 'Polyline';
$GLOBALS['TL_LANG']['leaflet_vector']['polyline'][1] = 'Polyline overlay. For more details read the <a href="http://leafletjs.com/reference.html#polyline" target="_blank">Leaflet documentation</a>.'; $GLOBALS['TL_LANG']['leaflet_vector']['polyline'][1] = 'Polyline overlay. For more details read the <a href="http://leafletjs.com/reference.html#polyline" target="_blank">Leaflet documentation</a>.';

View File

@@ -25,8 +25,8 @@ $GLOBALS['TL_LANG']['MOD']['tl_leaflet_icon'] = 'Icons';
$GLOBALS['TL_LANG']['MOD']['tl_leaflet_marker'] = 'Markers'; $GLOBALS['TL_LANG']['MOD']['tl_leaflet_marker'] = 'Markers';
$GLOBALS['TL_LANG']['MOD']['tl_leaflet_control'] = 'Controls'; $GLOBALS['TL_LANG']['MOD']['tl_leaflet_control'] = 'Controls';
$GLOBALS['TL_LANG']['FMD']['leaflet'][0] = 'Leaflet Map'; $GLOBALS['TL_LANG']['FMD']['leaflet'][0] = 'Leaflet Map';
$GLOBALS['TL_LANG']['FMD']['leaflet'][1] = 'Integrate leaflet map as frontend module.'; $GLOBALS['TL_LANG']['FMD']['leaflet'][1] = 'Integrate leaflet map as frontend module.';
$GLOBALS['TL_LANG']['CTE']['leaflet'][0] = 'Leaflet Map'; $GLOBALS['TL_LANG']['CTE']['leaflet'][0] = 'Leaflet Map';
$GLOBALS['TL_LANG']['CTE']['leaflet'][1] = 'Integrate leaflet map as content element.'; $GLOBALS['TL_LANG']['CTE']['leaflet'][1] = 'Integrate leaflet map as content element.';

View File

@@ -99,5 +99,5 @@ $GLOBALS['TL_LANG']['tl_leaflet_control']['topright'][1] = 'Top right of the
$GLOBALS['TL_LANG']['tl_leaflet_control']['base'][0] = 'Base layer'; $GLOBALS['TL_LANG']['tl_leaflet_control']['base'][0] = 'Base layer';
$GLOBALS['TL_LANG']['tl_leaflet_control']['base'][1] = 'Base layers will be switched with radio buttons. Note that all base layers should be passed in the base layers object, but only one should be added to the map during map instantiation'; $GLOBALS['TL_LANG']['tl_leaflet_control']['base'][1] = 'Base layers will be switched with radio buttons. Note that all base layers should be passed in the base layers object, but only one should be added to the map during map instantiation';
$GLOBALS['TL_LANG']['tl_leaflet_control']['overlay'][0] = 'Overlay'; $GLOBALS['TL_LANG']['tl_leaflet_control']['overlay'][0] = 'Overlay';
$GLOBALS['TL_LANG']['tl_leaflet_control']['overlay'][1] = 'Overlays will be switched with checkboxes.'; $GLOBALS['TL_LANG']['tl_leaflet_control']['overlay'][1] = 'Overlays will be switched with checkboxes.';

View File

@@ -145,12 +145,27 @@ $GLOBALS['TL_LANG']['tl_leaflet_layer']['amenity'][0] = 'Amen
$GLOBALS['TL_LANG']['tl_leaflet_layer']['amenity'][1] = 'OSM amenity.'; $GLOBALS['TL_LANG']['tl_leaflet_layer']['amenity'][1] = 'OSM amenity.';
$GLOBALS['TL_LANG']['tl_leaflet_layer']['amenityIcon'][1] = 'Icon'; $GLOBALS['TL_LANG']['tl_leaflet_layer']['amenityIcon'][1] = 'Icon';
$GLOBALS['TL_LANG']['tl_leaflet_layer']['amenityIcon'][0] = 'Icon style'; $GLOBALS['TL_LANG']['tl_leaflet_layer']['amenityIcon'][0] = 'Icon style';
$GLOBALS['TL_LANG']['tl_leaflet_layer']['fileFormat'][0] = 'File formats';
$GLOBALS['TL_LANG']['tl_leaflet_layer']['fileFormat'][1] = 'Choose which file format is used.';
$GLOBALS['TL_LANG']['tl_leaflet_layer']['file'][0] = 'File';
$GLOBALS['TL_LANG']['tl_leaflet_layer']['file'][1] = 'Choose a file containing geodata. Supported formats are: %s.';
$GLOBALS['TL_LANG']['tl_leaflet_layer']['groupTypes']['layer'][0] = 'Layer group'; $GLOBALS['TL_LANG']['tl_leaflet_layer']['groupTypes']['layer'][0] = 'Layer group';
$GLOBALS['TL_LANG']['tl_leaflet_layer']['groupTypes']['layer'][1] = 'Basic layer group. <br> See <a href="http://leafletjs.com/reference.html#layergroup" target="_blank">http://leafletjs.com/reference.html#layergroup</a>'; $GLOBALS['TL_LANG']['tl_leaflet_layer']['groupTypes']['layer'][1] = 'Basic layer group. <br> See <a href="http://leafletjs.com/reference.html#layergroup" target="_blank">http://leafletjs.com/reference.html#layergroup</a>';
$GLOBALS['TL_LANG']['tl_leaflet_layer']['groupTypes']['feature'][0] = 'Feature group'; $GLOBALS['TL_LANG']['tl_leaflet_layer']['groupTypes']['feature'][0] = 'Feature group';
$GLOBALS['TL_LANG']['tl_leaflet_layer']['groupTypes']['feature'][1] = 'Extended layer group with events and popup support. <br>See <a href="http://leafletjs.com/reference.html#featuregroup" target="_blank">http://leafletjs.com/reference.html#featuregroup</a>'; $GLOBALS['TL_LANG']['tl_leaflet_layer']['groupTypes']['feature'][1] = 'Extended layer group with events and popup support. <br>See <a href="http://leafletjs.com/reference.html#featuregroup" target="_blank">http://leafletjs.com/reference.html#featuregroup</a>';
$GLOBALS['TL_LANG']['tl_leaflet_layer']['fileFormats']['gpx'][0] = 'GPX';
$GLOBALS['TL_LANG']['tl_leaflet_layer']['fileFormats']['gpx'][1] = 'GPS Exchange format. <a href="https://github.com/mapbox/togeojson#gpx-feature-support" target="_blank">Read the documentation</a> for more information.';
$GLOBALS['TL_LANG']['tl_leaflet_layer']['fileFormats']['kml'][0] = 'KML';
$GLOBALS['TL_LANG']['tl_leaflet_layer']['fileFormats']['kml'][1] = 'Keyhole Markup Language. <a href="https://github.com/mapbox/togeojson#kml-feature-support" target="_blank">Read the documentation</a> for more information.';
$GLOBALS['TL_LANG']['tl_leaflet_layer']['fileFormats']['wkt'][0] = 'WKT';
$GLOBALS['TL_LANG']['tl_leaflet_layer']['fileFormats']['wkt'][1] = 'Well-known text <a href="https://github.com/mapbox/togeojson#kml-feature-support" target="_blank">Read the documentation</a> for more information.';
$GLOBALS['TL_LANG']['tl_leaflet_layer']['fileFormats']['topojson'][0] = 'TopoJSON';
$GLOBALS['TL_LANG']['tl_leaflet_layer']['fileFormats']['topojson'][1] = 'TopoJSON is a topological geospatial data interchange format based on GeoJSON. <a href="https://github.com/topojson/topojson#api-reference" target="_blank">Read the documentation</a> for more information.';
$GLOBALS['TL_LANG']['tl_leaflet_layer']['fileFormats']['geojson'][0] = 'GeoJSON';
$GLOBALS['TL_LANG']['tl_leaflet_layer']['fileFormats']['geojson'][1] = 'GeoJSON is a format for encoding a variety of geographic data structures. <a href="https://github.com/mapbox/wellknown" target="_blank">Read the documentation</a> for more information.';
$GLOBALS['TL_LANG']['tl_leaflet_layer']['pasteinto'][1] = 'Paste into layer %s'; $GLOBALS['TL_LANG']['tl_leaflet_layer']['pasteinto'][1] = 'Paste into layer %s';
$GLOBALS['TL_LANG']['tl_leaflet_layer']['pasteafter'][1] = 'Paste after layer %s'; $GLOBALS['TL_LANG']['tl_leaflet_layer']['pasteafter'][1] = 'Paste after layer %s';

View File

@@ -18,91 +18,91 @@ $GLOBALS['TL_LANG']['tl_leaflet_map']['layers_legend'] = 'Default layers';
$GLOBALS['TL_LANG']['tl_leaflet_map']['expert_legend'] = 'Expert settings'; $GLOBALS['TL_LANG']['tl_leaflet_map']['expert_legend'] = 'Expert settings';
$GLOBALS['TL_LANG']['tl_leaflet_map']['behaviour_legend'] = 'Behaviour'; $GLOBALS['TL_LANG']['tl_leaflet_map']['behaviour_legend'] = 'Behaviour';
$GLOBALS['TL_LANG']['tl_leaflet_map']['new'][0] = 'Create map'; $GLOBALS['TL_LANG']['tl_leaflet_map']['new'][0] = 'Create map';
$GLOBALS['TL_LANG']['tl_leaflet_map']['new'][1] = 'Create new map'; $GLOBALS['TL_LANG']['tl_leaflet_map']['new'][1] = 'Create new map';
$GLOBALS['TL_LANG']['tl_leaflet_map']['edit'][0] = 'Edit map'; $GLOBALS['TL_LANG']['tl_leaflet_map']['edit'][0] = 'Edit map';
$GLOBALS['TL_LANG']['tl_leaflet_map']['edit'][1] = 'Edit map ID %s'; $GLOBALS['TL_LANG']['tl_leaflet_map']['edit'][1] = 'Edit map ID %s';
$GLOBALS['TL_LANG']['tl_leaflet_map']['copy'][0] = 'Copy map'; $GLOBALS['TL_LANG']['tl_leaflet_map']['copy'][0] = 'Copy map';
$GLOBALS['TL_LANG']['tl_leaflet_map']['copy'][1] = 'Copy map ID %s'; $GLOBALS['TL_LANG']['tl_leaflet_map']['copy'][1] = 'Copy map ID %s';
$GLOBALS['TL_LANG']['tl_leaflet_map']['controls'][0] = 'Manage controls'; $GLOBALS['TL_LANG']['tl_leaflet_map']['controls'][0] = 'Manage controls';
$GLOBALS['TL_LANG']['tl_leaflet_map']['controls'][1] = 'Manage controls of map ID %s'; $GLOBALS['TL_LANG']['tl_leaflet_map']['controls'][1] = 'Manage controls of map ID %s';
$GLOBALS['TL_LANG']['tl_leaflet_map']['delete'][0] = 'Delete map'; $GLOBALS['TL_LANG']['tl_leaflet_map']['delete'][0] = 'Delete map';
$GLOBALS['TL_LANG']['tl_leaflet_map']['delete'][1] = 'Delete map ID %s'; $GLOBALS['TL_LANG']['tl_leaflet_map']['delete'][1] = 'Delete map ID %s';
$GLOBALS['TL_LANG']['tl_leaflet_map']['show'][0] = 'Show details'; $GLOBALS['TL_LANG']['tl_leaflet_map']['show'][0] = 'Show details';
$GLOBALS['TL_LANG']['tl_leaflet_map']['show'][1] = 'Show map ID %s details'; $GLOBALS['TL_LANG']['tl_leaflet_map']['show'][1] = 'Show map ID %s details';
$GLOBALS['TL_LANG']['tl_leaflet_map']['title'][0] = 'Title'; $GLOBALS['TL_LANG']['tl_leaflet_map']['title'][0] = 'Title';
$GLOBALS['TL_LANG']['tl_leaflet_map']['title'][1] = 'Title of the map.'; $GLOBALS['TL_LANG']['tl_leaflet_map']['title'][1] = 'Title of the map.';
$GLOBALS['TL_LANG']['tl_leaflet_map']['alias'][0] = 'Alias'; $GLOBALS['TL_LANG']['tl_leaflet_map']['alias'][0] = 'Alias';
$GLOBALS['TL_LANG']['tl_leaflet_map']['alias'][1] = 'Alias of the map.'; $GLOBALS['TL_LANG']['tl_leaflet_map']['alias'][1] = 'Alias of the map.';
$GLOBALS['TL_LANG']['tl_leaflet_map']['center'][0] = 'Center'; $GLOBALS['TL_LANG']['tl_leaflet_map']['center'][0] = 'Center';
$GLOBALS['TL_LANG']['tl_leaflet_map']['center'][1] = 'Initial geographical center of the map. Comma separated coordinates.'; $GLOBALS['TL_LANG']['tl_leaflet_map']['center'][1] = 'Initial geographical center of the map. Comma separated coordinates.';
$GLOBALS['TL_LANG']['tl_leaflet_map']['dragging'][0] = 'Dragging'; $GLOBALS['TL_LANG']['tl_leaflet_map']['dragging'][0] = 'Dragging';
$GLOBALS['TL_LANG']['tl_leaflet_map']['dragging'][1] = 'Whether the map be draggable with mouse/touch or not.'; $GLOBALS['TL_LANG']['tl_leaflet_map']['dragging'][1] = 'Whether the map be draggable with mouse/touch or not.';
$GLOBALS['TL_LANG']['tl_leaflet_map']['touchZoom'][0] = 'Touch zoom'; $GLOBALS['TL_LANG']['tl_leaflet_map']['touchZoom'][0] = 'Touch zoom';
$GLOBALS['TL_LANG']['tl_leaflet_map']['touchZoom'][1] = 'Whether the map can be zoomed by touch-dragging with two fingers.'; $GLOBALS['TL_LANG']['tl_leaflet_map']['touchZoom'][1] = 'Whether the map can be zoomed by touch-dragging with two fingers.';
$GLOBALS['TL_LANG']['tl_leaflet_map']['scrollWheelZoom'][0] = 'Scroll wheel zoom'; $GLOBALS['TL_LANG']['tl_leaflet_map']['scrollWheelZoom'][0] = 'Scroll wheel zoom';
$GLOBALS['TL_LANG']['tl_leaflet_map']['scrollWheelZoom'][1] = 'Whether the map can be zoomed by using the mouse wheel.'; $GLOBALS['TL_LANG']['tl_leaflet_map']['scrollWheelZoom'][1] = 'Whether the map can be zoomed by using the mouse wheel.';
$GLOBALS['TL_LANG']['tl_leaflet_map']['doubleClickZoom'][0] = 'Double click zoom'; $GLOBALS['TL_LANG']['tl_leaflet_map']['doubleClickZoom'][0] = 'Double click zoom';
$GLOBALS['TL_LANG']['tl_leaflet_map']['doubleClickZoom'][1] = 'Whether the map can be zoomed in by double clicking on it and zoomed out by double clicking while holding shift.'; $GLOBALS['TL_LANG']['tl_leaflet_map']['doubleClickZoom'][1] = 'Whether the map can be zoomed in by double clicking on it and zoomed out by double clicking while holding shift.';
$GLOBALS['TL_LANG']['tl_leaflet_map']['boxZoom'][0] = 'Box zoom'; $GLOBALS['TL_LANG']['tl_leaflet_map']['boxZoom'][0] = 'Box zoom';
$GLOBALS['TL_LANG']['tl_leaflet_map']['boxZoom'][1] = 'Whether the map can be zoomed to a rectangular area specified by dragging the mouse while pressing shift.'; $GLOBALS['TL_LANG']['tl_leaflet_map']['boxZoom'][1] = 'Whether the map can be zoomed to a rectangular area specified by dragging the mouse while pressing shift.';
$GLOBALS['TL_LANG']['tl_leaflet_map']['tap'][0] = 'Instant taps'; $GLOBALS['TL_LANG']['tl_leaflet_map']['tap'][0] = 'Instant taps';
$GLOBALS['TL_LANG']['tl_leaflet_map']['tap'][1] = 'Enables mobile hacks for supporting instant taps.'; $GLOBALS['TL_LANG']['tl_leaflet_map']['tap'][1] = 'Enables mobile hacks for supporting instant taps.';
$GLOBALS['TL_LANG']['tl_leaflet_map']['trackResize'][0] = 'Track window resize'; $GLOBALS['TL_LANG']['tl_leaflet_map']['trackResize'][0] = 'Track window resize';
$GLOBALS['TL_LANG']['tl_leaflet_map']['trackResize'][1] = 'Whether the map automatically handles browser window resize to update itself.'; $GLOBALS['TL_LANG']['tl_leaflet_map']['trackResize'][1] = 'Whether the map automatically handles browser window resize to update itself.';
$GLOBALS['TL_LANG']['tl_leaflet_map']['closeOnClick'][0] = 'Close popup on click'; $GLOBALS['TL_LANG']['tl_leaflet_map']['closeOnClick'][0] = 'Close popup on click';
$GLOBALS['TL_LANG']['tl_leaflet_map']['closeOnClick'][1] = 'Disable if you don\'t want popups to close when user clicks the map'; $GLOBALS['TL_LANG']['tl_leaflet_map']['closeOnClick'][1] = 'Disable if you don\'t want popups to close when user clicks the map';
$GLOBALS['TL_LANG']['tl_leaflet_map']['keyboard'][0] = 'Keyboard navigation'; $GLOBALS['TL_LANG']['tl_leaflet_map']['keyboard'][0] = 'Keyboard navigation';
$GLOBALS['TL_LANG']['tl_leaflet_map']['keyboard'][1] = 'Makes the map focusable and allows users to navigate the map with keyboard arrows and +/- keys'; $GLOBALS['TL_LANG']['tl_leaflet_map']['keyboard'][1] = 'Makes the map focusable and allows users to navigate the map with keyboard arrows and +/- keys';
$GLOBALS['TL_LANG']['tl_leaflet_map']['keyboardPanOffset'][0] = 'Keyboard pan offset'; $GLOBALS['TL_LANG']['tl_leaflet_map']['keyboardPanOffset'][0] = 'Keyboard pan offset';
$GLOBALS['TL_LANG']['tl_leaflet_map']['keyboardPanOffset'][1] = 'Amount of pixels to pan when pressing an arrow key.'; $GLOBALS['TL_LANG']['tl_leaflet_map']['keyboardPanOffset'][1] = 'Amount of pixels to pan when pressing an arrow key.';
$GLOBALS['TL_LANG']['tl_leaflet_map']['keyboardZoomOffset'][0] = 'Keyboard zoom offset'; $GLOBALS['TL_LANG']['tl_leaflet_map']['keyboardZoomOffset'][0] = 'Keyboard zoom offset';
$GLOBALS['TL_LANG']['tl_leaflet_map']['keyboardZoomOffset'][1] = 'Number of zoom levels to change when pressing + or - key.'; $GLOBALS['TL_LANG']['tl_leaflet_map']['keyboardZoomOffset'][1] = 'Number of zoom levels to change when pressing + or - key.';
$GLOBALS['TL_LANG']['tl_leaflet_map']['zoom'][0] = 'Zoom level'; $GLOBALS['TL_LANG']['tl_leaflet_map']['zoom'][0] = 'Zoom level';
$GLOBALS['TL_LANG']['tl_leaflet_map']['zoom'][1] = 'Initial map zoom.'; $GLOBALS['TL_LANG']['tl_leaflet_map']['zoom'][1] = 'Initial map zoom.';
$GLOBALS['TL_LANG']['tl_leaflet_map']['minZoom'][0] = 'Minimum zoom level'; $GLOBALS['TL_LANG']['tl_leaflet_map']['minZoom'][0] = 'Minimum zoom level';
$GLOBALS['TL_LANG']['tl_leaflet_map']['minZoom'][1] = 'Minimum zoom level of the map. Overrides any minZoom set on map layers.'; $GLOBALS['TL_LANG']['tl_leaflet_map']['minZoom'][1] = 'Minimum zoom level of the map. Overrides any minZoom set on map layers.';
$GLOBALS['TL_LANG']['tl_leaflet_map']['maxZoom'][0] = 'Maximum zoom level'; $GLOBALS['TL_LANG']['tl_leaflet_map']['maxZoom'][0] = 'Maximum zoom level';
$GLOBALS['TL_LANG']['tl_leaflet_map']['maxZoom'][1] = 'Maximum zoom level of the map. This overrides any maxZoom set on map layers.'; $GLOBALS['TL_LANG']['tl_leaflet_map']['maxZoom'][1] = 'Maximum zoom level of the map. This overrides any maxZoom set on map layers.';
$GLOBALS['TL_LANG']['tl_leaflet_map']['zoomSnap'][0] = 'Zoom snap'; $GLOBALS['TL_LANG']['tl_leaflet_map']['zoomSnap'][0] = 'Zoom snap';
$GLOBALS['TL_LANG']['tl_leaflet_map']['zoomSnap'][1] = 'Forces the map\'s zoom level to always be a multiple of the number. Default is 1.'; $GLOBALS['TL_LANG']['tl_leaflet_map']['zoomSnap'][1] = 'Forces the map\'s zoom level to always be a multiple of the number. Default is 1.';
$GLOBALS['TL_LANG']['tl_leaflet_map']['zoomDelta'][0] = 'Zoom delta'; $GLOBALS['TL_LANG']['tl_leaflet_map']['zoomDelta'][0] = 'Zoom delta';
$GLOBALS['TL_LANG']['tl_leaflet_map']['zoomDelta'][1] = 'Controls how much the map\'s zoom level will change after zoom in or zoom out.'; $GLOBALS['TL_LANG']['tl_leaflet_map']['zoomDelta'][1] = 'Controls how much the map\'s zoom level will change after zoom in or zoom out.';
$GLOBALS['TL_LANG']['tl_leaflet_map']['zoomControl'][0] = 'Add default zoom control'; $GLOBALS['TL_LANG']['tl_leaflet_map']['zoomControl'][0] = 'Add default zoom control';
$GLOBALS['TL_LANG']['tl_leaflet_map']['zoomControl'][1] = 'Whether the zoom control is added to the map by default.'; $GLOBALS['TL_LANG']['tl_leaflet_map']['zoomControl'][1] = 'Whether the zoom control is added to the map by default.';
$GLOBALS['TL_LANG']['tl_leaflet_map']['bounceAtZoomLimits'][0] = 'Bounce at zoom limits'; $GLOBALS['TL_LANG']['tl_leaflet_map']['bounceAtZoomLimits'][0] = 'Bounce at zoom limits';
$GLOBALS['TL_LANG']['tl_leaflet_map']['bounceAtZoomLimits'][1] = 'Disable if you don\'t want the map to zoom beyond min/max zoom and then bounce back when pinch-zooming'; $GLOBALS['TL_LANG']['tl_leaflet_map']['bounceAtZoomLimits'][1] = 'Disable if you don\'t want the map to zoom beyond min/max zoom and then bounce back when pinch-zooming';
$GLOBALS['TL_LANG']['tl_leaflet_map']['options'][0] = 'Extra options'; $GLOBALS['TL_LANG']['tl_leaflet_map']['options'][0] = 'Extra options';
$GLOBALS['TL_LANG']['tl_leaflet_map']['options'][1] = 'Add extra map options as valid json. See <a href="http://leafletjs.com/reference.html#map-options">http://leafletjs.com/reference.html#map-options</a>'; $GLOBALS['TL_LANG']['tl_leaflet_map']['options'][1] = 'Add extra map options as valid json. See <a href="http://leafletjs.com/reference.html#map-options">http://leafletjs.com/reference.html#map-options</a>';
$GLOBALS['TL_LANG']['tl_leaflet_map']['adjustZoomExtra'][0] = 'Adjust extra zoom settings'; $GLOBALS['TL_LANG']['tl_leaflet_map']['adjustZoomExtra'][0] = 'Adjust extra zoom settings';
$GLOBALS['TL_LANG']['tl_leaflet_map']['adjustZoomExtra'][1] = 'Enable if you want to adjust minimum and maximum zoom as well'; $GLOBALS['TL_LANG']['tl_leaflet_map']['adjustZoomExtra'][1] = 'Enable if you want to adjust minimum and maximum zoom as well';
$GLOBALS['TL_LANG']['tl_leaflet_map']['layers'][0] = 'Default layers'; $GLOBALS['TL_LANG']['tl_leaflet_map']['layers'][0] = 'Default layers';
$GLOBALS['TL_LANG']['tl_leaflet_map']['layers'][1] = 'Inital visible layers of the map. For optional layers use the layers control.'; $GLOBALS['TL_LANG']['tl_leaflet_map']['layers'][1] = 'Inital visible layers of the map. For optional layers use the layers control.';
$GLOBALS['TL_LANG']['tl_leaflet_map']['adjustBounds'][0] = 'Adjust bounds'; $GLOBALS['TL_LANG']['tl_leaflet_map']['adjustBounds'][0] = 'Adjust bounds';
$GLOBALS['TL_LANG']['tl_leaflet_map']['adjustBounds'][1] = 'If enabled the map will fit into bounds of data layers which are marked to affect the map bounds.'; $GLOBALS['TL_LANG']['tl_leaflet_map']['adjustBounds'][1] = 'If enabled the map will fit into bounds of data layers which are marked to affect the map bounds.';
$GLOBALS['TL_LANG']['tl_leaflet_map']['locate'][0] = 'Locate user position'; $GLOBALS['TL_LANG']['tl_leaflet_map']['locate'][0] = 'Locate user position';
$GLOBALS['TL_LANG']['tl_leaflet_map']['locate'][1] = 'Initial map zoom.Tries to locate the user using the Geolocation API.'; $GLOBALS['TL_LANG']['tl_leaflet_map']['locate'][1] = 'Initial map zoom.Tries to locate the user using the Geolocation API.';
$GLOBALS['TL_LANG']['tl_leaflet_map']['locateWatch'][0] = 'Watch continuously'; $GLOBALS['TL_LANG']['tl_leaflet_map']['locateWatch'][0] = 'Watch continuously';
$GLOBALS['TL_LANG']['tl_leaflet_map']['locateWatch'][1] = 'If true, starts continous watching of location changes '; $GLOBALS['TL_LANG']['tl_leaflet_map']['locateWatch'][1] = 'If true, starts continous watching of location changes ';
$GLOBALS['TL_LANG']['tl_leaflet_map']['locateSetView'][0] = 'Update map center'; $GLOBALS['TL_LANG']['tl_leaflet_map']['locateSetView'][0] = 'Update map center';
$GLOBALS['TL_LANG']['tl_leaflet_map']['locateSetView'][1] = 'If enabled, automatically sets the map view to the user location. Otherwise only the <em>locationfound</em> event is triggered.'; $GLOBALS['TL_LANG']['tl_leaflet_map']['locateSetView'][1] = 'If enabled, automatically sets the map view to the user location. Otherwise only the <em>locationfound</em> event is triggered.';
$GLOBALS['TL_LANG']['tl_leaflet_map']['locateMaxZoom'][0] = 'Locate max zoom'; $GLOBALS['TL_LANG']['tl_leaflet_map']['locateMaxZoom'][0] = 'Locate max zoom';
$GLOBALS['TL_LANG']['tl_leaflet_map']['locateMaxZoom'][1] = 'Max zoom when setting updating map view.'; $GLOBALS['TL_LANG']['tl_leaflet_map']['locateMaxZoom'][1] = 'Max zoom when setting updating map view.';
$GLOBALS['TL_LANG']['tl_leaflet_map']['locateTimeout'][0] = 'Locate timeout'; $GLOBALS['TL_LANG']['tl_leaflet_map']['locateTimeout'][0] = 'Locate timeout';
$GLOBALS['TL_LANG']['tl_leaflet_map']['locateTimeout'][1] = 'Number of milliseconds to wait for a response from geolocation.'; $GLOBALS['TL_LANG']['tl_leaflet_map']['locateTimeout'][1] = 'Number of milliseconds to wait for a response from geolocation.';
$GLOBALS['TL_LANG']['tl_leaflet_map']['enableHighAccuracy'][0] = 'High accuracy'; $GLOBALS['TL_LANG']['tl_leaflet_map']['enableHighAccuracy'][0] = 'High accuracy';
$GLOBALS['TL_LANG']['tl_leaflet_map']['enableHighAccuracy'][1] = 'Enables high accuracy, see <a href="http://dev.w3.org/geo/api/spec-source.html#high-accuracy" target="_blank">description in the W3C spec</a>.'; $GLOBALS['TL_LANG']['tl_leaflet_map']['enableHighAccuracy'][1] = 'Enables high accuracy, see <a href="http://dev.w3.org/geo/api/spec-source.html#high-accuracy" target="_blank">description in the W3C spec</a>.';
$GLOBALS['TL_LANG']['tl_leaflet_map']['locateMaximumAge'][0] = 'Locate maximum age'; $GLOBALS['TL_LANG']['tl_leaflet_map']['locateMaximumAge'][0] = 'Locate maximum age';
$GLOBALS['TL_LANG']['tl_leaflet_map']['locateMaximumAge'][1] = 'Maximum age of detected location in milliseconds. Use cached value if time has not passed.'; $GLOBALS['TL_LANG']['tl_leaflet_map']['locateMaximumAge'][1] = 'Maximum age of detected location in milliseconds. Use cached value if time has not passed.';
$GLOBALS['TL_LANG']['tl_leaflet_map']['dynamicLoad'][0] = 'Load data dynamically in bounds'; $GLOBALS['TL_LANG']['tl_leaflet_map']['dynamicLoad'][0] = 'Load data dynamically in bounds';
$GLOBALS['TL_LANG']['tl_leaflet_map']['dynamicLoad'][1] = 'If enabled the map requests data from the layers for the current bounds only and make a new request if bounds has changed.'; $GLOBALS['TL_LANG']['tl_leaflet_map']['dynamicLoad'][1] = 'If enabled the map requests data from the layers for the current bounds only and make a new request if bounds has changed.';
$GLOBALS['TL_LANG']['tl_leaflet_map']['boundsPadding'][0] = 'Bounds padding'; $GLOBALS['TL_LANG']['tl_leaflet_map']['boundsPadding'][0] = 'Bounds padding';
$GLOBALS['TL_LANG']['tl_leaflet_map']['boundsPadding'][1] = 'Padding being used then applying bounds. Use comma separated values. If 2 values are given the <em>padding</em> option is set. If 4 values are given <em>paddingTopLeft</em> and <em>paddingBottomRight</em> is set.'; $GLOBALS['TL_LANG']['tl_leaflet_map']['boundsPadding'][1] = 'Padding being used then applying bounds. Use comma separated values. If 2 values are given the <em>padding</em> option is set. If 4 values are given <em>paddingTopLeft</em> and <em>paddingBottomRight</em> is set.';
$GLOBALS['TL_LANG']['tl_leaflet_map']['cache'][0] = 'Enable cache'; $GLOBALS['TL_LANG']['tl_leaflet_map']['cache'][0] = 'Enable cache';
$GLOBALS['TL_LANG']['tl_leaflet_map']['cache'][1] = 'If enabled the generated map javascript is cached.'; $GLOBALS['TL_LANG']['tl_leaflet_map']['cache'][1] = 'If enabled the generated map javascript is cached.';
$GLOBALS['TL_LANG']['tl_leaflet_map']['cacheLifeTime'][0] = 'Cache lifetime'; $GLOBALS['TL_LANG']['tl_leaflet_map']['cacheLifeTime'][0] = 'Cache lifetime';
$GLOBALS['TL_LANG']['tl_leaflet_map']['cacheLifeTime'][1] = 'Indicates how long a cache entry is valid in seconds.'; $GLOBALS['TL_LANG']['tl_leaflet_map']['cacheLifeTime'][1] = 'Indicates how long a cache entry is valid in seconds.';
$GLOBALS['TL_LANG']['tl_leaflet_map']['adjustBoundsOptions']['load'][0] = 'At map initialization'; $GLOBALS['TL_LANG']['tl_leaflet_map']['adjustBoundsOptions']['load'][0] = 'At map initialization';
$GLOBALS['TL_LANG']['tl_leaflet_map']['adjustBoundsOptions']['load'][1] = 'Calculate bounds when the map is initialized. All static and already loaded deferred featured are included.'; $GLOBALS['TL_LANG']['tl_leaflet_map']['adjustBoundsOptions']['load'][1] = 'Calculate bounds when the map is initialized. All static and already loaded deferred featured are included.';

View File

@@ -14,7 +14,7 @@ $GLOBALS['TL_LANG']['tl_leaflet_marker']['title_legend'] = 'Title and type';
$GLOBALS['TL_LANG']['tl_leaflet_marker']['content_legend'] = 'Content'; $GLOBALS['TL_LANG']['tl_leaflet_marker']['content_legend'] = 'Content';
$GLOBALS['TL_LANG']['tl_leaflet_marker']['config_legend'] = 'Configuration'; $GLOBALS['TL_LANG']['tl_leaflet_marker']['config_legend'] = 'Configuration';
$GLOBALS['TL_LANG']['tl_leaflet_marker']['active_legend'] = 'Activation'; $GLOBALS['TL_LANG']['tl_leaflet_marker']['active_legend'] = 'Activation';
$GLOBALS['TL_LANG']['tl_leaflet_marker']['expert_legend'] = 'Expert settings'; $GLOBALS['TL_LANG']['tl_leaflet_marker']['expert_legend'] = 'Expert settings';
$GLOBALS['TL_LANG']['tl_leaflet_marker']['new'][0] = 'Create marker'; $GLOBALS['TL_LANG']['tl_leaflet_marker']['new'][0] = 'Create marker';

View File

@@ -15,7 +15,7 @@ $GLOBALS['TL_LANG']['tl_leaflet_vector']['active_legend'] = 'Activation';
$GLOBALS['TL_LANG']['tl_leaflet_vector']['config_legend'] = 'Configuration'; $GLOBALS['TL_LANG']['tl_leaflet_vector']['config_legend'] = 'Configuration';
$GLOBALS['TL_LANG']['tl_leaflet_vector']['data_legend'] = 'Vector data'; $GLOBALS['TL_LANG']['tl_leaflet_vector']['data_legend'] = 'Vector data';
$GLOBALS['TL_LANG']['tl_leaflet_vector']['popup_legend'] = 'Popup'; $GLOBALS['TL_LANG']['tl_leaflet_vector']['popup_legend'] = 'Popup';
$GLOBALS['TL_LANG']['tl_leaflet_vector']['expert_legend'] = 'Expert settings'; $GLOBALS['TL_LANG']['tl_leaflet_vector']['expert_legend'] = 'Expert settings';
$GLOBALS['TL_LANG']['tl_leaflet_vector']['new'][0] = 'Create vector'; $GLOBALS['TL_LANG']['tl_leaflet_vector']['new'][0] = 'Create vector';

View File

@@ -1,125 +1,140 @@
<div class="netzmacht-leaflet-credits"> <div class="netzmacht-leaflet-credits">
<div class="header"> <div class="header">
<h1 class="sub_headline"><?php echo $this->headline; ?> <small><?php echo $this->version; ?></small></h1> <h1 class="sub_headline"><?php echo $this->headline; ?>
</div> <small><?php echo $this->version; ?></small>
</h1>
<div class="tl_box block row">
<h2>About</h2>
<div class="left">
<p>
The Leaflet maps integration for Contao CMS is an Open Source Software license under the LGPL 3.0.
This extension is only exists because of great other Open Source Software which it heavenly depends on.
</p>
<p>
This software ships with an visible attribution to <em>netzmacht creative</em> in the map attribution control.
If you want to remove this attribution, you have to purchase a commercial license.
For more details visit the <a href="https://netzmacht.de/contao-leaflet" target="_blank">project website</a>.
</p>
</div> </div>
<div class="right">
<a href="http://www.netzmacht.de" <?php echo LINK_NEW_WINDOW; ?>>
<img src="bundles/netzmachtcontaoleaflet/img/logo.png"></a>
<p>
<strong class="company">netzmacht </strong><br>
David Molineus<br>
</p>
<p>
DAB Bank München<br>
IBAN: DE52701204008354237003<br>
BIC: DABBDEMMXXX
</p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="YWMA95YS3FT6U">
<input type="image" src="https://www.paypalobjects.com/en_GB/i/btn/btn_donate_SM.gif" border="0" name="submit" alt="PayPal The safer, easier way to pay online.">
<img alt="" border="0" src="https://www.paypalobjects.com/de_DE/i/scr/pixel.gif" width="1" height="1">
</form>
</div>
</div>
<div class="tl_box"> <div class="tl_box block row">
<h2>Support Contao Leaflet</h2> <h2>About</h2>
<div class="left">
<div class="row"> <p>
<div class="col"> The Leaflet maps integration for Contao CMS is an Open Source Software license under the LGPL 3.0.
<h3>Report issues</h3> This extension is only exists because of great other Open Source Software which it heavenly depends on.
<p>If you found a bug, got some troubles or have a feature request - feel free to open an issue.</p> </p>
<p><a href="http://github.com/netzmacht/contao-leaflet-maps/issues" class="btn" target="_blank">Issue tracker</a> </p> <p>
</div> This software ships with an visible attribution to <em>netzmacht creative</em> in the map attribution
<div class="col"> control.
<h3>Contribute</h3> If you want to remove this attribution, you have to purchase a commercial license.
<p>There are many ways you can con&shy;tribute. Translations, For more details visit the <a href="https://netzmacht.de/contao-leaflet" target="_blank">project
docu&shy;mentation or code contributions are welcome. website</a>.
</p> </p>
<p><a href="https://netzmacht/contao-leaflet/contribute.html" class="btn" target="_blank">Contribute</a> </p>
</div> </div>
<div class="col"> <div class="right">
<h3>Fund a feature</h3> <a href="http://www.netzmacht.de" <?php echo LINK_NEW_WINDOW; ?>>
<p>Contao Leaflet is not feature complete. Have a look at the list of planned feature and support them.</p> <img src="bundles/netzmachtcontaoleaflet/img/logo.png"></a>
<p><a href="https://netzmacht/contao-leaflet/planned-features.html" class="btn" target="_blank">Planned features</a> </p> <p>
<strong class="company">netzmacht </strong><br>
David Molineus<br>
</p>
<p>
DAB Bank München<br>
IBAN: DE52701204008354237003<br>
BIC: DABBDEMMXXX
</p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="YWMA95YS3FT6U">
<input type="image" src="https://www.paypalobjects.com/en_GB/i/btn/btn_donate_SM.gif" border="0"
name="submit" alt="PayPal The safer, easier way to pay online.">
<img alt="" border="0" src="https://www.paypalobjects.com/de_DE/i/scr/pixel.gif" width="1" height="1">
</form>
</div> </div>
</div> </div>
<div class="row">
<div class="col"> <div class="tl_box">
<h3>Individual development</h3> <h2>Support Contao Leaflet</h2>
<p>If you have special requirements you can hire me for an individual development.</p>
<p><a href="https://netzmacht/contao-leaflet/contact.html" class="btn" target="_blank">Contact</a> </p> <div class="row">
<div class="col">
<h3>Report issues</h3>
<p>If you found a bug, got some troubles or have a feature request - feel free to open an issue.</p>
<p><a href="http://github.com/netzmacht/contao-leaflet-maps/issues" class="btn" target="_blank">Issue
tracker</a></p>
</div>
<div class="col">
<h3>Contribute</h3>
<p>There are many ways you can con&shy;tribute. Translations,
docu&shy;mentation or code contributions are welcome.
</p>
<p><a href="https://netzmacht/contao-leaflet/contribute.html" class="btn" target="_blank">Contribute</a>
</p>
</div>
<div class="col">
<h3>Fund a feature</h3>
<p>Contao Leaflet is not feature complete. Have a look at the list of planned feature and support
them.</p>
<p><a href="https://netzmacht/contao-leaflet/planned-features.html" class="btn" target="_blank">Planned
features</a></p>
</div>
</div> </div>
<div class="col"> <div class="row">
<h3>Commercial license</h3>
<p>If you want to remove the attribution in the attribution control, you can purchase a commercial license.</p> <div class="col">
<p><a href="https://netzmacht/contao-leaflet/commercial-license.html" class="btn" target="_blank">Purchase license</a> </p> <h3>Individual development</h3>
<p>If you have special requirements you can hire me for an individual development.</p>
<p><a href="https://netzmacht/contao-leaflet/contact.html" class="btn" target="_blank">Contact</a></p>
</div>
<div class="col">
<h3>Commercial license</h3>
<p>If you want to remove the attribution in the attribution control, you can purchase a commercial
license.</p>
<p><a href="https://netzmacht/contao-leaflet/commercial-license.html" class="btn" target="_blank">Purchase
license</a></p>
</div>
</div> </div>
</div> </div>
</div>
<div class="tl_box"> <div class="tl_box">
<h2>Credits</h2> <h2>Credits</h2>
<table class="tl_listing"> <table class="tl_listing">
<tr> <tr>
<th>Name</th> <th>Name</th>
<th>Version</th> <th>Version</th>
<th>License</th> <th>License</th>
<th>Homepage</th> <th>Homepage</th>
</tr> </tr>
<?php if ($this->libraries): ?> <?php if ($this->libraries): ?>
<tr><th colspan="4" class="subtitle">Libraries</th> </tr> <tr>
<?php endif; ?> <th colspan="4" class="subtitle">Libraries</th>
<?php foreach ($this->libraries as $library): ?> </tr>
<tr> <?php endif; ?>
<td><?php echo $library['name']; ?></td> <?php foreach ($this->libraries as $library): ?>
<td><?php echo $library['version']; ?></td> <tr>
<td><?php echo $library['license']; ?></td> <td><?php echo $library['name']; ?></td>
<td><?php echo $library['homepage']; ?></td> <td><?php echo $library['version']; ?></td>
</tr> <td><?php echo $library['license']; ?></td>
<?php endforeach; ?> <td><?php echo $library['homepage']; ?></td>
<tr> </tr>
<th class="subtitle" colspan="4">Graphics</th> <?php endforeach; ?>
</tr> <tr>
<tr> <th class="subtitle" colspan="4">Graphics</th>
<td>Farm Fresh-Web Icons</td> </tr>
<td>3.9.2</td> <tr>
<td><a href="http://creativecommons.org/licenses/by/3.0/us/" target="_blank">CC BY 3.0 US</a></td> <td>Farm Fresh-Web Icons</td>
<td><a href="http://www.fatcow.com/free-icons" target="_blank">fatcow.com/free-icons</a></td> <td>3.9.2</td>
</tr> <td><a href="http://creativecommons.org/licenses/by/3.0/us/" target="_blank">CC BY 3.0 US</a></td>
<tr> <td><a href="http://www.fatcow.com/free-icons" target="_blank">fatcow.com/free-icons</a></td>
<td>Web Blog Icons by SEM Labs</td> </tr>
<td>3.9.2</td> <tr>
<td><a href="http://creativecommons.org/licenses/by/4.0/" target="_blank">CC BY 4.0</a></td> <td>Web Blog Icons by SEM Labs</td>
<td><a href="http://semlabs.co.uk/" target="_blank">semlabs.co.uk</a></td> <td>3.9.2</td>
</tr> <td><a href="http://creativecommons.org/licenses/by/4.0/" target="_blank">CC BY 4.0</a></td>
<?php if ($this->dependencies): ?> <td><a href="http://semlabs.co.uk/" target="_blank">semlabs.co.uk</a></td>
<tr><th colspan="4" class="subtitle">Dependencies</th> </tr> </tr>
<?php endif; ?> <?php if ($this->dependencies): ?>
<?php foreach ($this->dependencies as $dep): ?> <tr>
<tr> <th colspan="4" class="subtitle">Dependencies</th>
<td><?php echo $dep['name']; ?></td> </tr>
<td><?php echo $dep['version']; ?></td> <?php endif; ?>
<td><?php echo $dep['license']; ?></td> <?php foreach ($this->dependencies as $dep): ?>
<td><?php echo $dep['homepage']; ?></td> <tr>
</tr> <td><?php echo $dep['name']; ?></td>
<?php endforeach; ?> <td><?php echo $dep['version']; ?></td>
</table> <td><?php echo $dep['license']; ?></td>
</div> <td><?php echo $dep['homepage']; ?></td>
</tr>
<?php endforeach; ?>
</table>
</div>
</div> </div>

View File

@@ -10,21 +10,21 @@
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', { L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors' attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map); }).addTo(map);
var element = $('<?php echo $this->field; ?>'); var element = $('<?php echo $this->field; ?>');
var geocoder = L.Control.geocoder({ var geocoder = L.Control.geocoder({
defaultMarkGeocode: false, defaultMarkGeocode: false,
collapsed: false, collapsed: false,
placeholder: '<?php echo $GLOBALS['TL_LANG']['leaflet']['searchPosition']; ?>' placeholder: '<?php echo $GLOBALS['TL_LANG']['leaflet']['searchPosition']; ?>'
}).addTo(map); }).addTo(map);
geocoder.on('markgeocode', function(event) { geocoder.on('markgeocode', function (event) {
var container = document.createElement('div'); var container = document.createElement('div');
var link = document.createElement('button'); var link = document.createElement('button');
var result = event.geocode; var result = event.geocode;
link.set('style', 'margin-left: 10px;'); link.set('style', 'margin-left: 10px;');
link.appendText('<?php echo $GLOBALS['TL_LANG']['leaflet']['applyPosition']; ?>'); link.appendText('<?php echo $GLOBALS['TL_LANG']['leaflet']['applyPosition']; ?>');
link.addEvent('click', function(e) { link.addEvent('click', function (e) {
e.stop(); e.stop();
element.set('value', result.center.lat + ',' + result.center.lng); element.set('value', result.center.lat + ',' + result.center.lng);
@@ -37,7 +37,7 @@
map.removeLayer(this._geocodeMarker); map.removeLayer(this._geocodeMarker);
} }
map.fitBounds(result.bbox, { padding: [0, 70]}); map.fitBounds(result.bbox, {padding: [0, 70]});
map.panTo(result.center); map.panTo(result.center);
this._geocodeMarker = new L.Marker(result.center, {draggable: true}) this._geocodeMarker = new L.Marker(result.center, {draggable: true})

View File

@@ -9,5 +9,5 @@
</div> </div>
<!-- indexer::continue --> <!-- indexer::continue -->
<?php $GLOBALS['TL_BODY'][] = '<script>' . $this->javascript .'</script>'; ?> <?php $GLOBALS['TL_BODY'][] = '<script>' . $this->javascript . '</script>'; ?>

View File

@@ -1,6 +1,7 @@
<div id="<?php echo $mapId; ?>" style="<?php echo $style; ?>"></div> <div id="<?= $this->mapId ?>" style="<?= $this->style ?>"></div>
<script> <script>
L.contao.addMap('<?php echo $mapId; ?>', function() { L.contao.addMap('<?= $this->mapId ?>', function () {
<?php echo $javascript; ?> <?= $this->javascript ?>
return { map: map, layers: layers, controls: controls, icons: icons }; return {map: map, layers: layers, controls: controls, icons: icons};
}());</script> }());
</script>

View File

@@ -1,5 +1,5 @@
L.contao.addMap('<?php echo $mapId; ?>', function() { L.contao.addMap('<?= $this->mapId ?>', function() {
<?php echo $javascript; ?> <?= $this->javascript ?>
return { map: map, layers: layers, controls: controls, icons: icons }; return { map: map, layers: layers, controls: controls, icons: icons };
}()); }());

View File

@@ -9,4 +9,4 @@
</div> </div>
<!-- indexer::continue --> <!-- indexer::continue -->
<?php $GLOBALS['TL_BODY'][] = '<script>' . $this->javascript .'</script>'; ?> <?php $GLOBALS['TL_BODY'][] = '<script>' . $this->javascript . '</script>'; ?>

View File

@@ -3,7 +3,6 @@
padding: 15px; padding: 15px;
} }
.netzmacht-leaflet-credits a { .netzmacht-leaflet-credits a {
color: #669A00; color: #669A00;
} }
@@ -17,7 +16,7 @@
.netzmacht-leaflet-credits h1 { .netzmacht-leaflet-credits h1 {
color: #fff; color: #fff;
font-size: 1.4em; font-size: 1.4em;
text-shadow: 0 -1px 1px rgba(0,0,0,0.35); text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.35);
} }
.netzmacht-leaflet-credits .row:after { .netzmacht-leaflet-credits .row:after {

View File

@@ -1,9 +1,9 @@
.tl_listing_container.tree_view ul > li.tl_file { .tl_listing_container.tree_view ul > li.tl_file {
background: url('./../img/fol-placeholder.gif') no-repeat 6px 4px; background: url('./../img/fol-placeholder.gif') no-repeat 6px 4px;
} }
.tl_listing_container.tree_view ul > li.tl_file > div { .tl_listing_container.tree_view ul > li.tl_file > div {
line-height: 18px; line-height: 18px;
} }
@@ -11,15 +11,15 @@
padding-left: 26px; padding-left: 26px;
} }
.tl_listing_container.tree_view ul > li.parent > ul { .tl_listing_container.tree_view ul > li.parent > ul {
padding-left: 20px; padding-left: 20px;
} }
.tl_listing_container.tree_view ul > li > .tl_left > a { .tl_listing_container.tree_view ul > li > .tl_left > a {
margin-left: -20px; margin-left: -20px;
} }
.tl_listing_container.tree_view ul[class="level_1"] li.tl_file > .tl_left { .tl_listing_container.tree_view ul[class="level_1"] li.tl_file > .tl_left {
padding-left: 20px !important; padding-left: 20px !important;
} }

View File

@@ -0,0 +1,3 @@
.tl_help_table a {
color: #77ac45
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 619 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 546 B

View File

@@ -30,7 +30,7 @@ var ContaoLeafletAjaxRequest = {
published = (image.get('data-state') == 1), published = (image.get('data-state') == 1),
div = el.getParent('div'), div = el.getParent('div'),
index, next, icon, icond, pa; index, next, icon, icond, pa;
img = div.getParent('li').getFirst('.tl_left img.list-icon'); img = div.getParent('li').getFirst('.tl_left img.list-icon');
// Change the icon // Change the icon
if (img !== null && img.nodeName.toLowerCase() == 'img') { if (img !== null && img.nodeName.toLowerCase() == 'img') {

File diff suppressed because one or more lines are too long

View File

@@ -44,7 +44,7 @@ class ContaoAssets implements Assets
private $cache = [ private $cache = [
'stylesheets' => [], 'stylesheets' => [],
'javascripts' => [], 'javascripts' => [],
'map' => [] 'map' => [],
]; ];
/** /**

View File

@@ -10,14 +10,13 @@
* @filesource * @filesource
*/ */
namespace Netzmacht\Contao\Leaflet\Subscriber; namespace Netzmacht\Contao\Leaflet\Encoder\Subscriber;
use Netzmacht\Contao\Leaflet\Frontend\RequestUrl; use Netzmacht\Contao\Leaflet\Frontend\RequestUrl;
use Netzmacht\JavascriptBuilder\Encoder;
use Netzmacht\JavascriptBuilder\Flags;
use Netzmacht\JavascriptBuilder\Symfony\Event\EncodeValueEvent;
use Netzmacht\JavascriptBuilder\Symfony\Event\EncodeReferenceEvent;
use Netzmacht\JavascriptBuilder\Exception\EncodeValueFailed; use Netzmacht\JavascriptBuilder\Exception\EncodeValueFailed;
use Netzmacht\JavascriptBuilder\Flags;
use Netzmacht\JavascriptBuilder\Symfony\Event\EncodeReferenceEvent;
use Netzmacht\JavascriptBuilder\Symfony\Event\EncodeValueEvent;
use Netzmacht\LeafletPHP\Definition\Type\Icon; use Netzmacht\LeafletPHP\Definition\Type\Icon;
use Netzmacht\LeafletPHP\Plugins\Omnivore\OmnivoreLayer; use Netzmacht\LeafletPHP\Plugins\Omnivore\OmnivoreLayer;
use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\EventDispatcher\EventSubscriberInterface;
@@ -34,13 +33,13 @@ class EncoderSubscriber implements EventSubscriberInterface
*/ */
public static function getSubscribedEvents() public static function getSubscribedEvents()
{ {
return array( return [
EncodeValueEvent::NAME => array( EncodeValueEvent::NAME => [
array('encodeIcons', 1000), ['encodeIcons', 1000],
array('loadLayer', 100), ['loadLayer', 100],
), ],
EncodeReferenceEvent::NAME => array('referenceIcon', 100), EncodeReferenceEvent::NAME => ['referenceIcon', 100],
); ];
} }
/** /**
@@ -90,16 +89,15 @@ class EncoderSubscriber implements EventSubscriberInterface
{ {
$value = $event->getValue(); $value = $event->getValue();
$encoder = $event->getEncoder(); $encoder = $event->getEncoder();
$template = 'L.contao.load(%s, %s, %s, %s, map);'; $template = 'L.contao.%s(%s, %s, %s, %s, map);';
$method = 'loadFile';
if ($value instanceof OmnivoreLayer) { if ($value instanceof OmnivoreLayer) {
$url = $value->getUrl(); $url = $value->getUrl();
if ($url instanceof RequestUrl) { if ($url instanceof RequestUrl) {
$url = $url->getHash(); $url = $url->getHash();
} elseif (strpos($url, '/') !== false) { $method = 'load';
// Slash found, not a Contao leaflet hash, do not replace encoding.
return;
} }
if ($value->getCustomLayer()) { if ($value->getCustomLayer()) {
@@ -112,6 +110,7 @@ class EncoderSubscriber implements EventSubscriberInterface
$event->addLine( $event->addLine(
sprintf( sprintf(
$template, $template,
$method,
$encoder->encodeValue($url), $encoder->encodeValue($url),
$encoder->encodeValue(strtolower(str_replace('Omnivore.', '', $value->getType()))), $encoder->encodeValue(strtolower(str_replace('Omnivore.', '', $value->getType()))),
$encoder->encodeArray($value->getOptions(), JSON_FORCE_OBJECT), $encoder->encodeArray($value->getOptions(), JSON_FORCE_OBJECT),

View File

@@ -12,7 +12,8 @@
namespace Netzmacht\Contao\Leaflet\Event; namespace Netzmacht\Contao\Leaflet\Event;
use Netzmacht\Contao\Leaflet\Request\Request; use Contao\Model;
use Netzmacht\Contao\Leaflet\Mapper\Request;
use Netzmacht\LeafletPHP\Definition; use Netzmacht\LeafletPHP\Definition;
use Symfony\Component\EventDispatcher\Event; use Symfony\Component\EventDispatcher\Event;
@@ -50,10 +51,10 @@ class BuildDefinitionEvent extends Event
* Construct. * Construct.
* *
* @param Definition $definition The leaflet definition. * @param Definition $definition The leaflet definition.
* @param \Model $model The definition model. * @param Model $model The definition model.
* @param Request|null $request Building request. * @param Request|null $request Building request.
*/ */
public function __construct(Definition $definition, \Model $model, Request $request = null) public function __construct(Definition $definition, Model $model, Request $request = null)
{ {
$this->definition = $definition; $this->definition = $definition;
$this->model = $model; $this->model = $model;

View File

@@ -68,7 +68,7 @@ class BboxFilter implements Filter
*/ */
public function getValues() public function getValues()
{ {
return array('bounds' => $this->bounds); return ['bounds' => $this->bounds];
} }
/** /**

View File

@@ -88,9 +88,9 @@ class DistanceFilter implements Filter
*/ */
public function getValues() public function getValues()
{ {
return array( return [
'radius' => $this->radius, 'radius' => $this->radius,
'center' => $this->center 'center' => $this->center,
); ];
} }
} }

View File

@@ -14,7 +14,6 @@ declare(strict_types=1);
namespace Netzmacht\Contao\Leaflet\Frontend; namespace Netzmacht\Contao\Leaflet\Frontend;
use Contao\Config;
use Contao\Database\Result; use Contao\Database\Result;
use Contao\Input; use Contao\Input;
use Contao\Model; use Contao\Model;
@@ -22,6 +21,7 @@ use Contao\Model\Collection;
use Netzmacht\Contao\Leaflet\MapProvider; use Netzmacht\Contao\Leaflet\MapProvider;
use Netzmacht\Contao\Leaflet\Model\MapModel; use Netzmacht\Contao\Leaflet\Model\MapModel;
use Netzmacht\Contao\Toolkit\Component\Hybrid\AbstractHybrid; use Netzmacht\Contao\Toolkit\Component\Hybrid\AbstractHybrid;
use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
use Symfony\Component\Templating\EngineInterface as TemplateEngine; use Symfony\Component\Templating\EngineInterface as TemplateEngine;
use Symfony\Component\Translation\TranslatorInterface as Translator; use Symfony\Component\Translation\TranslatorInterface as Translator;
@@ -42,42 +42,42 @@ abstract class AbstractMapHybrid extends AbstractHybrid
/** /**
* The user input. * The user input.
* *
* @var \Input * @var Input
*/ */
private $input; private $input;
/** /**
* The Contao config. * Repository manager.
* *
* @var \Config * @var RepositoryManager
*/ */
private $config; private $repositoryManager;
/** /**
* HybridTrait constructor. * HybridTrait constructor.
* *
* @param Result|Model|Collection $model Component model. * @param Result|Model|Collection $model Component model.
* @param TemplateEngine $templateEngine Template engine. * @param TemplateEngine $templateEngine Template engine.
* @param Translator $translator Translator. * @param Translator $translator Translator.
* @param MapProvider $mapProvider Map provider. * @param MapProvider $mapProvider Map provider.
* @param Input $input Request Input. * @param RepositoryManager $repositoryManager Repository manager.
* @param Config $config Config. * @param Input $input Request Input.
* @param string $column Column in which the element appears. * @param string $column Column in which the element appears.
*/ */
public function __construct( public function __construct(
$model, $model,
TemplateEngine $templateEngine, TemplateEngine $templateEngine,
Translator $translator, Translator $translator,
MapProvider $mapProvider, MapProvider $mapProvider,
RepositoryManager $repositoryManager,
$input, $input,
$config,
$column = null $column = null
) { ) {
parent::__construct($model, $templateEngine, $translator, $column); parent::__construct($model, $templateEngine, $translator, $column);
$this->mapProvider = $mapProvider; $this->mapProvider = $mapProvider;
$this->input = $input; $this->input = $input;
$this->config = $config; $this->repositoryManager = $repositoryManager;
} }
/** /**
@@ -90,7 +90,8 @@ abstract class AbstractMapHybrid extends AbstractHybrid
$this->mapProvider->handleAjaxRequest($this->getIdentifier()); $this->mapProvider->handleAjaxRequest($this->getIdentifier());
if (TL_MODE === 'BE') { if (TL_MODE === 'BE') {
$model = MapModel::findByPk($this->get('leaflet_map')); $repository = $this->repositoryManager->getRepository(MapModel::class);
$model = $repository->find((int) $this->get('leaflet_map'));
$parameters = [ $parameters = [
'title' => $this->get('headline'), 'title' => $this->get('headline'),
]; ];

View File

@@ -14,9 +14,15 @@ declare(strict_types=1);
namespace Netzmacht\Contao\Leaflet\Frontend\ContentElement; namespace Netzmacht\Contao\Leaflet\Frontend\ContentElement;
use Contao\Config;
use Contao\CoreBundle\Framework\Adapter;
use Contao\Input;
use Netzmacht\Contao\Leaflet\MapProvider;
use Netzmacht\Contao\Toolkit\Component\Component; use Netzmacht\Contao\Toolkit\Component\Component;
use Netzmacht\Contao\Toolkit\Component\ComponentFactory; use Netzmacht\Contao\Toolkit\Component\ComponentFactory;
use Psr\Container\ContainerInterface as Container; use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
use Symfony\Component\Templating\EngineInterface as TemplateEngine;
use Symfony\Component\Translation\TranslatorInterface as Translator;
/** /**
* Class MapElementFactory * Class MapElementFactory
@@ -26,20 +32,61 @@ use Psr\Container\ContainerInterface as Container;
class MapElementFactory implements ComponentFactory class MapElementFactory implements ComponentFactory
{ {
/** /**
* Dependency container. * Template engine.
* *
* @var Container * @var TemplateEngine
*/ */
private $container; private $templating;
/**
* Translator.
*
* @var Translator
*/
private $translator;
/**
* Map provider.
*
* @var MapProvider
*/
private $mapProvider;
/**
* Input adapter.
*
* @var Input|Adapter
*/
private $input;
/**
* Repository manager.
*
* @var RepositoryManager
*/
private $repositoryManager;
/** /**
* MapElementFactory constructor. * MapElementFactory constructor.
* *
* @param Container $container Dependency container. * @param TemplateEngine $engine Template engine.
* @param Translator $translator Translator.
* @param MapProvider $mapProvider Map provider.
* @param RepositoryManager $repositoryManager Repository manager.
* @param Input|Adapter $input Input adapter.
*/ */
public function __construct(Container $container) public function __construct(
{ TemplateEngine $engine,
$this->container = $container; Translator $translator,
MapProvider $mapProvider,
RepositoryManager $repositoryManager,
$input
) {
$this->templating = $engine;
$this->translator = $translator;
$this->mapProvider = $mapProvider;
$this->input = $input;
$this->repositoryManager = $repositoryManager;
} }
/** /**
@@ -57,11 +104,11 @@ class MapElementFactory implements ComponentFactory
{ {
return new MapElement( return new MapElement(
$model, $model,
$this->container->get('templating'), $this->templating,
$this->container->get('translator'), $this->translator,
$this->container->get('netzmacht.contao_leaflet.map.provider'), $this->mapProvider,
$this->container->get('netzmacht.contao_toolkit.contao.input_adapter'), $this->repositoryManager,
$this->container->get('netzmacht.contao_toolkit.contao.config_adapter'), $this->input,
$column $column
); );
} }

View File

@@ -28,13 +28,13 @@ class DataController
* *
* @var array * @var array
*/ */
private $input = array( private $input = [
'format' => 'geojson', 'format' => 'geojson',
'type' => 'layer', 'type' => 'layer',
'id' => null, 'id' => null,
'filter' => null, 'filter' => null,
'values' => null 'values' => null,
); ];
/** /**
* Debug mode. * Debug mode.
@@ -140,9 +140,9 @@ class DataController
default: default:
$error = true; $error = true;
return array($data, $error); return [$data, $error];
} }
return array($data, $error); return [$data, $error];
} }
} }

View File

@@ -14,9 +14,15 @@ declare(strict_types=1);
namespace Netzmacht\Contao\Leaflet\Frontend\Module; namespace Netzmacht\Contao\Leaflet\Frontend\Module;
use Contao\Config;
use Contao\CoreBundle\Framework\Adapter;
use Contao\Input;
use Netzmacht\Contao\Leaflet\MapProvider;
use Netzmacht\Contao\Toolkit\Component\Component; use Netzmacht\Contao\Toolkit\Component\Component;
use Netzmacht\Contao\Toolkit\Component\ComponentFactory; use Netzmacht\Contao\Toolkit\Component\ComponentFactory;
use Psr\Container\ContainerInterface as Container; use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
use Symfony\Component\Templating\EngineInterface as TemplateEngine;
use Symfony\Component\Translation\TranslatorInterface as Translator;
/** /**
* Class MapElementFactory * Class MapElementFactory
@@ -26,20 +32,61 @@ use Psr\Container\ContainerInterface as Container;
class MapModuleFactory implements ComponentFactory class MapModuleFactory implements ComponentFactory
{ {
/** /**
* Dependency container. * Template engine.
* *
* @var Container * @var TemplateEngine
*/ */
private $container; private $templating;
/** /**
* MapModuleFactory constructor. * Translator.
* *
* @param Container $container Dependency container. * @var Translator
*/ */
public function __construct(Container $container) private $translator;
{
$this->container = $container; /**
* Map provider.
*
* @var MapProvider
*/
private $mapProvider;
/**
* Input adapter.
*
* @var Input|Adapter
*/
private $input;
/**
* Repository manager.
*
* @var RepositoryManager
*/
private $repositoryManager;
/**
* MapElementFactory constructor.
*
* @param TemplateEngine $engine Template engine.
* @param Translator $translator Translator.
* @param MapProvider $mapProvider Map provider.
* @param RepositoryManager $repositoryManager Repository manager.
* @param Input|Adapter $input Input adapter.
*/
public function __construct(
TemplateEngine $engine,
Translator $translator,
MapProvider $mapProvider,
RepositoryManager $repositoryManager,
$input
) {
$this->templating = $engine;
$this->translator = $translator;
$this->mapProvider = $mapProvider;
$this->input = $input;
$this->repositoryManager = $repositoryManager;
} }
/** /**
@@ -57,11 +104,11 @@ class MapModuleFactory implements ComponentFactory
{ {
return new MapModule( return new MapModule(
$model, $model,
$this->container->get('templating'), $this->templating,
$this->container->get('translator'), $this->translator,
$this->container->get('netzmacht.contao_leaflet.map.provider'), $this->mapProvider,
$this->container->get('netzmacht.contao_toolkit.contao.input_adapter'), $this->repositoryManager,
$this->container->get('netzmacht.contao_toolkit.contao.config_adapter'), $this->input,
$column $column
); );
} }

View File

@@ -13,7 +13,7 @@
namespace Netzmacht\Contao\Leaflet\Frontend; namespace Netzmacht\Contao\Leaflet\Frontend;
use Netzmacht\Contao\Leaflet\Filter\Filter; use Netzmacht\Contao\Leaflet\Filter\Filter;
use Netzmacht\Contao\Leaflet\Request\Request; use Netzmacht\Contao\Leaflet\Mapper\Request;
/** /**
* Class RequestUrl creates the request url. * Class RequestUrl creates the request url.
@@ -57,12 +57,12 @@ class RequestUrl implements \JsonSerializable
*/ */
public static function create($dataId, $type = null, $format = null, Request $request = null) public static function create($dataId, $type = null, $format = null, Request $request = null)
{ {
$params = array( $params = [
'for' => $request ? $request->getMapIdentifier() : null, 'for' => $request ? $request->getMapIdentifier() : null,
'type' => $type != 'layer' ? $type : null, 'type' => $type != 'layer' ? $type : null,
'id' => $dataId, 'id' => $dataId,
'format' => $format != 'geojson' ? $format : null 'format' => $format != 'geojson' ? $format : null,
); ];
$hash = base64_encode(implode(',', $params)); $hash = base64_encode(implode(',', $params));
$query = 'leaflet=' . $hash; $query = 'leaflet=' . $hash;

View File

@@ -14,11 +14,12 @@ namespace Netzmacht\Contao\Leaflet\Listener\Dca;
use Contao\StringUtil; use Contao\StringUtil;
use Doctrine\DBAL\Connection; use Doctrine\DBAL\Connection;
use Netzmacht\Contao\Leaflet\Model\ControlModel;
use Netzmacht\Contao\Leaflet\Model\LayerModel;
use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
use Netzmacht\Contao\Toolkit\Dca\Listener\AbstractListener; use Netzmacht\Contao\Toolkit\Dca\Listener\AbstractListener;
use Netzmacht\Contao\Toolkit\Dca\Manager; use Netzmacht\Contao\Toolkit\Dca\Manager;
use Netzmacht\Contao\Toolkit\Dca\Options\OptionsBuilder; use Netzmacht\Contao\Toolkit\Dca\Options\OptionsBuilder;
use Netzmacht\Contao\Leaflet\Model\ControlModel;
use Netzmacht\Contao\Leaflet\Model\LayerModel;
/** /**
* Class Control is the helper for the tl_leaflet_control dca. * Class Control is the helper for the tl_leaflet_control dca.
@@ -48,19 +49,32 @@ class ControlDcaListener extends AbstractListener
*/ */
private $types; private $types;
/**
* Repository manager.
*
* @var RepositoryManager
*/
private $repositoryManager;
/** /**
* Construct. * Construct.
* *
* @param Manager $manager Data container manager. * @param Manager $manager Data container manager.
* @param Connection $connection Database connection. * @param Connection $connection Database connection.
* @param array $types Control types. * @param RepositoryManager $repositoryManager Repository manager.
* @param array $types Control types.
*/ */
public function __construct(Manager $manager, Connection $connection, array $types) public function __construct(
{ Manager $manager,
Connection $connection,
RepositoryManager $repositoryManager,
array $types
) {
parent::__construct($manager); parent::__construct($manager);
$this->connection = $connection; $this->connection = $connection;
$this->types = $types; $this->types = $types;
$this->repositoryManager = $repositoryManager;
} }
/** /**
@@ -96,7 +110,8 @@ class ControlDcaListener extends AbstractListener
*/ */
public function getLayers() public function getLayers()
{ {
$collection = LayerModel::findAll(); $repository = $this->repositoryManager->getRepository(LayerModel::class);
$collection = $repository->findAll();
return OptionsBuilder::fromCollection($collection, 'title') return OptionsBuilder::fromCollection($collection, 'title')
->asTree() ->asTree()
@@ -110,7 +125,8 @@ class ControlDcaListener extends AbstractListener
*/ */
public function getZoomControls() public function getZoomControls()
{ {
$collection = ControlModel::findBy('type', 'zoom', array('order' => 'title')); $repository = $this->repositoryManager->getRepository(ControlModel::class);
$collection = $repository->findBy(['type=?'], ['zoom'], ['order' => 'title']);
return OptionsBuilder::fromCollection($collection, 'title')->getOptions(); return OptionsBuilder::fromCollection($collection, 'title')->getOptions();
} }
@@ -166,7 +182,7 @@ class ControlDcaListener extends AbstractListener
'lid' => $layer['layer'], 'lid' => $layer['layer'],
'cid' => $dataContainer->id, 'cid' => $dataContainer->id,
'mode' => $layer['mode'], 'mode' => $layer['mode'],
'sorting' => $sorting 'sorting' => $sorting,
]; ];
$this->connection->insert('tl_leaflet_control_layer', $data); $this->connection->insert('tl_leaflet_control_layer', $data);
@@ -177,10 +193,10 @@ class ControlDcaListener extends AbstractListener
[ [
'tstamp' => time(), 'tstamp' => time(),
'sorting' => $sorting, 'sorting' => $sorting,
'mode' => $layer['mode'] 'mode' => $layer['mode'],
], ],
[ [
'id' => $values[$layer['layer']]['id'] 'id' => $values[$layer['layer']]['id'],
] ]
); );

View File

@@ -14,8 +14,12 @@ declare(strict_types=1);
namespace Netzmacht\Contao\Leaflet\Listener\Dca; namespace Netzmacht\Contao\Leaflet\Listener\Dca;
use Netzmacht\Contao\Toolkit\Dca\Options\OptionsBuilder; use Contao\Image;
use Contao\RequestToken;
use Contao\StringUtil;
use Netzmacht\Contao\Leaflet\Model\MapModel; use Netzmacht\Contao\Leaflet\Model\MapModel;
use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
use Netzmacht\Contao\Toolkit\Dca\Options\OptionsBuilder;
use Symfony\Component\Translation\TranslatorInterface as Translator; use Symfony\Component\Translation\TranslatorInterface as Translator;
/** /**
@@ -32,14 +36,23 @@ final class FrontendIntegrationListener
*/ */
private $translator; private $translator;
/**
* Repository manager.
*
* @var RepositoryManager
*/
private $repositoryManager;
/** /**
* FrontendIntegration constructor. * FrontendIntegration constructor.
* *
* @param Translator $translator Translator. * @param RepositoryManager $repositoryManager Repository manager.
* @param Translator $translator Translator.
*/ */
public function __construct(Translator $translator) public function __construct(RepositoryManager $repositoryManager, Translator $translator)
{ {
$this->translator = $translator; $this->translator = $translator;
$this->repositoryManager = $repositoryManager;
} }
/** /**
@@ -49,7 +62,8 @@ final class FrontendIntegrationListener
*/ */
public function getMaps(): array public function getMaps(): array
{ {
$collection = MapModel::findAll(); $repository = $this->repositoryManager->getRepository(MapModel::class);
$collection = $repository->findAll(['order' => 'title']);
return OptionsBuilder::fromCollection($collection, 'title')->getOptions(); return OptionsBuilder::fromCollection($collection, 'title')->getOptions();
} }
@@ -74,11 +88,13 @@ final class FrontendIntegrationListener
'<a href="%s%s&amp;popup=1&amp;rt=%s" %s>%s</a>', '<a href="%s%s&amp;popup=1&amp;rt=%s" %s>%s</a>',
'contao/main.php?do=leaflet_map&amp;table=tl_leaflet_map&amp;act=edit&amp;id=', 'contao/main.php?do=leaflet_map&amp;table=tl_leaflet_map&amp;act=edit&amp;id=',
$dataContainer->value, $dataContainer->value,
\RequestToken::get(), RequestToken::get(),
sprintf( sprintf(
$pattern, $pattern,
specialchars($this->translator->trans('editalias.1', [$dataContainer->value], 'contao_tl_content')), StringUtil::specialchars(
specialchars( $this->translator->trans('editalias.1', [$dataContainer->value], 'contao_tl_content')
),
StringUtil::specialchars(
str_replace( str_replace(
"'", "'",
"\\'", "\\'",
@@ -86,7 +102,7 @@ final class FrontendIntegrationListener
) )
) )
), ),
\Image::getHtml( Image::getHtml(
'alias.gif', 'alias.gif',
$this->translator->trans('editalias.0', [$dataContainer->value], 'contao_tl_content'), $this->translator->trans('editalias.0', [$dataContainer->value], 'contao_tl_content'),
'style="vertical-align:top"' 'style="vertical-align:top"'

View File

@@ -12,17 +12,19 @@
namespace Netzmacht\Contao\Leaflet\Listener\Dca; namespace Netzmacht\Contao\Leaflet\Listener\Dca;
use Contao\Controller; use Contao\Backend;
use Contao\CoreBundle\Framework\Adapter;
use Contao\DataContainer;
use Contao\Image; use Contao\Image;
use Contao\RequestToken;
use Contao\StringUtil; use Contao\StringUtil;
use Doctrine\DBAL\Connection; use Doctrine\DBAL\Connection;
use Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer\LayerLabelRenderer; use Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer\LayerLabelRenderer;
use Netzmacht\Contao\Leaflet\Model\IconModel; use Netzmacht\Contao\Leaflet\Model\IconModel;
use Netzmacht\Contao\Leaflet\Model\LayerModel;
use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
use Netzmacht\Contao\Toolkit\Dca\Listener\AbstractListener; use Netzmacht\Contao\Toolkit\Dca\Listener\AbstractListener;
use Netzmacht\Contao\Toolkit\Dca\Manager; use Netzmacht\Contao\Toolkit\Dca\Manager;
use Netzmacht\Contao\Toolkit\Dca\Options\OptionsBuilder; use Netzmacht\Contao\Toolkit\Dca\Options\OptionsBuilder;
use Netzmacht\Contao\Leaflet\Model\LayerModel;
use Symfony\Component\Translation\TranslatorInterface as Translator; use Symfony\Component\Translation\TranslatorInterface as Translator;
/** /**
@@ -52,7 +54,14 @@ class LayerDcaListener extends AbstractListener
* @var Connection * @var Connection
*/ */
private $connection; private $connection;
/**
* Repository manager.
*
* @var RepositoryManager
*/
private $repositoryManager;
/** /**
* Tile providers configuration. * Tile providers configuration.
* *
@@ -81,36 +90,59 @@ class LayerDcaListener extends AbstractListener
*/ */
private $labelRenderer; private $labelRenderer;
/**
* File formats.
*
* @var array
*/
private $fileFormats;
/**
* Backend adapter.
*
* @var Backend|Adapter
*/
private $backendAdapter;
/** /**
* Construct. * Construct.
* *
* @param Manager $manager Data container manager. * @param Manager $manager Data container manager.
* @param Connection $connection Database connection. * @param Connection $connection Database connection.
* @param Translator $translator Translator. * @param RepositoryManager $repositoryManager Repository manager.
* @param LayerLabelRenderer $labelRenderer Layer label renderer. * @param Translator $translator Translator.
* @param array $layers Leaflet layer configuration. * @param LayerLabelRenderer $labelRenderer Layer label renderer.
* @param array $tileProviders Tile providers. * @param Adapter|Backend $backendAdapter Backend adapter.
* @param array $amenities OSM amenities. * @param array $layers Leaflet layer configuration.
* @param array $tileProviders Tile providers.
* @param array $amenities OSM amenities.
* @param array $fileFormats File formats.
*
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
*/ */
public function __construct( public function __construct(
Manager $manager, Manager $manager,
Connection $connection, Connection $connection,
RepositoryManager $repositoryManager,
Translator $translator, Translator $translator,
LayerLabelRenderer $labelRenderer, LayerLabelRenderer $labelRenderer,
$backendAdapter,
array $layers, array $layers,
array $tileProviders, array $tileProviders,
array $amenities array $amenities,
array $fileFormats
) { ) {
parent::__construct($manager); parent::__construct($manager);
Controller::loadLanguageFile('leaflet_layer'); $this->connection = $connection;
$this->layers = $layers;
$this->connection = $connection; $this->tileProviders = $tileProviders;
$this->layers = $layers; $this->translator = $translator;
$this->tileProviders = $tileProviders; $this->amenities = $amenities;
$this->translator = $translator; $this->labelRenderer = $labelRenderer;
$this->amenities = $amenities; $this->fileFormats = $fileFormats;
$this->labelRenderer = $labelRenderer; $this->repositoryManager = $repositoryManager;
$this->backendAdapter = $backendAdapter;
} }
/** /**
@@ -149,7 +181,7 @@ class LayerDcaListener extends AbstractListener
return $this->tileProviders[$dataContainer->activeRecord->tile_provider]['variants']; return $this->tileProviders[$dataContainer->activeRecord->tile_provider]['variants'];
} }
return array(); return [];
} }
/** /**
@@ -205,7 +237,8 @@ class LayerDcaListener extends AbstractListener
) )
); );
$collection = LayerModel::findMultipleByTypes($types); $repository = $this->repositoryManager->getRepository(LayerModel::class);
$collection = $repository->findMultipleByTypes($types);
$builder = OptionsBuilder::fromCollection( $builder = OptionsBuilder::fromCollection(
$collection, $collection,
'id', 'id',
@@ -232,43 +265,42 @@ class LayerDcaListener extends AbstractListener
*/ */
public function getPasteButtons($dataContainer, $row, $table, $whatever, $children) public function getPasteButtons($dataContainer, $row, $table, $whatever, $children)
{ {
$pasteAfterUrl = \Controller::addToUrl( $pasteAfterUrl = $this->backendAdapter->addToUrl(
'act='.$children['mode'].'&amp;mode=1&amp;pid='.$row['id'] 'act=' . $children['mode'] . '&amp;mode=1&amp;pid=' . $row['id']
.(!is_array($children['id']) ? '&amp;id='.$children['id'] : '') . (!is_array($children['id']) ? '&amp;id=' . $children['id'] : '')
. '&amp;rt=' . RequestToken::get()
); );
$buffer = sprintf( $buffer = sprintf(
'<a href="%s" title="%s" onclick="Backend.getScrollOffset()">%s</a> ', '<a href="%s" title="%s" onclick="Backend.getScrollOffset()">%s</a> ',
$pasteAfterUrl, $pasteAfterUrl,
specialchars($this->translator->trans('pasteafter.1', [$row['id']], 'contao_' . $table)), StringUtil::specialchars($this->translator->trans('pasteafter.1', [$row['id']], 'contao_' . $table)),
\Image::getHtml( Image::getHtml(
'pasteafter.gif', 'pasteafter.gif',
$this->translator->trans('pasteafter.1', [$row['id']], 'contao_' . $table) $this->translator->trans('pasteafter.1', [$row['id']], 'contao_' . $table)
) )
); );
if (!empty($this->layers[$row['type']]['children'])) { if (!empty($this->layers[$row['type']]['children'])) {
$pasteIntoUrl = \Controller::addToUrl( $pasteIntoUrl = $this->backendAdapter->addToUrl(
sprintf( sprintf(
'act=%s&amp;mode=2&amp;pid=%s%s', 'act=%s&amp;mode=2&amp;pid=%s%s',
$children['mode'], $children['mode'],
$row['id'], $row['id'],
!is_array($children['id']) ? '&amp;id='.$children['id'] : '' !is_array($children['id']) ? '&amp;id=' . $children['id'] : ''
) . '&amp;rt=' . RequestToken::get() )
); );
$buffer .= sprintf( $buffer .= sprintf(
'<a href="%s" title="%s" onclick="Backend.getScrollOffset()">%s</a> ', '<a href="%s" title="%s" onclick="Backend.getScrollOffset()">%s</a> ',
$pasteIntoUrl, $pasteIntoUrl,
specialchars($this->translator->trans('pasteinto.1', [$row['id']], 'contao_' . $table)), StringUtil::specialchars($this->translator->trans('pasteinto.1', [$row['id']], 'contao_' . $table)),
\Image::getHtml( Image::getHtml(
'pasteinto.gif', 'pasteinto.gif',
$this->translator->trans('pasteinto.1', [$row['id']], 'contao_' . $table) $this->translator->trans('pasteinto.1', [$row['id']], 'contao_' . $table)
) )
); );
} elseif ($row['id'] > 0) { } elseif ($row['id'] > 0) {
$buffer .= \Image::getHtml('pasteinto_.gif'); $buffer .= Image::getHtml('pasteinto_.gif');
} }
return $buffer; return $buffer;
@@ -337,7 +369,7 @@ class LayerDcaListener extends AbstractListener
$statement->bindValue('lid', $dataContainer->id); $statement->bindValue('lid', $dataContainer->id);
$statement->execute(); $statement->execute();
$undo['data'] = deserialize($undo['data'], true); $undo['data'] = StringUtil::deserialize($undo['data'], true);
while ($row = $statement->fetch()) { while ($row = $statement->fetch()) {
$undo['data']['tl_leaflet_map_layer'][] = $row; $undo['data']['tl_leaflet_map_layer'][] = $row;
@@ -365,7 +397,7 @@ class LayerDcaListener extends AbstractListener
*/ */
public function getBoundsModes($dataContainer) public function getBoundsModes($dataContainer)
{ {
$options = array(); $options = [];
if ($dataContainer->activeRecord && !empty($this->layers[$dataContainer->activeRecord->type]['boundsMode'])) { if ($dataContainer->activeRecord && !empty($this->layers[$dataContainer->activeRecord->type]['boundsMode'])) {
foreach ($this->layers[$dataContainer->activeRecord->type]['boundsMode'] as $mode => $enabled) { foreach ($this->layers[$dataContainer->activeRecord->type]['boundsMode'] as $mode => $enabled) {
@@ -389,7 +421,8 @@ class LayerDcaListener extends AbstractListener
*/ */
public function getLayers($dataContainer) public function getLayers($dataContainer)
{ {
$collection = LayerModel::findBy('id !', $dataContainer->id); $repository = $this->repositoryManager->getRepository(LayerModel::class);
$collection = $repository->findBy(['tl_leaflet_layer.id!=?'], [$dataContainer->id]);
return OptionsBuilder::fromCollection($collection, 'title') return OptionsBuilder::fromCollection($collection, 'title')
->asTree() ->asTree()
@@ -413,7 +446,8 @@ class LayerDcaListener extends AbstractListener
*/ */
public function getIcons() public function getIcons()
{ {
$collection = IconModel::findAll(array('order' => 'title')); $repository = $this->repositoryManager->getRepository(IconModel::class);
$collection = $repository->findAll(['order' => 'title']);
$builder = OptionsBuilder::fromCollection( $builder = OptionsBuilder::fromCollection(
$collection, $collection,
function ($model) { function ($model) {
@@ -424,6 +458,49 @@ class LayerDcaListener extends AbstractListener
return $builder->getOptions(); return $builder->getOptions();
} }
/**
* Get the file formats.
*
* @return array
*/
public function getFileFormats(): array
{
return array_keys($this->fileFormats);
}
/**
* Prepare the file widget.
*
* @param mixed $value Given value.
* @param DataContainer $dataContainer Data container driver.
*
* @return mixed
*/
public function prepareFileWidget($value, $dataContainer)
{
if ($dataContainer->activeRecord) {
$fileFormat = $dataContainer->activeRecord->fileFormat;
if (isset($this->fileFormats[$fileFormat])) {
$definition = $this->getDefinition();
$definition->set(
['fields', $dataContainer->field, 'eval', 'extensions'],
implode(',', $this->fileFormats[$fileFormat])
);
$definition->set(
['fields', $dataContainer->field, 'label', 1],
sprintf(
$definition->get(['fields', $dataContainer->field, 'label', 1]),
implode(', ', $this->fileFormats[$fileFormat])
)
);
}
}
return $value;
}
/** /**
* Generate a button. * Generate a button.
* *

View File

@@ -12,11 +12,14 @@
namespace Netzmacht\Contao\Leaflet\Listener\Dca; namespace Netzmacht\Contao\Leaflet\Listener\Dca;
use Contao\Controller; use Contao\CoreBundle\Framework\Adapter;
use Contao\DataContainer; use Contao\DataContainer;
use Contao\System;
use Netzmacht\Contao\Leaflet\Model\LayerModel; use Netzmacht\Contao\Leaflet\Model\LayerModel;
use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
use Netzmacht\LeafletPHP\Value\LatLng; use Netzmacht\LeafletPHP\Value\LatLng;
use Symfony\Component\Filesystem\Filesystem; use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\Templating\EngineInterface as TemplateEngine;
/** /**
* Class Leaflet is the base helper providing different methods. * Class Leaflet is the base helper providing different methods.
@@ -39,16 +42,48 @@ class LeafletDcaListener
*/ */
private $cacheDir; private $cacheDir;
/**
* Repository manager.
*
* @var RepositoryManager
*/
private $repositoryManager;
/**
* Template engine.
*
* @var TemplateEngine
*/
private $templateEngine;
/**
* System adapter.
*
* @var Adapter|System
*/
private $systemAdapter;
/** /**
* LeafletCallbacks constructor. * LeafletCallbacks constructor.
* *
* @param Filesystem $fileSystem File system. * @param RepositoryManager $repositoryManager Repository manager.
* @param string $cacheDir Cache dir. * @param TemplateEngine $templateEngine Template engine.
* @param Filesystem $fileSystem File system.
* @param Adapter|System $systemAdapter Contao system adapter.
* @param string $cacheDir Cache dir.
*/ */
public function __construct(Filesystem $fileSystem, string $cacheDir) public function __construct(
{ RepositoryManager $repositoryManager,
$this->fileSystem = $fileSystem; TemplateEngine $templateEngine,
$this->cacheDir = $cacheDir; Filesystem $fileSystem,
$systemAdapter,
string $cacheDir
) {
$this->repositoryManager = $repositoryManager;
$this->templateEngine = $templateEngine;
$this->fileSystem = $fileSystem;
$this->systemAdapter = $systemAdapter;
$this->cacheDir = $cacheDir;
} }
/** /**
@@ -58,7 +93,7 @@ class LeafletDcaListener
*/ */
public function loadLanguageFile() public function loadLanguageFile()
{ {
Controller::loadLanguageFile('leaflet'); $this->systemAdapter->loadLanguageFile('leaflet');
} }
/** /**
@@ -80,17 +115,16 @@ class LeafletDcaListener
*/ */
public function getGeocoder($dataContainer) public function getGeocoder($dataContainer)
{ {
$template = new \BackendTemplate('be_leaflet_geocode'); $data['field'] = 'ctrl_' . $dataContainer->field;
$template->field = 'ctrl_' . $dataContainer->field;
try { try {
$latLng = LatLng::fromString($dataContainer->value); $latLng = LatLng::fromString($dataContainer->value);
$template->marker = json_encode($latLng); $data['marker'] = json_encode($latLng);
} catch (\Exception $e) { } catch (\Exception $e) {
// LatLng throws an exception of value could not be created. Just let the value empty when. // LatLng throws an exception of value could not be created. Just let the value empty when.
} }
return $template->parse(); return $this->templateEngine->render('toolkit:be:be_leaflet_geocode.html5', $data);
} }
/** /**
@@ -100,8 +134,9 @@ class LeafletDcaListener
*/ */
public function getLayers() public function getLayers()
{ {
$options = array(); $options = [];
$collection = LayerModel::findBy('pid', '0', array('order' => 'title')); $repository = $this->repositoryManager->getRepository(LayerModel::class);
$collection = $repository->findBy(['pid=?'], ['0'], ['order' => 'title']);
if ($collection) { if ($collection) {
foreach ($collection as $model) { foreach ($collection as $model) {

View File

@@ -18,6 +18,7 @@ use Contao\DataContainer;
use Contao\StringUtil; use Contao\StringUtil;
use Doctrine\DBAL\Connection; use Doctrine\DBAL\Connection;
use Netzmacht\Contao\Leaflet\Model\LayerModel; use Netzmacht\Contao\Leaflet\Model\LayerModel;
use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
use Netzmacht\Contao\Toolkit\Dca\Listener\AbstractListener; use Netzmacht\Contao\Toolkit\Dca\Listener\AbstractListener;
use Netzmacht\Contao\Toolkit\Dca\Manager; use Netzmacht\Contao\Toolkit\Dca\Manager;
use Netzmacht\Contao\Toolkit\Dca\Options\OptionsBuilder; use Netzmacht\Contao\Toolkit\Dca\Options\OptionsBuilder;
@@ -44,17 +45,26 @@ class MapDcaListener extends AbstractListener
*/ */
private $connection; private $connection;
/**
* Repository manager.
*
* @var RepositoryManager
*/
private $repositoryManager;
/** /**
* Construct. * Construct.
* *
* @param Manager $manager Data container manager. * @param Manager $manager Data container manager.
* @param Connection $connection Database connection. * @param Connection $connection Database connection.
* @param RepositoryManager $repositoryManager Repository manager.
*/ */
public function __construct(Manager $manager, Connection $connection) public function __construct(Manager $manager, Connection $connection, RepositoryManager $repositoryManager)
{ {
parent::__construct($manager); parent::__construct($manager);
$this->connection = $connection; $this->connection = $connection;
$this->repositoryManager = $repositoryManager;
} }
/** /**
@@ -90,7 +100,7 @@ class MapDcaListener extends AbstractListener
public function saveLayerRelations($layerId, $dataContainer) public function saveLayerRelations($layerId, $dataContainer)
{ {
$new = array_filter(StringUtil::deserialize($layerId, true)); $new = array_filter(StringUtil::deserialize($layerId, true));
$values = array(); $values = [];
$statement = $this->connection->prepare('SELECT * FROM tl_leaflet_map_layer WHERE mid=:mid order BY sorting'); $statement = $this->connection->prepare('SELECT * FROM tl_leaflet_map_layer WHERE mid=:mid order BY sorting');
$statement->bindValue('mid', $dataContainer->id); $statement->bindValue('mid', $dataContainer->id);
@@ -108,7 +118,7 @@ class MapDcaListener extends AbstractListener
'tstamp' => time(), 'tstamp' => time(),
'lid' => $layerId, 'lid' => $layerId,
'mid' => $dataContainer->id, 'mid' => $dataContainer->id,
'sorting' => $sorting 'sorting' => $sorting,
]; ];
$this->connection->insert('tl_leaflet_map_layer', $data); $this->connection->insert('tl_leaflet_map_layer', $data);
@@ -150,13 +160,12 @@ class MapDcaListener extends AbstractListener
/** /**
* Get all layers except of the current layer. * Get all layers except of the current layer.
* *
* @param DataContainer $dataContainer The dataContainer driver.
*
* @return array * @return array
*/ */
public function getLayers($dataContainer) public function getLayers()
{ {
$collection = LayerModel::findBy('id !', $dataContainer->id); $repository = $this->repositoryManager->getRepository(LayerModel::class);
$collection = $repository->findAll(['order' => 'title']);
return OptionsBuilder::fromCollection($collection, 'title') return OptionsBuilder::fromCollection($collection, 'title')
->asTree() ->asTree()

View File

@@ -14,9 +14,10 @@ namespace Netzmacht\Contao\Leaflet\Listener\Dca;
use Contao\Controller; use Contao\Controller;
use Doctrine\DBAL\Connection; use Doctrine\DBAL\Connection;
use Netzmacht\Contao\Toolkit\Dca\Options\OptionsBuilder;
use Netzmacht\Contao\Leaflet\Model\IconModel; use Netzmacht\Contao\Leaflet\Model\IconModel;
use Netzmacht\Contao\Leaflet\Model\PopupModel; use Netzmacht\Contao\Leaflet\Model\PopupModel;
use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
use Netzmacht\Contao\Toolkit\Dca\Options\OptionsBuilder;
/** /**
* Class Marker is the dca helper class for the tl_leaflet_marker dca. * Class Marker is the dca helper class for the tl_leaflet_marker dca.
@@ -33,23 +34,22 @@ class MarkerDcaListener
private $connection; private $connection;
/** /**
* MarkerDcaListener constructor. * Repository manager.
* *
* @param Connection $connection Database connection. * @var RepositoryManager
*/ */
public function __construct(Connection $connection) private $repositoryManager;
{
$this->connection = $connection;
}
/** /**
* Initialize the language files. * MarkerDcaListener constructor.
* *
* @return void * @param Connection $connection Database connection.
* @param RepositoryManager $repositoryManager Repository manager.
*/ */
public function initialize() public function __construct(Connection $connection, RepositoryManager $repositoryManager)
{ {
Controller::loadLanguageFile('leaflet'); $this->connection = $connection;
$this->repositoryManager = $repositoryManager;
} }
/** /**
@@ -71,7 +71,8 @@ class MarkerDcaListener
*/ */
public function getIcons() public function getIcons()
{ {
$collection = IconModel::findAll(array('order' => 'title')); $repository = $this->repositoryManager->getRepository(IconModel::class);
$collection = $repository->findAll(['order' => 'title']);
$builder = OptionsBuilder::fromCollection( $builder = OptionsBuilder::fromCollection(
$collection, $collection,
function ($model) { function ($model) {
@@ -89,7 +90,8 @@ class MarkerDcaListener
*/ */
public function getPopups() public function getPopups()
{ {
$collection = PopupModel::findAll(array('order' => 'title')); $repository = $this->repositoryManager->getRepository(PopupModel::class);
$collection = $repository->findAll(['order' => 'title']);
$builder = OptionsBuilder::fromCollection($collection, 'title'); $builder = OptionsBuilder::fromCollection($collection, 'title');
return $builder->getOptions(); return $builder->getOptions();
@@ -105,11 +107,11 @@ class MarkerDcaListener
*/ */
public function saveCoordinates($value, $dataContainer) public function saveCoordinates($value, $dataContainer)
{ {
$combined = array( $combined = [
'latitude' => null, 'latitude' => null,
'longitude' => null, 'longitude' => null,
'altitude' => null 'altitude' => null,
); ];
$values = trimsplit(',', $value); $values = trimsplit(',', $value);
$keys = array_keys($combined); $keys = array_keys($combined);

View File

@@ -12,12 +12,12 @@
namespace Netzmacht\Contao\Leaflet\Listener\Dca; namespace Netzmacht\Contao\Leaflet\Listener\Dca;
use Netzmacht\Contao\Leaflet\Model\IconModel;
use Netzmacht\Contao\Leaflet\Model\PopupModel; use Netzmacht\Contao\Leaflet\Model\PopupModel;
use Netzmacht\Contao\Leaflet\Model\StyleModel;
use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
use Netzmacht\Contao\Toolkit\Dca\Listener\AbstractListener; use Netzmacht\Contao\Toolkit\Dca\Listener\AbstractListener;
use Netzmacht\Contao\Toolkit\Dca\Manager; use Netzmacht\Contao\Toolkit\Dca\Manager;
use Netzmacht\Contao\Toolkit\Dca\Options\OptionsBuilder; use Netzmacht\Contao\Toolkit\Dca\Options\OptionsBuilder;
use Netzmacht\Contao\Leaflet\Model\StyleModel;
/** /**
* Helper class for the tl_leaflet_vector dca. * Helper class for the tl_leaflet_vector dca.
@@ -40,17 +40,26 @@ class VectorDcaListener extends AbstractListener
*/ */
private $vectors; private $vectors;
/**
* Repository manager.
*
* @var RepositoryManager
*/
private $repositoryManager;
/** /**
* Construct. * Construct.
* *
* @param Manager $dcaManager Data container manager. * @param Manager $dcaManager Data container manager.
* @param array $vectors Vectors. * @param RepositoryManager $repositoryManager Repository manager.
* @param array $vectors Vectors.
*/ */
public function __construct(Manager $dcaManager, array $vectors) public function __construct(Manager $dcaManager, RepositoryManager $repositoryManager, array $vectors)
{ {
parent::__construct($dcaManager); parent::__construct($dcaManager);
$this->vectors = $vectors; $this->vectors = $vectors;
$this->repositoryManager = $repositoryManager;
} }
/** /**
@@ -86,29 +95,12 @@ class VectorDcaListener extends AbstractListener
*/ */
public function getStyles() public function getStyles()
{ {
$collection = StyleModel::findAll(array('order' => 'title')); $repository = $this->repositoryManager->getRepository(StyleModel::class);
$collection = $repository->findAll(['order' => 'title']);
return OptionsBuilder::fromCollection($collection, 'title')->getOptions(); return OptionsBuilder::fromCollection($collection, 'title')->getOptions();
} }
/**
* Get all icons.
*
* @return array
*/
public function getIcons()
{
$collection = IconModel::findAll(array('order' => 'title'));
$builder = OptionsBuilder::fromCollection(
$collection,
function ($model) {
return sprintf('%s [%s]', $model['title'], $model['type']);
}
);
return $builder->getOptions();
}
/** /**
* Get all popups. * Get all popups.
* *
@@ -116,7 +108,8 @@ class VectorDcaListener extends AbstractListener
*/ */
public function getPopups() public function getPopups()
{ {
$collection = PopupModel::findAll(array('order' => 'title')); $repository = $this->repositoryManager->getRepository(PopupModel::class);
$collection = $repository->findAll(['order' => 'title']);
$builder = OptionsBuilder::fromCollection($collection, 'title'); $builder = OptionsBuilder::fromCollection($collection, 'title');
return $builder->getOptions(); return $builder->getOptions();

View File

@@ -10,24 +10,30 @@
* @filesource * @filesource
*/ */
namespace Netzmacht\Contao\Leaflet\Subscriber; declare(strict_types=1);
namespace Netzmacht\Contao\Leaflet\Listener;
use Contao\FilesModel;
use Contao\Model;
use Netzmacht\Contao\Leaflet\Event\ConvertToGeoJsonEvent; use Netzmacht\Contao\Leaflet\Event\ConvertToGeoJsonEvent;
use Netzmacht\Contao\Leaflet\Model\LayerModel; use Netzmacht\Contao\Leaflet\Model\LayerModel;
use Netzmacht\LeafletPHP\Definition\Vector; use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
use Netzmacht\LeafletPHP\Value\GeoJson\Feature; use Netzmacht\LeafletPHP\Definition as LeafletDefinition;
use Netzmacht\LeafletPHP\Definition\HasPopup; use Netzmacht\LeafletPHP\Definition\HasPopup;
use Netzmacht\LeafletPHP\Definition\UI\Marker; use Netzmacht\LeafletPHP\Definition\UI\Marker;
use Netzmacht\LeafletPHP\Definition\Vector;
use Netzmacht\LeafletPHP\Definition\Vector\Circle; use Netzmacht\LeafletPHP\Definition\Vector\Circle;
use Netzmacht\LeafletPHP\Definition\Vector\CircleMarker; use Netzmacht\LeafletPHP\Definition\Vector\CircleMarker;
use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Netzmacht\LeafletPHP\Value\GeoJson\Feature;
use Netzmacht\LeafletPHP\Value\GeoJson\GeoJsonObject;
/** /**
* Class GeoJsonSubscriber provides subscribers when a definition is converted to a geo json feature. * Class GeoJsonSubscriber provides subscribers when a definition is converted to a geo json feature.
* *
* @package Netzmacht\Contao\Leaflet\Subscriber * @package Netzmacht\Contao\Leaflet\Subscriber
*/ */
class GeoJsonSubscriber implements EventSubscriberInterface final class GeoJsonListener
{ {
/** /**
* Property mapping between models and features. * Property mapping between models and features.
@@ -36,43 +42,54 @@ class GeoJsonSubscriber implements EventSubscriberInterface
*/ */
private $featureModelProperties; private $featureModelProperties;
/**
* Repository manager.
*
* @var RepositoryManager
*/
private $repositoryManager;
/** /**
* GeoJsonSubscriber constructor. * GeoJsonSubscriber constructor.
* *
* @param array $featureModelProperties Property mapping between models and features. * @param RepositoryManager $repositoryManager Repository manager.
* @param array $featureModelProperties Property mapping between models and features.
*/ */
public function __construct(array $featureModelProperties) public function __construct(RepositoryManager $repositoryManager, array $featureModelProperties)
{ {
$this->repositoryManager = $repositoryManager;
$this->featureModelProperties = $featureModelProperties; $this->featureModelProperties = $featureModelProperties;
} }
/** /**
* {@inheritdoc} * Handle the event.
*
* @param ConvertToGeoJsonEvent $event The event.
*
* @return void
*/ */
public static function getSubscribedEvents() public function handle(ConvertToGeoJsonEvent $event)
{ {
return array( $feature = $event->getGeoJson();
ConvertToGeoJsonEvent::NAME => array( $definition = $event->getDefinition();
array('addPopup'), $model = $event->getModel();
array('enrichObjects'),
array('enrichCircle'), $this->addPopup($feature, $definition);
array('setModelData') $this->enrichObjects($feature, $definition, $model);
) $this->enrichCircle($feature, $definition);
); $this->setModelData($feature, $model);
} }
/** /**
* Add popup property for definitions with an popup. * Add popup property for definitions with an popup.
* *
* @param ConvertToGeoJsonEvent $event The subscribed event. * @param GeoJsonObject $feature The geojson feature object.
* @param LeafletDefinition $definition The definition.
* *
* @return void * @return void
*/ */
public function addPopup(ConvertToGeoJsonEvent $event) public function addPopup(GeoJsonObject $feature, LeafletDefinition $definition)
{ {
$feature = $event->getGeoJson();
$definition = $event->getDefinition();
if ($definition instanceof HasPopup && $feature instanceof Feature) { if ($definition instanceof HasPopup && $feature instanceof Feature) {
if ($definition->getPopup()) { if ($definition->getPopup()) {
$feature->setProperty('popup', $definition->getPopup()); $feature->setProperty('popup', $definition->getPopup());
@@ -91,16 +108,14 @@ class GeoJsonSubscriber implements EventSubscriberInterface
/** /**
* Enrich map object with feature data and bounds information. * Enrich map object with feature data and bounds information.
* *
* @param ConvertToGeoJsonEvent $event The subscribed event. * @param GeoJsonObject $feature The geojson feature object.
* @param LeafletDefinition $definition The definition.
* @param Model|object $model The data model.
* *
* @return void * @return void
*/ */
public function enrichObjects(ConvertToGeoJsonEvent $event) public function enrichObjects(GeoJsonObject $feature, LeafletDefinition $definition, $model)
{ {
$feature = $event->getGeoJson();
$definition = $event->getDefinition();
$model = $event->getModel();
if (($definition instanceof Marker || $definition instanceof Vector) if (($definition instanceof Marker || $definition instanceof Vector)
&& $model instanceof \Model && $feature instanceof Feature) { && $model instanceof \Model && $feature instanceof Feature) {
$this->setDataProperty($model, $feature); $this->setDataProperty($model, $feature);
@@ -111,32 +126,28 @@ class GeoJsonSubscriber implements EventSubscriberInterface
/** /**
* Enrich the the circle with constructor arguments. * Enrich the the circle with constructor arguments.
* *
* @param ConvertToGeoJsonEvent $event The subscribed events. * @param GeoJsonObject $feature The geojson feature object.
* @param LeafletDefinition $definition The definition.
* *
* @return void * @return void
*/ */
public function enrichCircle(ConvertToGeoJsonEvent $event) public function enrichCircle(GeoJsonObject $feature, LeafletDefinition $definition)
{ {
$feature = $event->getGeoJson();
$definition = $event->getDefinition();
if ($definition instanceof Circle && !$definition instanceof CircleMarker && $feature instanceof Feature) { if ($definition instanceof Circle && !$definition instanceof CircleMarker && $feature instanceof Feature) {
$feature->setProperty('arguments', array($definition->getLatLng(), $definition->getRadius())); $feature->setProperty('arguments', [$definition->getLatLng(), $definition->getRadius()]);
} }
} }
/** /**
* Pass configured properties on an model to the properties.model key. * Pass configured properties on an model to the properties.model key.
* *
* @param ConvertToGeoJsonEvent $event The subscribed events. * @param GeoJsonObject $feature The geojson feature object.
* @param Model|object $model The data model.
* *
* @return void * @return void
*/ */
public function setModelData(ConvertToGeoJsonEvent $event) public function setModelData(GeoJsonObject $feature, $model)
{ {
$feature = $event->getGeoJson();
$model = $event->getModel();
if (!$model instanceof \Model || !$feature instanceof Feature if (!$model instanceof \Model || !$feature instanceof Feature
|| empty($this->featureModelProperties[$model->getTable()])) { || empty($this->featureModelProperties[$model->getTable()])) {
return; return;
@@ -176,17 +187,19 @@ class GeoJsonSubscriber implements EventSubscriberInterface
break; break;
case 'file': case 'file':
$file = \FilesModel::findByUuid($value); $repository = $this->repositoryManager->getRepository(FilesModel::class);
$value = $file->path; $file = $repository->findByUuid($value);
$value = $file->path;
break; break;
case 'files': case 'files':
$collection = \FilesModel::findMultipleByUuids(deserialize($value, true)); $repository = $this->repositoryManager->getRepository(FilesModel::class);
$collection = $repository->findMultipleByUuids(deserialize($value, true));
if ($collection) { if ($collection) {
$value = $collection->fetchEach('path'); $value = $collection->fetchEach('path');
} else { } else {
$value = array(); $value = [];
} }
break; break;
@@ -213,7 +226,8 @@ class GeoJsonSubscriber implements EventSubscriberInterface
if ($model->ignoreForBounds) { if ($model->ignoreForBounds) {
$feature->setProperty('ignoreForBounds', true); $feature->setProperty('ignoreForBounds', true);
} else { } else {
$parent = LayerModel::findByPk($model->pid); $repository = $this->repositoryManager->getRepository(LayerModel::class);
$parent = $repository->find((int) $model->pid);
if ($parent && $parent->boundsMode !== 'extend') { if ($parent && $parent->boundsMode !== 'extend') {
$feature->setProperty('ignoreForBounds', true); $feature->setProperty('ignoreForBounds', true);

View File

@@ -10,7 +10,7 @@
* @filesource * @filesource
*/ */
namespace Netzmacht\Contao\Leaflet\Subscriber; namespace Netzmacht\Contao\Leaflet\Listener;
use Netzmacht\Contao\Leaflet\Event\GetHashEvent; use Netzmacht\Contao\Leaflet\Event\GetHashEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\EventDispatcher\EventSubscriberInterface;
@@ -27,12 +27,12 @@ class HashSubscriber implements EventSubscriberInterface
*/ */
public static function getSubscribedEvents() public static function getSubscribedEvents()
{ {
return array( return [
GetHashEvent::NAME => array( GetHashEvent::NAME => [
array('getModelHash'), ['getModelHash'],
array('getFallback', -100) ['getFallback', -100],
) ],
); ];
} }
/** /**

View File

@@ -18,6 +18,7 @@ use Netzmacht\Contao\Leaflet\Encoder\ContaoAssets;
use Netzmacht\Contao\Leaflet\Frontend\Assets\LibrariesConfiguration; use Netzmacht\Contao\Leaflet\Frontend\Assets\LibrariesConfiguration;
use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper; use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper;
use Netzmacht\Contao\Leaflet\Model\IconModel; use Netzmacht\Contao\Leaflet\Model\IconModel;
use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
use Netzmacht\LeafletPHP\Assets; use Netzmacht\LeafletPHP\Assets;
use Netzmacht\LeafletPHP\Definition\Type\Icon; use Netzmacht\LeafletPHP\Definition\Type\Icon;
use Netzmacht\LeafletPHP\Definition\Type\ImageIcon; use Netzmacht\LeafletPHP\Definition\Type\ImageIcon;
@@ -50,18 +51,31 @@ class LoadAssetsListener
*/ */
private $libraries; private $libraries;
/**
* Repository manager.
*
* @var RepositoryManager
*/
private $repositoryManager;
/** /**
* LoadAssetsListener constructor. * LoadAssetsListener constructor.
* *
* @param Assets $assets Assets. * @param Assets $assets Assets.
* @param DefinitionMapper $definitionMapper Definition mapper. * @param DefinitionMapper $definitionMapper Definition mapper.
* @param LibrariesConfiguration $libraries Libraries. * @param RepositoryManager $repositoryManager Repository manager.
* @param LibrariesConfiguration $libraries Libraries.
*/ */
public function __construct(Assets $assets, DefinitionMapper $definitionMapper, LibrariesConfiguration $libraries) public function __construct(
{ Assets $assets,
$this->assets = $assets; DefinitionMapper $definitionMapper,
$this->definitionMapper = $definitionMapper; RepositoryManager $repositoryManager,
$this->libraries = $libraries; LibrariesConfiguration $libraries
) {
$this->assets = $assets;
$this->definitionMapper = $definitionMapper;
$this->libraries = $libraries;
$this->repositoryManager = $repositoryManager;
} }
/** /**
@@ -76,7 +90,8 @@ class LoadAssetsListener
ContaoAssets::TYPE_FILE ContaoAssets::TYPE_FILE
); );
$collection = IconModel::findBy('active', true); $repository = $this->repositoryManager->getRepository(IconModel::class);
$collection = $repository->findBy(['active=?'], [true]);
if ($collection) { if ($collection) {
$buffer = ''; $buffer = '';
@@ -127,12 +142,12 @@ class LoadAssetsListener
$assets = $this->libraries[$library]; $assets = $this->libraries[$library];
if (!empty($assets['css'])) { if (!empty($assets['css'])) {
list ($source, $type) = (array)$assets['css']; list ($source, $type) = (array) $assets['css'];
$this->assets->addStylesheet($source, $type ?: Assets::TYPE_FILE); $this->assets->addStylesheet($source, $type ?: Assets::TYPE_FILE);
} }
if (!empty($assets['javascript'])) { if (!empty($assets['javascript'])) {
list ($source, $type) = (array)$assets['javascript']; list ($source, $type) = (array) $assets['javascript'];
$this->assets->addJavascript($source, $type ?: Assets::TYPE_FILE); $this->assets->addJavascript($source, $type ?: Assets::TYPE_FILE);
} }
} }

View File

@@ -19,13 +19,16 @@ use Netzmacht\Contao\Leaflet\Event\GetJavascriptEvent;
use Netzmacht\Contao\Leaflet\Filter\Filter; use Netzmacht\Contao\Leaflet\Filter\Filter;
use Netzmacht\Contao\Leaflet\Frontend\DataController; use Netzmacht\Contao\Leaflet\Frontend\DataController;
use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper; use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper;
use Netzmacht\Contao\Leaflet\Mapper\Request;
use Netzmacht\Contao\Leaflet\Model\LayerModel; use Netzmacht\Contao\Leaflet\Model\LayerModel;
use Netzmacht\Contao\Leaflet\Model\MapModel; use Netzmacht\Contao\Leaflet\Model\MapModel;
use Netzmacht\Contao\Leaflet\Request\Request; use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
use Netzmacht\LeafletPHP\Value\GeoJson\FeatureCollection; use Netzmacht\Contao\Toolkit\View\Template\TemplateReference;
use Netzmacht\LeafletPHP\Definition\Map; use Netzmacht\LeafletPHP\Definition\Map;
use Netzmacht\LeafletPHP\Leaflet; use Netzmacht\LeafletPHP\Leaflet;
use Netzmacht\LeafletPHP\Value\GeoJson\FeatureCollection;
use Symfony\Component\EventDispatcher\EventDispatcherInterface as EventDispatcher; use Symfony\Component\EventDispatcher\EventDispatcherInterface as EventDispatcher;
use Symfony\Component\Templating\EngineInterface as TemplateEngine;
/** /**
* Class MapProvider. * Class MapProvider.
@@ -83,18 +86,32 @@ class MapProvider
*/ */
private $dataController; private $dataController;
/**
* Repository manager.
*
* @var RepositoryManager
*/
private $repositoryManager;
/**
* Template engine.
*
* @var TemplateEngine
*/
private $templateEngine;
/** /**
* Construct. * Construct.
* *
* @param DefinitionMapper $mapper The definition mapper. * @param DefinitionMapper $mapper The definition mapper.
* @param Leaflet $leaflet The Leaflet instance. * @param Leaflet $leaflet The Leaflet instance.
* @param EventDispatcher $eventDispatcher The Contao event dispatcher. * @param EventDispatcher $eventDispatcher The Contao event dispatcher.
* @param Input $input Thw request input. * @param Input $input Thw request input.
* @param ContaoAssets $assets Assets handler. * @param ContaoAssets $assets Assets handler.
* @param Cache $cache Cache. * @param Cache $cache Cache.
* @param DataController $dataController Data controller. * @param DataController $dataController Data controller.
* * @param RepositoryManager $repositoryManager Repository manager.
* @internal param FilterFactory $filterFactory Filter factory. * @param TemplateEngine $templateEngine Template engine.
*/ */
public function __construct( public function __construct(
DefinitionMapper $mapper, DefinitionMapper $mapper,
@@ -103,15 +120,19 @@ class MapProvider
$input, $input,
ContaoAssets $assets, ContaoAssets $assets,
Cache $cache, Cache $cache,
DataController $dataController DataController $dataController,
RepositoryManager $repositoryManager,
TemplateEngine $templateEngine
) { ) {
$this->mapper = $mapper; $this->mapper = $mapper;
$this->leaflet = $leaflet; $this->leaflet = $leaflet;
$this->eventDispatcher = $eventDispatcher; $this->eventDispatcher = $eventDispatcher;
$this->input = $input; $this->input = $input;
$this->assets = $assets; $this->assets = $assets;
$this->cache = $cache; $this->cache = $cache;
$this->dataController = $dataController; $this->dataController = $dataController;
$this->repositoryManager = $repositoryManager;
$this->templateEngine = $templateEngine;
} }
/** /**
@@ -149,7 +170,8 @@ class MapProvider
*/ */
public function getModel($mapId) public function getModel($mapId)
{ {
$model = MapModel::findByIdOrAlias($mapId); $repository = $this->repositoryManager->getRepository(MapModel::class);
$model = $repository->findByIdOrAlias($mapId);
if ($model === null) { if ($model === null) {
throw new \InvalidArgumentException(sprintf('Model "%s" not found', $mapId)); throw new \InvalidArgumentException(sprintf('Model "%s" not found', $mapId));
@@ -201,8 +223,8 @@ class MapProvider
$this->cache->save( $this->cache->save(
$cacheKey, $cacheKey,
[ [
'assets' => $this->assets->toArray(), 'assets' => $this->assets->toArray(),
'javascript' => $buffer 'javascript' => $buffer,
], ],
(int) $model->cacheLifeTime (int) $model->cacheLifeTime
); );
@@ -226,7 +248,8 @@ class MapProvider
if ($layerId instanceof LayerModel) { if ($layerId instanceof LayerModel) {
$model = $layerId; $model = $layerId;
} else { } else {
$model = LayerModel::findByPK($layerId); $repository = $this->repositoryManager->getRepository(LayerModel::class);
$model = $repository->find((int) $layerId);
} }
if (!$model || !$model->active) { if (!$model || !$model->active) {
@@ -279,7 +302,7 @@ class MapProvider
throw new \RuntimeException('Bad request. Could not resolve query params'); throw new \RuntimeException('Bad request. Could not resolve query params');
} }
$data = array_combine(array('for', 'type', 'id', 'format', 'filter', 'values'), $data); $data = array_combine(['for', 'type', 'id', 'format', 'filter', 'values'], $data);
$data = array_filter($data); $data = array_filter($data);
if (empty($data['for']) || $data['for'] != $identifier) { if (empty($data['for']) || $data['for'] != $identifier) {
@@ -345,19 +368,21 @@ class MapProvider
protected function doGenerate($model, $filter, $elementId, $template, $style) protected function doGenerate($model, $filter, $elementId, $template, $style)
{ {
$definition = $this->getDefinition($model, $filter, $elementId); $definition = $this->getDefinition($model, $filter, $elementId);
$template = \Controller::getTemplate($template);
// @codingStandardsIgnoreStart - Set for the template.
$javascript = $this->leaflet->build($definition, $this->assets); $javascript = $this->leaflet->build($definition, $this->assets);
$mapId = $definition->getId(); $mapId = $definition->getId();
// @codingStandardsIgnoreEnd
ob_start(); $templateReference = new TemplateReference($template, 'html5', TemplateReference::SCOPE_FRONTEND);
include $template; $parameters = [
$content = ob_get_contents(); 'definition' => $definition,
ob_end_clean(); 'model' => $model,
'elementId' => $elementId,
'style' => $style,
'javascript' => $javascript,
'mapId' => $mapId,
];
$event = new GetJavascriptEvent($definition, $content); $content = $this->templateEngine->render($templateReference, $parameters);
$event = new GetJavascriptEvent($definition, $content);
$this->eventDispatcher->dispatch($event::NAME, $event); $this->eventDispatcher->dispatch($event::NAME, $event);
$buffer = $event->getJavascript(); $buffer = $event->getJavascript();

View File

@@ -13,7 +13,6 @@
namespace Netzmacht\Contao\Leaflet\Mapper; namespace Netzmacht\Contao\Leaflet\Mapper;
use Contao\Model; use Contao\Model;
use Netzmacht\Contao\Leaflet\Request\Request;
use Netzmacht\LeafletPHP\Definition; use Netzmacht\LeafletPHP\Definition;
/** /**
@@ -157,9 +156,9 @@ abstract class AbstractMapper implements Mapper
Request $request = null, Request $request = null,
$elementId = null $elementId = null
) { ) {
return array( return [
$this->getElementId($model, $elementId) $this->getElementId($model, $elementId),
); ];
} }
/** /**

View File

@@ -12,8 +12,6 @@
namespace Netzmacht\Contao\Leaflet\Mapper; namespace Netzmacht\Contao\Leaflet\Mapper;
use Netzmacht\Contao\Leaflet\Request\Request;
/** /**
* Class AbstractTypeMapper is the base mapper for tables containing different types of definitins. * Class AbstractTypeMapper is the base mapper for tables containing different types of definitins.
* *

View File

@@ -14,7 +14,7 @@ namespace Netzmacht\Contao\Leaflet\Mapper\Control;
use Contao\Model; use Contao\Model;
use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper; use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper;
use Netzmacht\Contao\Leaflet\Request\Request; use Netzmacht\Contao\Leaflet\Mapper\Request;
use Netzmacht\LeafletPHP\Definition; use Netzmacht\LeafletPHP\Definition;
use Netzmacht\LeafletPHP\Definition\Control\Attribution; use Netzmacht\LeafletPHP\Definition\Control\Attribution;
use Netzmacht\LeafletPHP\Definition\Map; use Netzmacht\LeafletPHP\Definition\Map;
@@ -31,7 +31,7 @@ class AttributionControlMapper extends AbstractControlMapper
* *
* @var string * @var string
*/ */
protected static $definitionClass = 'Netzmacht\LeafletPHP\Definition\Control\Attribution'; protected static $definitionClass = Attribution::class;
/** /**
* Layer type. * Layer type.

View File

@@ -12,6 +12,8 @@
namespace Netzmacht\Contao\Leaflet\Mapper\Control; namespace Netzmacht\Contao\Leaflet\Mapper\Control;
use Netzmacht\LeafletPHP\Plugins\FullScreen\FullScreenControl;
/** /**
* Class FullscreenControlMapper. * Class FullscreenControlMapper.
* *
@@ -24,7 +26,7 @@ class FullscreenControlMapper extends AbstractControlMapper
* *
* @var string * @var string
*/ */
protected static $definitionClass = 'Netzmacht\LeafletPHP\Plugins\FullScreen\FullScreenControl'; protected static $definitionClass = FullScreenControl::class;
/** /**
* Layer type. * Layer type.

View File

@@ -14,8 +14,9 @@ namespace Netzmacht\Contao\Leaflet\Mapper\Control;
use Contao\Model; use Contao\Model;
use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper; use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper;
use Netzmacht\Contao\Leaflet\Mapper\Request;
use Netzmacht\Contao\Leaflet\Model\ControlModel; use Netzmacht\Contao\Leaflet\Model\ControlModel;
use Netzmacht\Contao\Leaflet\Request\Request; use Netzmacht\LeafletPHP\Definition\Control\Layers;
/** /**
* Class LayersControlMapper maps the control model to the layers control definition. * Class LayersControlMapper maps the control model to the layers control definition.
@@ -29,7 +30,7 @@ class LayersControlMapper extends AbstractControlMapper
* *
* @var string * @var string
*/ */
protected static $definitionClass = 'Netzmacht\LeafletPHP\Definition\Control\Layers'; protected static $definitionClass = Layers::class;
/** /**
* Layer type. * Layer type.
@@ -48,8 +49,8 @@ class LayersControlMapper extends AbstractControlMapper
$elementId = null $elementId = null
) { ) {
$arguments = parent::buildConstructArguments($model, $mapper, $request, $elementId); $arguments = parent::buildConstructArguments($model, $mapper, $request, $elementId);
$arguments[1] = array(); $arguments[1] = [];
$arguments[2] = array(); $arguments[2] = [];
/** @var ControlModel $model */ /** @var ControlModel $model */
$collection = $model->findActiveLayers(); $collection = $model->findActiveLayers();

View File

@@ -14,8 +14,9 @@ namespace Netzmacht\Contao\Leaflet\Mapper\Control;
use Contao\Model; use Contao\Model;
use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper; use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper;
use Netzmacht\Contao\Leaflet\Mapper\Request;
use Netzmacht\Contao\Leaflet\Model\ControlModel; use Netzmacht\Contao\Leaflet\Model\ControlModel;
use Netzmacht\Contao\Leaflet\Request\Request; use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
use Netzmacht\LeafletPHP\Definition; use Netzmacht\LeafletPHP\Definition;
use Netzmacht\LeafletPHP\Definition\Control\Zoom; use Netzmacht\LeafletPHP\Definition\Control\Zoom;
use Netzmacht\LeafletPHP\Plugins\Loading\LoadingControl; use Netzmacht\LeafletPHP\Plugins\Loading\LoadingControl;
@@ -35,16 +36,35 @@ class LoadingControlMapper extends AbstractControlMapper
*/ */
protected static $type = 'loading'; protected static $type = 'loading';
/**
* Repository manager.
*
* @var RepositoryManager
*/
private $repositoryManager;
/**
* Construct.
*
* @param RepositoryManager $repositoryManager Repository manager.
*/
public function __construct(RepositoryManager $repositoryManager)
{
$this->repositoryManager = $repositoryManager;
parent::__construct();
}
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
protected function getClassName(Model $model, DefinitionMapper $mapper, Request $request = null) protected function getClassName(Model $model, DefinitionMapper $mapper, Request $request = null)
{ {
if ($model->spinjs) { if ($model->spinjs) {
return 'Netzmacht\LeafletPHP\Plugins\Loading\SpinJsLoadingControl'; return SpinJsLoadingControl::class;
} }
return 'Netzmacht\LeafletPHP\Plugins\Loading\LoadingControl'; return LoadingControl::class;
} }
/** /**
@@ -79,9 +99,10 @@ class LoadingControlMapper extends AbstractControlMapper
if ($definition instanceof LoadingControl && !$definition->isSeparate() && $model->zoomControl) { if ($definition instanceof LoadingControl && !$definition->isSeparate() && $model->zoomControl) {
// Only assign if zoom control is activated and part of the map. // Only assign if zoom control is activated and part of the map.
$control = ControlModel::findOneBy( $repository = $this->repositoryManager->getRepository(ControlModel::class);
array('active=1', 'type=?', 'pid=?', 'id=?'), $control = $repository->findOneBy(
array('zoom', $model->pid, $model->zoomControl) ['active=1', 'type=?', 'pid=?', 'id=?'],
['zoom', $model->pid, $model->zoomControl]
); );
if ($control) { if ($control) {

View File

@@ -12,6 +12,8 @@
namespace Netzmacht\Contao\Leaflet\Mapper\Control; namespace Netzmacht\Contao\Leaflet\Mapper\Control;
use Netzmacht\LeafletPHP\Definition\Control\Scale;
/** /**
* Class ScaleControlMapper maps the database item of the type "scale" to the scale control. * Class ScaleControlMapper maps the database item of the type "scale" to the scale control.
* *
@@ -24,7 +26,7 @@ class ScaleControlMapper extends AbstractControlMapper
* *
* @var string * @var string
*/ */
protected static $definitionClass = 'Netzmacht\LeafletPHP\Definition\Control\Scale'; protected static $definitionClass = Scale::class;
/** /**
* Layer type. * Layer type.

View File

@@ -12,6 +12,8 @@
namespace Netzmacht\Contao\Leaflet\Mapper\Control; namespace Netzmacht\Contao\Leaflet\Mapper\Control;
use Netzmacht\LeafletPHP\Definition\Control\Zoom;
/** /**
* Class ZoomControlMapper maps the zoom database definition to the zoom control. * Class ZoomControlMapper maps the zoom database definition to the zoom control.
* *
@@ -24,7 +26,7 @@ class ZoomControlMapper extends AbstractControlMapper
* *
* @var string * @var string
*/ */
protected static $definitionClass = 'Netzmacht\LeafletPHP\Definition\Control\Zoom'; protected static $definitionClass = Zoom::class;
/** /**
* Layer type. * Layer type.

View File

@@ -15,7 +15,6 @@ namespace Netzmacht\Contao\Leaflet\Mapper;
use Netzmacht\Contao\Leaflet\Event\BuildDefinitionEvent; use Netzmacht\Contao\Leaflet\Event\BuildDefinitionEvent;
use Netzmacht\Contao\Leaflet\Event\ConvertToGeoJsonEvent; use Netzmacht\Contao\Leaflet\Event\ConvertToGeoJsonEvent;
use Netzmacht\Contao\Leaflet\Event\GetHashEvent; use Netzmacht\Contao\Leaflet\Event\GetHashEvent;
use Netzmacht\Contao\Leaflet\Request\Request;
use Netzmacht\LeafletPHP\Definition; use Netzmacht\LeafletPHP\Definition;
use Netzmacht\LeafletPHP\Value\GeoJson\ConvertsToGeoJsonFeature; use Netzmacht\LeafletPHP\Value\GeoJson\ConvertsToGeoJsonFeature;
use Netzmacht\LeafletPHP\Value\GeoJson\Feature; use Netzmacht\LeafletPHP\Value\GeoJson\Feature;
@@ -35,7 +34,7 @@ class DefinitionMapper
* *
* @var Mapper[][] * @var Mapper[][]
*/ */
private $mappers = array(); private $mappers = [];
/** /**
* The event dispatcher. * The event dispatcher.
@@ -49,7 +48,7 @@ class DefinitionMapper
* *
* @var array * @var array
*/ */
private $mapped = array(); private $mapped = [];
/** /**
* Construct. * Construct.
@@ -85,7 +84,7 @@ class DefinitionMapper
*/ */
public function reset() public function reset()
{ {
$this->mapped = array(); $this->mapped = [];
return $this; return $this;
} }

View File

@@ -13,7 +13,6 @@
namespace Netzmacht\Contao\Leaflet\Mapper; namespace Netzmacht\Contao\Leaflet\Mapper;
use Contao\Model; use Contao\Model;
use Netzmacht\Contao\Leaflet\Request\Request;
use Netzmacht\LeafletPHP\Value\GeoJson\GeoJsonFeature; use Netzmacht\LeafletPHP\Value\GeoJson\GeoJsonFeature;
/** /**

View File

@@ -0,0 +1,171 @@
<?php
/**
* Leaflet maps for Contao CMS.
*
* @package contao-leaflet-maps
* @author David Molineus <david.molineus@netzmacht.de>
* @copyright 2014-2017 netzmacht David Molineus. All rights reserved.
* @license LGPL-3.0 https://github.com/netzmacht/contao-leaflet-maps/blob/master/LICENSE
* @filesource
*/
declare(strict_types=1);
namespace Netzmacht\Contao\Leaflet\Mapper\Layer;
use Contao\FilesModel;
use Contao\Model;
use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper;
use Netzmacht\Contao\Leaflet\Mapper\Request;
use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
use Netzmacht\JavascriptBuilder\Type\Expression;
use Netzmacht\LeafletPHP\Definition;
use Netzmacht\LeafletPHP\Definition\Group\FeatureGroup;
use Netzmacht\LeafletPHP\Definition\Group\GeoJson;
use Netzmacht\LeafletPHP\Plugins\Omnivore\GeoJson as OmnivoreGeoJson;
use Netzmacht\LeafletPHP\Plugins\Omnivore\Gpx;
use Netzmacht\LeafletPHP\Plugins\Omnivore\Kml;
use Netzmacht\LeafletPHP\Plugins\Omnivore\OmnivoreLayer;
use Netzmacht\LeafletPHP\Plugins\Omnivore\TopoJson;
use Netzmacht\LeafletPHP\Plugins\Omnivore\Wkt;
/**
* Class FileLayerMapper.
*
* @package Netzmacht\Contao\Leaflet\Mapper\Layer
*/
class FileLayerMapper extends AbstractLayerMapper
{
/**
* The definition type.
*
* @var string
*/
protected static $type = 'file';
/**
* Class of the model being build.
*
* @var string
*/
protected static $definitionClass = FeatureGroup::class;
/**
* Repository manager.
*
* @var RepositoryManager
*/
private $repositoryManager;
/**
* Construct.
*
* @param RepositoryManager $repositoryManager Repository manager.
*/
public function __construct(RepositoryManager $repositoryManager)
{
$this->repositoryManager = $repositoryManager;
parent::__construct();
}
/**
* {@inheritDoc}
*/
public function handle(
$model,
DefinitionMapper $mapper,
Request $request = null,
$elementId = null,
Definition $parent = null
) {
$repository = $this->repositoryManager->getRepository(FilesModel::class);
$fileModel = $repository->findByPk($model->file);
$definition = $this->createInstance($model, $mapper, $request, $elementId, $fileModel);
$this->optionsBuilder->build($definition, $model);
$this->build($definition, $model, $mapper, $request, $parent);
return $definition;
}
/**
* {@inheritDoc}
*/
protected function createInstance(
Model $model,
DefinitionMapper $mapper,
Request $request = null,
$elementId = null,
FilesModel $fileModel = null
) {
$layerId = $this->getElementId($model, $elementId);
if ($fileModel instanceof FilesModel && $fileModel->type === 'file') {
switch ($model->fileFormat) {
case 'gpx':
$layer = new Gpx($layerId, $fileModel->path);
break;
case 'kml':
$layer = new Kml($layerId, $fileModel->path);
break;
case 'wkt':
$layer = new Wkt($layerId, $fileModel->path);
break;
case 'geojson':
$layer = new OmnivoreGeoJson($layerId, $fileModel->path);
break;
case 'topojson':
$layer = new TopoJson($layerId, $fileModel->path);
break;
default:
return parent::createInstance($model, $mapper, $request, $elementId);
}
$customId = $layerId . '_data';
$customLayer = new GeoJson($customId);
$layer->setCustomLayer($customLayer);
return $layer;
}
return parent::createInstance($model, $mapper, $request, $elementId);
}
/**
* {@inheritDoc}
*/
protected function build(
Definition $definition,
Model $model,
DefinitionMapper $mapper,
Request $request = null,
Definition $parent = null
) {
if (!$definition instanceof OmnivoreLayer) {
return;
}
$customLayer = $definition->getCustomLayer();
if ($customLayer instanceof GeoJson) {
if ($model->boundsMode) {
$customLayer->setOption('boundsMode', $model->boundsMode);
}
if ($model->pointToLayer) {
$customLayer->setPointToLayer(new Expression($model->pointToLayer));
}
if ($model->onEachFeature) {
$customLayer->setOnEachFeature(new Expression($model->onEachFeature));
}
}
}
}

View File

@@ -14,9 +14,11 @@ namespace Netzmacht\Contao\Leaflet\Mapper\Layer;
use Contao\Model; use Contao\Model;
use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper; use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper;
use Netzmacht\Contao\Leaflet\Mapper\Request;
use Netzmacht\Contao\Leaflet\Model\LayerModel; use Netzmacht\Contao\Leaflet\Model\LayerModel;
use Netzmacht\Contao\Leaflet\Request\Request; use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
use Netzmacht\LeafletPHP\Definition; use Netzmacht\LeafletPHP\Definition;
use Netzmacht\LeafletPHP\Definition\Group\FeatureGroup;
use Netzmacht\LeafletPHP\Definition\Group\LayerGroup; use Netzmacht\LeafletPHP\Definition\Group\LayerGroup;
use Netzmacht\LeafletPHP\Definition\Layer; use Netzmacht\LeafletPHP\Definition\Layer;
@@ -34,16 +36,35 @@ class GroupLayerMapper extends AbstractLayerMapper
*/ */
protected static $type = 'group'; protected static $type = 'group';
/**
* Repository manager.
*
* @var RepositoryManager
*/
private $repositoryManager;
/**
* Construct.
*
* @param RepositoryManager $repositoryManager Repository manager.
*/
public function __construct(RepositoryManager $repositoryManager)
{
$this->repositoryManager = $repositoryManager;
parent::__construct();
}
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
protected function getClassName(Model $model, DefinitionMapper $mapper, Request $request = null) protected function getClassName(Model $model, DefinitionMapper $mapper, Request $request = null)
{ {
if ($model->groupType === 'feature') { if ($model->groupType === 'feature') {
return 'Netzmacht\LeafletPHP\Definition\Group\FeatureGroup'; return FeatureGroup::class;
} }
return 'Netzmacht\LeafletPHP\Definition\Group\LayerGroup'; return LayerGroup::class;
} }
/** /**
@@ -60,10 +81,11 @@ class GroupLayerMapper extends AbstractLayerMapper
return; return;
} }
$collection = LayerModel::findBy( $repository = $this->repositoryManager->getRepository(LayerModel::class);
array('pid=?', 'active=1'), $collection = $repository->findBy(
array($model->id), ['pid=?', 'active=1'],
array('order' => 'sorting') [$model->id],
['order' => 'sorting']
); );
if ($collection) { if ($collection) {

View File

@@ -15,8 +15,9 @@ namespace Netzmacht\Contao\Leaflet\Mapper\Layer;
use Contao\Model; use Contao\Model;
use Netzmacht\Contao\Leaflet\Encoder\ContaoAssets; use Netzmacht\Contao\Leaflet\Encoder\ContaoAssets;
use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper; use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper;
use Netzmacht\Contao\Leaflet\Mapper\Request;
use Netzmacht\Contao\Leaflet\Model\LayerModel; use Netzmacht\Contao\Leaflet\Model\LayerModel;
use Netzmacht\Contao\Leaflet\Request\Request; use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
use Netzmacht\JavascriptBuilder\Type\AnonymousFunction; use Netzmacht\JavascriptBuilder\Type\AnonymousFunction;
use Netzmacht\JavascriptBuilder\Type\Expression; use Netzmacht\JavascriptBuilder\Type\Expression;
use Netzmacht\LeafletPHP\Definition; use Netzmacht\LeafletPHP\Definition;
@@ -36,7 +37,7 @@ class MarkerClusterLayerMapper extends AbstractLayerMapper
* *
* @var string * @var string
*/ */
protected static $definitionClass = 'Netzmacht\LeafletPHP\Plugins\MarkerCluster\MarkerClusterGroup'; protected static $definitionClass = MarkerClusterGroup::class;
/** /**
* Layer type. * Layer type.
@@ -53,15 +54,24 @@ class MarkerClusterLayerMapper extends AbstractLayerMapper
private $assets; private $assets;
/** /**
* MarkerClusterLayerMapper constructor. * Repository manager.
* *
* @param ContaoAssets $assets Assets manager. * @var RepositoryManager
*/ */
public function __construct(ContaoAssets $assets) private $repositoryManager;
{
parent::__construct();
$this->assets = $assets; /**
* Construct.
*
* @param ContaoAssets $assets Assets manager.
* @param RepositoryManager $repositoryManager Repository manager.
*/
public function __construct(ContaoAssets $assets, RepositoryManager $repositoryManager)
{
$this->repositoryManager = $repositoryManager;
$this->assets = $assets;
parent::__construct();
} }
/** /**
@@ -107,10 +117,11 @@ class MarkerClusterLayerMapper extends AbstractLayerMapper
$this->assets->addStylesheet('assets/leaflet/libs/leaflet-markercluster/MarkerCluster.Default.css'); $this->assets->addStylesheet('assets/leaflet/libs/leaflet-markercluster/MarkerCluster.Default.css');
} }
$collection = LayerModel::findBy( $repository = $this->repositoryManager->getRepository(LayerModel::class);
array('pid=?', 'active=1'), $collection = $repository->findBy(
array($model->id), ['pid=?', 'active=1'],
array('order' => 'sorting') [$model->id],
['order' => 'sorting']
); );
if ($collection) { if ($collection) {

View File

@@ -13,15 +13,17 @@
namespace Netzmacht\Contao\Leaflet\Mapper\Layer; namespace Netzmacht\Contao\Leaflet\Mapper\Layer;
use Contao\Model; use Contao\Model;
use Netzmacht\Contao\Leaflet\Frontend\RequestUrl;
use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper; use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper;
use Netzmacht\Contao\Leaflet\Mapper\GeoJsonMapper; use Netzmacht\Contao\Leaflet\Mapper\GeoJsonMapper;
use Netzmacht\Contao\Leaflet\Mapper\Request;
use Netzmacht\Contao\Leaflet\Model\MarkerModel; use Netzmacht\Contao\Leaflet\Model\MarkerModel;
use Netzmacht\Contao\Leaflet\Frontend\RequestUrl; use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
use Netzmacht\Contao\Leaflet\Request\Request;
use Netzmacht\JavascriptBuilder\Type\Expression; use Netzmacht\JavascriptBuilder\Type\Expression;
use Netzmacht\LeafletPHP\Definition; use Netzmacht\LeafletPHP\Definition;
use Netzmacht\LeafletPHP\Value\GeoJson\FeatureCollection;
use Netzmacht\LeafletPHP\Definition\Group\GeoJson; use Netzmacht\LeafletPHP\Definition\Group\GeoJson;
use Netzmacht\LeafletPHP\Plugins\Omnivore\GeoJson as OmnivoreGeoJson;
use Netzmacht\LeafletPHP\Value\GeoJson\FeatureCollection;
/** /**
* Class MarkersLayerMapper maps the layer model to the markers definition. * Class MarkersLayerMapper maps the layer model to the markers definition.
@@ -37,16 +39,35 @@ class MarkersLayerMapper extends AbstractLayerMapper implements GeoJsonMapper
*/ */
protected static $type = 'markers'; protected static $type = 'markers';
/**
* Repository manager.
*
* @var RepositoryManager
*/
private $repositoryManager;
/**
* Construct.
*
* @param RepositoryManager $repositoryManager Repository manager.
*/
public function __construct(RepositoryManager $repositoryManager)
{
$this->repositoryManager = $repositoryManager;
parent::__construct();
}
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
protected function getClassName(Model $model, DefinitionMapper $mapper, Request $request = null) protected function getClassName(Model $model, DefinitionMapper $mapper, Request $request = null)
{ {
if ($model->deferred) { if ($model->deferred) {
return 'Netzmacht\LeafletPHP\Plugins\Omnivore\GeoJson'; return OmnivoreGeoJson::class;
} }
return 'Netzmacht\LeafletPHP\Definition\Group\GeoJson'; return GeoJson::class;
} }
/** /**
@@ -70,18 +91,18 @@ class MarkersLayerMapper extends AbstractLayerMapper implements GeoJsonMapper
$layer->setOption('boundsMode', $model->boundsMode); $layer->setOption('boundsMode', $model->boundsMode);
} }
return array( return [
$this->getElementId($model, $elementId), $this->getElementId($model, $elementId),
RequestUrl::create($model->id, null, null, $request), RequestUrl::create($model->id, null, null, $request),
array(), [],
$layer $layer,
); ];
} }
return array( return [
$this->getElementId($model, $elementId), $this->getElementId($model, $elementId),
RequestUrl::create($model->id, null, null, $request) RequestUrl::create($model->id, null, null, $request),
); ];
} }
return parent::buildConstructArguments($model, $mapper, $request, $elementId); return parent::buildConstructArguments($model, $mapper, $request, $elementId);
@@ -153,10 +174,12 @@ class MarkersLayerMapper extends AbstractLayerMapper implements GeoJsonMapper
*/ */
protected function loadMarkerModels(Model $model, Request $request = null) protected function loadMarkerModels(Model $model, Request $request = null)
{ {
$repository = $this->repositoryManager->getRepository(MarkerModel::class);
if ($model->boundsMode == 'fit') { if ($model->boundsMode == 'fit') {
return MarkerModel::findByFilter($model->id, $request->getFilter()); return $repository->findByFilter($model->id, $request->getFilter());
} }
return MarkerModel::findByFilter($model->id); return $repository->findByFilter($model->id);
} }
} }

View File

@@ -15,8 +15,9 @@ namespace Netzmacht\Contao\Leaflet\Mapper\Layer;
use Contao\Model; use Contao\Model;
use Netzmacht\Contao\Leaflet\Definition\Layer\OverpassLayer; use Netzmacht\Contao\Leaflet\Definition\Layer\OverpassLayer;
use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper; use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper;
use Netzmacht\Contao\Leaflet\Mapper\Request;
use Netzmacht\Contao\Leaflet\Model\IconModel; use Netzmacht\Contao\Leaflet\Model\IconModel;
use Netzmacht\Contao\Leaflet\Request\Request; use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
use Netzmacht\JavascriptBuilder\Type\Expression; use Netzmacht\JavascriptBuilder\Type\Expression;
use Netzmacht\LeafletPHP\Definition; use Netzmacht\LeafletPHP\Definition;
@@ -41,6 +42,25 @@ class OverpassLayerMapper extends AbstractLayerMapper
*/ */
protected static $definitionClass = OverpassLayer::class; protected static $definitionClass = OverpassLayer::class;
/**
* Repository manager.
*
* @var RepositoryManager
*/
private $repositoryManager;
/**
* Construct.
*
* @param RepositoryManager $repositoryManager Repository manager.
*/
public function __construct(RepositoryManager $repositoryManager)
{
$this->repositoryManager = $repositoryManager;
parent::__construct();
}
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
@@ -97,7 +117,8 @@ class OverpassLayerMapper extends AbstractLayerMapper
$amenityIconsMap = $this->filterAmenityIconsConfig($model->amenityIcons); $amenityIconsMap = $this->filterAmenityIconsConfig($model->amenityIcons);
if ($amenityIconsMap) { if ($amenityIconsMap) {
$collection = IconModel::findMultipleByIds(array_unique($amenityIconsMap)); $repository = $this->repositoryManager->getRepository(IconModel::class);
$collection = $repository->findMultipleByIds(array_unique($amenityIconsMap));
$icons = []; $icons = [];
if ($collection) { if ($collection) {

View File

@@ -15,8 +15,9 @@ namespace Netzmacht\Contao\Leaflet\Mapper\Layer;
use Contao\Model; use Contao\Model;
use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper; use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper;
use Netzmacht\Contao\Leaflet\Mapper\OptionsBuilder; use Netzmacht\Contao\Leaflet\Mapper\OptionsBuilder;
use Netzmacht\Contao\Leaflet\Request\Request; use Netzmacht\Contao\Leaflet\Mapper\Request;
use Netzmacht\LeafletPHP\Definition; use Netzmacht\LeafletPHP\Definition;
use Netzmacht\LeafletPHP\Plugins\LeafletProviders\Provider;
/** /**
* Class ProviderLayerMapper maps the layer model to the tile provider definition. * Class ProviderLayerMapper maps the layer model to the tile provider definition.
@@ -60,7 +61,7 @@ class ProviderLayerMapper extends AbstractLayerMapper
return $this->providers[$model->tile_provider]['class']; return $this->providers[$model->tile_provider]['class'];
} }
return 'Netzmacht\LeafletPHP\Plugins\LeafletProviders\Provider'; return Provider::class;
} }
/** /**
@@ -91,10 +92,10 @@ class ProviderLayerMapper extends AbstractLayerMapper
Request $request = null, Request $request = null,
$elementId = null $elementId = null
) { ) {
return array( return [
$model->alias ?: ('layer_' . $model->id), $model->alias ?: ('layer_' . $model->id),
$model->tile_provider, $model->tile_provider,
$model->tile_provider_variant ?: null $model->tile_provider_variant ?: null,
); ];
} }
} }

View File

@@ -13,8 +13,9 @@
namespace Netzmacht\Contao\Leaflet\Mapper\Layer; namespace Netzmacht\Contao\Leaflet\Mapper\Layer;
use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper; use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper;
use Netzmacht\Contao\Leaflet\Mapper\Request;
use Netzmacht\Contao\Leaflet\Model\LayerModel; use Netzmacht\Contao\Leaflet\Model\LayerModel;
use Netzmacht\Contao\Leaflet\Request\Request; use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
use Netzmacht\LeafletPHP\Definition; use Netzmacht\LeafletPHP\Definition;
/** /**
@@ -31,6 +32,25 @@ class ReferenceLayerMapper extends AbstractLayerMapper
*/ */
protected static $type = 'reference'; protected static $type = 'reference';
/**
* Repository manager.
*
* @var RepositoryManager
*/
private $repositoryManager;
/**
* Construct.
*
* @param RepositoryManager $repositoryManager Repository manager.
*/
public function __construct(RepositoryManager $repositoryManager)
{
$this->repositoryManager = $repositoryManager;
parent::__construct();
}
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
@@ -41,7 +61,8 @@ class ReferenceLayerMapper extends AbstractLayerMapper
$elementId = null, $elementId = null,
Definition $parent = null Definition $parent = null
) { ) {
$reference = LayerModel::findByPk($model->reference); $repository = $this->repositoryManager->getRepository(LayerModel::class);
$reference = $repository->findByPk($model->reference);
if (!$reference || !$reference->active) { if (!$reference || !$reference->active) {
return null; return null;

View File

@@ -15,7 +15,7 @@ namespace Netzmacht\Contao\Leaflet\Mapper\Layer;
use Contao\Model; use Contao\Model;
use Contao\StringUtil; use Contao\StringUtil;
use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper; use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper;
use Netzmacht\Contao\Leaflet\Request\Request; use Netzmacht\Contao\Leaflet\Mapper\Request;
use Netzmacht\LeafletPHP\Definition; use Netzmacht\LeafletPHP\Definition;
use Netzmacht\LeafletPHP\Definition\Raster\TileLayer; use Netzmacht\LeafletPHP\Definition\Raster\TileLayer;
use Netzmacht\LeafletPHP\Value\LatLngBounds; use Netzmacht\LeafletPHP\Value\LatLngBounds;
@@ -32,7 +32,7 @@ class TileLayerMapper extends AbstractLayerMapper
* *
* @var string * @var string
*/ */
protected static $definitionClass = 'Netzmacht\LeafletPHP\Definition\Raster\TileLayer'; protected static $definitionClass = TileLayer::class;
/** /**
* The layer type. * The layer type.

View File

@@ -14,15 +14,17 @@ namespace Netzmacht\Contao\Leaflet\Mapper\Layer;
use Contao\Model; use Contao\Model;
use Contao\Model\Collection; use Contao\Model\Collection;
use Netzmacht\Contao\Leaflet\Frontend\RequestUrl;
use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper; use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper;
use Netzmacht\Contao\Leaflet\Mapper\GeoJsonMapper; use Netzmacht\Contao\Leaflet\Mapper\GeoJsonMapper;
use Netzmacht\Contao\Leaflet\Mapper\Request;
use Netzmacht\Contao\Leaflet\Model\VectorModel; use Netzmacht\Contao\Leaflet\Model\VectorModel;
use Netzmacht\Contao\Leaflet\Frontend\RequestUrl; use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
use Netzmacht\Contao\Leaflet\Request\Request;
use Netzmacht\JavascriptBuilder\Type\Expression; use Netzmacht\JavascriptBuilder\Type\Expression;
use Netzmacht\LeafletPHP\Definition; use Netzmacht\LeafletPHP\Definition;
use Netzmacht\LeafletPHP\Value\GeoJson\FeatureCollection;
use Netzmacht\LeafletPHP\Definition\Group\GeoJson; use Netzmacht\LeafletPHP\Definition\Group\GeoJson;
use Netzmacht\LeafletPHP\Plugins\Omnivore\GeoJson as OmnivoreGeoJson;
use Netzmacht\LeafletPHP\Value\GeoJson\FeatureCollection;
/** /**
* Class VectorsLayerMapper maps the layer model for the Vectors layer definition. * Class VectorsLayerMapper maps the layer model for the Vectors layer definition.
@@ -38,16 +40,35 @@ class VectorsLayerMapper extends AbstractLayerMapper implements GeoJsonMapper
*/ */
protected static $type = 'vectors'; protected static $type = 'vectors';
/**
* Repository manager.
*
* @var RepositoryManager
*/
private $repositoryManager;
/**
* Construct.
*
* @param RepositoryManager $repositoryManager Repository manager.
*/
public function __construct(RepositoryManager $repositoryManager)
{
$this->repositoryManager = $repositoryManager;
parent::__construct();
}
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
protected function getClassName(Model $model, DefinitionMapper $mapper, Request $request = null) protected function getClassName(Model $model, DefinitionMapper $mapper, Request $request = null)
{ {
if ($model->deferred) { if ($model->deferred) {
return 'Netzmacht\LeafletPHP\Plugins\Omnivore\GeoJson'; return OmnivoreGeoJson::class;
} }
return 'Netzmacht\LeafletPHP\Definition\Group\GeoJson'; return GeoJson::class;
} }
/** /**
@@ -60,7 +81,7 @@ class VectorsLayerMapper extends AbstractLayerMapper implements GeoJsonMapper
$elementId = null $elementId = null
) { ) {
if ($model->deferred) { if ($model->deferred) {
$options = array(); $options = [];
if ($model->pointToLayer) { if ($model->pointToLayer) {
$options['pointToLayer'] = new Expression($model->pointToLayer); $options['pointToLayer'] = new Expression($model->pointToLayer);
@@ -78,18 +99,18 @@ class VectorsLayerMapper extends AbstractLayerMapper implements GeoJsonMapper
$layer = new GeoJson($this->getElementId($model, $elementId)); $layer = new GeoJson($this->getElementId($model, $elementId));
$layer->setOptions($options); $layer->setOptions($options);
return array( return [
$this->getElementId($model, $elementId), $this->getElementId($model, $elementId),
RequestUrl::create($model->id, null, null, $request), RequestUrl::create($model->id, null, null, $request),
array(), [],
$layer $layer,
); ];
} }
return array( return [
$this->getElementId($model, $elementId), $this->getElementId($model, $elementId),
RequestUrl::create($model->id, null, null, $request) RequestUrl::create($model->id, null, null, $request),
); ];
} }
return parent::buildConstructArguments($model, $mapper, $request, $elementId); return parent::buildConstructArguments($model, $mapper, $request, $elementId);
@@ -158,7 +179,9 @@ class VectorsLayerMapper extends AbstractLayerMapper implements GeoJsonMapper
*/ */
protected function loadVectorModels(Model $model) protected function loadVectorModels(Model $model)
{ {
return VectorModel::findActiveBy('pid', $model->id, ['order' => 'sorting']); $repository = $this->repositoryManager->getRepository(VectorModel::class);
return $repository->findActiveBy(['pid=?'], [$model->id], ['order' => 'sorting']);
} }
/** /**

View File

@@ -15,7 +15,7 @@ namespace Netzmacht\Contao\Leaflet\Mapper;
use Contao\Model; use Contao\Model;
use Netzmacht\Contao\Leaflet\Model\ControlModel; use Netzmacht\Contao\Leaflet\Model\ControlModel;
use Netzmacht\Contao\Leaflet\Model\MapModel; use Netzmacht\Contao\Leaflet\Model\MapModel;
use Netzmacht\Contao\Leaflet\Request\Request; use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
use Netzmacht\LeafletPHP\Definition; use Netzmacht\LeafletPHP\Definition;
use Netzmacht\LeafletPHP\Definition\Control; use Netzmacht\LeafletPHP\Definition\Control;
use Netzmacht\LeafletPHP\Definition\Layer; use Netzmacht\LeafletPHP\Definition\Layer;
@@ -40,7 +40,26 @@ class MapMapper extends AbstractMapper
* *
* @var string * @var string
*/ */
protected static $definitionClass = 'Netzmacht\LeafletPHP\Definition\Map'; protected static $definitionClass = Map::class;
/**
* Repository manager.
*
* @var RepositoryManager
*/
private $repositoryManager;
/**
* Construct.
*
* @param RepositoryManager $repositoryManager Repository manager.
*/
public function __construct(RepositoryManager $repositoryManager)
{
$this->repositoryManager = $repositoryManager;
parent::__construct();
}
/** /**
* {@inheritdoc} * {@inheritdoc}
@@ -51,8 +70,8 @@ class MapMapper extends AbstractMapper
->addOptions('center', 'zoom', 'zoomControl') ->addOptions('center', 'zoom', 'zoomControl')
->addOptions('dragging', 'touchZoom', 'scrollWheelZoom', 'doubleClickZoom', 'boxZoom', 'tap', 'keyboard') ->addOptions('dragging', 'touchZoom', 'scrollWheelZoom', 'doubleClickZoom', 'boxZoom', 'tap', 'keyboard')
->addOptions('trackResize', 'closeOnClick', 'bounceAtZoomLimits') ->addOptions('trackResize', 'closeOnClick', 'bounceAtZoomLimits')
->addConditionalOptions('adjustZoomExtra', array('minZoom', 'maxZoom', 'zoomSnap', 'zoomDelta')) ->addConditionalOptions('adjustZoomExtra', ['minZoom', 'maxZoom', 'zoomSnap', 'zoomDelta'])
->addConditionalOptions('keyboard', array('keyboardPanOffset', 'keyboardZoomOffset')); ->addConditionalOptions('keyboard', ['keyboardPanOffset', 'keyboardZoomOffset']);
} }
/** /**
@@ -83,10 +102,10 @@ class MapMapper extends AbstractMapper
Request $request = null, Request $request = null,
$elementId = null $elementId = null
) { ) {
return array( return [
$this->getElementId($model, $elementId), $this->getElementId($model, $elementId),
$this->getElementId($model, $elementId) $this->getElementId($model, $elementId),
); ];
} }
/** /**
@@ -122,7 +141,8 @@ class MapMapper extends AbstractMapper
*/ */
private function buildControls(Map $map, MapModel $model, DefinitionMapper $mapper, Request $request = null) private function buildControls(Map $map, MapModel $model, DefinitionMapper $mapper, Request $request = null)
{ {
$collection = ControlModel::findActiveBy('pid', $model->id, array('order' => 'sorting')); $repository = $this->repositoryManager->getRepository(ControlModel::class);
$collection = $repository->findActiveBy(['pid=?'], [$model->id], ['order' => 'sorting']);
if (!$collection) { if (!$collection) {
return; return;
@@ -208,13 +228,13 @@ class MapMapper extends AbstractMapper
private function buildLocate(Map $map, MapModel $model) private function buildLocate(Map $map, MapModel $model)
{ {
if ($model->locate) { if ($model->locate) {
$options = array(); $options = [];
$mapping = array( $mapping = [
'setView' => 'locateSetView', 'setView' => 'locateSetView',
'watch' => 'locateWatch', 'watch' => 'locateWatch',
'enableHighAccuracy' => 'enableHighAccuracy', 'enableHighAccuracy' => 'enableHighAccuracy',
); ];
foreach ($mapping as $option => $property) { foreach ($mapping as $option => $property) {
if ($model->$property) { if ($model->$property) {
@@ -222,11 +242,11 @@ class MapMapper extends AbstractMapper
} }
} }
$mapping = array( $mapping = [
'maxZoom' => 'locateMaxZoom', 'maxZoom' => 'locateMaxZoom',
'timeout' => 'locateTimeout', 'timeout' => 'locateTimeout',
'maximumAge' => 'locateMaximumAge', 'maximumAge' => 'locateMaximumAge',
); ];
foreach ($mapping as $option => $property) { foreach ($mapping as $option => $property) {
if ($model->$property) { if ($model->$property) {

View File

@@ -13,7 +13,6 @@
namespace Netzmacht\Contao\Leaflet\Mapper; namespace Netzmacht\Contao\Leaflet\Mapper;
use Contao\Model; use Contao\Model;
use Netzmacht\Contao\Leaflet\Request\Request;
use Netzmacht\LeafletPHP\Definition; use Netzmacht\LeafletPHP\Definition;
/** /**

View File

@@ -9,6 +9,7 @@
* @license LGPL-3.0 https://github.com/netzmacht/contao-leaflet-maps/blob/master/LICENSE * @license LGPL-3.0 https://github.com/netzmacht/contao-leaflet-maps/blob/master/LICENSE
* @filesource * @filesource
*/ */
namespace Netzmacht\Contao\Leaflet\Mapper; namespace Netzmacht\Contao\Leaflet\Mapper;
use Contao\Model; use Contao\Model;
@@ -30,14 +31,14 @@ class OptionsBuilder
* *
* @var array * @var array
*/ */
private $options = array(); private $options = [];
/** /**
* Conditional option mapping. * Conditional option mapping.
* *
* @var array * @var array
*/ */
private $conditional = array(); private $conditional = [];
/** /**
* Add a option mapping. * Add a option mapping.
@@ -253,7 +254,7 @@ class OptionsBuilder
*/ */
private static function getDefaultOption($option, $definition) private static function getDefaultOption($option, $definition)
{ {
$keys = array('has', 'is', 'get'); $keys = ['has', 'is', 'get'];
$suffix = ucfirst($option); $suffix = ucfirst($option);
foreach ($keys as $key) { foreach ($keys as $key) {

View File

@@ -12,7 +12,7 @@
declare(strict_types=1); declare(strict_types=1);
namespace Netzmacht\Contao\Leaflet\Request; namespace Netzmacht\Contao\Leaflet\Mapper;
use Netzmacht\Contao\Leaflet\Filter\Filter; use Netzmacht\Contao\Leaflet\Filter\Filter;

View File

@@ -48,7 +48,7 @@ class FixedStyleMapper extends AbstractStyleMapper
->addConditionalOption('lineCap') ->addConditionalOption('lineCap')
->addConditionalOption('lineJoin') ->addConditionalOption('lineJoin')
->addConditionalOption('dashArray') ->addConditionalOption('dashArray')
->addConditionalOptions('fill', array('fillColor', 'fillOpacity')) ->addConditionalOptions('fill', ['fillColor', 'fillOpacity'])
->addOption('fill'); ->addOption('fill');
} }
} }

View File

@@ -14,7 +14,7 @@ namespace Netzmacht\Contao\Leaflet\Mapper\Type;
use Contao\Model; use Contao\Model;
use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper; use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper;
use Netzmacht\Contao\Leaflet\Request\Request; use Netzmacht\Contao\Leaflet\Mapper\Request;
use Netzmacht\LeafletPHP\Definition; use Netzmacht\LeafletPHP\Definition;
use Netzmacht\LeafletPHP\Definition\Type\DivIcon; use Netzmacht\LeafletPHP\Definition\Type\DivIcon;
@@ -30,7 +30,7 @@ class DivIconMapper extends AbstractIconMapper
* *
* @var string * @var string
*/ */
protected static $definitionClass = 'Netzmacht\LeafletPHP\Definition\Type\DivIcon'; protected static $definitionClass = DivIcon::class;
/** /**
* Layer type. * Layer type.

Some files were not shown because too many files have changed in this diff Show More