Generate absolute urls for file layers

https://github.com/netzmacht/contao-leaflet-maps/issues/92
This commit is contained in:
David Molineus
2020-12-18 09:13:29 +01:00
parent 49f3b7dbcd
commit 60e285c673
3 changed files with 24 additions and 10 deletions

View File

@@ -10,7 +10,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed ### Fixed
- Remove template debug placeholders, it breaks generated javascript - Remove template debug placeholders, it breaks generated javascript ([#93](https://github.com/netzmacht/contao-leaflet-maps/issues/93))
- Generate absolute urls for file layers ([#92](https://github.com/netzmacht/contao-leaflet-maps/issues/92))
## [3.2.1] - 2020-09-02 ## [3.2.1] - 2020-09-02

View File

@@ -77,6 +77,7 @@ services:
class: Netzmacht\Contao\Leaflet\Mapper\Layer\FileLayerMapper class: Netzmacht\Contao\Leaflet\Mapper\Layer\FileLayerMapper
arguments: arguments:
- '@netzmacht.contao_toolkit.repository_manager' - '@netzmacht.contao_toolkit.repository_manager'
- '@netzmacht.contao_toolkit.contao.environment_adapter'
tags: tags:
- { name: netzmacht.contao_leaflet.mapper } - { name: netzmacht.contao_leaflet.mapper }

View File

@@ -14,6 +14,8 @@ declare(strict_types=1);
namespace Netzmacht\Contao\Leaflet\Mapper\Layer; namespace Netzmacht\Contao\Leaflet\Mapper\Layer;
use Contao\CoreBundle\Framework\Adapter;
use Contao\Environment;
use Contao\FilesModel; use Contao\FilesModel;
use Contao\Model; use Contao\Model;
use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper; use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper;
@@ -58,16 +60,25 @@ class FileLayerMapper extends AbstractLayerMapper
*/ */
private $repositoryManager; private $repositoryManager;
/**
* Environment.
*
* @var Adapter<Environment>
*/
private $environmentAdapter;
/** /**
* Construct. * Construct.
* *
* @param RepositoryManager $repositoryManager Repository manager. * @param RepositoryManager $repositoryManager Repository manager.
* @param Adapter<Environment> $environmentAdapter Environment adapter.
*/ */
public function __construct(RepositoryManager $repositoryManager) public function __construct(RepositoryManager $repositoryManager, Adapter $environmentAdapter)
{ {
$this->repositoryManager = $repositoryManager;
parent::__construct(); parent::__construct();
$this->repositoryManager = $repositoryManager;
$this->environmentAdapter = $environmentAdapter;
} }
/** /**
@@ -103,25 +114,26 @@ class FileLayerMapper extends AbstractLayerMapper
$layerId = $this->getElementId($model, $elementId); $layerId = $this->getElementId($model, $elementId);
if ($fileModel instanceof FilesModel && $fileModel->type === 'file') { if ($fileModel instanceof FilesModel && $fileModel->type === 'file') {
$url = $this->environmentAdapter->get('url') . '/' . $fileModel->path;
switch ($model->fileFormat) { switch ($model->fileFormat) {
case 'gpx': case 'gpx':
$layer = new Gpx($layerId, $fileModel->path); $layer = new Gpx($layerId, $url);
break; break;
case 'kml': case 'kml':
$layer = new Kml($layerId, $fileModel->path); $layer = new Kml($layerId, $url);
break; break;
case 'wkt': case 'wkt':
$layer = new Wkt($layerId, $fileModel->path); $layer = new Wkt($layerId, $url);
break; break;
case 'geojson': case 'geojson':
$layer = new OmnivoreGeoJson($layerId, $fileModel->path); $layer = new OmnivoreGeoJson($layerId, $url);
break; break;
case 'topojson': case 'topojson':
$layer = new TopoJson($layerId, $fileModel->path); $layer = new TopoJson($layerId, $url);
break; break;
default: default: