From 1ebd3ef49b9eb1eb5be8f489aa27265d14bb6d64 Mon Sep 17 00:00:00 2001 From: David Molineus Date: Fri, 9 Jan 2015 23:48:25 +0100 Subject: [PATCH] Fix handling of inactive layers. --- .../Leaflet/Mapper/Control/LayersControlMapper.php | 2 +- src/Netzmacht/Contao/Leaflet/Mapper/MapMapper.php | 2 +- src/Netzmacht/Contao/Leaflet/Model/ControlModel.php | 13 +++++++++++++ src/Netzmacht/Contao/Leaflet/Model/MapModel.php | 13 +++++++++++++ 4 files changed, 28 insertions(+), 2 deletions(-) diff --git a/src/Netzmacht/Contao/Leaflet/Mapper/Control/LayersControlMapper.php b/src/Netzmacht/Contao/Leaflet/Mapper/Control/LayersControlMapper.php index 4d0902c..40d899c 100644 --- a/src/Netzmacht/Contao/Leaflet/Mapper/Control/LayersControlMapper.php +++ b/src/Netzmacht/Contao/Leaflet/Mapper/Control/LayersControlMapper.php @@ -47,7 +47,7 @@ class LayersControlMapper extends AbstractControlMapper $arguments[2] = array(); /** @var ControlModel $model */ - $collection = $model->findLayers(); + $collection = $model->findActiveLayers(); if ($collection) { foreach ($collection as $layer) { diff --git a/src/Netzmacht/Contao/Leaflet/Mapper/MapMapper.php b/src/Netzmacht/Contao/Leaflet/Mapper/MapMapper.php index 5dbb167..6876367 100644 --- a/src/Netzmacht/Contao/Leaflet/Mapper/MapMapper.php +++ b/src/Netzmacht/Contao/Leaflet/Mapper/MapMapper.php @@ -127,7 +127,7 @@ class MapMapper extends AbstractMapper */ private function buildLayers(Map $map, MapModel $model, DefinitionMapper $mapper, LatLngBounds $bounds = null) { - $collection = $model->findLayers(); + $collection = $model->findActiveLayers(); if ($collection) { foreach ($collection as $layer) { diff --git a/src/Netzmacht/Contao/Leaflet/Model/ControlModel.php b/src/Netzmacht/Contao/Leaflet/Model/ControlModel.php index 87c0d2d..e6d5597 100644 --- a/src/Netzmacht/Contao/Leaflet/Model/ControlModel.php +++ b/src/Netzmacht/Contao/Leaflet/Model/ControlModel.php @@ -27,4 +27,17 @@ class ControlModel extends AbstractActiveModel return \Model\Collection::createFromDbResult($result, 'tl_leaflet_layer'); } + + /** + * @return \Model\Collection + */ + public function findActiveLayers() + { + $query = 'SELECT l.*, c.mode as controlMode FROM tl_leaflet_layer l LEFT JOIN tl_leaflet_control_layer c ON l.id = c.lid WHERE c.cid=? AND l.active=1'; + $result = \Database::getInstance() + ->prepare($query) + ->execute($this->id); + + return \Model\Collection::createFromDbResult($result, 'tl_leaflet_layer'); + } } diff --git a/src/Netzmacht/Contao/Leaflet/Model/MapModel.php b/src/Netzmacht/Contao/Leaflet/Model/MapModel.php index 359c0f7..1d15e91 100644 --- a/src/Netzmacht/Contao/Leaflet/Model/MapModel.php +++ b/src/Netzmacht/Contao/Leaflet/Model/MapModel.php @@ -28,4 +28,17 @@ class MapModel extends \Model return \Model\Collection::createFromDbResult($result, 'tl_leaflet_layer'); } + + /** + * @return \Model\Collection + */ + public function findActiveLayers() + { + $query = 'SELECT l.* FROM tl_leaflet_layer l LEFT JOIN tl_leaflet_map_layer m ON l.id = m.lid WHERE m.mid=? AND l.active=1'; + $result = \Database::getInstance() + ->prepare($query) + ->execute($this->id); + + return \Model\Collection::createFromDbResult($result, 'tl_leaflet_layer'); + } }