forked from Snck3rs/contao-leaflet-maps
Work on service oriented listeners.
This commit is contained in:
@@ -2,7 +2,10 @@ services:
|
||||
netzmacht.contao_leaflet.listeners.dca.leaflet:
|
||||
class: Netzmacht\Contao\Leaflet\Listener\Dca\LeafletDcaListener
|
||||
arguments:
|
||||
- '@netzmacht.contao_toolkit.repository_manager'
|
||||
- '@templating'
|
||||
- '@filesystem'
|
||||
- '@netzmacht.contao_toolkit.contao.system_adapter'
|
||||
- '%netzmacht.contao_leaflet.cache_dir%'
|
||||
|
||||
netzmacht.contao_leaflet.listeners.dca.validator:
|
||||
@@ -14,6 +17,7 @@ services:
|
||||
netzmacht.contao_leaflet.listeners.dca.frontend_integration:
|
||||
class: Netzmacht\Contao\Leaflet\Listener\Dca\FrontendIntegrationListener
|
||||
arguments:
|
||||
- '@netzmacht.contao_toolkit.repository_manager'
|
||||
- '@translator'
|
||||
|
||||
netzmacht.contao_leaflet.listeners.dca.map:
|
||||
@@ -21,6 +25,7 @@ services:
|
||||
arguments:
|
||||
- '@netzmacht.contao_toolkit.dca.manager'
|
||||
- '@database_connection'
|
||||
- '@netzmacht.contao_toolkit.repository_manager'
|
||||
|
||||
netzmacht.contao_leaflet.listeners.dca.control:
|
||||
class: Netzmacht\Contao\Leaflet\Listener\Dca\ControlDcaListener
|
||||
@@ -34,8 +39,10 @@ services:
|
||||
arguments:
|
||||
- '@netzmacht.contao_toolkit.dca.manager'
|
||||
- '@database_connection'
|
||||
- '@netzmacht.contao_toolkit.repository_manager'
|
||||
- '@translator'
|
||||
- '@netzmacht.contao_leaflet.layer_label_renderer'
|
||||
- '@netzmacht.contao_toolkit.contao.backend_adapter'
|
||||
- '%netzmacht.contao_leaflet.layers%'
|
||||
- '%netzmacht.contao_leaflet.providers%'
|
||||
- '%netzmacht.contao_leaflet.amenities%'
|
||||
@@ -45,11 +52,13 @@ services:
|
||||
class: Netzmacht\Contao\Leaflet\Listener\Dca\MarkerDcaListener
|
||||
arguments:
|
||||
- '@database_connection'
|
||||
- '@netzmacht.contao_toolkit.repository_manager'
|
||||
|
||||
netzmacht.contao_leaflet.listeners.dca.vector:
|
||||
class: Netzmacht\Contao\Leaflet\Listener\Dca\VectorDcaListener
|
||||
arguments:
|
||||
- '@netzmacht.contao_toolkit.dca.manager'
|
||||
- '@netzmacht.contao_toolkit.repository_manager'
|
||||
- '%netzmacht.contao_leaflet.vectors%'
|
||||
|
||||
netzmacht.contao_leaflet.listeners.dca.icon:
|
||||
|
||||
@@ -23,7 +23,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_marker'] = [
|
||||
],
|
||||
],
|
||||
'onload_callback' => [
|
||||
['netzmacht.contao_leaflet.listeners.dca.marker', 'initialize'],
|
||||
['netzmacht.contao_leaflet.listeners.dca.leaflet', 'loadLanguageFile'],
|
||||
],
|
||||
'onsubmit_callback' => [
|
||||
['netzmacht.contao_leaflet.listeners.dca.leaflet', 'clearCache'],
|
||||
|
||||
@@ -16,6 +16,7 @@ use Contao\StringUtil;
|
||||
use Doctrine\DBAL\Connection;
|
||||
use Netzmacht\Contao\Leaflet\Model\ControlModel;
|
||||
use Netzmacht\Contao\Leaflet\Model\LayerModel;
|
||||
use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
|
||||
use Netzmacht\Contao\Toolkit\Dca\Listener\AbstractListener;
|
||||
use Netzmacht\Contao\Toolkit\Dca\Manager;
|
||||
use Netzmacht\Contao\Toolkit\Dca\Options\OptionsBuilder;
|
||||
@@ -48,19 +49,32 @@ class ControlDcaListener extends AbstractListener
|
||||
*/
|
||||
private $types;
|
||||
|
||||
/**
|
||||
* Repository manager.
|
||||
*
|
||||
* @var RepositoryManager
|
||||
*/
|
||||
private $repositoryManager;
|
||||
|
||||
/**
|
||||
* Construct.
|
||||
*
|
||||
* @param Manager $manager Data container manager.
|
||||
* @param Connection $connection Database connection.
|
||||
* @param array $types Control types.
|
||||
* @param Manager $manager Data container manager.
|
||||
* @param Connection $connection Database connection.
|
||||
* @param RepositoryManager $repositoryManager Repository manager.
|
||||
* @param array $types Control types.
|
||||
*/
|
||||
public function __construct(Manager $manager, Connection $connection, array $types)
|
||||
{
|
||||
public function __construct(
|
||||
Manager $manager,
|
||||
Connection $connection,
|
||||
RepositoryManager $repositoryManager,
|
||||
array $types
|
||||
) {
|
||||
parent::__construct($manager);
|
||||
|
||||
$this->connection = $connection;
|
||||
$this->types = $types;
|
||||
$this->connection = $connection;
|
||||
$this->types = $types;
|
||||
$this->repositoryManager = $repositoryManager;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -96,7 +110,8 @@ class ControlDcaListener extends AbstractListener
|
||||
*/
|
||||
public function getLayers()
|
||||
{
|
||||
$collection = LayerModel::findAll();
|
||||
$repository = $this->repositoryManager->getRepository(LayerModel::class);
|
||||
$collection = $repository->findAll();
|
||||
|
||||
return OptionsBuilder::fromCollection($collection, 'title')
|
||||
->asTree()
|
||||
@@ -110,7 +125,8 @@ class ControlDcaListener extends AbstractListener
|
||||
*/
|
||||
public function getZoomControls()
|
||||
{
|
||||
$collection = ControlModel::findBy('type', 'zoom', ['order' => 'title']);
|
||||
$repository = $this->repositoryManager->getRepository(ControlModel::class);
|
||||
$collection = $repository->findBy(['type=?'], ['zoom'], ['order' => 'title']);
|
||||
|
||||
return OptionsBuilder::fromCollection($collection, 'title')->getOptions();
|
||||
}
|
||||
|
||||
@@ -14,7 +14,11 @@ declare(strict_types=1);
|
||||
|
||||
namespace Netzmacht\Contao\Leaflet\Listener\Dca;
|
||||
|
||||
use Contao\Image;
|
||||
use Contao\RequestToken;
|
||||
use Contao\StringUtil;
|
||||
use Netzmacht\Contao\Leaflet\Model\MapModel;
|
||||
use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
|
||||
use Netzmacht\Contao\Toolkit\Dca\Options\OptionsBuilder;
|
||||
use Symfony\Component\Translation\TranslatorInterface as Translator;
|
||||
|
||||
@@ -32,14 +36,23 @@ final class FrontendIntegrationListener
|
||||
*/
|
||||
private $translator;
|
||||
|
||||
/**
|
||||
* Repository manager.
|
||||
*
|
||||
* @var RepositoryManager
|
||||
*/
|
||||
private $repositoryManager;
|
||||
|
||||
/**
|
||||
* FrontendIntegration constructor.
|
||||
*
|
||||
* @param Translator $translator Translator.
|
||||
* @param RepositoryManager $repositoryManager Repository manager.
|
||||
* @param Translator $translator Translator.
|
||||
*/
|
||||
public function __construct(Translator $translator)
|
||||
public function __construct(RepositoryManager $repositoryManager, Translator $translator)
|
||||
{
|
||||
$this->translator = $translator;
|
||||
$this->translator = $translator;
|
||||
$this->repositoryManager = $repositoryManager;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -49,7 +62,8 @@ final class FrontendIntegrationListener
|
||||
*/
|
||||
public function getMaps(): array
|
||||
{
|
||||
$collection = MapModel::findAll();
|
||||
$repository = $this->repositoryManager->getRepository(MapModel::class);
|
||||
$collection = $repository->findAll(['order' => 'title']);
|
||||
|
||||
return OptionsBuilder::fromCollection($collection, 'title')->getOptions();
|
||||
}
|
||||
@@ -74,11 +88,13 @@ final class FrontendIntegrationListener
|
||||
'<a href="%s%s&popup=1&rt=%s" %s>%s</a>',
|
||||
'contao/main.php?do=leaflet_map&table=tl_leaflet_map&act=edit&id=',
|
||||
$dataContainer->value,
|
||||
\RequestToken::get(),
|
||||
RequestToken::get(),
|
||||
sprintf(
|
||||
$pattern,
|
||||
specialchars($this->translator->trans('editalias.1', [$dataContainer->value], 'contao_tl_content')),
|
||||
specialchars(
|
||||
StringUtil::specialchars(
|
||||
$this->translator->trans('editalias.1', [$dataContainer->value], 'contao_tl_content')
|
||||
),
|
||||
StringUtil::specialchars(
|
||||
str_replace(
|
||||
"'",
|
||||
"\\'",
|
||||
@@ -86,7 +102,7 @@ final class FrontendIntegrationListener
|
||||
)
|
||||
)
|
||||
),
|
||||
\Image::getHtml(
|
||||
Image::getHtml(
|
||||
'alias.gif',
|
||||
$this->translator->trans('editalias.0', [$dataContainer->value], 'contao_tl_content'),
|
||||
'style="vertical-align:top"'
|
||||
|
||||
@@ -12,15 +12,16 @@
|
||||
|
||||
namespace Netzmacht\Contao\Leaflet\Listener\Dca;
|
||||
|
||||
use Contao\Controller;
|
||||
use Contao\Backend;
|
||||
use Contao\CoreBundle\Framework\Adapter;
|
||||
use Contao\DataContainer;
|
||||
use Contao\Image;
|
||||
use Contao\RequestToken;
|
||||
use Contao\StringUtil;
|
||||
use Doctrine\DBAL\Connection;
|
||||
use Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer\LayerLabelRenderer;
|
||||
use Netzmacht\Contao\Leaflet\Model\IconModel;
|
||||
use Netzmacht\Contao\Leaflet\Model\LayerModel;
|
||||
use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
|
||||
use Netzmacht\Contao\Toolkit\Dca\Listener\AbstractListener;
|
||||
use Netzmacht\Contao\Toolkit\Dca\Manager;
|
||||
use Netzmacht\Contao\Toolkit\Dca\Options\OptionsBuilder;
|
||||
@@ -54,6 +55,13 @@ class LayerDcaListener extends AbstractListener
|
||||
*/
|
||||
private $connection;
|
||||
|
||||
/**
|
||||
* Repository manager.
|
||||
*
|
||||
* @var RepositoryManager
|
||||
*/
|
||||
private $repositoryManager;
|
||||
|
||||
/**
|
||||
* Tile providers configuration.
|
||||
*
|
||||
@@ -89,23 +97,36 @@ class LayerDcaListener extends AbstractListener
|
||||
*/
|
||||
private $fileFormats;
|
||||
|
||||
/**
|
||||
* Backend adapter.
|
||||
*
|
||||
* @var Backend|Adapter
|
||||
*/
|
||||
private $backendAdapter;
|
||||
|
||||
/**
|
||||
* Construct.
|
||||
*
|
||||
* @param Manager $manager Data container manager.
|
||||
* @param Connection $connection Database connection.
|
||||
* @param Translator $translator Translator.
|
||||
* @param LayerLabelRenderer $labelRenderer Layer label renderer.
|
||||
* @param array $layers Leaflet layer configuration.
|
||||
* @param array $tileProviders Tile providers.
|
||||
* @param array $amenities OSM amenities.
|
||||
* @param array $fileFormats File formats.
|
||||
* @param Manager $manager Data container manager.
|
||||
* @param Connection $connection Database connection.
|
||||
* @param RepositoryManager $repositoryManager Repository manager.
|
||||
* @param Translator $translator Translator.
|
||||
* @param LayerLabelRenderer $labelRenderer Layer label renderer.
|
||||
* @param Adapter|Backend $backendAdapter Backend adapter.
|
||||
* @param array $layers Leaflet layer configuration.
|
||||
* @param array $tileProviders Tile providers.
|
||||
* @param array $amenities OSM amenities.
|
||||
* @param array $fileFormats File formats.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
|
||||
*/
|
||||
public function __construct(
|
||||
Manager $manager,
|
||||
Connection $connection,
|
||||
RepositoryManager $repositoryManager,
|
||||
Translator $translator,
|
||||
LayerLabelRenderer $labelRenderer,
|
||||
$backendAdapter,
|
||||
array $layers,
|
||||
array $tileProviders,
|
||||
array $amenities,
|
||||
@@ -113,15 +134,15 @@ class LayerDcaListener extends AbstractListener
|
||||
) {
|
||||
parent::__construct($manager);
|
||||
|
||||
Controller::loadLanguageFile('leaflet_layer');
|
||||
|
||||
$this->connection = $connection;
|
||||
$this->layers = $layers;
|
||||
$this->tileProviders = $tileProviders;
|
||||
$this->translator = $translator;
|
||||
$this->amenities = $amenities;
|
||||
$this->labelRenderer = $labelRenderer;
|
||||
$this->fileFormats = $fileFormats;
|
||||
$this->connection = $connection;
|
||||
$this->layers = $layers;
|
||||
$this->tileProviders = $tileProviders;
|
||||
$this->translator = $translator;
|
||||
$this->amenities = $amenities;
|
||||
$this->labelRenderer = $labelRenderer;
|
||||
$this->fileFormats = $fileFormats;
|
||||
$this->repositoryManager = $repositoryManager;
|
||||
$this->backendAdapter = $backendAdapter;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -216,7 +237,8 @@ class LayerDcaListener extends AbstractListener
|
||||
)
|
||||
);
|
||||
|
||||
$collection = LayerModel::findMultipleByTypes($types);
|
||||
$repository = $this->repositoryManager->getRepository(LayerModel::class);
|
||||
$collection = $repository->findMultipleByTypes($types);
|
||||
$builder = OptionsBuilder::fromCollection(
|
||||
$collection,
|
||||
'id',
|
||||
@@ -243,43 +265,42 @@ class LayerDcaListener extends AbstractListener
|
||||
*/
|
||||
public function getPasteButtons($dataContainer, $row, $table, $whatever, $children)
|
||||
{
|
||||
$pasteAfterUrl = \Controller::addToUrl(
|
||||
$pasteAfterUrl = $this->backendAdapter->addToUrl(
|
||||
'act=' . $children['mode'] . '&mode=1&pid=' . $row['id']
|
||||
. (!is_array($children['id']) ? '&id=' . $children['id'] : '')
|
||||
. '&rt=' . RequestToken::get()
|
||||
);
|
||||
|
||||
$buffer = sprintf(
|
||||
'<a href="%s" title="%s" onclick="Backend.getScrollOffset()">%s</a> ',
|
||||
$pasteAfterUrl,
|
||||
specialchars($this->translator->trans('pasteafter.1', [$row['id']], 'contao_' . $table)),
|
||||
\Image::getHtml(
|
||||
StringUtil::specialchars($this->translator->trans('pasteafter.1', [$row['id']], 'contao_' . $table)),
|
||||
Image::getHtml(
|
||||
'pasteafter.gif',
|
||||
$this->translator->trans('pasteafter.1', [$row['id']], 'contao_' . $table)
|
||||
)
|
||||
);
|
||||
|
||||
if (!empty($this->layers[$row['type']]['children'])) {
|
||||
$pasteIntoUrl = \Controller::addToUrl(
|
||||
$pasteIntoUrl = $this->backendAdapter->addToUrl(
|
||||
sprintf(
|
||||
'act=%s&mode=2&pid=%s%s',
|
||||
$children['mode'],
|
||||
$row['id'],
|
||||
!is_array($children['id']) ? '&id=' . $children['id'] : ''
|
||||
) . '&rt=' . RequestToken::get()
|
||||
)
|
||||
);
|
||||
|
||||
$buffer .= sprintf(
|
||||
'<a href="%s" title="%s" onclick="Backend.getScrollOffset()">%s</a> ',
|
||||
$pasteIntoUrl,
|
||||
specialchars($this->translator->trans('pasteinto.1', [$row['id']], 'contao_' . $table)),
|
||||
\Image::getHtml(
|
||||
StringUtil::specialchars($this->translator->trans('pasteinto.1', [$row['id']], 'contao_' . $table)),
|
||||
Image::getHtml(
|
||||
'pasteinto.gif',
|
||||
$this->translator->trans('pasteinto.1', [$row['id']], 'contao_' . $table)
|
||||
)
|
||||
);
|
||||
} elseif ($row['id'] > 0) {
|
||||
$buffer .= \Image::getHtml('pasteinto_.gif');
|
||||
$buffer .= Image::getHtml('pasteinto_.gif');
|
||||
}
|
||||
|
||||
return $buffer;
|
||||
@@ -348,7 +369,7 @@ class LayerDcaListener extends AbstractListener
|
||||
$statement->bindValue('lid', $dataContainer->id);
|
||||
$statement->execute();
|
||||
|
||||
$undo['data'] = deserialize($undo['data'], true);
|
||||
$undo['data'] = StringUtil::deserialize($undo['data'], true);
|
||||
|
||||
while ($row = $statement->fetch()) {
|
||||
$undo['data']['tl_leaflet_map_layer'][] = $row;
|
||||
@@ -400,7 +421,8 @@ class LayerDcaListener extends AbstractListener
|
||||
*/
|
||||
public function getLayers($dataContainer)
|
||||
{
|
||||
$collection = LayerModel::findBy('id !', $dataContainer->id);
|
||||
$repository = $this->repositoryManager->getRepository(LayerModel::class);
|
||||
$collection = $repository->findBy(['tl_leaflet_layer.id!=?'], [$dataContainer->id]);
|
||||
|
||||
return OptionsBuilder::fromCollection($collection, 'title')
|
||||
->asTree()
|
||||
@@ -424,7 +446,8 @@ class LayerDcaListener extends AbstractListener
|
||||
*/
|
||||
public function getIcons()
|
||||
{
|
||||
$collection = IconModel::findAll(['order' => 'title']);
|
||||
$repository = $this->repositoryManager->getRepository(IconModel::class);
|
||||
$collection = $repository->findAll(['order' => 'title']);
|
||||
$builder = OptionsBuilder::fromCollection(
|
||||
$collection,
|
||||
function ($model) {
|
||||
|
||||
@@ -12,11 +12,14 @@
|
||||
|
||||
namespace Netzmacht\Contao\Leaflet\Listener\Dca;
|
||||
|
||||
use Contao\Controller;
|
||||
use Contao\CoreBundle\Framework\Adapter;
|
||||
use Contao\DataContainer;
|
||||
use Contao\System;
|
||||
use Netzmacht\Contao\Leaflet\Model\LayerModel;
|
||||
use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
|
||||
use Netzmacht\LeafletPHP\Value\LatLng;
|
||||
use Symfony\Component\Filesystem\Filesystem;
|
||||
use Symfony\Component\Templating\EngineInterface as TemplateEngine;
|
||||
|
||||
/**
|
||||
* Class Leaflet is the base helper providing different methods.
|
||||
@@ -39,16 +42,48 @@ class LeafletDcaListener
|
||||
*/
|
||||
private $cacheDir;
|
||||
|
||||
/**
|
||||
* Repository manager.
|
||||
*
|
||||
* @var RepositoryManager
|
||||
*/
|
||||
private $repositoryManager;
|
||||
|
||||
/**
|
||||
* Template engine.
|
||||
*
|
||||
* @var TemplateEngine
|
||||
*/
|
||||
private $templateEngine;
|
||||
|
||||
/**
|
||||
* System adapter.
|
||||
*
|
||||
* @var Adapter|System
|
||||
*/
|
||||
private $systemAdapter;
|
||||
|
||||
/**
|
||||
* LeafletCallbacks constructor.
|
||||
*
|
||||
* @param Filesystem $fileSystem File system.
|
||||
* @param string $cacheDir Cache dir.
|
||||
* @param RepositoryManager $repositoryManager Repository manager.
|
||||
* @param TemplateEngine $templateEngine Template engine.
|
||||
* @param Filesystem $fileSystem File system.
|
||||
* @param Adapter|System $systemAdapter Contao system adapter.
|
||||
* @param string $cacheDir Cache dir.
|
||||
*/
|
||||
public function __construct(Filesystem $fileSystem, string $cacheDir)
|
||||
{
|
||||
$this->fileSystem = $fileSystem;
|
||||
$this->cacheDir = $cacheDir;
|
||||
public function __construct(
|
||||
RepositoryManager $repositoryManager,
|
||||
TemplateEngine $templateEngine,
|
||||
Filesystem $fileSystem,
|
||||
$systemAdapter,
|
||||
string $cacheDir
|
||||
) {
|
||||
$this->repositoryManager = $repositoryManager;
|
||||
$this->templateEngine = $templateEngine;
|
||||
$this->fileSystem = $fileSystem;
|
||||
$this->systemAdapter = $systemAdapter;
|
||||
$this->cacheDir = $cacheDir;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -58,7 +93,7 @@ class LeafletDcaListener
|
||||
*/
|
||||
public function loadLanguageFile()
|
||||
{
|
||||
Controller::loadLanguageFile('leaflet');
|
||||
$this->systemAdapter->loadLanguageFile('leaflet');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -80,17 +115,16 @@ class LeafletDcaListener
|
||||
*/
|
||||
public function getGeocoder($dataContainer)
|
||||
{
|
||||
$template = new \BackendTemplate('be_leaflet_geocode');
|
||||
$template->field = 'ctrl_' . $dataContainer->field;
|
||||
$data['field'] = 'ctrl_' . $dataContainer->field;
|
||||
|
||||
try {
|
||||
$latLng = LatLng::fromString($dataContainer->value);
|
||||
$template->marker = json_encode($latLng);
|
||||
$latLng = LatLng::fromString($dataContainer->value);
|
||||
$data['marker'] = json_encode($latLng);
|
||||
} catch (\Exception $e) {
|
||||
// LatLng throws an exception of value could not be created. Just let the value empty when.
|
||||
}
|
||||
|
||||
return $template->parse();
|
||||
return $this->templateEngine->render('toolkit:be:be_leaflet_geocode.html5', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -101,7 +135,8 @@ class LeafletDcaListener
|
||||
public function getLayers()
|
||||
{
|
||||
$options = [];
|
||||
$collection = LayerModel::findBy('pid', '0', ['order' => 'title']);
|
||||
$repository = $this->repositoryManager->getRepository(LayerModel::class);
|
||||
$collection = $repository->findBy(['pid=?'], ['0'], ['order' => 'title']);
|
||||
|
||||
if ($collection) {
|
||||
foreach ($collection as $model) {
|
||||
|
||||
@@ -18,6 +18,7 @@ use Contao\DataContainer;
|
||||
use Contao\StringUtil;
|
||||
use Doctrine\DBAL\Connection;
|
||||
use Netzmacht\Contao\Leaflet\Model\LayerModel;
|
||||
use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
|
||||
use Netzmacht\Contao\Toolkit\Dca\Listener\AbstractListener;
|
||||
use Netzmacht\Contao\Toolkit\Dca\Manager;
|
||||
use Netzmacht\Contao\Toolkit\Dca\Options\OptionsBuilder;
|
||||
@@ -44,17 +45,26 @@ class MapDcaListener extends AbstractListener
|
||||
*/
|
||||
private $connection;
|
||||
|
||||
/**
|
||||
* Repository manager.
|
||||
*
|
||||
* @var RepositoryManager
|
||||
*/
|
||||
private $repositoryManager;
|
||||
|
||||
/**
|
||||
* Construct.
|
||||
*
|
||||
* @param Manager $manager Data container manager.
|
||||
* @param Connection $connection Database connection.
|
||||
* @param Manager $manager Data container manager.
|
||||
* @param Connection $connection Database connection.
|
||||
* @param RepositoryManager $repositoryManager Repository manager.
|
||||
*/
|
||||
public function __construct(Manager $manager, Connection $connection)
|
||||
public function __construct(Manager $manager, Connection $connection, RepositoryManager $repositoryManager)
|
||||
{
|
||||
parent::__construct($manager);
|
||||
|
||||
$this->connection = $connection;
|
||||
$this->connection = $connection;
|
||||
$this->repositoryManager = $repositoryManager;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -150,13 +160,12 @@ class MapDcaListener extends AbstractListener
|
||||
/**
|
||||
* Get all layers except of the current layer.
|
||||
*
|
||||
* @param DataContainer $dataContainer The dataContainer driver.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getLayers($dataContainer)
|
||||
public function getLayers()
|
||||
{
|
||||
$collection = LayerModel::findBy('id !', $dataContainer->id);
|
||||
$repository = $this->repositoryManager->getRepository(LayerModel::class);
|
||||
$collection = $repository->findAll(['order' => 'title']);
|
||||
|
||||
return OptionsBuilder::fromCollection($collection, 'title')
|
||||
->asTree()
|
||||
|
||||
@@ -16,6 +16,7 @@ use Contao\Controller;
|
||||
use Doctrine\DBAL\Connection;
|
||||
use Netzmacht\Contao\Leaflet\Model\IconModel;
|
||||
use Netzmacht\Contao\Leaflet\Model\PopupModel;
|
||||
use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
|
||||
use Netzmacht\Contao\Toolkit\Dca\Options\OptionsBuilder;
|
||||
|
||||
/**
|
||||
@@ -33,23 +34,22 @@ class MarkerDcaListener
|
||||
private $connection;
|
||||
|
||||
/**
|
||||
* MarkerDcaListener constructor.
|
||||
* Repository manager.
|
||||
*
|
||||
* @param Connection $connection Database connection.
|
||||
* @var RepositoryManager
|
||||
*/
|
||||
public function __construct(Connection $connection)
|
||||
{
|
||||
$this->connection = $connection;
|
||||
}
|
||||
private $repositoryManager;
|
||||
|
||||
/**
|
||||
* Initialize the language files.
|
||||
* MarkerDcaListener constructor.
|
||||
*
|
||||
* @return void
|
||||
* @param Connection $connection Database connection.
|
||||
* @param RepositoryManager $repositoryManager Repository manager.
|
||||
*/
|
||||
public function initialize()
|
||||
public function __construct(Connection $connection, RepositoryManager $repositoryManager)
|
||||
{
|
||||
Controller::loadLanguageFile('leaflet');
|
||||
$this->connection = $connection;
|
||||
$this->repositoryManager = $repositoryManager;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -71,7 +71,8 @@ class MarkerDcaListener
|
||||
*/
|
||||
public function getIcons()
|
||||
{
|
||||
$collection = IconModel::findAll(['order' => 'title']);
|
||||
$repository = $this->repositoryManager->getRepository(IconModel::class);
|
||||
$collection = $repository->findAll(['order' => 'title']);
|
||||
$builder = OptionsBuilder::fromCollection(
|
||||
$collection,
|
||||
function ($model) {
|
||||
@@ -89,7 +90,8 @@ class MarkerDcaListener
|
||||
*/
|
||||
public function getPopups()
|
||||
{
|
||||
$collection = PopupModel::findAll(['order' => 'title']);
|
||||
$repository = $this->repositoryManager->getRepository(PopupModel::class);
|
||||
$collection = $repository->findAll(['order' => 'title']);
|
||||
$builder = OptionsBuilder::fromCollection($collection, 'title');
|
||||
|
||||
return $builder->getOptions();
|
||||
|
||||
@@ -12,9 +12,9 @@
|
||||
|
||||
namespace Netzmacht\Contao\Leaflet\Listener\Dca;
|
||||
|
||||
use Netzmacht\Contao\Leaflet\Model\IconModel;
|
||||
use Netzmacht\Contao\Leaflet\Model\PopupModel;
|
||||
use Netzmacht\Contao\Leaflet\Model\StyleModel;
|
||||
use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
|
||||
use Netzmacht\Contao\Toolkit\Dca\Listener\AbstractListener;
|
||||
use Netzmacht\Contao\Toolkit\Dca\Manager;
|
||||
use Netzmacht\Contao\Toolkit\Dca\Options\OptionsBuilder;
|
||||
@@ -40,17 +40,26 @@ class VectorDcaListener extends AbstractListener
|
||||
*/
|
||||
private $vectors;
|
||||
|
||||
/**
|
||||
* Repository manager.
|
||||
*
|
||||
* @var RepositoryManager
|
||||
*/
|
||||
private $repositoryManager;
|
||||
|
||||
/**
|
||||
* Construct.
|
||||
*
|
||||
* @param Manager $dcaManager Data container manager.
|
||||
* @param array $vectors Vectors.
|
||||
* @param Manager $dcaManager Data container manager.
|
||||
* @param RepositoryManager $repositoryManager Repository manager.
|
||||
* @param array $vectors Vectors.
|
||||
*/
|
||||
public function __construct(Manager $dcaManager, array $vectors)
|
||||
public function __construct(Manager $dcaManager, RepositoryManager $repositoryManager, array $vectors)
|
||||
{
|
||||
parent::__construct($dcaManager);
|
||||
|
||||
$this->vectors = $vectors;
|
||||
$this->vectors = $vectors;
|
||||
$this->repositoryManager = $repositoryManager;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -86,29 +95,12 @@ class VectorDcaListener extends AbstractListener
|
||||
*/
|
||||
public function getStyles()
|
||||
{
|
||||
$collection = StyleModel::findAll(['order' => 'title']);
|
||||
$repository = $this->repositoryManager->getRepository(StyleModel::class);
|
||||
$collection = $repository->findAll(['order' => 'title']);
|
||||
|
||||
return OptionsBuilder::fromCollection($collection, 'title')->getOptions();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all icons.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getIcons()
|
||||
{
|
||||
$collection = IconModel::findAll(['order' => 'title']);
|
||||
$builder = OptionsBuilder::fromCollection(
|
||||
$collection,
|
||||
function ($model) {
|
||||
return sprintf('%s [%s]', $model['title'], $model['type']);
|
||||
}
|
||||
);
|
||||
|
||||
return $builder->getOptions();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all popups.
|
||||
*
|
||||
@@ -116,7 +108,8 @@ class VectorDcaListener extends AbstractListener
|
||||
*/
|
||||
public function getPopups()
|
||||
{
|
||||
$collection = PopupModel::findAll(['order' => 'title']);
|
||||
$repository = $this->repositoryManager->getRepository(PopupModel::class);
|
||||
$collection = $repository->findAll(['order' => 'title']);
|
||||
$builder = OptionsBuilder::fromCollection($collection, 'title');
|
||||
|
||||
return $builder->getOptions();
|
||||
|
||||
Reference in New Issue
Block a user