diff --git a/src/Bundle/Resources/config/listeners.yml b/src/Bundle/Resources/config/listeners.yml
index 1d1a24e..e8b98fa 100644
--- a/src/Bundle/Resources/config/listeners.yml
+++ b/src/Bundle/Resources/config/listeners.yml
@@ -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:
diff --git a/src/Bundle/Resources/contao/dca/tl_leaflet_marker.php b/src/Bundle/Resources/contao/dca/tl_leaflet_marker.php
index 6524efa..0b24991 100644
--- a/src/Bundle/Resources/contao/dca/tl_leaflet_marker.php
+++ b/src/Bundle/Resources/contao/dca/tl_leaflet_marker.php
@@ -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'],
diff --git a/src/Listener/Dca/ControlDcaListener.php b/src/Listener/Dca/ControlDcaListener.php
index b490b8f..af820d5 100644
--- a/src/Listener/Dca/ControlDcaListener.php
+++ b/src/Listener/Dca/ControlDcaListener.php
@@ -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();
}
diff --git a/src/Listener/Dca/FrontendIntegrationListener.php b/src/Listener/Dca/FrontendIntegrationListener.php
index b47bc47..8a4f4c9 100644
--- a/src/Listener/Dca/FrontendIntegrationListener.php
+++ b/src/Listener/Dca/FrontendIntegrationListener.php
@@ -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
'%s',
'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"'
diff --git a/src/Listener/Dca/LayerDcaListener.php b/src/Listener/Dca/LayerDcaListener.php
index 1085496..b0a8fde 100644
--- a/src/Listener/Dca/LayerDcaListener.php
+++ b/src/Listener/Dca/LayerDcaListener.php
@@ -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(
'%s ',
$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(
'%s ',
$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) {
diff --git a/src/Listener/Dca/LeafletDcaListener.php b/src/Listener/Dca/LeafletDcaListener.php
index 704538d..a8737ee 100644
--- a/src/Listener/Dca/LeafletDcaListener.php
+++ b/src/Listener/Dca/LeafletDcaListener.php
@@ -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) {
diff --git a/src/Listener/Dca/MapDcaListener.php b/src/Listener/Dca/MapDcaListener.php
index e6fa765..2a4077e 100644
--- a/src/Listener/Dca/MapDcaListener.php
+++ b/src/Listener/Dca/MapDcaListener.php
@@ -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()
diff --git a/src/Listener/Dca/MarkerDcaListener.php b/src/Listener/Dca/MarkerDcaListener.php
index 0ecb3f3..916f7fa 100644
--- a/src/Listener/Dca/MarkerDcaListener.php
+++ b/src/Listener/Dca/MarkerDcaListener.php
@@ -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();
diff --git a/src/Listener/Dca/VectorDcaListener.php b/src/Listener/Dca/VectorDcaListener.php
index d9a99bd..34f234d 100644
--- a/src/Listener/Dca/VectorDcaListener.php
+++ b/src/Listener/Dca/VectorDcaListener.php
@@ -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();