forked from Snck3rs/contao-leaflet-maps
Compare commits
56 Commits
3.0.0-alph
...
3.1.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dc5a0a081e | ||
|
|
79f6efd9f3 | ||
|
|
e7bede78b1 | ||
|
|
997e16891b | ||
|
|
d5407357d8 | ||
|
|
1ba19f63b1 | ||
|
|
878492c0b1 | ||
|
|
57ba63556a | ||
|
|
0e2b8dd3cd | ||
|
|
91d3786187 | ||
|
|
5e20b83503 | ||
|
|
ca103521aa | ||
|
|
f422459be2 | ||
|
|
c661abb626 | ||
|
|
83226cdd80 | ||
|
|
ed10175072 | ||
|
|
d2338332b4 | ||
|
|
7aa4f38902 | ||
|
|
cb03dcfa41 | ||
|
|
2108de32d9 | ||
|
|
314e2d21ee | ||
|
|
6faaa866ad | ||
|
|
b22563b38c | ||
|
|
a10e55a126 | ||
|
|
e27ac21902 | ||
|
|
0ba725ed38 | ||
|
|
7ec2ee0d96 | ||
|
|
9e54f12555 | ||
|
|
b323049f9d | ||
|
|
873de89d7c | ||
|
|
88927a3de8 | ||
|
|
8fdc7dab29 | ||
|
|
9a1b6dee01 | ||
|
|
9e0f11ec18 | ||
|
|
f60ed1b7be | ||
|
|
3d45f6b2eb | ||
|
|
e73a4d4bdf | ||
|
|
0322a87e94 | ||
|
|
f5e8701312 | ||
|
|
2d0221a90a | ||
|
|
9f0b34a53b | ||
|
|
e5d336037f | ||
|
|
19614d305f | ||
|
|
295d5385a0 | ||
|
|
bde761911f | ||
|
|
b4947c1404 | ||
|
|
16e58f7f40 | ||
|
|
27cef9b45b | ||
|
|
ef30de9698 | ||
|
|
db352a2df3 | ||
|
|
7db007bdab | ||
|
|
a77c1b4039 | ||
|
|
46e0661986 | ||
|
|
ded5427afb | ||
|
|
8b193a391a | ||
|
|
00da9f7b25 |
11
.composer-require-checker.json
Normal file
11
.composer-require-checker.json
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"symbol-whitelist": [
|
||||||
|
"null", "true", "false",
|
||||||
|
"static", "self", "parent",
|
||||||
|
"array", "string", "int", "float", "bool", "iterable", "callable", "void", "object",
|
||||||
|
"array_insert",
|
||||||
|
"Contao\\ManagerPlugin\\Bundle\\BundlePluginInterface",
|
||||||
|
"Contao\\ManagerPlugin\\Bundle\\Config\\BundleConfig",
|
||||||
|
"Contao\\ManagerPlugin\\Bundle\\Parser\\ParserInterface"
|
||||||
|
]
|
||||||
|
}
|
||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -25,4 +25,3 @@ build.properties
|
|||||||
|
|
||||||
# NPM
|
# NPM
|
||||||
node_modules
|
node_modules
|
||||||
package-lock.json
|
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
language: php
|
language: php
|
||||||
|
|
||||||
php:
|
php:
|
||||||
- "7.0"
|
|
||||||
- "7.1"
|
- "7.1"
|
||||||
|
- "7.2"
|
||||||
|
|
||||||
env:
|
env:
|
||||||
- CONTAO_VERSION=contao/core-bundle ~4.4.0
|
- CONTAO_VERSION=contao/core-bundle ~4.4.0
|
||||||
|
- CONTAO_VERSION=contao/core-bundle ~4.5.0
|
||||||
|
- CONTAO_VERSION=contao/core-bundle ~4.6.0
|
||||||
|
|
||||||
matrix:
|
matrix:
|
||||||
exclude:
|
exclude:
|
||||||
|
|||||||
119
CHANGELOG.md
119
CHANGELOG.md
@@ -1,11 +1,120 @@
|
|||||||
|
|
||||||
Changelog
|
# Changelog
|
||||||
=========
|
|
||||||
|
|
||||||
3.0.0-alpha1 (2017-10-19)
|
All notable changes to this project will be documented in this file.
|
||||||
------------------------
|
|
||||||
|
|
||||||
[Full Changelog](https://github.com/netzmacht/contao-leaflet-maps/compare/3.0.0-alpha1...2.0.0-alpha2)
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## 3.1.2 - TBD
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/netzmacht/contao-leaflet-maps/compare/3.1.1...hotfix/3.1.2)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fix broken MapBox integration: Access token is now required
|
||||||
|
- Fix broken OpenWeatherMap integration: Api key is now required
|
||||||
|
- Fix broken Thunderforest integration: Api key is now required
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Add missing OpenPtMap of leaflet-providers
|
||||||
|
- Add missing OpenRailwayMap of leaflet-providers
|
||||||
|
- Add missing OpenFireMap of leaflet-providers
|
||||||
|
- Add missing SafeCast of leaflet-providers
|
||||||
|
- Add missing map types `normalNightTransit`, `normalNightTransitMobile`, `reducedDay`, `reducedNight`,
|
||||||
|
`hybridDayTransit` and `hybridDayGrey` of HERE provider
|
||||||
|
- Add missing map types `Voyager`, `VoyagerNoLabels`, `VoyagerOnlyLabels` and `VoyagerLabelsUnder` of CartoDB provider
|
||||||
|
- Add missing Wikimedia of leaflet-providers
|
||||||
|
- Add missing GeoportailFrance of leaflet-providers
|
||||||
|
- Add missing OneMapSG of leaflet-providers
|
||||||
|
|
||||||
|
## 3.1.1 - 2018-12-07
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/netzmacht/contao-leaflet-maps/compare/3.1.0...3.1.1)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fix missing marker cluster icon.
|
||||||
|
- Ignore markers without coordinates to prevent uncaught exception caused by invalid coordinates.
|
||||||
|
|
||||||
|
## 3.1.0 - 2018-11-01
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/netzmacht/contao-leaflet-maps/compare/3.0.4...3.1.0)
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Custom route to load map data.
|
||||||
|
- Add distance filter support for the marker layer (Bounds Mode "fit" has to be enabled).
|
||||||
|
- Add support for relative css units for map size definition (#59).
|
||||||
|
- Add hint that zoom level is probably required (#56).
|
||||||
|
|
||||||
|
### Deprecated
|
||||||
|
|
||||||
|
- Deprecate `Netzmacht\Contao\Leaflet\Frontend\RequestUrl`. Use router to generate request url for layer data.
|
||||||
|
- Deprecate `Netzmacht\Contao\Leaflet\Frontend\DataController`. Use introduced endpoint to get map data.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Require PHP 7.1.
|
||||||
|
- Rewritten about page using own route (#48).
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Pressing enter on backend geocode control doesn't submit form anymore.
|
||||||
|
- Fix broken marker cluster layer (#60).
|
||||||
|
|
||||||
|
|
||||||
|
## 3.0.4 - 2018-10-08
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/netzmacht/contao-leaflet-maps/compare/3.0.3...3.0.4)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fix broken content element attributes (Missing class and custom id).
|
||||||
|
|
||||||
|
## 3.0.3 - 2018-09-18
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/netzmacht/contao-leaflet-maps/compare/3.0.2...3.0.3)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Make alias generator services public for Contao 4.6/Symfony 4.0 compatibility.
|
||||||
|
|
||||||
|
## 3.0.2 - 2018-08-23
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/netzmacht/contao-leaflet-maps/compare/3.0.1...3.0.2)
|
||||||
|
|
||||||
|
- Run composer require checker and solve issues.
|
||||||
|
|
||||||
|
## 3.0.1 - 2018-06-20
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/netzmacht/contao-leaflet-maps/compare/3.0.0...3.0.1)
|
||||||
|
|
||||||
|
- Fix broken dynamic bbox related data loading (#57)
|
||||||
|
|
||||||
|
## 3.0.0 - 2018-01-05
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/netzmacht/contao-leaflet-maps/compare/3.0.0-beta1...3.0.0)
|
||||||
|
|
||||||
|
- Make hook/dca listener services public
|
||||||
|
|
||||||
|
## 3.0.0-beta1 - 2017-11-15
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/netzmacht/contao-leaflet-maps/compare/3.0.0-alpha2...3.0.0-beta1)
|
||||||
|
|
||||||
|
Enhancements
|
||||||
|
|
||||||
|
- Updated translations
|
||||||
|
|
||||||
|
Bugfixes
|
||||||
|
|
||||||
|
- Broken service definitions
|
||||||
|
- Broken file layer id
|
||||||
|
|
||||||
|
## 3.0.0-alpha1 - 2017-10-19
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/netzmacht/contao-leaflet-maps/compare/3.0.0-alpha1...3.0.0-alpha2)
|
||||||
|
|
||||||
Implemented enhancements
|
Implemented enhancements
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
"leaflet"
|
"leaflet"
|
||||||
],
|
],
|
||||||
"type": "contao-bundle",
|
"type": "contao-bundle",
|
||||||
"license": "LGPL-3.0+",
|
"license": "LGPL-3.0-or-later",
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
"name": "David Molineus",
|
"name": "David Molineus",
|
||||||
@@ -22,19 +22,32 @@
|
|||||||
"source": "https://github.com/netzmacht/contao-leaflet-maps"
|
"source": "https://github.com/netzmacht/contao-leaflet-maps"
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=7.0",
|
"php": ">=7.1",
|
||||||
|
"ext-json": "*",
|
||||||
|
"ext-pdo": "*",
|
||||||
"contao/core-bundle": "~4.4",
|
"contao/core-bundle": "~4.4",
|
||||||
"netzmacht/contao-leaflet-libraries": "^1.0",
|
"doctrine/dbal": "^2.5",
|
||||||
|
"symfony/config": "~3.3 || ~4.0",
|
||||||
|
"symfony/event-dispatcher": "~3.3 || ~4.0",
|
||||||
|
"symfony/dependency-injection": "~3.3 || ~4.0",
|
||||||
|
"symfony/filesystem": "~3.3 || ~4.0",
|
||||||
|
"symfony/http-kernel": "~3.3 || ~4.0",
|
||||||
|
"symfony/translation": "~3.3 || ~4.0",
|
||||||
|
"symfony/templating": "~3.3 || ~4.0",
|
||||||
|
"netzmacht/contao-leaflet-libraries": "^1.3.4",
|
||||||
|
"netzmacht/contao-leaflet-geocode-widget": "^1.2",
|
||||||
"netzmacht/php-javascript-builder": "^1.0",
|
"netzmacht/php-javascript-builder": "^1.0",
|
||||||
"netzmacht/php-leaflet": "^1.0.2",
|
"netzmacht/php-leaflet": "^1.1.0",
|
||||||
"netzmacht/contao-toolkit": "~3.0@beta",
|
"netzmacht/contao-toolkit": "~3.0",
|
||||||
"contao-community-alliance/meta-palettes": "^1.5",
|
"netzmacht/contao-page-context": "~1.0",
|
||||||
|
"contao-community-alliance/meta-palettes": "^2.0 || ^1.5",
|
||||||
"menatwork/contao-multicolumnwizard": "^3.2",
|
"menatwork/contao-multicolumnwizard": "^3.2",
|
||||||
"doctrine/cache": "^1.0"
|
"doctrine/cache": "^1.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"phpcq/all-tasks": "^1.2",
|
"phpcq/all-tasks": "^1.2",
|
||||||
"contao/manager-plugin": "^2.1"
|
"contao/manager-plugin": "^2.1",
|
||||||
|
"phpstan/phpstan": "^0.10.3"
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
@@ -48,16 +61,16 @@
|
|||||||
},
|
},
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-master": "2.0.x-dev",
|
"dev-master": "3.1.x-dev",
|
||||||
"dev-develop": "2.1.x-dev",
|
"dev-develop": "3.2.x-dev",
|
||||||
"dev-release/3.0.0": "3.0.x-dev"
|
"dev-support/2.x": "2.0.x-dev"
|
||||||
},
|
},
|
||||||
"contao-manager-plugin": "Netzmacht\\Contao\\Leaflet\\Bundle\\ContaoManager\\Plugin",
|
"contao-manager-plugin": "Netzmacht\\Contao\\Leaflet\\Bundle\\ContaoManager\\Plugin",
|
||||||
"contao": {
|
"contao": {
|
||||||
"transifex": {
|
"transifex": {
|
||||||
"project": "contao-leaflet-maps",
|
"project": "contao-leaflet-maps",
|
||||||
"prefix": "core-",
|
"prefix": "core-",
|
||||||
"languages_cto": "module/languages",
|
"languages_cto": "src/Bundle/Resources/contao/languages",
|
||||||
"languages_tx": ".tx"
|
"languages_tx": ".tx"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
39
gulpfile.js
39
gulpfile.js
@@ -1,28 +1,35 @@
|
|||||||
var gulp = require('gulp');
|
const { series, src, watch, dest, parallel, task} = require('gulp');
|
||||||
var del = require('del');
|
const del = require('promised-del');
|
||||||
var uglify = require('gulp-uglify');
|
const uglify = require('gulp-uglify');
|
||||||
var concat = require('gulp-concat');
|
const concat = require('gulp-concat');
|
||||||
|
|
||||||
var paths = {
|
var paths = {
|
||||||
minified: 'contao-leaflet.js',
|
minified: 'contao-leaflet.js',
|
||||||
scripts: ['js/*.js'],
|
scripts: ['js/vendor/*.js', 'js/*.js'],
|
||||||
dest: 'src/Bundle/Resources/public/js'
|
dest: 'src/Bundle/Resources/public/js'
|
||||||
};
|
};
|
||||||
|
|
||||||
gulp.task('clear', function() {
|
function clean () {
|
||||||
del([paths.dest + '/' + paths.minified]);
|
return del([paths.dest + '/' + paths.minified]);
|
||||||
});
|
}
|
||||||
|
|
||||||
gulp.task('scripts', ['clear'], function() {
|
function build () {
|
||||||
return gulp.src(paths.scripts)
|
return src(paths.scripts)
|
||||||
.pipe(concat(paths.minified))
|
.pipe(concat(paths.minified))
|
||||||
.pipe(uglify())
|
.pipe(uglify())
|
||||||
.pipe(gulp.dest(paths.dest));
|
.pipe(dest(paths.dest));
|
||||||
});
|
}
|
||||||
|
|
||||||
|
const buildTasks = series(clean, build);
|
||||||
|
|
||||||
gulp.task('default', ['scripts']);
|
function watchTask () {
|
||||||
|
watch(
|
||||||
|
paths.scripts,
|
||||||
|
buildTasks
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
gulp.task('watch', function() {
|
exports.clean = clean;
|
||||||
gulp.watch(paths.scripts, ['scripts']);
|
exports.watch = watchTask;
|
||||||
});
|
exports.build = buildTasks;
|
||||||
|
exports.default = buildTasks;
|
||||||
|
|||||||
48
js/Contao.js
48
js/Contao.js
@@ -138,7 +138,8 @@ L.Contao = L.Evented.extend({
|
|||||||
* @param customLayer optional custom layer.
|
* @param customLayer optional custom layer.
|
||||||
* @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.
|
||||||
*/
|
*/
|
||||||
loadFile: function (url, type, options, customLayer, map) {
|
loadUrl: function (url, type, options, customLayer, map) {
|
||||||
|
url = this.applyFilterToUrl(url, map);
|
||||||
var layer = omnivore[type](url, options, customLayer);
|
var layer = omnivore[type](url, options, customLayer);
|
||||||
|
|
||||||
if (map) {
|
if (map) {
|
||||||
@@ -147,7 +148,7 @@ L.Contao = L.Evented.extend({
|
|||||||
|
|
||||||
// Add listener for map bounds changes.
|
// Add listener for map bounds changes.
|
||||||
if (map.options.dynamicLoad && layer.options.boundsMode == 'fit') {
|
if (map.options.dynamicLoad && layer.options.boundsMode == 'fit') {
|
||||||
layer.options.requestHash = hash;
|
layer.options.requestUrl = url;
|
||||||
map.on('moveend', layer.refreshData, layer);
|
map.on('moveend', layer.refreshData, layer);
|
||||||
|
|
||||||
map.on('layerremove', function(e) {
|
map.on('layerremove', function(e) {
|
||||||
@@ -172,6 +173,19 @@ L.Contao = L.Evented.extend({
|
|||||||
return layer;
|
return layer;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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) {
|
||||||
|
return this.loadUrl(url, type, options, customLayer, map);
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Point to layer callback. Adds a geo json point to the layer.
|
* Point to layer callback. Adds a geo json point to the layer.
|
||||||
*
|
*
|
||||||
@@ -313,6 +327,36 @@ L.Contao = L.Evented.extend({
|
|||||||
}
|
}
|
||||||
|
|
||||||
return value;
|
return value;
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Apply the filter to a request url.
|
||||||
|
*
|
||||||
|
* @param {string} url The request url.
|
||||||
|
* @param {L.Map} map The map.
|
||||||
|
*
|
||||||
|
* @returns {string}
|
||||||
|
*/
|
||||||
|
applyFilterToUrl: function (url, map) {
|
||||||
|
var value, query, bounds;
|
||||||
|
|
||||||
|
if (!map || !map.options.dynamicLoad) {
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
|
||||||
|
url = new URL(url);
|
||||||
|
query = new URLSearchParams(url.search);
|
||||||
|
|
||||||
|
bounds = map.getBounds();
|
||||||
|
value = bounds.getSouth() + ',' + bounds.getWest();
|
||||||
|
value += ',' + bounds.getNorth() + ',' + bounds.getEast();
|
||||||
|
|
||||||
|
query.set('filter', 'bbox');
|
||||||
|
query.set('values', value);
|
||||||
|
|
||||||
|
url.search = query.toString();
|
||||||
|
|
||||||
|
return url.toString();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,6 @@ L.GeoJSON.include({
|
|||||||
});
|
});
|
||||||
|
|
||||||
// TODO: Allow other data formats.
|
// TODO: Allow other data formats.
|
||||||
omnivore.geojson(L.contao.createRequestUrl(this.options.requestHash, e.target), null, dataLayer);
|
omnivore.geojson(L.contao.applyFilterToUrl(this.options.requestUrl, e.target), null, dataLayer);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
3297
package-lock.json
generated
Normal file
3297
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
11
package.json
11
package.json
@@ -4,10 +4,11 @@
|
|||||||
"description": "Leaflet maps for Contao",
|
"description": "Leaflet maps for Contao",
|
||||||
"main": "gulpfile.js",
|
"main": "gulpfile.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"del": "^3.0.0",
|
"gulp": "^4.0.0",
|
||||||
"gulp": "^3.9.1",
|
"gulp-cli": "^2.0.1",
|
||||||
"gulp-concat": "^2.6.0",
|
"gulp-concat": "^2.6.1",
|
||||||
"gulp-uglify": "^3.0.0"
|
"gulp-uglify": "^3.0.1",
|
||||||
|
"promised-del": "^1.0.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {},
|
"devDependencies": {},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@@ -23,7 +24,7 @@
|
|||||||
"Maps"
|
"Maps"
|
||||||
],
|
],
|
||||||
"author": "netzmacht David Molineus",
|
"author": "netzmacht David Molineus",
|
||||||
"license": "LGPL-3.0",
|
"license": "LGPL-3.0-or-later",
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/netzmacht/contao-leaflet-maps/issues"
|
"url": "https://github.com/netzmacht/contao-leaflet-maps/issues"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -10,30 +10,59 @@
|
|||||||
* @filesource
|
* @filesource
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Netzmacht\Contao\Leaflet\Backend;
|
namespace Netzmacht\Contao\Leaflet\Backend\Action;
|
||||||
|
|
||||||
|
use Symfony\Bundle\FrameworkBundle\Templating\EngineInterface as Engine;
|
||||||
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Credits backend module.
|
* Credits backend module.
|
||||||
*
|
*
|
||||||
* @package Netzmacht\Contao\Leaflet\Backend
|
* @package Netzmacht\Contao\Leaflet\Backend
|
||||||
*/
|
*/
|
||||||
class About
|
final class AboutAction
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* Templating engine.
|
||||||
|
*
|
||||||
|
* @var Engine
|
||||||
|
*/
|
||||||
|
private $engine;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Project directory.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
private $projectDir;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* AboutAction constructor.
|
||||||
|
*
|
||||||
|
* @param Engine $engine Templating engine.
|
||||||
|
* @param string $projectDir Project directory.
|
||||||
|
*/
|
||||||
|
public function __construct(Engine $engine, string $projectDir)
|
||||||
|
{
|
||||||
|
$this->engine = $engine;
|
||||||
|
$this->projectDir = $projectDir;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generate the backend view.
|
* Generate the backend view.
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function generate()
|
public function __invoke(): Response
|
||||||
{
|
{
|
||||||
$template = new \BackendTemplate('be_leaflet_about');
|
$data = [
|
||||||
|
'headline' => 'Leaftlet maps integration for Contao CMS',
|
||||||
|
'libraries' => $this->getLibraries(),
|
||||||
|
];
|
||||||
|
|
||||||
$template->headline = 'Leaftlet maps integration for Contao CMS';
|
[$data['version'], $data['dependencies']] = $this->extractFromComposer();
|
||||||
$template->libraries = $this->getLibraries();
|
|
||||||
|
|
||||||
list($template->version, $template->dependencies) = $this->extractFromComposer();
|
return $this->engine->renderResponse('@NetzmachtContaoLeaflet/backend/about.html.twig', $data);
|
||||||
|
|
||||||
return $template->parse();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -43,7 +72,7 @@ class About
|
|||||||
*
|
*
|
||||||
* @SuppressWarnings(PHPMD.Superglobals)
|
* @SuppressWarnings(PHPMD.Superglobals)
|
||||||
*/
|
*/
|
||||||
private function getLibraries()
|
private function getLibraries(): array
|
||||||
{
|
{
|
||||||
return array_map(
|
return array_map(
|
||||||
function ($library) {
|
function ($library) {
|
||||||
@@ -57,9 +86,8 @@ class About
|
|||||||
|
|
||||||
if ($library['homepage']) {
|
if ($library['homepage']) {
|
||||||
$library['homepage'] = sprintf(
|
$library['homepage'] = sprintf(
|
||||||
'<a href="%s" %s>%s</a>',
|
'<a href="%s" target="_blank">%s</a>',
|
||||||
$library['homepage'],
|
$library['homepage'],
|
||||||
LINK_NEW_WINDOW,
|
|
||||||
preg_replace('#^(https?://(www)?)#i', '', $library['homepage'])
|
preg_replace('#^(https?://(www)?)#i', '', $library['homepage'])
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -69,7 +97,7 @@ class About
|
|||||||
array_filter(
|
array_filter(
|
||||||
$GLOBALS['LEAFLET_LIBRARIES'],
|
$GLOBALS['LEAFLET_LIBRARIES'],
|
||||||
function ($library) {
|
function ($library) {
|
||||||
return isset($library['name']) && isset($library['license']);
|
return isset($library['name'], $library['license']);
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@@ -80,10 +108,10 @@ class About
|
|||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
private function extractFromComposer()
|
private function extractFromComposer(): array
|
||||||
{
|
{
|
||||||
$extFile = TL_ROOT . '/vendor/netzmacht/contao-leaflet-maps/composer.json';
|
$extFile = $this->projectDir . '/vendor/netzmacht/contao-leaflet-maps/composer.json';
|
||||||
$lockFile = TL_ROOT . '/composer.lock';
|
$lockFile = $this->projectDir . '/composer.lock';
|
||||||
|
|
||||||
if (!file_exists($extFile) || !file_exists($lockFile)) {
|
if (!file_exists($extFile) || !file_exists($lockFile)) {
|
||||||
return [];
|
return [];
|
||||||
@@ -56,7 +56,7 @@ 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
|
||||||
{
|
{
|
||||||
$repository = $this->repositoryManager->getRepository(MarkerModel::class);
|
$repository = $this->repositoryManager->getRepository(MarkerModel::class);
|
||||||
$count = $repository->countBy(['pid=?'], [$row['pid']]);
|
$count = $repository->countBy(['pid=?'], [$row['id']]);
|
||||||
$label .= sprintf(
|
$label .= sprintf(
|
||||||
'<span class="tl_gray"> (%s %s)</span>',
|
'<span class="tl_gray"> (%s %s)</span>',
|
||||||
$count,
|
$count,
|
||||||
|
|||||||
@@ -18,15 +18,20 @@ use Contao\CoreBundle\ContaoCoreBundle;
|
|||||||
use Contao\ManagerPlugin\Bundle\BundlePluginInterface;
|
use Contao\ManagerPlugin\Bundle\BundlePluginInterface;
|
||||||
use Contao\ManagerPlugin\Bundle\Config\BundleConfig;
|
use Contao\ManagerPlugin\Bundle\Config\BundleConfig;
|
||||||
use Contao\ManagerPlugin\Bundle\Parser\ParserInterface;
|
use Contao\ManagerPlugin\Bundle\Parser\ParserInterface;
|
||||||
|
use Contao\ManagerPlugin\Routing\RoutingPluginInterface;
|
||||||
use Netzmacht\Contao\Leaflet\Bundle\NetzmachtContaoLeafletBundle;
|
use Netzmacht\Contao\Leaflet\Bundle\NetzmachtContaoLeafletBundle;
|
||||||
|
use Netzmacht\Contao\PageContext\NetzmachtContaoPageContextBundle;
|
||||||
use Netzmacht\Contao\Toolkit\Bundle\NetzmachtContaoToolkitBundle;
|
use Netzmacht\Contao\Toolkit\Bundle\NetzmachtContaoToolkitBundle;
|
||||||
|
use Symfony\Component\Config\Loader\LoaderResolverInterface;
|
||||||
|
use Symfony\Component\HttpKernel\KernelInterface;
|
||||||
|
use Symfony\Component\Routing\RouteCollection;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Contao manager plugin.
|
* Contao manager plugin.
|
||||||
*
|
*
|
||||||
* @package Netzmacht\Contao\Leaflet\ContaoManager
|
* @package Netzmacht\Contao\Leaflet\ContaoManager
|
||||||
*/
|
*/
|
||||||
class Plugin implements BundlePluginInterface
|
class Plugin implements BundlePluginInterface, RoutingPluginInterface
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
@@ -35,8 +40,27 @@ class Plugin implements BundlePluginInterface
|
|||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
BundleConfig::create(NetzmachtContaoLeafletBundle::class)
|
BundleConfig::create(NetzmachtContaoLeafletBundle::class)
|
||||||
->setLoadAfter([ContaoCoreBundle::class, NetzmachtContaoToolkitBundle::class])
|
->setLoadAfter(
|
||||||
|
[
|
||||||
|
ContaoCoreBundle::class,
|
||||||
|
NetzmachtContaoToolkitBundle::class,
|
||||||
|
NetzmachtContaoPageContextBundle::class
|
||||||
|
]
|
||||||
|
)
|
||||||
->setReplace(['leaflet']),
|
->setReplace(['leaflet']),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function getRouteCollection(LoaderResolverInterface $resolver, KernelInterface $kernel): ?RouteCollection
|
||||||
|
{
|
||||||
|
$loader = $resolver->resolve(__DIR__ . '/../Resources/config/routing.yml');
|
||||||
|
if (!$loader) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $loader->load(__DIR__ . '/../Resources/config/routing.yml');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ parameters:
|
|||||||
|
|
||||||
markercluster:
|
markercluster:
|
||||||
children: true
|
children: true
|
||||||
icon: 'bundles/netzmachtcontaoleaflet/img/markercluster.png'
|
icon: 'bundles/netzmachtcontaoleaflet/img/cluster.png'
|
||||||
|
|
||||||
tile:
|
tile:
|
||||||
children: false
|
children: false
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
services:
|
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
|
||||||
|
public: true
|
||||||
arguments:
|
arguments:
|
||||||
- '@netzmacht.contao_toolkit.repository_manager'
|
- '@netzmacht.contao_toolkit.repository_manager'
|
||||||
- '@templating'
|
- '@templating'
|
||||||
@@ -10,33 +11,40 @@ services:
|
|||||||
|
|
||||||
netzmacht.contao_leaflet.listeners.dca.validator:
|
netzmacht.contao_leaflet.listeners.dca.validator:
|
||||||
class: Netzmacht\Contao\Leaflet\Listener\Dca\Validator
|
class: Netzmacht\Contao\Leaflet\Listener\Dca\Validator
|
||||||
|
public: true
|
||||||
arguments:
|
arguments:
|
||||||
- '@netzmacht.contao_toolkit.dca.manager'
|
- '@netzmacht.contao_toolkit.dca.manager'
|
||||||
- '@translator'
|
- '@translator'
|
||||||
|
|
||||||
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
|
||||||
|
public: true
|
||||||
arguments:
|
arguments:
|
||||||
- '@netzmacht.contao_toolkit.repository_manager'
|
- '@netzmacht.contao_toolkit.repository_manager'
|
||||||
- '@translator'
|
- '@translator'
|
||||||
|
|
||||||
netzmacht.contao_leaflet.listeners.dca.map:
|
netzmacht.contao_leaflet.listeners.dca.map:
|
||||||
class: Netzmacht\Contao\Leaflet\Listener\Dca\MapDcaListener
|
class: Netzmacht\Contao\Leaflet\Listener\Dca\MapDcaListener
|
||||||
|
public: true
|
||||||
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_toolkit.repository_manager'
|
- '@translator'
|
||||||
|
- '@session'
|
||||||
|
|
||||||
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
|
||||||
|
public: true
|
||||||
arguments:
|
arguments:
|
||||||
- '@netzmacht.contao_toolkit.dca.manager'
|
- '@netzmacht.contao_toolkit.dca.manager'
|
||||||
- '@database_connection'
|
- '@database_connection'
|
||||||
|
- '@netzmacht.contao_toolkit.repository_manager'
|
||||||
- '%netzmacht.contao_leaflet.controls%'
|
- '%netzmacht.contao_leaflet.controls%'
|
||||||
|
|
||||||
netzmacht.contao_leaflet.listeners.dca.layer:
|
netzmacht.contao_leaflet.listeners.dca.layer:
|
||||||
class: Netzmacht\Contao\Leaflet\Listener\Dca\LayerDcaListener
|
class: Netzmacht\Contao\Leaflet\Listener\Dca\LayerDcaListener
|
||||||
|
public: true
|
||||||
arguments:
|
arguments:
|
||||||
- '@netzmacht.contao_toolkit.dca.manager'
|
- '@netzmacht.contao_toolkit.dca.manager'
|
||||||
- '@database_connection'
|
- '@database_connection'
|
||||||
@@ -51,12 +59,14 @@ services:
|
|||||||
|
|
||||||
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
|
||||||
|
public: true
|
||||||
arguments:
|
arguments:
|
||||||
- '@database_connection'
|
- '@database_connection'
|
||||||
- '@netzmacht.contao_toolkit.repository_manager'
|
- '@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
|
||||||
|
public: true
|
||||||
arguments:
|
arguments:
|
||||||
- '@netzmacht.contao_toolkit.dca.manager'
|
- '@netzmacht.contao_toolkit.dca.manager'
|
||||||
- '@netzmacht.contao_toolkit.repository_manager'
|
- '@netzmacht.contao_toolkit.repository_manager'
|
||||||
@@ -64,11 +74,13 @@ services:
|
|||||||
|
|
||||||
netzmacht.contao_leaflet.listeners.dca.icon:
|
netzmacht.contao_leaflet.listeners.dca.icon:
|
||||||
class: Netzmacht\Contao\Leaflet\Listener\Dca\IconDcaListener
|
class: Netzmacht\Contao\Leaflet\Listener\Dca\IconDcaListener
|
||||||
|
public: true
|
||||||
arguments:
|
arguments:
|
||||||
- '%netzmacht.contao_leaflet.icons%'
|
- '%netzmacht.contao_leaflet.icons%'
|
||||||
|
|
||||||
netzmacht.contao_leaflet.listeners.dca.style:
|
netzmacht.contao_leaflet.listeners.dca.style:
|
||||||
class: Netzmacht\Contao\Leaflet\Listener\Dca\IconDcaListener
|
class: Netzmacht\Contao\Leaflet\Listener\Dca\StyleDcaListener
|
||||||
|
public: true
|
||||||
arguments:
|
arguments:
|
||||||
- '%netzmacht.contao_leaflet.styles%'
|
- '%netzmacht.contao_leaflet.styles%'
|
||||||
|
|
||||||
@@ -97,7 +109,19 @@ services:
|
|||||||
|
|
||||||
netzmacht.contao_leaflet.listeners.register_libraries:
|
netzmacht.contao_leaflet.listeners.register_libraries:
|
||||||
class: Netzmacht\Contao\Leaflet\Listener\RegisterLibrariesListener
|
class: Netzmacht\Contao\Leaflet\Listener\RegisterLibrariesListener
|
||||||
|
public: true
|
||||||
arguments:
|
arguments:
|
||||||
- '@netzmacht.contao_leaflet.libraries'
|
- '@netzmacht.contao_leaflet.libraries'
|
||||||
- '@netzmacht.contao_leaflet.definition.builder'
|
- '@netzmacht.contao_leaflet.definition.builder'
|
||||||
|
tags:
|
||||||
|
- { name: 'contao.hook', hook: 'initializeSystem', method: 'onInitializeSystem' }
|
||||||
|
|
||||||
|
netzmacht.contao_leaflet.listeners.backend_menu:
|
||||||
|
class: Netzmacht\Contao\Leaflet\Listener\Backend\UserNavigationListener
|
||||||
|
arguments:
|
||||||
|
- '@request_stack'
|
||||||
|
- '@router'
|
||||||
|
- '@translator'
|
||||||
|
- '@netzmacht.contao_toolkit.assets_manager'
|
||||||
|
tags:
|
||||||
|
- { name: 'contao.hook', hook: 'getUserNavigation', method: '__invoke'}
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ services:
|
|||||||
class: Netzmacht\Contao\Leaflet\Mapper\Layer\MarkersLayerMapper
|
class: Netzmacht\Contao\Leaflet\Mapper\Layer\MarkersLayerMapper
|
||||||
arguments:
|
arguments:
|
||||||
- '@netzmacht.contao_toolkit.repository_manager'
|
- '@netzmacht.contao_toolkit.repository_manager'
|
||||||
|
- '@router'
|
||||||
tags:
|
tags:
|
||||||
- { name: netzmacht.contao_leaflet.mapper }
|
- { name: netzmacht.contao_leaflet.mapper }
|
||||||
|
|
||||||
@@ -46,6 +47,7 @@ services:
|
|||||||
class: Netzmacht\Contao\Leaflet\Mapper\Layer\VectorsLayerMapper
|
class: Netzmacht\Contao\Leaflet\Mapper\Layer\VectorsLayerMapper
|
||||||
arguments:
|
arguments:
|
||||||
- '@netzmacht.contao_toolkit.repository_manager'
|
- '@netzmacht.contao_toolkit.repository_manager'
|
||||||
|
- '@router'
|
||||||
tags:
|
tags:
|
||||||
- { name: netzmacht.contao_leaflet.mapper }
|
- { name: netzmacht.contao_leaflet.mapper }
|
||||||
|
|
||||||
@@ -69,7 +71,7 @@ services:
|
|||||||
- '@netzmacht.contao_leaflet.map.assets'
|
- '@netzmacht.contao_leaflet.map.assets'
|
||||||
- '@netzmacht.contao_toolkit.repository_manager'
|
- '@netzmacht.contao_toolkit.repository_manager'
|
||||||
tags:
|
tags:
|
||||||
- { name: netzmacht.contao_leflet_maps.mapper }
|
- { name: netzmacht.contao_leaflet.mapper }
|
||||||
|
|
||||||
netzmacht.contao_leaflet.mapper.file_layer:
|
netzmacht.contao_leaflet.mapper.file_layer:
|
||||||
class: Netzmacht\Contao\Leaflet\Mapper\Layer\FileLayerMapper
|
class: Netzmacht\Contao\Leaflet\Mapper\Layer\FileLayerMapper
|
||||||
|
|||||||
@@ -1,13 +1,22 @@
|
|||||||
parameters:
|
parameters:
|
||||||
netzmacht.contao_leaflet.providers:
|
netzmacht.contao_leaflet.providers:
|
||||||
OpenStreetMap:
|
OpenStreetMap:
|
||||||
variants: ['Mapnik', 'BlackAndWhite', 'DE', 'France', 'HOT', 'BZH']
|
variants: ['Mapnik', 'BlackAndWhite', 'DE', 'CH', 'France', 'HOT', 'BZH']
|
||||||
|
|
||||||
OpenSeaMap: []
|
OpenSeaMap: []
|
||||||
|
|
||||||
OpenTopoMap: []
|
OpenTopoMap: []
|
||||||
|
|
||||||
|
OpenPtMap: []
|
||||||
|
|
||||||
|
OpenRailwayMap: []
|
||||||
|
|
||||||
|
OpenFireMap: []
|
||||||
|
|
||||||
|
SafeCast: []
|
||||||
|
|
||||||
Thunderforest:
|
Thunderforest:
|
||||||
|
class: 'Netzmacht\LeafletPHP\Plugins\LeafletProviders\ThunderforestProvider'
|
||||||
variants:
|
variants:
|
||||||
- 'OpenCycleMap'
|
- 'OpenCycleMap'
|
||||||
- 'Transport'
|
- 'Transport'
|
||||||
@@ -16,6 +25,9 @@ parameters:
|
|||||||
- 'Landscape'
|
- 'Landscape'
|
||||||
- 'Outdoors'
|
- 'Outdoors'
|
||||||
- 'Pioneer'
|
- 'Pioneer'
|
||||||
|
options:
|
||||||
|
apiKey: 'tile_provider_key'
|
||||||
|
fields: ['tile_provider_key']
|
||||||
|
|
||||||
OpenMapSurfer:
|
OpenMapSurfer:
|
||||||
variants: ['Roads', 'AdminBounds', 'Grayscale']
|
variants: ['Roads', 'AdminBounds', 'Grayscale']
|
||||||
@@ -26,7 +38,8 @@ parameters:
|
|||||||
MapBox:
|
MapBox:
|
||||||
class: 'Netzmacht\LeafletPHP\Plugins\LeafletProviders\MapBoxProvider'
|
class: 'Netzmacht\LeafletPHP\Plugins\LeafletProviders\MapBoxProvider'
|
||||||
options:
|
options:
|
||||||
key: 'tile_provider_key'
|
accessToken: 'tile_provider_key'
|
||||||
|
fields: ['tile_provider_key']
|
||||||
|
|
||||||
Stamen:
|
Stamen:
|
||||||
variants:
|
variants:
|
||||||
@@ -56,6 +69,7 @@ parameters:
|
|||||||
- 'WorldGrayCanvas'
|
- 'WorldGrayCanvas'
|
||||||
|
|
||||||
OpenWeatherMap:
|
OpenWeatherMap:
|
||||||
|
class: 'Netzmacht\LeafletPHP\Plugins\LeafletProviders\OpenWeatherMapProvider'
|
||||||
variants:
|
variants:
|
||||||
- 'Clouds'
|
- 'Clouds'
|
||||||
- 'CloudsClassic'
|
- 'CloudsClassic'
|
||||||
@@ -68,6 +82,9 @@ parameters:
|
|||||||
- 'Wind'
|
- 'Wind'
|
||||||
- 'Temperature'
|
- 'Temperature'
|
||||||
- 'Snow'
|
- 'Snow'
|
||||||
|
options:
|
||||||
|
apiKey: 'tile_provider_key'
|
||||||
|
fields: ['tile_provider_key']
|
||||||
|
|
||||||
HERE:
|
HERE:
|
||||||
class: 'Netzmacht\LeafletPHP\Plugins\LeafletProviders\HereProvider'
|
class: 'Netzmacht\LeafletPHP\Plugins\LeafletProviders\HereProvider'
|
||||||
@@ -83,12 +100,18 @@ parameters:
|
|||||||
- 'normalNightMobile'
|
- 'normalNightMobile'
|
||||||
- 'normalNightGrey'
|
- 'normalNightGrey'
|
||||||
- 'normalNightGreyMobile'
|
- 'normalNightGreyMobile'
|
||||||
|
- 'normalNightTransit'
|
||||||
|
- 'normalNightTransitMobile'
|
||||||
|
- 'reducedDay'
|
||||||
|
- 'reducedNight'
|
||||||
- 'basicMap'
|
- 'basicMap'
|
||||||
- 'mapLabels'
|
- 'mapLabels'
|
||||||
- 'trafficFlow'
|
- 'trafficFlow'
|
||||||
- 'carnavDayGrey'
|
- 'carnavDayGrey'
|
||||||
- 'hybridDay'
|
- 'hybridDay'
|
||||||
- 'hybridDayMobile'
|
- 'hybridDayMobile'
|
||||||
|
- 'hybridDayTransit'
|
||||||
|
- 'hybridDayGrey'
|
||||||
- 'pedestrianDay'
|
- 'pedestrianDay'
|
||||||
- 'pedestrianNight'
|
- 'pedestrianNight'
|
||||||
- 'satelliteDay'
|
- 'satelliteDay'
|
||||||
@@ -123,6 +146,10 @@ parameters:
|
|||||||
- 'DarkMatter'
|
- 'DarkMatter'
|
||||||
- 'DarkMatterNoLabels'
|
- 'DarkMatterNoLabels'
|
||||||
- 'DarkMatterOnlyLabels'
|
- 'DarkMatterOnlyLabels'
|
||||||
|
- 'Voyager'
|
||||||
|
- 'VoyagerNoLabels'
|
||||||
|
- 'VoyagerOnlyLabels'
|
||||||
|
- 'VoyagerLabelsUnder'
|
||||||
|
|
||||||
HikeBike:
|
HikeBike:
|
||||||
variants:
|
variants:
|
||||||
@@ -155,3 +182,20 @@ parameters:
|
|||||||
- 'ModisTerraChlorophyll'
|
- 'ModisTerraChlorophyll'
|
||||||
|
|
||||||
NLS: []
|
NLS: []
|
||||||
|
|
||||||
|
Wikimedia: []
|
||||||
|
|
||||||
|
GeoportailFrance:
|
||||||
|
variants:
|
||||||
|
- 'parcels'
|
||||||
|
- 'ignMaps'
|
||||||
|
- 'maps'
|
||||||
|
- 'orthos'
|
||||||
|
|
||||||
|
OneMapSG:
|
||||||
|
variants:
|
||||||
|
- 'Default'
|
||||||
|
- 'Night'
|
||||||
|
- 'Original'
|
||||||
|
- 'Grey'
|
||||||
|
- 'LandLot'
|
||||||
|
|||||||
18
src/Bundle/Resources/config/routing.yml
Normal file
18
src/Bundle/Resources/config/routing.yml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
leaflet_layer:
|
||||||
|
path: /leaflet/api/layer/{layerId}
|
||||||
|
controller: Netzmacht\Contao\Leaflet\Frontend\Action\LayerDataAction
|
||||||
|
defaults:
|
||||||
|
_leaflet_scope: page
|
||||||
|
_format: geojson
|
||||||
|
_scope: frontend
|
||||||
|
requirements:
|
||||||
|
_format: geojson
|
||||||
|
context: \w+
|
||||||
|
contextId: \d+
|
||||||
|
|
||||||
|
leaflet_backend_about:
|
||||||
|
path: /contao/leaflet/about
|
||||||
|
controller: Netzmacht\Contao\Leaflet\Backend\Action\AboutAction
|
||||||
|
defaults:
|
||||||
|
_scope: backend
|
||||||
|
_backend_module: leaflet_about
|
||||||
@@ -74,11 +74,13 @@ services:
|
|||||||
|
|
||||||
netzmacht.contao_leaflet.definition.alias_generator.factory_default:
|
netzmacht.contao_leaflet.definition.alias_generator.factory_default:
|
||||||
class: Netzmacht\Contao\Leaflet\Alias\DefaultAliasGeneratorFactory
|
class: Netzmacht\Contao\Leaflet\Alias\DefaultAliasGeneratorFactory
|
||||||
|
public: true
|
||||||
arguments:
|
arguments:
|
||||||
- '@database_connection'
|
- '@database_connection'
|
||||||
|
|
||||||
netzmacht.contao_leaflet.definition.alias_generator.factory_parent:
|
netzmacht.contao_leaflet.definition.alias_generator.factory_parent:
|
||||||
class: Netzmacht\Contao\Leaflet\Alias\ParentAliasGeneratorFactory
|
class: Netzmacht\Contao\Leaflet\Alias\ParentAliasGeneratorFactory
|
||||||
|
public: true
|
||||||
arguments:
|
arguments:
|
||||||
- '@database_connection'
|
- '@database_connection'
|
||||||
|
|
||||||
@@ -108,6 +110,7 @@ services:
|
|||||||
|
|
||||||
netzmacht.contao_leaflet.frontend.insert_tag:
|
netzmacht.contao_leaflet.frontend.insert_tag:
|
||||||
class: Netzmacht\Contao\Leaflet\Frontend\InsertTag\LeafletInsertTagParser
|
class: Netzmacht\Contao\Leaflet\Frontend\InsertTag\LeafletInsertTagParser
|
||||||
|
public: true
|
||||||
arguments:
|
arguments:
|
||||||
- '@netzmacht.contao_leaflet.map.provider'
|
- '@netzmacht.contao_leaflet.map.provider'
|
||||||
- '%kernel.debug%'
|
- '%kernel.debug%'
|
||||||
@@ -119,3 +122,17 @@ services:
|
|||||||
arguments:
|
arguments:
|
||||||
- '@netzmacht.contao_leaflet.filter_factory'
|
- '@netzmacht.contao_leaflet.filter_factory'
|
||||||
- '%kernel.debug%'
|
- '%kernel.debug%'
|
||||||
|
|
||||||
|
Netzmacht\Contao\Leaflet\Frontend\PageIdDeterminator:
|
||||||
|
tags:
|
||||||
|
- { name: Netzmacht\Contao\PageContext\Request\PageIdDeterminator }
|
||||||
|
|
||||||
|
Netzmacht\Contao\Leaflet\Frontend\Action\LayerDataAction:
|
||||||
|
arguments:
|
||||||
|
- '@netzmacht.contao_leaflet.map.provider'
|
||||||
|
- '@netzmacht.contao_leaflet.filter_factory'
|
||||||
|
|
||||||
|
Netzmacht\Contao\Leaflet\Backend\Action\AboutAction:
|
||||||
|
arguments:
|
||||||
|
- '@templating'
|
||||||
|
- '%kernel.project_dir%'
|
||||||
|
|||||||
@@ -40,17 +40,12 @@ array_insert(
|
|||||||
'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' => [
|
|
||||||
'callback' => Netzmacht\Contao\Leaflet\Backend\About::class,
|
|
||||||
'icon' => 'bundles/netzmachtcontaoleaflet/img/about.png',
|
|
||||||
'stylesheet' => 'bundles/netzmachtcontaoleaflet/css/about.css',
|
|
||||||
],
|
|
||||||
],
|
],
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
if (TL_MODE === 'BE') {
|
if (defined('TL_MODE') && TL_MODE === 'BE') {
|
||||||
$GLOBALS['TL_CSS'][] = 'bundles/netzmachtcontaoleaflet/css/backend_hacks.css';
|
$GLOBALS['TL_CSS'][] = 'bundles/netzmachtcontaoleaflet/css/backend_global.css';
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -65,12 +60,3 @@ $GLOBALS['TL_MODELS']['tl_leaflet_marker'] = \Netzmacht\Contao\Leaflet\Model\Ma
|
|||||||
$GLOBALS['TL_MODELS']['tl_leaflet_popup'] = \Netzmacht\Contao\Leaflet\Model\PopupModel::class;
|
$GLOBALS['TL_MODELS']['tl_leaflet_popup'] = \Netzmacht\Contao\Leaflet\Model\PopupModel::class;
|
||||||
$GLOBALS['TL_MODELS']['tl_leaflet_style'] = \Netzmacht\Contao\Leaflet\Model\StyleModel::class;
|
$GLOBALS['TL_MODELS']['tl_leaflet_style'] = \Netzmacht\Contao\Leaflet\Model\StyleModel::class;
|
||||||
$GLOBALS['TL_MODELS']['tl_leaflet_vector'] = \Netzmacht\Contao\Leaflet\Model\VectorModel::class;
|
$GLOBALS['TL_MODELS']['tl_leaflet_vector'] = \Netzmacht\Contao\Leaflet\Model\VectorModel::class;
|
||||||
|
|
||||||
/*
|
|
||||||
* Hooks.
|
|
||||||
*/
|
|
||||||
|
|
||||||
$GLOBALS['TL_HOOKS']['initializeSystem'][] = [
|
|
||||||
'netzmacht.contao_leaflet.listeners.register_libraries',
|
|
||||||
'onInitializeSystem',
|
|
||||||
];
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ $GLOBALS['TL_DCA']['tl_content']['fields']['leaflet_mapId'] = [
|
|||||||
$GLOBALS['TL_DCA']['tl_content']['fields']['leaflet_width'] = [
|
$GLOBALS['TL_DCA']['tl_content']['fields']['leaflet_width'] = [
|
||||||
'label' => &$GLOBALS['TL_LANG']['tl_content']['leaflet_width'],
|
'label' => &$GLOBALS['TL_LANG']['tl_content']['leaflet_width'],
|
||||||
'inputType' => 'inputUnit',
|
'inputType' => 'inputUnit',
|
||||||
'options' => ['px', '%', 'em', 'pt', 'pc', 'in', 'cm', 'mm'],
|
'options' => $GLOBALS['TL_CSS_UNITS'],
|
||||||
'search' => false,
|
'search' => false,
|
||||||
'exclude' => true,
|
'exclude' => true,
|
||||||
'eval' => ['rgxp' => 'digit', 'tl_class' => 'clr w50'],
|
'eval' => ['rgxp' => 'digit', 'tl_class' => 'clr w50'],
|
||||||
@@ -60,7 +60,7 @@ $GLOBALS['TL_DCA']['tl_content']['fields']['leaflet_width'] = [
|
|||||||
$GLOBALS['TL_DCA']['tl_content']['fields']['leaflet_height'] = [
|
$GLOBALS['TL_DCA']['tl_content']['fields']['leaflet_height'] = [
|
||||||
'label' => &$GLOBALS['TL_LANG']['tl_content']['leaflet_height'],
|
'label' => &$GLOBALS['TL_LANG']['tl_content']['leaflet_height'],
|
||||||
'inputType' => 'inputUnit',
|
'inputType' => 'inputUnit',
|
||||||
'options' => ['px', '%', 'em', 'pt', 'pc', 'in', 'cm', 'mm'],
|
'options' => $GLOBALS['TL_CSS_UNITS'],
|
||||||
'search' => false,
|
'search' => false,
|
||||||
'exclude' => true,
|
'exclude' => true,
|
||||||
'eval' => ['rgxp' => 'digit', 'tl_class' => 'w50'],
|
'eval' => ['rgxp' => 'digit', 'tl_class' => 'w50'],
|
||||||
|
|||||||
@@ -232,12 +232,14 @@ $GLOBALS['TL_DCA']['tl_leaflet_layer'] = [
|
|||||||
'provider' => ['tile_provider', 'tile_provider_variant'],
|
'provider' => ['tile_provider', 'tile_provider_variant'],
|
||||||
],
|
],
|
||||||
'tile_provider' => [
|
'tile_provider' => [
|
||||||
'MapBox' => ['tile_provider_key'],
|
'MapBox' => ['tile_provider_key'],
|
||||||
'HERE' => ['tile_provider_key', 'tile_provider_code'],
|
'HERE' => ['tile_provider_key', 'tile_provider_code'],
|
||||||
|
'OpenWeatherMap' => ['tile_provider_key'],
|
||||||
|
'Thunderforest' => ['tile_provider_key'],
|
||||||
|
],
|
||||||
|
'fileFormat' => [
|
||||||
|
'!' => ['file'],
|
||||||
],
|
],
|
||||||
'fileFormat' => [
|
|
||||||
'!' => ['file']
|
|
||||||
]
|
|
||||||
],
|
],
|
||||||
|
|
||||||
'metasubpalettes' => [
|
'metasubpalettes' => [
|
||||||
@@ -718,14 +720,14 @@ $GLOBALS['TL_DCA']['tl_leaflet_layer'] = [
|
|||||||
'bounds' => [
|
'bounds' => [
|
||||||
'label' => &$GLOBALS['TL_LANG']['tl_leaflet_layer']['bounds'],
|
'label' => &$GLOBALS['TL_LANG']['tl_leaflet_layer']['bounds'],
|
||||||
'exclude' => true,
|
'exclude' => true,
|
||||||
'inputType' => 'text',
|
'inputType' => 'leaflet_geocode',
|
||||||
'save_callback' => [
|
'save_callback' => [
|
||||||
],
|
],
|
||||||
'eval' => [
|
'eval' => [
|
||||||
'maxlength' => 255,
|
'maxlength' => 255,
|
||||||
'multiple' => true,
|
'multiple' => true,
|
||||||
'size' => 2,
|
'size' => 2,
|
||||||
'tl_class' => 'long clr',
|
'tl_class' => 'clr',
|
||||||
'nullIfEmpty' => true,
|
'nullIfEmpty' => true,
|
||||||
],
|
],
|
||||||
'sql' => 'mediumblob NULL',
|
'sql' => 'mediumblob NULL',
|
||||||
@@ -864,7 +866,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_layer'] = [
|
|||||||
],
|
],
|
||||||
'sql' => 'mediumtext NULL',
|
'sql' => 'mediumtext NULL',
|
||||||
],
|
],
|
||||||
'fileFormat' => [
|
'fileFormat' => [
|
||||||
'label' => &$GLOBALS['TL_LANG']['tl_leaflet_layer']['fileFormat'],
|
'label' => &$GLOBALS['TL_LANG']['tl_leaflet_layer']['fileFormat'],
|
||||||
'exclude' => true,
|
'exclude' => true,
|
||||||
'inputType' => 'select',
|
'inputType' => 'select',
|
||||||
@@ -882,19 +884,19 @@ $GLOBALS['TL_DCA']['tl_leaflet_layer'] = [
|
|||||||
'sql' => "varchar(32) NOT NULL default ''",
|
'sql' => "varchar(32) NOT NULL default ''",
|
||||||
],
|
],
|
||||||
'file' => [
|
'file' => [
|
||||||
'label' => &$GLOBALS['TL_LANG']['tl_leaflet_layer']['file'],
|
'label' => &$GLOBALS['TL_LANG']['tl_leaflet_layer']['file'],
|
||||||
'exclude' => true,
|
'exclude' => true,
|
||||||
'inputType' => 'fileTree',
|
'inputType' => 'fileTree',
|
||||||
'load_callback' => [
|
'load_callback' => [
|
||||||
['netzmacht.contao_leaflet.listeners.dca.layer', 'prepareFileWidget'],
|
['netzmacht.contao_leaflet.listeners.dca.layer', 'prepareFileWidget'],
|
||||||
],
|
],
|
||||||
'eval' => [
|
'eval' => [
|
||||||
'filesOnly' => true,
|
'filesOnly' => true,
|
||||||
'fieldType' => 'radio',
|
'fieldType' => 'radio',
|
||||||
'mandatory' => true,
|
'mandatory' => true,
|
||||||
'tl_class' => 'clr',
|
'tl_class' => 'clr',
|
||||||
],
|
],
|
||||||
'sql' => 'binary(16) NULL',
|
'sql' => 'binary(16) NULL',
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_map'] = [
|
|||||||
],
|
],
|
||||||
'onload_callback' => [
|
'onload_callback' => [
|
||||||
['netzmacht.contao_leaflet.listeners.dca.leaflet', 'loadLanguageFile'],
|
['netzmacht.contao_leaflet.listeners.dca.leaflet', 'loadLanguageFile'],
|
||||||
|
['netzmacht.contao_leaflet.listeners.dca.map', 'addIncompleteConfigurationWarning'],
|
||||||
],
|
],
|
||||||
'onsubmit_callback' => [
|
'onsubmit_callback' => [
|
||||||
['netzmacht.contao_leaflet.listeners.dca.leaflet', 'clearCache'],
|
['netzmacht.contao_leaflet.listeners.dca.leaflet', 'clearCache'],
|
||||||
|
|||||||
@@ -347,13 +347,13 @@ $GLOBALS['TL_DCA']['tl_leaflet_vector'] = [
|
|||||||
'bounds' => [
|
'bounds' => [
|
||||||
'label' => &$GLOBALS['TL_LANG']['tl_leaflet_vector']['bounds'],
|
'label' => &$GLOBALS['TL_LANG']['tl_leaflet_vector']['bounds'],
|
||||||
'exclude' => true,
|
'exclude' => true,
|
||||||
'inputType' => 'text',
|
'inputType' => 'leaflet_geocode',
|
||||||
'save_callback' => [],
|
'save_callback' => [],
|
||||||
'eval' => [
|
'eval' => [
|
||||||
'maxlength' => 255,
|
'maxlength' => 255,
|
||||||
'multiple' => true,
|
'multiple' => true,
|
||||||
'size' => 2,
|
'size' => 2,
|
||||||
'tl_class' => 'long clr',
|
'tl_class' => 'clr',
|
||||||
'nullIfEmpty' => true,
|
'nullIfEmpty' => true,
|
||||||
],
|
],
|
||||||
'sql' => 'mediumblob NULL',
|
'sql' => 'mediumblob NULL',
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ $GLOBALS['TL_DCA']['tl_module']['fields']['leaflet_mapId'] = [
|
|||||||
$GLOBALS['TL_DCA']['tl_module']['fields']['leaflet_width'] = [
|
$GLOBALS['TL_DCA']['tl_module']['fields']['leaflet_width'] = [
|
||||||
'label' => &$GLOBALS['TL_LANG']['tl_module']['leaflet_width'],
|
'label' => &$GLOBALS['TL_LANG']['tl_module']['leaflet_width'],
|
||||||
'inputType' => 'inputUnit',
|
'inputType' => 'inputUnit',
|
||||||
'options' => ['px', '%', 'em', 'pt', 'pc', 'in', 'cm', 'mm'],
|
'options' => $GLOBALS['TL_CSS_UNITS'],
|
||||||
'search' => false,
|
'search' => false,
|
||||||
'exclude' => true,
|
'exclude' => true,
|
||||||
'eval' => ['rgxp' => 'digit', 'tl_class' => 'clr w50'],
|
'eval' => ['rgxp' => 'digit', 'tl_class' => 'clr w50'],
|
||||||
@@ -60,7 +60,7 @@ $GLOBALS['TL_DCA']['tl_module']['fields']['leaflet_width'] = [
|
|||||||
$GLOBALS['TL_DCA']['tl_module']['fields']['leaflet_height'] = [
|
$GLOBALS['TL_DCA']['tl_module']['fields']['leaflet_height'] = [
|
||||||
'label' => &$GLOBALS['TL_LANG']['tl_module']['leaflet_height'],
|
'label' => &$GLOBALS['TL_LANG']['tl_module']['leaflet_height'],
|
||||||
'inputType' => 'inputUnit',
|
'inputType' => 'inputUnit',
|
||||||
'options' => ['px', '%', 'em', 'pt', 'pc', 'in', 'cm', 'mm'],
|
'options' => $GLOBALS['TL_CSS_UNITS'],
|
||||||
'search' => false,
|
'search' => false,
|
||||||
'exclude' => true,
|
'exclude' => true,
|
||||||
'eval' => ['rgxp' => 'digit', 'tl_class' => 'w50'],
|
'eval' => ['rgxp' => 'digit', 'tl_class' => 'w50'],
|
||||||
|
|||||||
@@ -8,12 +8,13 @@
|
|||||||
*
|
*
|
||||||
* @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL
|
* @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL
|
||||||
*
|
*
|
||||||
* last-updated: 2016-10-06T15:54:30+02:00
|
* last-updated: 2017-10-17T16:04:08+00:00
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$GLOBALS['TL_LANG']['leaflet']['applyPosition'] = 'Position anwenden';
|
$GLOBALS['TL_LANG']['leaflet']['applyPosition'] = 'Position anwenden';
|
||||||
$GLOBALS['TL_LANG']['leaflet']['invalidAlias'] = 'Ein ungültiger Alias wurde angegeben. Ein Alias darf nicht leer sein, mit einer Zahl beginnen oder Sonderzeichen enthalten (Unterstriche sind erlaubt).';
|
$GLOBALS['TL_LANG']['leaflet']['invalidAlias'] = 'Ein ungültiger Alias wurde angegeben. Ein Alias darf nicht leer sein, mit einer Zahl beginnen oder Sonderzeichen enthalten (Unterstriche sind erlaubt).';
|
||||||
$GLOBALS['TL_LANG']['leaflet']['invalidCoordinates'] = 'Ungültige Koordinatenwerte vorhanden.';
|
$GLOBALS['TL_LANG']['leaflet']['invalidCoordinates'] = 'Ungültige Koordinatenwerte vorhanden.';
|
||||||
|
$GLOBALS['TL_LANG']['leaflet']['searchPosition'] = 'Standort suchen';
|
||||||
$GLOBALS['TL_LANG']['leaflet_control']['attribution']['0'] = 'Copyright-Leiste';
|
$GLOBALS['TL_LANG']['leaflet_control']['attribution']['0'] = 'Copyright-Leiste';
|
||||||
$GLOBALS['TL_LANG']['leaflet_control']['attribution']['1'] = 'Das Kontrollelement zur Namensnennung erlaubt es, Urheber in einer kleinen Textbox auf der Karte anzuzeigen. Lesen Sie für weitere Details die <a href="http://leafletjs.com/reference.html#control-attribution" target="_blank">Leaflet-Dokumentation</a>.';
|
$GLOBALS['TL_LANG']['leaflet_control']['attribution']['1'] = 'Das Kontrollelement zur Namensnennung erlaubt es, Urheber in einer kleinen Textbox auf der Karte anzuzeigen. Lesen Sie für weitere Details die <a href="http://leafletjs.com/reference.html#control-attribution" target="_blank">Leaflet-Dokumentation</a>.';
|
||||||
$GLOBALS['TL_LANG']['leaflet_control']['fullscreen']['0'] = 'Fullscreen-Kontrollelement';
|
$GLOBALS['TL_LANG']['leaflet_control']['fullscreen']['0'] = 'Fullscreen-Kontrollelement';
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
* @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL
|
* @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL
|
||||||
*
|
*
|
||||||
* last-updated: 2016-10-04T13:07:35+02:00
|
* last-updated: 2017-10-17T16:04:09+00:00
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_control']['active']['0'] = 'Kontrollelement aktivieren';
|
$GLOBALS['TL_LANG']['tl_leaflet_control']['active']['0'] = 'Kontrollelement aktivieren';
|
||||||
@@ -21,6 +21,7 @@ $GLOBALS['TL_LANG']['tl_leaflet_control']['attributions']['1'] = 'Hier kö
|
|||||||
$GLOBALS['TL_LANG']['tl_leaflet_control']['autoZIndex']['0'] = 'Automatischer Z-Index';
|
$GLOBALS['TL_LANG']['tl_leaflet_control']['autoZIndex']['0'] = 'Automatischer Z-Index';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_control']['autoZIndex']['1'] = 'Falls aktiviert wird das Kontrollelement zu allen Layern in aufsteigender Reihenfolge einen z-index hinzufügen, damit die Reihenfolge auch beim an- und abschalten von Layern erhalten bleibt.';
|
$GLOBALS['TL_LANG']['tl_leaflet_control']['autoZIndex']['1'] = 'Falls aktiviert wird das Kontrollelement zu allen Layern in aufsteigender Reihenfolge einen z-index hinzufügen, damit die Reihenfolge auch beim an- und abschalten von Layern erhalten bleibt.';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_control']['base']['0'] = 'Basislayer';
|
$GLOBALS['TL_LANG']['tl_leaflet_control']['base']['0'] = 'Basislayer';
|
||||||
|
$GLOBALS['TL_LANG']['tl_leaflet_control']['base']['1'] = 'Basis-Layer werden mit Radio-Buttons umgeschaltet. Beachten Sie, dass alle Basis-Layer als Basis-Layer-Objekte übergeben werden sollten, aber nur ein einziger für die Initialisierung der Karte benutzt werden soll.';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_control']['bottomleft']['0'] = 'Links unten';
|
$GLOBALS['TL_LANG']['tl_leaflet_control']['bottomleft']['0'] = 'Links unten';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_control']['bottomleft']['1'] = 'Linker unterer Bereich der Karte';
|
$GLOBALS['TL_LANG']['tl_leaflet_control']['bottomleft']['1'] = 'Linker unterer Bereich der Karte';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_control']['bottomright']['0'] = 'Rechts unten';
|
$GLOBALS['TL_LANG']['tl_leaflet_control']['bottomright']['0'] = 'Rechts unten';
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
* @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL
|
* @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL
|
||||||
*
|
*
|
||||||
* last-updated: 2016-10-04T13:07:35+02:00
|
* last-updated: 2017-10-17T16:04:07+00:00
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_icon']['active']['0'] = 'Aktivieren Sie das Icon.';
|
$GLOBALS['TL_LANG']['tl_leaflet_icon']['active']['0'] = 'Aktivieren Sie das Icon.';
|
||||||
@@ -30,6 +30,7 @@ $GLOBALS['TL_LANG']['tl_leaflet_icon']['edit']['1'] = 'Icon ID %s b
|
|||||||
$GLOBALS['TL_LANG']['tl_leaflet_icon']['icon']['0'] = 'Icon-CSS-Klasse';
|
$GLOBALS['TL_LANG']['tl_leaflet_icon']['icon']['0'] = 'Icon-CSS-Klasse';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_icon']['icon']['1'] = 'Icon-CSS-Klasse, beispielsweise <em>fa-envelope</em>';
|
$GLOBALS['TL_LANG']['tl_leaflet_icon']['icon']['1'] = 'Icon-CSS-Klasse, beispielsweise <em>fa-envelope</em>';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_icon']['iconAnchor']['0'] = 'Icon-Anker';
|
$GLOBALS['TL_LANG']['tl_leaflet_icon']['iconAnchor']['0'] = 'Icon-Anker';
|
||||||
|
$GLOBALS['TL_LANG']['tl_leaflet_icon']['iconAnchor']['1'] = 'Die Koordinaten der "Spitze" des Schattens (relativ zu seiner oberen linken Ecke).';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_icon']['iconColor']['0'] = 'Iconfarbe';
|
$GLOBALS['TL_LANG']['tl_leaflet_icon']['iconColor']['0'] = 'Iconfarbe';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_icon']['iconColor']['1'] = 'Definieren Sie hier eine Farbe für den Icon-Marker';
|
$GLOBALS['TL_LANG']['tl_leaflet_icon']['iconColor']['1'] = 'Definieren Sie hier eine Farbe für den Icon-Marker';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_icon']['iconImage']['0'] = 'Icon-Bild';
|
$GLOBALS['TL_LANG']['tl_leaflet_icon']['iconImage']['0'] = 'Icon-Bild';
|
||||||
@@ -48,7 +49,10 @@ $GLOBALS['TL_LANG']['tl_leaflet_icon']['popupAnchor']['0'] = 'Popup-Anker'
|
|||||||
$GLOBALS['TL_LANG']['tl_leaflet_icon']['popupAnchor']['1'] = 'Geben Sie die Koordinaten des Punktes an, von dem aus sich das Popup "öffnet". Die Koordinaten werden relativ zum Anker des Icons benutzt.';
|
$GLOBALS['TL_LANG']['tl_leaflet_icon']['popupAnchor']['1'] = 'Geben Sie die Koordinaten des Punktes an, von dem aus sich das Popup "öffnet". Die Koordinaten werden relativ zum Anker des Icons benutzt.';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_icon']['popups']['0'] = 'Popups verwalten';
|
$GLOBALS['TL_LANG']['tl_leaflet_icon']['popups']['0'] = 'Popups verwalten';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_icon']['popups']['1'] = 'Popup-Icons verwalten';
|
$GLOBALS['TL_LANG']['tl_leaflet_icon']['popups']['1'] = 'Popup-Icons verwalten';
|
||||||
|
$GLOBALS['TL_LANG']['tl_leaflet_icon']['prefix']['0'] = 'Iconpräfix Klasse';
|
||||||
|
$GLOBALS['TL_LANG']['tl_leaflet_icon']['prefix']['1'] = 'Iconpräfix Klasse, z.B. <em>fa</em>';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_icon']['shadowAnchor']['0'] = 'Schatten-Anker';
|
$GLOBALS['TL_LANG']['tl_leaflet_icon']['shadowAnchor']['0'] = 'Schatten-Anker';
|
||||||
|
$GLOBALS['TL_LANG']['tl_leaflet_icon']['shadowAnchor']['1'] = 'Die Koordinaten der "Spitze" des Schattens (relativ zu seiner oberen linken Ecke) (das gleiche wie der Symbol Anker, wenn nicht angegeben).';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_icon']['shadowImage']['0'] = 'Schatten-Bild';
|
$GLOBALS['TL_LANG']['tl_leaflet_icon']['shadowImage']['0'] = 'Schatten-Bild';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_icon']['shadowImage']['1'] = 'Wählen Sie ein Bild für den Schatten aus.';
|
$GLOBALS['TL_LANG']['tl_leaflet_icon']['shadowImage']['1'] = 'Wählen Sie ein Bild für den Schatten aus.';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_icon']['shadowRetinaImage']['0'] = 'Retina-Schattenbild';
|
$GLOBALS['TL_LANG']['tl_leaflet_icon']['shadowRetinaImage']['0'] = 'Retina-Schattenbild';
|
||||||
|
|||||||
@@ -8,11 +8,12 @@
|
|||||||
*
|
*
|
||||||
* @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL
|
* @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL
|
||||||
*
|
*
|
||||||
* last-updated: 2016-10-06T15:54:30+02:00
|
* last-updated: 2017-10-17T16:04:07+00:00
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_map']['adjustBounds']['0'] = 'Grenzen festlegen';
|
$GLOBALS['TL_LANG']['tl_leaflet_map']['adjustBounds']['0'] = 'Grenzen festlegen';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_map']['adjustBounds']['1'] = 'Falls aktiviert passt sich die karten an den Bereich der Datenlayer an, für die Auswirkungen auf die Kartengrenzen zugelassen sind.';
|
$GLOBALS['TL_LANG']['tl_leaflet_map']['adjustBounds']['1'] = 'Falls aktiviert passt sich die karten an den Bereich der Datenlayer an, für die Auswirkungen auf die Kartengrenzen zugelassen sind.';
|
||||||
|
$GLOBALS['TL_LANG']['tl_leaflet_map']['adjustBoundsOptions']['deferred']['0'] = 'Nach dem Laden des verzögerten Features';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_map']['adjustBoundsOptions']['deferred']['1'] = 'Bestimmt ob die Kartengrenzen neu berechnet werden wenn ein Feature verzögert geladen wird.';
|
$GLOBALS['TL_LANG']['tl_leaflet_map']['adjustBoundsOptions']['deferred']['1'] = 'Bestimmt ob die Kartengrenzen neu berechnet werden wenn ein Feature verzögert geladen wird.';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_map']['adjustBoundsOptions']['load']['0'] = 'bei Karteninitialisierung';
|
$GLOBALS['TL_LANG']['tl_leaflet_map']['adjustBoundsOptions']['load']['0'] = 'bei Karteninitialisierung';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_map']['adjustBoundsOptions']['load']['1'] = 'Grenzen berechnen, wenn die Karte initialisiert wird. Alle statischen und bereits geladenen Features werden mit einbezogen.';
|
$GLOBALS['TL_LANG']['tl_leaflet_map']['adjustBoundsOptions']['load']['1'] = 'Grenzen berechnen, wenn die Karte initialisiert wird. Alle statischen und bereits geladenen Features werden mit einbezogen.';
|
||||||
@@ -23,6 +24,7 @@ $GLOBALS['TL_LANG']['tl_leaflet_map']['alias']['1'] =
|
|||||||
$GLOBALS['TL_LANG']['tl_leaflet_map']['behaviour_legend'] = 'Verhalten';
|
$GLOBALS['TL_LANG']['tl_leaflet_map']['behaviour_legend'] = 'Verhalten';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_map']['bounceAtZoomLimits']['0'] = 'Zurückfedern bei Erreichen des Zoom-Limits';
|
$GLOBALS['TL_LANG']['tl_leaflet_map']['bounceAtZoomLimits']['0'] = 'Zurückfedern bei Erreichen des Zoom-Limits';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_map']['bounceAtZoomLimits']['1'] = 'Deaktivieren Sie diese Einstellung, falls Sie verhindern möchten, dass außerhalb liegende Elemente der Karte beim Zoomen über die festgelegten minimalen / maximalen Zoomstufen hinaus angezeigt werden wenn mit zwei Fingern gezoomt wird.';
|
$GLOBALS['TL_LANG']['tl_leaflet_map']['bounceAtZoomLimits']['1'] = 'Deaktivieren Sie diese Einstellung, falls Sie verhindern möchten, dass außerhalb liegende Elemente der Karte beim Zoomen über die festgelegten minimalen / maximalen Zoomstufen hinaus angezeigt werden wenn mit zwei Fingern gezoomt wird.';
|
||||||
|
$GLOBALS['TL_LANG']['tl_leaflet_map']['boundsPadding']['1'] = 'Padding wird verwendet, um Grenzen zu setzen. Verwenden Sie kommagetrennte Werte. Wenn 2 Werte angegeben werden, ist die <em>Padding</em>-Option eingestellt. Wenn 4 Werte angegeben werden, ist <em>paddingTopLeft</em> und <em>paddingBottomRight</em> gesetzt.';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_map']['boxZoom']['0'] = 'Zoomen durch Markierung';
|
$GLOBALS['TL_LANG']['tl_leaflet_map']['boxZoom']['0'] = 'Zoomen durch Markierung';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_map']['boxZoom']['1'] = 'legen Sie fest ob der Kartenausschnitt vergrößert werden kann indem Benutzer die Maus mit gedrückter Umschalttaste über die Karte ziehen.';
|
$GLOBALS['TL_LANG']['tl_leaflet_map']['boxZoom']['1'] = 'legen Sie fest ob der Kartenausschnitt vergrößert werden kann indem Benutzer die Maus mit gedrückter Umschalttaste über die Karte ziehen.';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_map']['cache']['0'] = 'Cache aktivieren';
|
$GLOBALS['TL_LANG']['tl_leaflet_map']['cache']['0'] = 'Cache aktivieren';
|
||||||
@@ -62,6 +64,8 @@ $GLOBALS['TL_LANG']['tl_leaflet_map']['layers']['1'] =
|
|||||||
$GLOBALS['TL_LANG']['tl_leaflet_map']['layers_legend'] = 'Standardlayer';
|
$GLOBALS['TL_LANG']['tl_leaflet_map']['layers_legend'] = 'Standardlayer';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_map']['locate']['0'] = 'Nutzerposition ermitteln';
|
$GLOBALS['TL_LANG']['tl_leaflet_map']['locate']['0'] = 'Nutzerposition ermitteln';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_map']['locate']['1'] = 'Initialer Kartenzoom. Diese Funktion versucht, den Benutzer mittels Geolocation-API zu orten.';
|
$GLOBALS['TL_LANG']['tl_leaflet_map']['locate']['1'] = 'Initialer Kartenzoom. Diese Funktion versucht, den Benutzer mittels Geolocation-API zu orten.';
|
||||||
|
$GLOBALS['TL_LANG']['tl_leaflet_map']['locateMaxZoom']['0'] = 'Lokalisieren Sie den maximalen Zoom';
|
||||||
|
$GLOBALS['TL_LANG']['tl_leaflet_map']['locateMaxZoom']['1'] = 'Max-Zoom bei der Aktualisierung der Kartenansicht.';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_map']['locateMaximumAge']['0'] = 'Maximale Gültigkeit der Benutzerposition';
|
$GLOBALS['TL_LANG']['tl_leaflet_map']['locateMaximumAge']['0'] = 'Maximale Gültigkeit der Benutzerposition';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_map']['locateMaximumAge']['1'] = 'Maximales Alter der Daten zum Aufenthaltsort in Millisekunden. Ansonsten wird der zwischengespeicherte Wert benutzt.';
|
$GLOBALS['TL_LANG']['tl_leaflet_map']['locateMaximumAge']['1'] = 'Maximales Alter der Daten zum Aufenthaltsort in Millisekunden. Ansonsten wird der zwischengespeicherte Wert benutzt.';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_map']['locateSetView']['0'] = 'Kartenmitte aktualisieren';
|
$GLOBALS['TL_LANG']['tl_leaflet_map']['locateSetView']['0'] = 'Kartenmitte aktualisieren';
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
* @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL
|
* @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL
|
||||||
*
|
*
|
||||||
* last-updated: 2016-10-06T15:54:30+02:00
|
* last-updated: 2017-10-17T16:04:07+00:00
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_marker']['active']['0'] = 'Marker aktivieren';
|
$GLOBALS['TL_LANG']['tl_leaflet_marker']['active']['0'] = 'Marker aktivieren';
|
||||||
@@ -44,6 +44,7 @@ $GLOBALS['TL_LANG']['tl_leaflet_marker']['icon']['1'] = 'Individuelle
|
|||||||
$GLOBALS['TL_LANG']['tl_leaflet_marker']['icons']['0'] = 'Icons verwalten';
|
$GLOBALS['TL_LANG']['tl_leaflet_marker']['icons']['0'] = 'Icons verwalten';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_marker']['icons']['1'] = 'Marker-Icons verwalten';
|
$GLOBALS['TL_LANG']['tl_leaflet_marker']['icons']['1'] = 'Marker-Icons verwalten';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_marker']['ignoreForBounds']['0'] = 'Von Grenzen-Berechnung ausschließen.';
|
$GLOBALS['TL_LANG']['tl_leaflet_marker']['ignoreForBounds']['0'] = 'Von Grenzen-Berechnung ausschließen.';
|
||||||
|
$GLOBALS['TL_LANG']['tl_leaflet_marker']['ignoreForBounds']['1'] = 'Fügen Sie dieses Element nicht in die Berechnung ein.';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_marker']['keyboard']['0'] = 'Tatstaturnavigation';
|
$GLOBALS['TL_LANG']['tl_leaflet_marker']['keyboard']['0'] = 'Tatstaturnavigation';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_marker']['keyboard']['1'] = 'Legen Sie fest ob der Marker über die Tabulatortaste erreicht und mit der Eingabetaste geklickt werden kann.';
|
$GLOBALS['TL_LANG']['tl_leaflet_marker']['keyboard']['1'] = 'Legen Sie fest ob der Marker über die Tabulatortaste erreicht und mit der Eingabetaste geklickt werden kann.';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_marker']['new']['0'] = 'Marker erstellen';
|
$GLOBALS['TL_LANG']['tl_leaflet_marker']['new']['0'] = 'Marker erstellen';
|
||||||
@@ -62,5 +63,7 @@ $GLOBALS['TL_LANG']['tl_leaflet_marker']['title_legend'] = 'Titel und Ty
|
|||||||
$GLOBALS['TL_LANG']['tl_leaflet_marker']['toggle']['0'] = 'Aktivierung umschalten';
|
$GLOBALS['TL_LANG']['tl_leaflet_marker']['toggle']['0'] = 'Aktivierung umschalten';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_marker']['toggle']['1'] = 'Aktivierung von Marker ID %s umschalten';
|
$GLOBALS['TL_LANG']['tl_leaflet_marker']['toggle']['1'] = 'Aktivierung von Marker ID %s umschalten';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_marker']['tooltip']['0'] = 'Tooltip';
|
$GLOBALS['TL_LANG']['tl_leaflet_marker']['tooltip']['0'] = 'Tooltip';
|
||||||
|
$GLOBALS['TL_LANG']['tl_leaflet_marker']['tooltip']['1'] = 'Marker-Tooltip als Titelattribut gerendert.';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_marker']['zIndexOffset']['0'] = 'Z-Index-Offset';
|
$GLOBALS['TL_LANG']['tl_leaflet_marker']['zIndexOffset']['0'] = 'Z-Index-Offset';
|
||||||
|
$GLOBALS['TL_LANG']['tl_leaflet_marker']['zIndexOffset']['1'] = 'Standardmäßig werden Markerbilder z-Index automatisch auf Grundlage der geografischen Breite festgelegt. Verwenden Sie diese Option, wenn Sie den Marker über allen anderen (oder darunter) platzieren möchten und einen hohen Wert wie 1000 (bzw. einen hohen negativen Wert) angeben.';
|
||||||
|
|
||||||
|
|||||||
@@ -8,17 +8,19 @@
|
|||||||
*
|
*
|
||||||
* @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL
|
* @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL
|
||||||
*
|
*
|
||||||
* last-updated: 2016-10-04T13:07:35+02:00
|
* last-updated: 2017-10-17T16:04:07+00:00
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_style']['active_legend'] = 'Aktivierung';
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['active_legend'] = 'Aktivierung';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_style']['alias']['0'] = 'Alias';
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['alias']['0'] = 'Alias';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_style']['alias']['1'] = 'Alias des Stils.';
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['alias']['1'] = 'Alias des Stils.';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_style']['color']['0'] = 'Linienfarbe';
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['color']['0'] = 'Linienfarbe';
|
||||||
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['color']['1'] = 'Eigene Linienfarbe. Wenn dieses Feld leer ist wird die Standard-Linienfarbe benutzt. Erwartete Werte sind vollständige Hex-Codes (mit #).';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_style']['config_legend'] = 'Konfiguration';
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['config_legend'] = 'Konfiguration';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_style']['copy']['0'] = 'Stil kopieren';
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['copy']['0'] = 'Stil kopieren';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_style']['copy']['1'] = 'Stil ID %s kopieren';
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['copy']['1'] = 'Stil ID %s kopieren';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_style']['dashArray']['0'] = 'Linienmuster';
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['dashArray']['0'] = 'Linienmuster';
|
||||||
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['dashArray']['1'] = 'Geben Sie einen String ein, der für die <a href="https://developer.mozilla.org/en/SVG/Attribute/stroke-dasharray" target="_blank">Linienart</a> benutzt werden soll.';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_style']['delete']['0'] = 'Stil löschen';
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['delete']['0'] = 'Stil löschen';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_style']['delete']['1'] = 'Stil ID %s löschen';
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['delete']['1'] = 'Stil ID %s löschen';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_style']['edit']['0'] = 'Stil bearbeiten';
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['edit']['0'] = 'Stil bearbeiten';
|
||||||
@@ -26,6 +28,7 @@ $GLOBALS['TL_LANG']['tl_leaflet_style']['edit']['1'] = 'Stil ID %s bearbe
|
|||||||
$GLOBALS['TL_LANG']['tl_leaflet_style']['fill']['0'] = 'Vektor füllen';
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['fill']['0'] = 'Vektor füllen';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_style']['fill']['1'] = 'Bestimmen Sie, ob der Pfad gefüllt dargestellt werden soll.';
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['fill']['1'] = 'Bestimmen Sie, ob der Pfad gefüllt dargestellt werden soll.';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_style']['fillColor']['0'] = 'Füllfarbe';
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['fillColor']['0'] = 'Füllfarbe';
|
||||||
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['fillColor']['1'] = 'Eigene Linienfarbe. Wenn dieses Feld leer ist wird die Standard-Linienfarbe benutzt. Erwartete Werte sind vollständige Hex-Codes (mit #).';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_style']['fillOpacity']['0'] = 'Transparenz der Füllung';
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['fillOpacity']['0'] = 'Transparenz der Füllung';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_style']['fillOpacity']['1'] = 'Die Transparenz der Füllung kann einen Wert zwischen 0 und 1 annehmen.';
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['fillOpacity']['1'] = 'Die Transparenz der Füllung kann einen Wert zwischen 0 und 1 annehmen.';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_style']['icons']['0'] = 'Icons verwalten';
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['icons']['0'] = 'Icons verwalten';
|
||||||
@@ -35,6 +38,7 @@ $GLOBALS['TL_LANG']['tl_leaflet_style']['layersBtn']['1'] = 'Leaflet-Layer ver
|
|||||||
$GLOBALS['TL_LANG']['tl_leaflet_style']['lineCap']['0'] = 'Linienenden';
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['lineCap']['0'] = 'Linienenden';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_style']['lineCap']['1'] = 'Geben Sie einen Wert ein, der für die <a href="https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-linecap" target="_blank">Enden der Linie</a> benutzt werden soll,';
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['lineCap']['1'] = 'Geben Sie einen Wert ein, der für die <a href="https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-linecap" target="_blank">Enden der Linie</a> benutzt werden soll,';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_style']['lineJoin']['0'] = 'Linienverbindung';
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['lineJoin']['0'] = 'Linienverbindung';
|
||||||
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['lineJoin']['1'] = 'Geben Sie einen String ein, der die <a href="https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-linejoin" target="_blank">Form der Ecken</a> definiert.';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_style']['new']['0'] = 'Stil erstellen';
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['new']['0'] = 'Stil erstellen';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_style']['new']['1'] = 'Neuen Stil erstellen';
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['new']['1'] = 'Neuen Stil erstellen';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_style']['opacity']['0'] = 'Linientransparenz';
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['opacity']['0'] = 'Linientransparenz';
|
||||||
@@ -44,6 +48,7 @@ $GLOBALS['TL_LANG']['tl_leaflet_style']['popups']['1'] = 'Popup-Icons verwa
|
|||||||
$GLOBALS['TL_LANG']['tl_leaflet_style']['show']['0'] = 'Details anzeigen';
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['show']['0'] = 'Details anzeigen';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_style']['show']['1'] = 'Details des Stils ID %s anzeigen';
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['show']['1'] = 'Details des Stils ID %s anzeigen';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_style']['stroke']['0'] = 'Linie ziehen';
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['stroke']['0'] = 'Linie ziehen';
|
||||||
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['stroke']['1'] = 'Legt fest, ob eine Linie entlang des Pfades dargestellt werden soll. Deaktivieren Sie diese Einstellung um die Grenzen von Polygonen oder Kreisen unsichtbar zu schalten.';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_style']['title']['0'] = 'Titel';
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['title']['0'] = 'Titel';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_style']['title']['1'] = 'Titel des Stils.';
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['title']['1'] = 'Titel des Stils.';
|
||||||
$GLOBALS['TL_LANG']['tl_leaflet_style']['title_legend'] = 'Titel und Typ';
|
$GLOBALS['TL_LANG']['tl_leaflet_style']['title_legend'] = 'Titel und Typ';
|
||||||
|
|||||||
15
src/Bundle/Resources/contao/languages/en/default.php
Normal file
15
src/Bundle/Resources/contao/languages/en/default.php
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Leaflet maps for Contao CMS.
|
||||||
|
*
|
||||||
|
* @package contao-leaflet-maps
|
||||||
|
* @author David Molineus <david.molineus@netzmacht.de>
|
||||||
|
* @copyright 2014-2018 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);
|
||||||
|
|
||||||
|
$GLOBALS['TL_LANG']['ERR']['leafletMissingZoomLevel'] = 'No zoom level defined. Only leave it empty on purpose (Zoom level might by initialized by bounds adjustments). Otherwise no map will be shown.';
|
||||||
@@ -149,6 +149,10 @@ $GLOBALS['TL_LANG']['tl_leaflet_layer']['fileFormat'][0] = 'File
|
|||||||
$GLOBALS['TL_LANG']['tl_leaflet_layer']['fileFormat'][1] = 'Choose which file format is used.';
|
$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'][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']['file'][1] = 'Choose a file containing geodata. Supported formats are: %s.';
|
||||||
|
$GLOBALS['TL_LANG']['tl_leaflet_layer']['tile_provider_key'][0] = 'API key / Access token';
|
||||||
|
$GLOBALS['TL_LANG']['tl_leaflet_layer']['tile_provider_key'][1] = 'Please define the API key / access token which is required for this tile provider.';
|
||||||
|
$GLOBALS['TL_LANG']['tl_leaflet_layer']['tile_provider_code'][0] = 'App code';
|
||||||
|
$GLOBALS['TL_LANG']['tl_leaflet_layer']['tile_provider_code'][1] = 'Please define the required app code for this tile provider.';
|
||||||
|
|
||||||
$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>';
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
<IfModule !mod_authz_core.c>
|
|
||||||
Order allow,deny
|
|
||||||
Allow from all
|
|
||||||
</IfModule>
|
|
||||||
<IfModule mod_authz_core.c>
|
|
||||||
Require all granted
|
|
||||||
</IfModule>
|
|
||||||
@@ -1,140 +0,0 @@
|
|||||||
<div class="netzmacht-leaflet-credits">
|
|
||||||
<div class="header">
|
|
||||||
<h1 class="sub_headline"><?php echo $this->headline; ?>
|
|
||||||
<small><?php echo $this->version; ?></small>
|
|
||||||
</h1>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<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 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">
|
|
||||||
<h2>Support Contao Leaflet</h2>
|
|
||||||
|
|
||||||
<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­tribute. Translations,
|
|
||||||
docu­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 class="row">
|
|
||||||
|
|
||||||
<div class="col">
|
|
||||||
<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 class="tl_box">
|
|
||||||
<h2>Credits</h2>
|
|
||||||
<table class="tl_listing">
|
|
||||||
<tr>
|
|
||||||
<th>Name</th>
|
|
||||||
<th>Version</th>
|
|
||||||
<th>License</th>
|
|
||||||
<th>Homepage</th>
|
|
||||||
</tr>
|
|
||||||
<?php if ($this->libraries): ?>
|
|
||||||
<tr>
|
|
||||||
<th colspan="4" class="subtitle">Libraries</th>
|
|
||||||
</tr>
|
|
||||||
<?php endif; ?>
|
|
||||||
<?php foreach ($this->libraries as $library): ?>
|
|
||||||
<tr>
|
|
||||||
<td><?php echo $library['name']; ?></td>
|
|
||||||
<td><?php echo $library['version']; ?></td>
|
|
||||||
<td><?php echo $library['license']; ?></td>
|
|
||||||
<td><?php echo $library['homepage']; ?></td>
|
|
||||||
</tr>
|
|
||||||
<?php endforeach; ?>
|
|
||||||
<tr>
|
|
||||||
<th class="subtitle" colspan="4">Graphics</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Farm Fresh-Web Icons</td>
|
|
||||||
<td>3.9.2</td>
|
|
||||||
<td><a href="http://creativecommons.org/licenses/by/3.0/us/" target="_blank">CC BY 3.0 US</a></td>
|
|
||||||
<td><a href="http://www.fatcow.com/free-icons" target="_blank">fatcow.com/free-icons</a></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Web Blog Icons by SEM Labs</td>
|
|
||||||
<td>3.9.2</td>
|
|
||||||
<td><a href="http://creativecommons.org/licenses/by/4.0/" target="_blank">CC BY 4.0</a></td>
|
|
||||||
<td><a href="http://semlabs.co.uk/" target="_blank">semlabs.co.uk</a></td>
|
|
||||||
</tr>
|
|
||||||
<?php if ($this->dependencies): ?>
|
|
||||||
<tr>
|
|
||||||
<th colspan="4" class="subtitle">Dependencies</th>
|
|
||||||
</tr>
|
|
||||||
<?php endif; ?>
|
|
||||||
<?php foreach ($this->dependencies as $dep): ?>
|
|
||||||
<tr>
|
|
||||||
<td><?php echo $dep['name']; ?></td>
|
|
||||||
<td><?php echo $dep['version']; ?></td>
|
|
||||||
<td><?php echo $dep['license']; ?></td>
|
|
||||||
<td><?php echo $dep['homepage']; ?></td>
|
|
||||||
</tr>
|
|
||||||
<?php endforeach; ?>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
<?php $GLOBALS['TL_CSS'][] = 'assets/leaflet/libs/leaflet/leaflet.css'; ?>
|
<?php $GLOBALS['TL_CSS'][] = 'assets/leaflet/libs/leaflet/leaflet.min.css'; ?>
|
||||||
<?php $GLOBALS['TL_CSS'][] = 'assets/leaflet/libs/control-geocoder/Control.Geocoder.css'; ?>
|
<?php $GLOBALS['TL_CSS'][] = 'assets/leaflet/libs/control-geocoder/Control.Geocoder.min.css'; ?>
|
||||||
|
|
||||||
<?php $GLOBALS['TL_JAVASCRIPT'][] = 'assets/leaflet/libs/leaflet/leaflet.js'; ?>
|
<?php $GLOBALS['TL_JAVASCRIPT'][] = 'assets/leaflet/libs/leaflet/leaflet.js'; ?>
|
||||||
<?php $GLOBALS['TL_JAVASCRIPT'][] = 'assets/leaflet/libs/control-geocoder/Control.Geocoder.js'; ?>
|
<?php $GLOBALS['TL_JAVASCRIPT'][] = 'assets/leaflet/libs/control-geocoder/Control.Geocoder.min.js'; ?>
|
||||||
|
|
||||||
<div id="map_<?php echo $this->field; ?>" style="margin-top: 5px; width: calc(100% - 28px); height: 300px"></div>
|
<div id="map_<?php echo $this->field; ?>" style="margin-top: 5px; width: calc(100% - 28px); height: 300px"></div>
|
||||||
<script>
|
<script>
|
||||||
@@ -17,6 +17,12 @@
|
|||||||
placeholder: '<?php echo $GLOBALS['TL_LANG']['leaflet']['searchPosition']; ?>'
|
placeholder: '<?php echo $GLOBALS['TL_LANG']['leaflet']['searchPosition']; ?>'
|
||||||
}).addTo(map);
|
}).addTo(map);
|
||||||
|
|
||||||
|
document.querySelector('.leaflet-control-geocoder input').addEventListener('keydown', function (event) {
|
||||||
|
if (event.keyCode === 13) {
|
||||||
|
event.preventDefault();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
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');
|
||||||
@@ -28,7 +34,8 @@
|
|||||||
e.stop();
|
e.stop();
|
||||||
|
|
||||||
element.set('value', result.center.lat + ',' + result.center.lng);
|
element.set('value', result.center.lat + ',' + result.center.lng);
|
||||||
});
|
this._geocodeMarker.closePopup();
|
||||||
|
}.bind(this));
|
||||||
|
|
||||||
container.appendHTML(result.html || result.name);
|
container.appendHTML(result.html || result.name);
|
||||||
container.appendChild(link);
|
container.appendChild(link);
|
||||||
|
|||||||
8
src/Bundle/Resources/public/css/backend_global.css
Normal file
8
src/Bundle/Resources/public/css/backend_global.css
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
|
||||||
|
#tl_navigation .tl_level_1_group .group-leaflet {
|
||||||
|
background: url(/bundles/netzmachtcontaoleaflet/img/leaflet.svg) 3px 2px no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tl_help_table a {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
.tl_help_table a {
|
|
||||||
color: #77ac45
|
|
||||||
}
|
|
||||||
72
src/Bundle/Resources/public/img/leaflet.svg
Normal file
72
src/Bundle/Resources/public/img/leaflet.svg
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="13"
|
||||||
|
height="12"
|
||||||
|
viewBox="0 0 13 12"
|
||||||
|
class="feather feather-map"
|
||||||
|
version="1.1"
|
||||||
|
id="svg8"
|
||||||
|
sodipodi:docname="leaflet.svg"
|
||||||
|
style="fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
inkscape:version="0.92.2 5c3e80d, 2017-08-06">
|
||||||
|
<metadata
|
||||||
|
id="metadata14">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<defs
|
||||||
|
id="defs12" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1127"
|
||||||
|
id="namedview10"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="9.8333333"
|
||||||
|
inkscape:cx="12"
|
||||||
|
inkscape:cy="12"
|
||||||
|
inkscape:window-x="1680"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg8" />
|
||||||
|
<polygon
|
||||||
|
points="23,2 16,6 8,2 1,6 1,22 8,18 16,22 23,18 "
|
||||||
|
id="polygon2"
|
||||||
|
style="stroke:#91979c;stroke-opacity:1"
|
||||||
|
transform="matrix(0.54166667,0,0,0.54166667,0,-0.46604866)" />
|
||||||
|
<line
|
||||||
|
x1="4.3333335"
|
||||||
|
y1="0.61728501"
|
||||||
|
x2="4.3333335"
|
||||||
|
y2="9.2839518"
|
||||||
|
id="line4"
|
||||||
|
style="stroke:#91979c;stroke-width:1.08333337;stroke-opacity:1" />
|
||||||
|
<line
|
||||||
|
x1="8.6666689"
|
||||||
|
y1="2.7839513"
|
||||||
|
x2="8.6666689"
|
||||||
|
y2="11.450619"
|
||||||
|
id="line6"
|
||||||
|
style="fill:#91979c;fill-opacity:0;stroke:#91979c;stroke-width:1.08333337;stroke-opacity:1" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.1 KiB |
File diff suppressed because one or more lines are too long
130
src/Bundle/Resources/views/backend/about.html.twig
Normal file
130
src/Bundle/Resources/views/backend/about.html.twig
Normal file
@@ -0,0 +1,130 @@
|
|||||||
|
{% extends "@ContaoCore/Backend/be_page.html.twig" %}
|
||||||
|
|
||||||
|
{% block headline %}{{ "MOD.leaflet_about.1"|trans({}, 'contao_modules') }}{% endblock %}
|
||||||
|
|
||||||
|
{% block main %}
|
||||||
|
<div class="netzmacht-leaflet-credits">
|
||||||
|
<div class="header">
|
||||||
|
<h1 class="sub_headline">{{ headline }}
|
||||||
|
<small>{{ version }}</small>
|
||||||
|
</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="tl_box block row">
|
||||||
|
<h2>About</h2>
|
||||||
|
<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 class="tl_box">
|
||||||
|
<h2>Support Contao Leaflet</h2>
|
||||||
|
|
||||||
|
<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="https://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­tribute. Translations,
|
||||||
|
docu­mentation or code contributions are welcome.
|
||||||
|
</p>
|
||||||
|
<p><a href="https://netzmacht.de/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://github.com/netzmacht/contao-leaflet-maps/issues?q=is%3Aissue+is%3Aopen+label%3Aenhancement" class="btn" target="_blank">Planned
|
||||||
|
features</a></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<div class="col">
|
||||||
|
<h3>Individual development</h3>
|
||||||
|
<p>If you have special requirements you can hire me for an individual development.</p>
|
||||||
|
<p><a href="https://netzmacht.de/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.de/contao-leaflet/commercial-license.html" class="btn" target="_blank">Purchase
|
||||||
|
license</a></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="tl_box">
|
||||||
|
<h2>Credits</h2>
|
||||||
|
<table class="tl_listing">
|
||||||
|
<tr>
|
||||||
|
<th>Name</th>
|
||||||
|
<th>Version</th>
|
||||||
|
<th>License</th>
|
||||||
|
<th>Homepage</th>
|
||||||
|
</tr>
|
||||||
|
{% if libraries %}
|
||||||
|
<tr>
|
||||||
|
<th colspan="4" class="subtitle">Libraries</th>
|
||||||
|
</tr>
|
||||||
|
{% endif %}
|
||||||
|
{% for library in libraries %}
|
||||||
|
<tr>
|
||||||
|
<td>{{ library.name }}</td>
|
||||||
|
<td>{{ library.version }}</td>
|
||||||
|
<td>{{ library.license|raw }}</td>
|
||||||
|
<td>{{ library.homepage|raw }}</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
<tr>
|
||||||
|
<td>url-polyfill</td>
|
||||||
|
<td>v1.1.0</td>
|
||||||
|
<td><a href="https://github.com/lifaon74/url-polyfill/blob/master/LICENSE" target="_blank">MIT</a></td>
|
||||||
|
<td><a href="https://github.com/lifaon74/url-polyfill" target="_blank">github.com/lifaon74/url-polyfill</a></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th class="subtitle" colspan="4">Graphics</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Farm Fresh-Web Icons</td>
|
||||||
|
<td>3.9.2</td>
|
||||||
|
<td><a href="http://creativecommons.org/licenses/by/3.0/us/" target="_blank">CC BY 3.0 US</a></td>
|
||||||
|
<td><a href="http://www.fatcow.com/free-icons" target="_blank">fatcow.com/free-icons</a></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Web Blog Icons by SEM Labs</td>
|
||||||
|
<td>3.9.2</td>
|
||||||
|
<td><a href="http://creativecommons.org/licenses/by/4.0/" target="_blank">CC BY 4.0</a></td>
|
||||||
|
<td><a href="http://semlabs.co.uk/" target="_blank">semlabs.co.uk</a></td>
|
||||||
|
</tr>
|
||||||
|
{% if dependencies %}
|
||||||
|
<tr>
|
||||||
|
<th colspan="4" class="subtitle">Dependencies</th>
|
||||||
|
</tr>
|
||||||
|
{% endif %}
|
||||||
|
{% for dep in dependencies %}
|
||||||
|
<tr>
|
||||||
|
<td>{{ dep.name }}</td>
|
||||||
|
<td>{{ dep.version }}</td>
|
||||||
|
<td>{{ dep.license|raw }}</td>
|
||||||
|
<td>{{ dep.homepage|raw }}</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
@@ -90,7 +90,7 @@ class EncoderSubscriber implements EventSubscriberInterface
|
|||||||
$value = $event->getValue();
|
$value = $event->getValue();
|
||||||
$encoder = $event->getEncoder();
|
$encoder = $event->getEncoder();
|
||||||
$template = 'L.contao.%s(%s, %s, %s, %s, map);';
|
$template = 'L.contao.%s(%s, %s, %s, %s, map);';
|
||||||
$method = 'loadFile';
|
$method = 'loadUrl';
|
||||||
|
|
||||||
if ($value instanceof OmnivoreLayer) {
|
if ($value instanceof OmnivoreLayer) {
|
||||||
$url = $value->getUrl();
|
$url = $value->getUrl();
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ class BuildDefinitionEvent extends Event
|
|||||||
/**
|
/**
|
||||||
* The model.
|
* The model.
|
||||||
*
|
*
|
||||||
* @var \Model
|
* @var Model
|
||||||
*/
|
*/
|
||||||
private $model;
|
private $model;
|
||||||
|
|
||||||
@@ -74,7 +74,7 @@ class BuildDefinitionEvent extends Event
|
|||||||
/**
|
/**
|
||||||
* Get the model.
|
* Get the model.
|
||||||
*
|
*
|
||||||
* @return \Model
|
* @return Model
|
||||||
*/
|
*/
|
||||||
public function getModel()
|
public function getModel()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -93,4 +93,24 @@ class DistanceFilter implements Filter
|
|||||||
'center' => $this->center,
|
'center' => $this->center,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the center coordinate.
|
||||||
|
*
|
||||||
|
* @return LatLng
|
||||||
|
*/
|
||||||
|
public function getCenter(): LatLng
|
||||||
|
{
|
||||||
|
return $this->center;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the distance radius.
|
||||||
|
*
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
public function getRadius(): int
|
||||||
|
{
|
||||||
|
return $this->radius;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ final class FilterFactory
|
|||||||
public function create(string $filter, string $values): Filter
|
public function create(string $filter, string $values): Filter
|
||||||
{
|
{
|
||||||
if (isset($this->filters[$filter])) {
|
if (isset($this->filters[$filter])) {
|
||||||
return call_user_func([$filter, 'fromRequest'], $values);
|
return call_user_func([$this->filters[$filter], 'fromRequest'], $values);
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new \RuntimeException(sprintf('Creating filter failed. Unsupported filter "%s"', $filter));
|
throw new \RuntimeException(sprintf('Creating filter failed. Unsupported filter "%s"', $filter));
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ use Contao\Database\Result;
|
|||||||
use Contao\Input;
|
use Contao\Input;
|
||||||
use Contao\Model;
|
use Contao\Model;
|
||||||
use Contao\Model\Collection;
|
use Contao\Model\Collection;
|
||||||
|
use Contao\StringUtil;
|
||||||
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;
|
||||||
@@ -118,6 +119,8 @@ abstract class AbstractMapHybrid extends AbstractHybrid
|
|||||||
*/
|
*/
|
||||||
protected function prepareTemplateData(array $data): array
|
protected function prepareTemplateData(array $data): array
|
||||||
{
|
{
|
||||||
|
$data = parent::prepareTemplateData($data);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$template = $this->get('leaflet_template') ?: 'leaflet_map_js';
|
$template = $this->get('leaflet_template') ?: 'leaflet_map_js';
|
||||||
$mapId = $this->getIdentifier();
|
$mapId = $this->getIdentifier();
|
||||||
@@ -127,8 +130,8 @@ abstract class AbstractMapHybrid extends AbstractHybrid
|
|||||||
$data['mapId'] = $mapId;
|
$data['mapId'] = $mapId;
|
||||||
|
|
||||||
$style = '';
|
$style = '';
|
||||||
$height = deserialize($this->get('leaflet_height'), true);
|
$height = StringUtil::deserialize($this->get('leaflet_height'), true);
|
||||||
$width = deserialize($this->get('leaflet_width'), true);
|
$width = StringUtil::deserialize($this->get('leaflet_width'), true);
|
||||||
|
|
||||||
if (!empty($width['value'])) {
|
if (!empty($width['value'])) {
|
||||||
$style .= 'width:' . $width['value'] . $width['unit'] . ';';
|
$style .= 'width:' . $width['value'] . $width['unit'] . ';';
|
||||||
|
|||||||
103
src/Frontend/Action/LayerDataAction.php
Normal file
103
src/Frontend/Action/LayerDataAction.php
Normal file
@@ -0,0 +1,103 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Leaflet maps for Contao CMS.
|
||||||
|
*
|
||||||
|
* @package contao-leaflet-maps
|
||||||
|
* @author David Molineus <david.molineus@netzmacht.de>
|
||||||
|
* @copyright 2014-2018 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\Frontend\Action;
|
||||||
|
|
||||||
|
use Netzmacht\Contao\Leaflet\Filter\Filter;
|
||||||
|
use Netzmacht\Contao\Leaflet\Filter\FilterFactory;
|
||||||
|
use Netzmacht\Contao\Leaflet\MapProvider;
|
||||||
|
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||||
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
|
use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Request action which handles request for layer data
|
||||||
|
*/
|
||||||
|
final class LayerDataAction
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Map provider.
|
||||||
|
*
|
||||||
|
* @var MapProvider
|
||||||
|
*/
|
||||||
|
private $mapProvider;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter factory.
|
||||||
|
*
|
||||||
|
* @var FilterFactory
|
||||||
|
*/
|
||||||
|
private $filterFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* LayerDataAction constructor.
|
||||||
|
*
|
||||||
|
* @param MapProvider $mapProvider Map provider.
|
||||||
|
* @param FilterFactory $filterFactory Filter factory.
|
||||||
|
*/
|
||||||
|
public function __construct(MapProvider $mapProvider, FilterFactory $filterFactory)
|
||||||
|
{
|
||||||
|
$this->mapProvider = $mapProvider;
|
||||||
|
$this->filterFactory = $filterFactory;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle the request.
|
||||||
|
*
|
||||||
|
* @param int $layerId The layer id.
|
||||||
|
* @param string $_format The requested output format.
|
||||||
|
* @param Request $request The request.
|
||||||
|
*
|
||||||
|
* @return Response
|
||||||
|
*
|
||||||
|
* @throws BadRequestHttpException When unsupported format is given.
|
||||||
|
*
|
||||||
|
* @SuppressWarnings(PHPMD.CamelCaseParameterName)
|
||||||
|
* @SuppressWarnings(PHPMD.CamelCaseVariableName)
|
||||||
|
*/
|
||||||
|
public function __invoke(int $layerId, string $_format, Request $request): Response
|
||||||
|
{
|
||||||
|
$filter = $this->createFilter($request);
|
||||||
|
$data = $this->mapProvider->getFeatureCollection($layerId, $filter);
|
||||||
|
|
||||||
|
if ($_format === 'geojson') {
|
||||||
|
$response = new JsonResponse($data);
|
||||||
|
$response->setEncodingOptions(JSON_UNESCAPED_SLASHES);
|
||||||
|
|
||||||
|
return $response;
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new BadRequestHttpException(sprintf('Unsupported format "%s"', $_format));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create the filter if defined in the request.
|
||||||
|
*
|
||||||
|
* @param Request $request The request.
|
||||||
|
*
|
||||||
|
* @return Filter|null
|
||||||
|
*/
|
||||||
|
private function createFilter(Request $request): ?Filter
|
||||||
|
{
|
||||||
|
if (!$request->query->has('filter')) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$filter = (string) $request->query->get('filter');
|
||||||
|
$values = (string) $request->query->get('values');
|
||||||
|
|
||||||
|
return $this->filterFactory->create($filter, $values);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -12,14 +12,18 @@
|
|||||||
|
|
||||||
namespace Netzmacht\Contao\Leaflet\Frontend;
|
namespace Netzmacht\Contao\Leaflet\Frontend;
|
||||||
|
|
||||||
|
use const E_USER_DEPRECATED;
|
||||||
use Netzmacht\Contao\Leaflet\Filter\Filter;
|
use Netzmacht\Contao\Leaflet\Filter\Filter;
|
||||||
use Netzmacht\Contao\Leaflet\Filter\FilterFactory;
|
use Netzmacht\Contao\Leaflet\Filter\FilterFactory;
|
||||||
use Netzmacht\Contao\Leaflet\MapProvider;
|
use Netzmacht\Contao\Leaflet\MapProvider;
|
||||||
|
use function trigger_error;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The data controller handles ajax request for sub data.
|
* The data controller handles ajax request for sub data.
|
||||||
*
|
*
|
||||||
* @package Netzmacht\Contao\Leaflet\Frontend
|
* @package Netzmacht\Contao\Leaflet\Frontend
|
||||||
|
*
|
||||||
|
* @deprecated
|
||||||
*/
|
*/
|
||||||
class DataController
|
class DataController
|
||||||
{
|
{
|
||||||
@@ -60,6 +64,13 @@ class DataController
|
|||||||
{
|
{
|
||||||
$this->debugMode = $debugMode;
|
$this->debugMode = $debugMode;
|
||||||
$this->filterFactory = $filterFactory;
|
$this->filterFactory = $filterFactory;
|
||||||
|
|
||||||
|
// @codingStandardsIgnoreStart
|
||||||
|
@trigger_error(
|
||||||
|
'Deprecated since 3.1.0 and will be removed in 4.0.0 - Use properly route instead.',
|
||||||
|
E_USER_DEPRECATED
|
||||||
|
);
|
||||||
|
// @codingStandardsIgnoreEnd
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
47
src/Frontend/PageIdDeterminator.php
Normal file
47
src/Frontend/PageIdDeterminator.php
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Leaflet maps for Contao CMS.
|
||||||
|
*
|
||||||
|
* @package contao-leaflet-maps
|
||||||
|
* @author David Molineus <david.molineus@netzmacht.de>
|
||||||
|
* @copyright 2014-2018 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\Frontend;
|
||||||
|
|
||||||
|
use Netzmacht\Contao\PageContext\Exception\DeterminePageIdFailed;
|
||||||
|
use Netzmacht\Contao\PageContext\Request\PageIdDeterminator as PageContextPageIdDeterminator;
|
||||||
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class ApiPageIdDeterminator
|
||||||
|
*/
|
||||||
|
final class PageIdDeterminator implements PageContextPageIdDeterminator
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
public function match(Request $request): bool
|
||||||
|
{
|
||||||
|
return ($request->attributes->get('_leaflet_scope') === 'page' && $request->query->get('context') === 'page');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*
|
||||||
|
* @throws DeterminePageIdFailed When no context id is given.
|
||||||
|
*/
|
||||||
|
public function determinate(Request $request): int
|
||||||
|
{
|
||||||
|
if (!$request->query->has('contextId')) {
|
||||||
|
throw new DeterminePageIdFailed('Could not determine page id for from request.');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $request->query->getInt('contextId');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -12,6 +12,8 @@
|
|||||||
|
|
||||||
namespace Netzmacht\Contao\Leaflet\Frontend;
|
namespace Netzmacht\Contao\Leaflet\Frontend;
|
||||||
|
|
||||||
|
use Contao\Config;
|
||||||
|
use Contao\Frontend;
|
||||||
use Netzmacht\Contao\Leaflet\Filter\Filter;
|
use Netzmacht\Contao\Leaflet\Filter\Filter;
|
||||||
use Netzmacht\Contao\Leaflet\Mapper\Request;
|
use Netzmacht\Contao\Leaflet\Mapper\Request;
|
||||||
|
|
||||||
@@ -19,6 +21,8 @@ use Netzmacht\Contao\Leaflet\Mapper\Request;
|
|||||||
* Class RequestUrl creates the request url.
|
* Class RequestUrl creates the request url.
|
||||||
*
|
*
|
||||||
* @package Netzmacht\Contao\Leaflet\Request
|
* @package Netzmacht\Contao\Leaflet\Request
|
||||||
|
*
|
||||||
|
* @deprecated
|
||||||
*/
|
*/
|
||||||
class RequestUrl implements \JsonSerializable
|
class RequestUrl implements \JsonSerializable
|
||||||
{
|
{
|
||||||
@@ -72,7 +76,7 @@ class RequestUrl implements \JsonSerializable
|
|||||||
$query .= '&f=' . $filter->getName() . '&v=' . $filter->toRequest();
|
$query .= '&f=' . $filter->getName() . '&v=' . $filter->toRequest();
|
||||||
}
|
}
|
||||||
|
|
||||||
$url = \Config::get('websitePath') . '/' . \Frontend::addToUrl($query, false);
|
$url = Config::get('websitePath') . '/' . Frontend::addToUrl($query, false);
|
||||||
|
|
||||||
return new static($url, $hash, $request);
|
return new static($url, $hash, $request);
|
||||||
}
|
}
|
||||||
@@ -87,6 +91,13 @@ class RequestUrl implements \JsonSerializable
|
|||||||
{
|
{
|
||||||
$this->url = $url;
|
$this->url = $url;
|
||||||
$this->hash = $hash;
|
$this->hash = $hash;
|
||||||
|
|
||||||
|
// @codingStandardsIgnoreStart
|
||||||
|
@trigger_error(
|
||||||
|
'Deprecated since 3.1.0 and will be removed in 4.0.0. Use The router instead.',
|
||||||
|
E_USER_DEPRECATED
|
||||||
|
);
|
||||||
|
// @codingStandardsIgnoreEnd
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -73,6 +73,8 @@ class ValueFilter
|
|||||||
*/
|
*/
|
||||||
public function filter($value)
|
public function filter($value)
|
||||||
{
|
{
|
||||||
return $this->getReplacer()->replace($value);
|
$value = $this->getReplacer()->replace($value, false);
|
||||||
|
|
||||||
|
return $value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
107
src/Listener/Backend/UserNavigationListener.php
Normal file
107
src/Listener/Backend/UserNavigationListener.php
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Leaflet maps for Contao CMS.
|
||||||
|
*
|
||||||
|
* @package contao-leaflet-maps
|
||||||
|
* @author David Molineus <david.molineus@netzmacht.de>
|
||||||
|
* @copyright 2014-2018 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\Listener\Backend;
|
||||||
|
|
||||||
|
use Contao\CoreBundle\Event\MenuEvent;
|
||||||
|
use Netzmacht\Contao\Toolkit\View\Assets\AssetsManager;
|
||||||
|
use Symfony\Component\HttpFoundation\RequestStack;
|
||||||
|
use Symfony\Component\Routing\RouterInterface as Router;
|
||||||
|
use Symfony\Component\Translation\TranslatorInterface as Translator;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class BackendMenuListener adds backend entries to the navigation.
|
||||||
|
*/
|
||||||
|
final class UserNavigationListener
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Request stack.
|
||||||
|
*
|
||||||
|
* @var RequestStack
|
||||||
|
*/
|
||||||
|
private $requestStack;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Router.
|
||||||
|
*
|
||||||
|
* @var Router
|
||||||
|
*/
|
||||||
|
private $router;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Translator.
|
||||||
|
*
|
||||||
|
* @var Translator
|
||||||
|
*/
|
||||||
|
private $translator;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Assets manager.
|
||||||
|
*
|
||||||
|
* @var AssetsManager
|
||||||
|
*/
|
||||||
|
private $assets;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* BackendUserNavigationListener constructor.
|
||||||
|
*
|
||||||
|
* @param RequestStack $requestStack Request stack.
|
||||||
|
* @param Router $router Router.
|
||||||
|
* @param Translator $translator Translator.
|
||||||
|
* @param AssetsManager $assets Assets manager.
|
||||||
|
*/
|
||||||
|
public function __construct(
|
||||||
|
RequestStack $requestStack,
|
||||||
|
Router $router,
|
||||||
|
Translator $translator,
|
||||||
|
AssetsManager $assets
|
||||||
|
) {
|
||||||
|
$this->requestStack = $requestStack;
|
||||||
|
$this->router = $router;
|
||||||
|
$this->translator = $translator;
|
||||||
|
$this->assets = $assets;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle the event.
|
||||||
|
*
|
||||||
|
* @param array $modules Backend navigation modules.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function __invoke(array $modules): array
|
||||||
|
{
|
||||||
|
if (!isset($modules['leaflet'])) {
|
||||||
|
return $modules;
|
||||||
|
}
|
||||||
|
|
||||||
|
$request = $this->requestStack->getCurrentRequest();
|
||||||
|
$isActive = $request && $request->attributes->get('_backend_module') === 'leaflet_about';
|
||||||
|
|
||||||
|
$modules['leaflet']['modules']['leaflet_about'] = [
|
||||||
|
'label' => $this->translator->trans('MOD.leaflet_about.0', [], 'contao_modules'),
|
||||||
|
'title' => $this->translator->trans('MOD.leaflet_about.1', [], 'contao_modules'),
|
||||||
|
'href' => $this->router->generate('leaflet_backend_about'),
|
||||||
|
'icon' => 'bundles/netzmachtcontaoleaflet/img/about.png',
|
||||||
|
'class' => 'navigation leaflet_about',
|
||||||
|
'isActive' => $isActive,
|
||||||
|
];
|
||||||
|
|
||||||
|
if ($isActive) {
|
||||||
|
$this->assets->addStylesheet('bundles/netzmachtcontaoleaflet/css/about.css');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $modules;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -517,9 +517,9 @@ class LayerDcaListener extends AbstractListener
|
|||||||
{
|
{
|
||||||
return sprintf(
|
return sprintf(
|
||||||
'<a href="%s" title="%s">%s</a> ',
|
'<a href="%s" title="%s">%s</a> ',
|
||||||
\Backend::addToUrl($href . '&id=' . $row['id']),
|
Backend::addToUrl($href . '&id=' . $row['id']),
|
||||||
$title,
|
$title,
|
||||||
\Image::getHtml($icon, $label, $attributes)
|
Image::getHtml($icon, $label, $attributes)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -122,6 +122,7 @@ class LeafletDcaListener
|
|||||||
$data['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.
|
||||||
|
$data['marker'] = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->templateEngine->render('toolkit:be:be_leaflet_geocode.html5', $data);
|
return $this->templateEngine->render('toolkit:be:be_leaflet_geocode.html5', $data);
|
||||||
|
|||||||
@@ -15,14 +15,20 @@ declare(strict_types=1);
|
|||||||
namespace Netzmacht\Contao\Leaflet\Listener\Dca;
|
namespace Netzmacht\Contao\Leaflet\Listener\Dca;
|
||||||
|
|
||||||
use Contao\DataContainer;
|
use Contao\DataContainer;
|
||||||
|
use Contao\Input;
|
||||||
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\Leaflet\Model\MapModel;
|
||||||
use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
|
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 PDO;
|
use PDO;
|
||||||
|
use function strlen;
|
||||||
|
use Symfony\Component\HttpFoundation\Session\Session;
|
||||||
|
use Symfony\Component\Translation\TranslatorInterface as Translator;
|
||||||
|
use function var_dump;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class Map is the helper class for the tl_leaflet_map dca.
|
* Class Map is the helper class for the tl_leaflet_map dca.
|
||||||
@@ -52,19 +58,70 @@ class MapDcaListener extends AbstractListener
|
|||||||
*/
|
*/
|
||||||
private $repositoryManager;
|
private $repositoryManager;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Translator.
|
||||||
|
*
|
||||||
|
* @var Translator
|
||||||
|
*/
|
||||||
|
private $translator;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Session.
|
||||||
|
*
|
||||||
|
* @var Session
|
||||||
|
*/
|
||||||
|
private $session;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 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.
|
* @param RepositoryManager $repositoryManager Repository manager.
|
||||||
|
* @param Translator $translator Translator.
|
||||||
|
* @param Session $session Session.
|
||||||
*/
|
*/
|
||||||
public function __construct(Manager $manager, Connection $connection, RepositoryManager $repositoryManager)
|
public function __construct(
|
||||||
{
|
Manager $manager,
|
||||||
|
Connection $connection,
|
||||||
|
RepositoryManager $repositoryManager,
|
||||||
|
Translator $translator,
|
||||||
|
Session $session
|
||||||
|
) {
|
||||||
parent::__construct($manager);
|
parent::__construct($manager);
|
||||||
|
|
||||||
$this->connection = $connection;
|
$this->connection = $connection;
|
||||||
$this->repositoryManager = $repositoryManager;
|
$this->repositoryManager = $repositoryManager;
|
||||||
|
$this->translator = $translator;
|
||||||
|
$this->session = $session;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add warnings for incomplete configurations.
|
||||||
|
*
|
||||||
|
* @param DataContainer $dataContainer The data container driver.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function addIncompleteConfigurationWarning($dataContainer): void
|
||||||
|
{
|
||||||
|
if (Input::get('act') !== 'edit') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$repository = $this->repositoryManager->getRepository(MapModel::class);
|
||||||
|
$map = $repository->find((int) $dataContainer->id);
|
||||||
|
|
||||||
|
if (!$map) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($map->zoom === null || $map->zoom === '') {
|
||||||
|
$this->session->getFlashBag()->add(
|
||||||
|
'contao.BE.info',
|
||||||
|
$this->translator->trans('ERR.leafletMissingZoomLevel', [], 'contao_default')
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
namespace Netzmacht\Contao\Leaflet\Listener\Dca;
|
namespace Netzmacht\Contao\Leaflet\Listener\Dca;
|
||||||
|
|
||||||
use Contao\Controller;
|
use Contao\Controller;
|
||||||
|
use Contao\StringUtil;
|
||||||
use Doctrine\DBAL\Connection;
|
use Doctrine\DBAL\Connection;
|
||||||
use Netzmacht\Contao\Leaflet\Model\IconModel;
|
use Netzmacht\Contao\Leaflet\Model\IconModel;
|
||||||
use Netzmacht\Contao\Leaflet\Model\PopupModel;
|
use Netzmacht\Contao\Leaflet\Model\PopupModel;
|
||||||
@@ -113,7 +114,7 @@ class MarkerDcaListener
|
|||||||
'altitude' => null,
|
'altitude' => null,
|
||||||
];
|
];
|
||||||
|
|
||||||
$values = trimsplit(',', $value);
|
$values = StringUtil::trimsplit(',', $value);
|
||||||
$keys = array_keys($combined);
|
$keys = array_keys($combined);
|
||||||
$count = count($values);
|
$count = count($values);
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
namespace Netzmacht\Contao\Leaflet\Listener\Dca;
|
namespace Netzmacht\Contao\Leaflet\Listener\Dca;
|
||||||
|
|
||||||
use Contao\DataContainer;
|
use Contao\DataContainer;
|
||||||
|
use Contao\StringUtil;
|
||||||
use Netzmacht\Contao\Toolkit\Dca\Manager;
|
use Netzmacht\Contao\Toolkit\Dca\Manager;
|
||||||
use Netzmacht\LeafletPHP\Value\LatLng;
|
use Netzmacht\LeafletPHP\Value\LatLng;
|
||||||
use Symfony\Component\Translation\TranslatorInterface as Translator;
|
use Symfony\Component\Translation\TranslatorInterface as Translator;
|
||||||
@@ -116,7 +117,7 @@ class Validator
|
|||||||
*/
|
*/
|
||||||
public function validateMultipleCoordinateSets($values, $dataContainer)
|
public function validateMultipleCoordinateSets($values, $dataContainer)
|
||||||
{
|
{
|
||||||
$sets = deserialize($values, true);
|
$sets = StringUtil::deserialize($values, true);
|
||||||
foreach ($sets as $lines) {
|
foreach ($sets as $lines) {
|
||||||
$this->validateMultipleCoordinates($lines, $dataContainer);
|
$this->validateMultipleCoordinates($lines, $dataContainer);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ namespace Netzmacht\Contao\Leaflet\Listener;
|
|||||||
|
|
||||||
use Contao\FilesModel;
|
use Contao\FilesModel;
|
||||||
use Contao\Model;
|
use Contao\Model;
|
||||||
|
use Contao\StringUtil;
|
||||||
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\Contao\Toolkit\Data\Model\RepositoryManager;
|
use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
|
||||||
@@ -117,7 +118,7 @@ final class GeoJsonListener
|
|||||||
public function enrichObjects(GeoJsonObject $feature, LeafletDefinition $definition, $model)
|
public function enrichObjects(GeoJsonObject $feature, LeafletDefinition $definition, $model)
|
||||||
{
|
{
|
||||||
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);
|
||||||
$this->setBoundsInformation($model, $feature);
|
$this->setBoundsInformation($model, $feature);
|
||||||
}
|
}
|
||||||
@@ -148,7 +149,7 @@ final class GeoJsonListener
|
|||||||
*/
|
*/
|
||||||
public function setModelData(GeoJsonObject $feature, $model)
|
public function setModelData(GeoJsonObject $feature, $model)
|
||||||
{
|
{
|
||||||
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;
|
||||||
}
|
}
|
||||||
@@ -169,12 +170,12 @@ final class GeoJsonListener
|
|||||||
/**
|
/**
|
||||||
* Parse the model value based on the config.
|
* Parse the model value based on the config.
|
||||||
*
|
*
|
||||||
* @param \Model $model The model.
|
* @param Model $model The model.
|
||||||
* @param mixed $property The property config.
|
* @param mixed $property The property config.
|
||||||
*
|
*
|
||||||
* @return array|mixed|null
|
* @return array|mixed|null
|
||||||
*/
|
*/
|
||||||
private function parseModelValue(\Model $model, &$property)
|
private function parseModelValue(Model $model, &$property)
|
||||||
{
|
{
|
||||||
if (is_array($property)) {
|
if (is_array($property)) {
|
||||||
list($property, $type) = $property;
|
list($property, $type) = $property;
|
||||||
@@ -183,7 +184,7 @@ final class GeoJsonListener
|
|||||||
switch ($type) {
|
switch ($type) {
|
||||||
case 'array':
|
case 'array':
|
||||||
case 'object':
|
case 'object':
|
||||||
$value = deserialize($value, true);
|
$value = StringUtil::deserialize($value, true);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'file':
|
case 'file':
|
||||||
@@ -194,7 +195,7 @@ final class GeoJsonListener
|
|||||||
|
|
||||||
case 'files':
|
case 'files':
|
||||||
$repository = $this->repositoryManager->getRepository(FilesModel::class);
|
$repository = $this->repositoryManager->getRepository(FilesModel::class);
|
||||||
$collection = $repository->findMultipleByUuids(deserialize($value, true));
|
$collection = $repository->findMultipleByUuids(StringUtil::deserialize($value, true));
|
||||||
|
|
||||||
if ($collection) {
|
if ($collection) {
|
||||||
$value = $collection->fetchEach('path');
|
$value = $collection->fetchEach('path');
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
|
|
||||||
namespace Netzmacht\Contao\Leaflet\Listener;
|
namespace Netzmacht\Contao\Leaflet\Listener;
|
||||||
|
|
||||||
|
use Contao\Model;
|
||||||
use Netzmacht\Contao\Leaflet\Event\GetHashEvent;
|
use Netzmacht\Contao\Leaflet\Event\GetHashEvent;
|
||||||
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
||||||
|
|
||||||
@@ -46,7 +47,7 @@ class HashSubscriber implements EventSubscriberInterface
|
|||||||
{
|
{
|
||||||
$data = $event->getData();
|
$data = $event->getData();
|
||||||
|
|
||||||
if ($data instanceof \Model) {
|
if ($data instanceof Model) {
|
||||||
$event->setHash($data->getTable() . '::' . $data->{$data->getPk()});
|
$event->setHash($data->getTable() . '::' . $data->{$data->getPk()});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace Netzmacht\Contao\Leaflet\Listener;
|
namespace Netzmacht\Contao\Leaflet\Listener;
|
||||||
|
|
||||||
|
use Contao\File;
|
||||||
use Netzmacht\Contao\Leaflet\Encoder\ContaoAssets;
|
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;
|
||||||
@@ -117,7 +118,7 @@ class LoadAssetsListener
|
|||||||
// TODO: Cache it.
|
// TODO: Cache it.
|
||||||
// codingStandardsIgnoreEnd
|
// codingStandardsIgnoreEnd
|
||||||
|
|
||||||
$file = new \File('assets/leaflet/js/icons.js');
|
$file = new File('assets/leaflet/js/icons.js');
|
||||||
$file->write($buffer);
|
$file->write($buffer);
|
||||||
$file->close();
|
$file->close();
|
||||||
|
|
||||||
|
|||||||
@@ -206,7 +206,10 @@ class MapProvider
|
|||||||
$model = $this->getModel($mapId);
|
$model = $this->getModel($mapId);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($model->cache) {
|
$cacheKey = null;
|
||||||
|
$doCache = $model->cache;
|
||||||
|
|
||||||
|
if ($doCache) {
|
||||||
$cacheKey = $this->getCacheKey($mapId, $filter, $elementId, $template, $style);
|
$cacheKey = $this->getCacheKey($mapId, $filter, $elementId, $template, $style);
|
||||||
|
|
||||||
if ($this->cache->contains($cacheKey)) {
|
if ($this->cache->contains($cacheKey)) {
|
||||||
@@ -219,7 +222,7 @@ class MapProvider
|
|||||||
|
|
||||||
$buffer = $this->doGenerate($model, $filter, $elementId, $template, $style);
|
$buffer = $this->doGenerate($model, $filter, $elementId, $template, $style);
|
||||||
|
|
||||||
if ($model->cache) {
|
if ($doCache) {
|
||||||
$this->cache->save(
|
$this->cache->save(
|
||||||
$cacheKey,
|
$cacheKey,
|
||||||
[
|
[
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
namespace Netzmacht\Contao\Leaflet\Mapper\Control;
|
namespace Netzmacht\Contao\Leaflet\Mapper\Control;
|
||||||
|
|
||||||
use Contao\Model;
|
use Contao\Model;
|
||||||
|
use Contao\StringUtil;
|
||||||
use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper;
|
use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper;
|
||||||
use Netzmacht\Contao\Leaflet\Mapper\Request;
|
use Netzmacht\Contao\Leaflet\Mapper\Request;
|
||||||
use Netzmacht\LeafletPHP\Definition;
|
use Netzmacht\LeafletPHP\Definition;
|
||||||
@@ -68,7 +69,7 @@ class AttributionControlMapper extends AbstractControlMapper
|
|||||||
$parent->setAttributionControl(false);
|
$parent->setAttributionControl(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
$attributions = deserialize($model->attributions, true);
|
$attributions = StringUtil::deserialize($model->attributions, true);
|
||||||
|
|
||||||
foreach ($attributions as $attribution) {
|
foreach ($attributions as $attribution) {
|
||||||
$definition->addAttribution($attribution);
|
$definition->addAttribution($attribution);
|
||||||
|
|||||||
@@ -128,8 +128,7 @@ class FileLayerMapper extends AbstractLayerMapper
|
|||||||
return parent::createInstance($model, $mapper, $request, $elementId);
|
return parent::createInstance($model, $mapper, $request, $elementId);
|
||||||
}
|
}
|
||||||
|
|
||||||
$customId = $layerId . '_data';
|
$customLayer = new GeoJson($layerId);
|
||||||
$customLayer = new GeoJson($customId);
|
|
||||||
|
|
||||||
$layer->setCustomLayer($customLayer);
|
$layer->setCustomLayer($customLayer);
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,6 @@
|
|||||||
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\Mapper\Request;
|
||||||
@@ -24,6 +23,7 @@ use Netzmacht\LeafletPHP\Definition;
|
|||||||
use Netzmacht\LeafletPHP\Definition\Group\GeoJson;
|
use Netzmacht\LeafletPHP\Definition\Group\GeoJson;
|
||||||
use Netzmacht\LeafletPHP\Plugins\Omnivore\GeoJson as OmnivoreGeoJson;
|
use Netzmacht\LeafletPHP\Plugins\Omnivore\GeoJson as OmnivoreGeoJson;
|
||||||
use Netzmacht\LeafletPHP\Value\GeoJson\FeatureCollection;
|
use Netzmacht\LeafletPHP\Value\GeoJson\FeatureCollection;
|
||||||
|
use Symfony\Component\Routing\RouterInterface;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class MarkersLayerMapper maps the layer model to the markers definition.
|
* Class MarkersLayerMapper maps the layer model to the markers definition.
|
||||||
@@ -46,14 +46,23 @@ class MarkersLayerMapper extends AbstractLayerMapper implements GeoJsonMapper
|
|||||||
*/
|
*/
|
||||||
private $repositoryManager;
|
private $repositoryManager;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Router.
|
||||||
|
*
|
||||||
|
* @var RouterInterface
|
||||||
|
*/
|
||||||
|
private $router;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Construct.
|
* Construct.
|
||||||
*
|
*
|
||||||
* @param RepositoryManager $repositoryManager Repository manager.
|
* @param RepositoryManager $repositoryManager Repository manager.
|
||||||
|
* @param RouterInterface $router Router.
|
||||||
*/
|
*/
|
||||||
public function __construct(RepositoryManager $repositoryManager)
|
public function __construct(RepositoryManager $repositoryManager, RouterInterface $router)
|
||||||
{
|
{
|
||||||
$this->repositoryManager = $repositoryManager;
|
$this->repositoryManager = $repositoryManager;
|
||||||
|
$this->router = $router;
|
||||||
|
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
}
|
}
|
||||||
@@ -93,7 +102,7 @@ class MarkersLayerMapper extends AbstractLayerMapper implements GeoJsonMapper
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
$this->getElementId($model, $elementId),
|
$this->getElementId($model, $elementId),
|
||||||
RequestUrl::create($model->id, null, null, $request),
|
$this->generateUrl((int) $model->id, $request),
|
||||||
[],
|
[],
|
||||||
$layer,
|
$layer,
|
||||||
];
|
];
|
||||||
@@ -101,7 +110,7 @@ class MarkersLayerMapper extends AbstractLayerMapper implements GeoJsonMapper
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
$this->getElementId($model, $elementId),
|
$this->getElementId($model, $elementId),
|
||||||
RequestUrl::create($model->id, null, null, $request),
|
$this->generateUrl((int) $model->id, $request),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -170,16 +179,43 @@ class MarkersLayerMapper extends AbstractLayerMapper implements GeoJsonMapper
|
|||||||
* @param Model $model The layer model.
|
* @param Model $model The layer model.
|
||||||
* @param Request $request Optional building request.
|
* @param Request $request Optional building request.
|
||||||
*
|
*
|
||||||
* @return \Model\Collection|null
|
* @return \Contao\Model\Collection|null
|
||||||
*/
|
*/
|
||||||
protected function loadMarkerModels(Model $model, Request $request = null)
|
protected function loadMarkerModels(Model $model, Request $request = null)
|
||||||
{
|
{
|
||||||
$repository = $this->repositoryManager->getRepository(MarkerModel::class);
|
$repository = $this->repositoryManager->getRepository(MarkerModel::class);
|
||||||
|
|
||||||
if ($model->boundsMode == 'fit') {
|
if ($model->boundsMode === 'fit') {
|
||||||
return $repository->findByFilter($model->id, $request->getFilter());
|
return $repository->findByFilter($model->id, $request->getFilter());
|
||||||
}
|
}
|
||||||
|
|
||||||
return $repository->findByFilter($model->id);
|
return $repository->findByFilter($model->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate the data url for a layer.
|
||||||
|
*
|
||||||
|
* @param int $layerId The layer id.
|
||||||
|
* @param Request|null $request The request.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*
|
||||||
|
* @SuppressWarnings(PHPMD.Superglobals)
|
||||||
|
*/
|
||||||
|
private function generateUrl(int $layerId, ?Request $request = null): string
|
||||||
|
{
|
||||||
|
$params = ['layerId' => $layerId];
|
||||||
|
|
||||||
|
if ($request && ($filter = $request->getFilter())) {
|
||||||
|
$params['filter'] = $filter::getName();
|
||||||
|
$params['values'] = $filter->toRequest();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($GLOBALS['objPage'])) {
|
||||||
|
$params['context'] = 'page';
|
||||||
|
$params['contextId'] = $GLOBALS['objPage']->id;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->router->generate('leaflet_layer', $params, RouterInterface::ABSOLUTE_URL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
namespace Netzmacht\Contao\Leaflet\Mapper\Layer;
|
namespace Netzmacht\Contao\Leaflet\Mapper\Layer;
|
||||||
|
|
||||||
use Contao\Model;
|
use Contao\Model;
|
||||||
|
use Contao\StringUtil;
|
||||||
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\Mapper\Request;
|
||||||
@@ -146,7 +147,7 @@ class OverpassLayerMapper extends AbstractLayerMapper
|
|||||||
*/
|
*/
|
||||||
private function filterAmenityIconsConfig($amenityIconsConfig)
|
private function filterAmenityIconsConfig($amenityIconsConfig)
|
||||||
{
|
{
|
||||||
$amenityIconsConfig = deserialize($amenityIconsConfig, true);
|
$amenityIconsConfig = StringUtil::deserialize($amenityIconsConfig, true);
|
||||||
$amenityIconsMap = [];
|
$amenityIconsMap = [];
|
||||||
|
|
||||||
foreach ($amenityIconsConfig as $config) {
|
foreach ($amenityIconsConfig as $config) {
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ 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\Mapper\Request;
|
||||||
@@ -25,6 +24,7 @@ use Netzmacht\LeafletPHP\Definition;
|
|||||||
use Netzmacht\LeafletPHP\Definition\Group\GeoJson;
|
use Netzmacht\LeafletPHP\Definition\Group\GeoJson;
|
||||||
use Netzmacht\LeafletPHP\Plugins\Omnivore\GeoJson as OmnivoreGeoJson;
|
use Netzmacht\LeafletPHP\Plugins\Omnivore\GeoJson as OmnivoreGeoJson;
|
||||||
use Netzmacht\LeafletPHP\Value\GeoJson\FeatureCollection;
|
use Netzmacht\LeafletPHP\Value\GeoJson\FeatureCollection;
|
||||||
|
use Symfony\Component\Routing\RouterInterface;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class VectorsLayerMapper maps the layer model for the Vectors layer definition.
|
* Class VectorsLayerMapper maps the layer model for the Vectors layer definition.
|
||||||
@@ -47,14 +47,23 @@ class VectorsLayerMapper extends AbstractLayerMapper implements GeoJsonMapper
|
|||||||
*/
|
*/
|
||||||
private $repositoryManager;
|
private $repositoryManager;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Router.
|
||||||
|
*
|
||||||
|
* @var RouterInterface
|
||||||
|
*/
|
||||||
|
private $router;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Construct.
|
* Construct.
|
||||||
*
|
*
|
||||||
* @param RepositoryManager $repositoryManager Repository manager.
|
* @param RepositoryManager $repositoryManager Repository manager.
|
||||||
|
* @param RouterInterface $router Router
|
||||||
*/
|
*/
|
||||||
public function __construct(RepositoryManager $repositoryManager)
|
public function __construct(RepositoryManager $repositoryManager, RouterInterface $router)
|
||||||
{
|
{
|
||||||
$this->repositoryManager = $repositoryManager;
|
$this->repositoryManager = $repositoryManager;
|
||||||
|
$this->router = $router;
|
||||||
|
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
}
|
}
|
||||||
@@ -101,7 +110,7 @@ class VectorsLayerMapper extends AbstractLayerMapper implements GeoJsonMapper
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
$this->getElementId($model, $elementId),
|
$this->getElementId($model, $elementId),
|
||||||
RequestUrl::create($model->id, null, null, $request),
|
$this->generateUrl((int) $model->id, $request),
|
||||||
[],
|
[],
|
||||||
$layer,
|
$layer,
|
||||||
];
|
];
|
||||||
@@ -109,7 +118,7 @@ class VectorsLayerMapper extends AbstractLayerMapper implements GeoJsonMapper
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
$this->getElementId($model, $elementId),
|
$this->getElementId($model, $elementId),
|
||||||
RequestUrl::create($model->id, null, null, $request),
|
$this->generateUrl((int) $model->id, $request),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -188,11 +197,11 @@ class VectorsLayerMapper extends AbstractLayerMapper implements GeoJsonMapper
|
|||||||
* Add javascript callbacks.
|
* Add javascript callbacks.
|
||||||
*
|
*
|
||||||
* @param GeoJson $definition The definition.
|
* @param GeoJson $definition The definition.
|
||||||
* @param \Model $model The database model.
|
* @param Model $model The database model.
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
protected function addCallbacks(GeoJson $definition, \Model $model)
|
protected function addCallbacks(GeoJson $definition, Model $model)
|
||||||
{
|
{
|
||||||
if ($model->pointToLayer) {
|
if ($model->pointToLayer) {
|
||||||
$definition->setPointToLayer(new Expression($model->pointToLayer));
|
$definition->setPointToLayer(new Expression($model->pointToLayer));
|
||||||
@@ -202,4 +211,31 @@ class VectorsLayerMapper extends AbstractLayerMapper implements GeoJsonMapper
|
|||||||
$definition->setOnEachFeature(new Expression($model->onEachFeature));
|
$definition->setOnEachFeature(new Expression($model->onEachFeature));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate the data url for a layer.
|
||||||
|
*
|
||||||
|
* @param int $layerId The layer id.
|
||||||
|
* @param Request|null $request The request.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*
|
||||||
|
* @SuppressWarnings(PHPMD.Superglobals)
|
||||||
|
*/
|
||||||
|
private function generateUrl(int $layerId, ?Request $request = null): string
|
||||||
|
{
|
||||||
|
$params = ['layerId' => $layerId];
|
||||||
|
|
||||||
|
if ($request && ($filter = $request->getFilter())) {
|
||||||
|
$params['filter'] = $filter::getName();
|
||||||
|
$params['values'] = $filter->toRequest();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($GLOBALS['objPage'])) {
|
||||||
|
$params['context'] = 'page';
|
||||||
|
$params['contextId'] = $GLOBALS['objPage']->id;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->router->generate('leaflet_layer', $params, RouterInterface::ABSOLUTE_URL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
namespace Netzmacht\Contao\Leaflet\Mapper;
|
namespace Netzmacht\Contao\Leaflet\Mapper;
|
||||||
|
|
||||||
use Contao\Model;
|
use Contao\Model;
|
||||||
|
use Contao\StringUtil;
|
||||||
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\Toolkit\Data\Model\RepositoryManager;
|
use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
|
||||||
@@ -195,7 +196,7 @@ class MapMapper extends AbstractMapper
|
|||||||
*/
|
*/
|
||||||
private function buildBoundsCalculation(Map $map, MapModel $model)
|
private function buildBoundsCalculation(Map $map, MapModel $model)
|
||||||
{
|
{
|
||||||
$adjustBounds = deserialize($model->adjustBounds, true);
|
$adjustBounds = StringUtil::deserialize($model->adjustBounds, true);
|
||||||
|
|
||||||
if (in_array('deferred', $adjustBounds)) {
|
if (in_array('deferred', $adjustBounds)) {
|
||||||
$map->setOption('adjustBounds', true);
|
$map->setOption('adjustBounds', true);
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ class OptionsBuilder
|
|||||||
* Build options and conditional options.
|
* Build options and conditional options.
|
||||||
*
|
*
|
||||||
* @param Definition $definition The definition being built.
|
* @param Definition $definition The definition being built.
|
||||||
* @param \Model $model The model.
|
* @param Model $model The model.
|
||||||
*
|
*
|
||||||
* @return $this
|
* @return $this
|
||||||
*/
|
*/
|
||||||
@@ -147,7 +147,7 @@ class OptionsBuilder
|
|||||||
* Build options.
|
* Build options.
|
||||||
*
|
*
|
||||||
* @param Definition $definition The definition being built.
|
* @param Definition $definition The definition being built.
|
||||||
* @param \Model $model The model.
|
* @param Model $model The model.
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
@@ -160,11 +160,11 @@ class OptionsBuilder
|
|||||||
* Build conditional options.
|
* Build conditional options.
|
||||||
*
|
*
|
||||||
* @param Definition $definition The definition being built.
|
* @param Definition $definition The definition being built.
|
||||||
* @param \Model $model The model.
|
* @param Model $model The model.
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
private function buildConditionals($definition, \Model $model)
|
private function buildConditionals($definition, Model $model)
|
||||||
{
|
{
|
||||||
foreach ($this->conditional as $column => $conditions) {
|
foreach ($this->conditional as $column => $conditions) {
|
||||||
foreach ($conditions as $value => $options) {
|
foreach ($conditions as $value => $options) {
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
|
|
||||||
namespace Netzmacht\Contao\Leaflet\Mapper\Type;
|
namespace Netzmacht\Contao\Leaflet\Mapper\Type;
|
||||||
|
|
||||||
|
use Contao\File;
|
||||||
use Contao\FilesModel;
|
use Contao\FilesModel;
|
||||||
use Contao\Model;
|
use Contao\Model;
|
||||||
use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper;
|
use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper;
|
||||||
@@ -118,7 +119,7 @@ class ImageIconMapper extends AbstractIconMapper
|
|||||||
if ($file) {
|
if ($file) {
|
||||||
$definition->setIconUrl($file->path);
|
$definition->setIconUrl($file->path);
|
||||||
|
|
||||||
$file = new \File($file->path);
|
$file = new File($file->path);
|
||||||
$definition->setIconSize([$file->width, $file->height]);
|
$definition->setIconSize([$file->width, $file->height]);
|
||||||
|
|
||||||
if (!$model->iconAnchor) {
|
if (!$model->iconAnchor) {
|
||||||
@@ -162,7 +163,7 @@ class ImageIconMapper extends AbstractIconMapper
|
|||||||
if ($file) {
|
if ($file) {
|
||||||
$definition->setShadowUrl($file->path);
|
$definition->setShadowUrl($file->path);
|
||||||
|
|
||||||
$file = new \File($file->path);
|
$file = new File($file->path);
|
||||||
$definition->setShadowSize([$file->width, $file->height]);
|
$definition->setShadowSize([$file->width, $file->height]);
|
||||||
|
|
||||||
if (!$model->shadowAnchor) {
|
if (!$model->shadowAnchor) {
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
namespace Netzmacht\Contao\Leaflet\Mapper\UI;
|
namespace Netzmacht\Contao\Leaflet\Mapper\UI;
|
||||||
|
|
||||||
use Contao\Model;
|
use Contao\Model;
|
||||||
|
use Contao\StringUtil;
|
||||||
use Netzmacht\Contao\Leaflet\Mapper\AbstractMapper;
|
use Netzmacht\Contao\Leaflet\Mapper\AbstractMapper;
|
||||||
use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper;
|
use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper;
|
||||||
use Netzmacht\Contao\Leaflet\Mapper\Request;
|
use Netzmacht\Contao\Leaflet\Mapper\Request;
|
||||||
@@ -76,9 +77,9 @@ class PopupMapper extends AbstractMapper
|
|||||||
if ($model->autoPan) {
|
if ($model->autoPan) {
|
||||||
$padding = array_map(
|
$padding = array_map(
|
||||||
function ($value) {
|
function ($value) {
|
||||||
return array_map('intval', trimsplit(',', $value));
|
return array_map('intval', StringUtil::trimsplit(',', $value));
|
||||||
},
|
},
|
||||||
deserialize($model->autoPanPadding, true)
|
StringUtil::deserialize($model->autoPanPadding, true)
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($padding[0] === $padding[1]) {
|
if ($padding[0] === $padding[1]) {
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
namespace Netzmacht\Contao\Leaflet\Mapper\Vector;
|
namespace Netzmacht\Contao\Leaflet\Mapper\Vector;
|
||||||
|
|
||||||
use Contao\Model;
|
use Contao\Model;
|
||||||
|
use Contao\StringUtil;
|
||||||
use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper;
|
use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper;
|
||||||
use Netzmacht\Contao\Leaflet\Mapper\Request;
|
use Netzmacht\Contao\Leaflet\Mapper\Request;
|
||||||
use Netzmacht\LeafletPHP\Definition;
|
use Netzmacht\LeafletPHP\Definition;
|
||||||
@@ -67,7 +68,7 @@ class MultiPolylineMapper extends AbstractVectorMapper
|
|||||||
*/
|
*/
|
||||||
protected function createLatLngs(Polyline $definition, Model $model)
|
protected function createLatLngs(Polyline $definition, Model $model)
|
||||||
{
|
{
|
||||||
foreach (deserialize($model->multiData, true) as $ring => $data) {
|
foreach (StringUtil::deserialize($model->multiData, true) as $ring => $data) {
|
||||||
$latLngs = array_map(
|
$latLngs = array_map(
|
||||||
function ($row) {
|
function ($row) {
|
||||||
return LatLng::fromString($row);
|
return LatLng::fromString($row);
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
namespace Netzmacht\Contao\Leaflet\Mapper\Vector;
|
namespace Netzmacht\Contao\Leaflet\Mapper\Vector;
|
||||||
|
|
||||||
use Contao\Model;
|
use Contao\Model;
|
||||||
|
use Contao\StringUtil;
|
||||||
use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper;
|
use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper;
|
||||||
use Netzmacht\Contao\Leaflet\Mapper\Request;
|
use Netzmacht\Contao\Leaflet\Mapper\Request;
|
||||||
use Netzmacht\LeafletPHP\Definition\Vector\Rectangle;
|
use Netzmacht\LeafletPHP\Definition\Vector\Rectangle;
|
||||||
@@ -53,7 +54,7 @@ class RectangleMapper extends AbstractVectorMapper
|
|||||||
function ($latLng) {
|
function ($latLng) {
|
||||||
return LatLng::fromString($latLng);
|
return LatLng::fromString($latLng);
|
||||||
},
|
},
|
||||||
deserialize($model->bounds, true)
|
StringUtil::deserialize($model->bounds, true)
|
||||||
);
|
);
|
||||||
|
|
||||||
$arguments = parent::buildConstructArguments($model, $mapper, $request, $elementId);
|
$arguments = parent::buildConstructArguments($model, $mapper, $request, $elementId);
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
|
|
||||||
namespace Netzmacht\Contao\Leaflet\Model;
|
namespace Netzmacht\Contao\Leaflet\Model;
|
||||||
|
|
||||||
|
use Contao\Model;
|
||||||
use Contao\Model\Collection;
|
use Contao\Model\Collection;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -19,7 +20,7 @@ use Contao\Model\Collection;
|
|||||||
*
|
*
|
||||||
* @package Netzmacht\Contao\Leaflet\Model
|
* @package Netzmacht\Contao\Leaflet\Model
|
||||||
*/
|
*/
|
||||||
abstract class AbstractActiveModel extends \Model
|
abstract class AbstractActiveModel extends Model
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Find an active model by its model id.
|
* Find an active model by its model id.
|
||||||
|
|||||||
@@ -12,7 +12,8 @@
|
|||||||
|
|
||||||
namespace Netzmacht\Contao\Leaflet\Model;
|
namespace Netzmacht\Contao\Leaflet\Model;
|
||||||
|
|
||||||
use Model\Collection;
|
use Contao\Database;
|
||||||
|
use Contao\Model\Collection;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class ControlModel for the tl_leaflet_vector table.
|
* Class ControlModel for the tl_leaflet_vector table.
|
||||||
@@ -42,7 +43,7 @@ LEFT JOIN tl_leaflet_control_layer c ON l.id = c.lid
|
|||||||
WHERE c.cid=?
|
WHERE c.cid=?
|
||||||
SQL;
|
SQL;
|
||||||
|
|
||||||
$result = \Database::getInstance()
|
$result = Database::getInstance()
|
||||||
->prepare($query)
|
->prepare($query)
|
||||||
->execute($this->id);
|
->execute($this->id);
|
||||||
|
|
||||||
@@ -68,7 +69,7 @@ c ON l.id = c.lid
|
|||||||
WHERE c.cid=? AND l.active=1
|
WHERE c.cid=? AND l.active=1
|
||||||
SQL;
|
SQL;
|
||||||
|
|
||||||
$result = \Database::getInstance()
|
$result = Database::getInstance()
|
||||||
->prepare($query)
|
->prepare($query)
|
||||||
->execute($this->id);
|
->execute($this->id);
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
namespace Netzmacht\Contao\Leaflet\Model;
|
namespace Netzmacht\Contao\Leaflet\Model;
|
||||||
|
|
||||||
use Model\Collection;
|
use Contao\Model\Collection;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class LayerModel for the tl_leaflet_layer table.
|
* Class LayerModel for the tl_leaflet_layer table.
|
||||||
|
|||||||
@@ -12,7 +12,9 @@
|
|||||||
|
|
||||||
namespace Netzmacht\Contao\Leaflet\Model;
|
namespace Netzmacht\Contao\Leaflet\Model;
|
||||||
|
|
||||||
use Model\Collection;
|
use Contao\Database;
|
||||||
|
use Contao\Model;
|
||||||
|
use Contao\Model\Collection;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class MapModel for the tl_leaflet_map table.
|
* Class MapModel for the tl_leaflet_map table.
|
||||||
@@ -22,7 +24,7 @@ use Model\Collection;
|
|||||||
*
|
*
|
||||||
* @package Netzmacht\Contao\Leaflet\Model
|
* @package Netzmacht\Contao\Leaflet\Model
|
||||||
*/
|
*/
|
||||||
class MapModel extends \Model
|
class MapModel extends Model
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Model table.
|
* Model table.
|
||||||
@@ -39,7 +41,7 @@ class MapModel extends \Model
|
|||||||
public function findLayers()
|
public function findLayers()
|
||||||
{
|
{
|
||||||
$query = 'SELECT l.* FROM tl_leaflet_layer l LEFT JOIN tl_leaflet_map_layer m ON l.id = m.lid WHERE m.mid=?';
|
$query = 'SELECT l.* FROM tl_leaflet_layer l LEFT JOIN tl_leaflet_map_layer m ON l.id = m.lid WHERE m.mid=?';
|
||||||
$result = \Database::getInstance()
|
$result = Database::getInstance()
|
||||||
->prepare($query)
|
->prepare($query)
|
||||||
->execute($this->id);
|
->execute($this->id);
|
||||||
|
|
||||||
@@ -65,7 +67,7 @@ ON l.id = m.lid
|
|||||||
WHERE m.mid=? AND l.active=1
|
WHERE m.mid=? AND l.active=1
|
||||||
SQL;
|
SQL;
|
||||||
|
|
||||||
$result = \Database::getInstance()->prepare($query)->execute($this->id);
|
$result = Database::getInstance()->prepare($query)->execute($this->id);
|
||||||
|
|
||||||
if ($result->numRows) {
|
if ($result->numRows) {
|
||||||
return Collection::createFromDbResult($result, 'tl_leaflet_layer');
|
return Collection::createFromDbResult($result, 'tl_leaflet_layer');
|
||||||
|
|||||||
@@ -12,9 +12,12 @@
|
|||||||
|
|
||||||
namespace Netzmacht\Contao\Leaflet\Model;
|
namespace Netzmacht\Contao\Leaflet\Model;
|
||||||
|
|
||||||
|
use Contao\Model\Collection;
|
||||||
use Netzmacht\Contao\Leaflet\Filter\BboxFilter;
|
use Netzmacht\Contao\Leaflet\Filter\BboxFilter;
|
||||||
|
use Netzmacht\Contao\Leaflet\Filter\DistanceFilter;
|
||||||
use Netzmacht\Contao\Leaflet\Filter\Filter;
|
use Netzmacht\Contao\Leaflet\Filter\Filter;
|
||||||
use Netzmacht\LeafletPHP\Value\LatLngBounds;
|
use Netzmacht\LeafletPHP\Value\LatLngBounds;
|
||||||
|
use function var_dump;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class MarkerModel for the tl_leaflet_marker table.
|
* Class MarkerModel for the tl_leaflet_marker table.
|
||||||
@@ -33,21 +36,35 @@ class MarkerModel extends AbstractActiveModel
|
|||||||
/**
|
/**
|
||||||
* Find by a filter.
|
* Find by a filter.
|
||||||
*
|
*
|
||||||
* @param int $pid The parent id.
|
* @param int $pid The parent id.
|
||||||
* @param Filter $filter The filter.
|
* @param Filter|null $filter The filter.
|
||||||
*
|
*
|
||||||
* @return \Model\Collection|null
|
* @return Collection|null
|
||||||
*/
|
*/
|
||||||
public static function findByFilter($pid, Filter $filter = null)
|
public static function findByFilter($pid, ?Filter $filter = null)
|
||||||
{
|
{
|
||||||
if (!$filter) {
|
if (!$filter) {
|
||||||
return static::findActiveBy('pid', $pid, ['order' => 'sorting']);
|
$table = static::getTable();
|
||||||
|
|
||||||
|
return static::findBy(
|
||||||
|
[
|
||||||
|
$table . '.active=1',
|
||||||
|
$table . '.pid=?',
|
||||||
|
$table . '.latitude>0',
|
||||||
|
$table . '.longitude>0',
|
||||||
|
],
|
||||||
|
[$pid],
|
||||||
|
['order' => 'sorting']
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch ($filter->getName()) {
|
switch (true) {
|
||||||
case 'bbox':
|
case $filter instanceof BboxFilter:
|
||||||
return static::findByBBoxFilter($pid, $filter);
|
return static::findByBBoxFilter($pid, $filter);
|
||||||
|
|
||||||
|
case $filter instanceof DistanceFilter:
|
||||||
|
return static::findByDistanceFilter($pid, $filter);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -59,15 +76,16 @@ class MarkerModel extends AbstractActiveModel
|
|||||||
* @param int $pid The layer id.
|
* @param int $pid The layer id.
|
||||||
* @param BboxFilter $filter The bbox filter.
|
* @param BboxFilter $filter The bbox filter.
|
||||||
*
|
*
|
||||||
* @return \Model\Collection|null
|
* @return Collection|null|MarkerModel[]
|
||||||
*/
|
*/
|
||||||
public static function findByBBoxFilter($pid, BboxFilter $filter)
|
public static function findByBBoxFilter($pid, BboxFilter $filter)
|
||||||
{
|
{
|
||||||
|
$table = static::getTable();
|
||||||
$columns = [
|
$columns = [
|
||||||
'active=1',
|
$table . '.active=1',
|
||||||
'pid=?',
|
$table . '.pid=?',
|
||||||
'latitude > ? AND latitude < ?',
|
$table . '.latitude > ? AND ' . $table . '.latitude < ?',
|
||||||
'longitude > ? AND longitude < ?',
|
$table . '.longitude > ? AND ' . $table . '.longitude < ?',
|
||||||
];
|
];
|
||||||
|
|
||||||
/** @var LatLngBounds $bounds */
|
/** @var LatLngBounds $bounds */
|
||||||
@@ -80,6 +98,39 @@ class MarkerModel extends AbstractActiveModel
|
|||||||
$bounds->getNorthEast()->getLongitude(),
|
$bounds->getNorthEast()->getLongitude(),
|
||||||
];
|
];
|
||||||
|
|
||||||
return static::findBy($columns, $values, ['order' => 'sorting']);
|
return static::findBy($columns, $values, ['order' => $table . '.sorting']);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find marker by distance filter.
|
||||||
|
*
|
||||||
|
* @param int $pid The layer id.
|
||||||
|
* @param DistanceFilter $filter THe distance filter.
|
||||||
|
*
|
||||||
|
* @return Collection|null|MarkerModel[]
|
||||||
|
*/
|
||||||
|
public static function findByDistanceFilter($pid, DistanceFilter $filter): ?Collection
|
||||||
|
{
|
||||||
|
$table = static::getTable();
|
||||||
|
$query = <<<SQL
|
||||||
|
round(
|
||||||
|
sqrt(
|
||||||
|
power( 2 * pi() / 360 * (? - {$table}.latitude) * 6371,2)
|
||||||
|
+ power( 2 * pi() / 360 * (? - {$table}.longitude) * 6371 * COS( 2 * pi() / 360 * (? + {$table}.latitude) * 0.5 ),2)
|
||||||
|
)
|
||||||
|
) <= ?
|
||||||
|
SQL;
|
||||||
|
|
||||||
|
$center = $filter->getCenter();
|
||||||
|
$latitude = $center->getLatitude();
|
||||||
|
$longitude = $center->getLongitude();
|
||||||
|
$values = [$pid, $latitude, $longitude, $latitude, $filter->getRadius()];
|
||||||
|
$columns = [
|
||||||
|
$table . '.active=1',
|
||||||
|
$table . '.pid=?',
|
||||||
|
$query
|
||||||
|
];
|
||||||
|
|
||||||
|
return static::findBy($columns, $values, ['order' => $table . '.sorting']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user