forked from Snck3rs/contao-leaflet-maps
Rework leaflet dca callbacks to a listener service.
This commit is contained in:
@@ -10,46 +10,44 @@
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
namespace Netzmacht\Contao\Leaflet\Dca;
|
||||
namespace Netzmacht\Contao\Leaflet\Listener\Dca;
|
||||
|
||||
use Contao\DataContainer;
|
||||
use Netzmacht\Contao\Leaflet\Model\LayerModel;
|
||||
use Netzmacht\Contao\Toolkit\Dca\Callback\CallbackFactory;
|
||||
use Netzmacht\LeafletPHP\Value\LatLng;
|
||||
use Symfony\Component\Filesystem\Filesystem;
|
||||
|
||||
/**
|
||||
* Class Leaflet is the base helper providing different methods.
|
||||
*
|
||||
* @package Netzmacht\Contao\Leaflet\Dca
|
||||
*/
|
||||
class LeafletCallbacks
|
||||
class LeafletDcaListener
|
||||
{
|
||||
/**
|
||||
* File system.
|
||||
*
|
||||
* @var \Files
|
||||
* @var Filesystem
|
||||
*/
|
||||
private $fileSystem;
|
||||
|
||||
/**
|
||||
* LeafletCallbacks constructor.
|
||||
* Cache dir.
|
||||
*
|
||||
* @param \Files $fileSystem File system.
|
||||
* @var string
|
||||
*/
|
||||
public function __construct(\Files $fileSystem)
|
||||
{
|
||||
$this->fileSystem = $fileSystem;
|
||||
}
|
||||
private $cacheDir;
|
||||
|
||||
/**
|
||||
* Generate the callback definition.
|
||||
* LeafletCallbacks constructor.
|
||||
*
|
||||
* @param string $methodName Callback method name.
|
||||
*
|
||||
* @return callable
|
||||
* @param Filesystem $fileSystem File system.
|
||||
* @param string $cacheDir Cache dir.
|
||||
*/
|
||||
public static function callback($methodName)
|
||||
public function __construct(Filesystem $fileSystem, string $cacheDir)
|
||||
{
|
||||
return CallbackFactory::service('leaflet.dca.common', $methodName);
|
||||
$this->fileSystem = $fileSystem;
|
||||
$this->cacheDir = $cacheDir;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -65,7 +63,7 @@ class LeafletCallbacks
|
||||
/**
|
||||
* Get the geocoder wizard.
|
||||
*
|
||||
* @param \DataContainer $dataContainer The dataContainer driver.
|
||||
* @param DataContainer $dataContainer The dataContainer driver.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
@@ -78,10 +76,9 @@ class LeafletCallbacks
|
||||
$latLng = LatLng::fromString($dataContainer->value);
|
||||
$template->marker = json_encode($latLng);
|
||||
} catch (\Exception $e) {
|
||||
// LatLng throws an exeption 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.
|
||||
}
|
||||
|
||||
|
||||
return $template->parse();
|
||||
}
|
||||
|
||||
@@ -113,7 +110,7 @@ class LeafletCallbacks
|
||||
*/
|
||||
public function clearCache($value = null)
|
||||
{
|
||||
$this->fileSystem->rrdir('system/cache/leaflet', true);
|
||||
$this->fileSystem->remove($this->cacheDir);
|
||||
|
||||
return $value;
|
||||
}
|
||||
@@ -1,4 +1,10 @@
|
||||
services:
|
||||
netzmacht.contao_leaflet_maps.listeners.dca.leaflet:
|
||||
class: Netzmacht\Contao\Leaflet\Listener\Dca\LeafletDcaListener
|
||||
arguments:
|
||||
- '@filesystem'
|
||||
- '%netzmacht.contao_leaflet_maps.cache_dir%'
|
||||
|
||||
netzmacht.contao_leaflet_maps.listeners.dca.map:
|
||||
class: Netzmacht\Contao\Leaflet\Listener\Dca\MapDcaListener
|
||||
arguments:
|
||||
|
||||
@@ -27,7 +27,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_control'] = array
|
||||
)
|
||||
),
|
||||
'onsubmit_callback' => [
|
||||
\Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('clearCache'),
|
||||
['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'clearCache'],
|
||||
],
|
||||
),
|
||||
|
||||
@@ -227,7 +227,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_control'] = array
|
||||
'eval' => array('tl_class' => 'w50'),
|
||||
'sql' => "char(1) NOT NULL default ''",
|
||||
'save_callback' => [
|
||||
\Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('clearCache'),
|
||||
['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'clearCache'],
|
||||
],
|
||||
),
|
||||
'zoomInText' => array
|
||||
|
||||
@@ -24,7 +24,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_icon'] = array
|
||||
)
|
||||
),
|
||||
'onsubmit_callback' => [
|
||||
\Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('clearCache'),
|
||||
['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'clearCache'],
|
||||
],
|
||||
),
|
||||
|
||||
@@ -228,7 +228,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_icon'] = array
|
||||
'eval' => array('tl_class' => 'w50'),
|
||||
'sql' => "char(1) NOT NULL default ''",
|
||||
'save_callback' => [
|
||||
\Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('clearCache'),
|
||||
['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'clearCache'],
|
||||
],
|
||||
),
|
||||
'iconImage' => array
|
||||
|
||||
@@ -31,7 +31,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_layer'] = [
|
||||
},
|
||||
],
|
||||
'onsubmit_callback' => [
|
||||
\Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('clearCache'),
|
||||
['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'clearCache'],
|
||||
],
|
||||
],
|
||||
'list' => [
|
||||
@@ -294,7 +294,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_layer'] = [
|
||||
'eval' => ['tl_class' => 'w50'],
|
||||
'sql' => "char(1) NOT NULL default ''",
|
||||
'save_callback' => [
|
||||
\Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('clearCache'),
|
||||
['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'clearCache'],
|
||||
],
|
||||
],
|
||||
'tile_provider' => [
|
||||
@@ -452,7 +452,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_layer'] = [
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_leaflet_layer']['disableClusteringAtZoom'],
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'options_callback' => Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('getZoomLevels'),
|
||||
'options_callback' => ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'getZoomLevels'],
|
||||
'default' => '',
|
||||
'eval' => [
|
||||
'maxlength' => 4,
|
||||
@@ -541,7 +541,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_layer'] = [
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_leaflet_layer']['minZoom'],
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'options_callback' => Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('getZoomLevels'),
|
||||
'options_callback' => ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'getZoomLevels'],
|
||||
'eval' => [
|
||||
'maxlength' => 4,
|
||||
'rgxp' => 'digit',
|
||||
@@ -555,7 +555,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_layer'] = [
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_leaflet_layer']['maxZoom'],
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'options_callback' => Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('getZoomLevels'),
|
||||
'options_callback' => ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'getZoomLevels'],
|
||||
'eval' => [
|
||||
'maxlength' => 4,
|
||||
'rgxp' => 'digit',
|
||||
@@ -569,7 +569,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_layer'] = [
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_leaflet_layer']['maxNativeZoom'],
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'options_callback' => Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('getZoomLevels'),
|
||||
'options_callback' => ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'getZoomLevels'],
|
||||
'eval' => [
|
||||
'maxlength' => 4,
|
||||
'rgxp' => 'digit',
|
||||
|
||||
@@ -30,7 +30,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_map'] = array
|
||||
}
|
||||
),
|
||||
'onsubmit_callback' => [
|
||||
\Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('clearCache'),
|
||||
['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'clearCache'],
|
||||
],
|
||||
),
|
||||
|
||||
@@ -194,7 +194,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_map'] = array
|
||||
\Netzmacht\Contao\Leaflet\Dca\Validator::callback('validateCoordinates'),
|
||||
),
|
||||
'wizard' => array(
|
||||
Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('getGeocoder')
|
||||
['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'getGeocoder']
|
||||
),
|
||||
'eval' => array(
|
||||
'maxlength' => 255,
|
||||
@@ -243,7 +243,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_map'] = array
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_leaflet_map']['zoom'],
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'options_callback' => Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('getZoomLevels'),
|
||||
'options_callback' => ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'getZoomLevels'],
|
||||
'default' => '',
|
||||
'eval' => array(
|
||||
'maxlength' => 4,
|
||||
@@ -268,7 +268,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_map'] = array
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_leaflet_map']['minZoom'],
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'options_callback' => Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('getZoomLevels'),
|
||||
'options_callback' => ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'getZoomLevels'],
|
||||
'eval' => array(
|
||||
'maxlength' => 4,
|
||||
'rgxp' => 'digit',
|
||||
@@ -283,7 +283,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_map'] = array
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_leaflet_map']['maxZoom'],
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'options_callback' => Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('getZoomLevels'),
|
||||
'options_callback' => ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'getZoomLevels'],
|
||||
'eval' => array(
|
||||
'maxlength' => 4,
|
||||
'rgxp' => 'digit',
|
||||
@@ -555,7 +555,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_map'] = array
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_leaflet_map']['locateMaxZoom'],
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'options_callback' => Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('getZoomLevels'),
|
||||
'options_callback' => ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'getZoomLevels'],
|
||||
'eval' => array(
|
||||
'maxlength' => 4,
|
||||
'rgxp' => 'digit',
|
||||
|
||||
@@ -29,7 +29,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_marker'] = array
|
||||
['netzmacht.contao_leaflet_maps.listeners.dca.marker', 'initialize'],
|
||||
),
|
||||
'onsubmit_callback' => [
|
||||
\Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('clearCache'),
|
||||
['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'clearCache'],
|
||||
],
|
||||
),
|
||||
|
||||
@@ -199,7 +199,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_marker'] = array
|
||||
array('netzmacht.contao_leaflet_maps.listeners.dca.marker', 'loadCoordinates')
|
||||
),
|
||||
'wizard' => array(
|
||||
Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('getGeocoder')
|
||||
['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'getGeocoder']
|
||||
),
|
||||
'eval' => array(
|
||||
'maxlength' => 255,
|
||||
@@ -243,7 +243,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_marker'] = array
|
||||
'eval' => array('tl_class' => 'w50'),
|
||||
'sql' => "char(1) NOT NULL default ''",
|
||||
'save_callback' => [
|
||||
\Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('clearCache'),
|
||||
['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'clearCache'],
|
||||
],
|
||||
),
|
||||
'tooltip' => array
|
||||
|
||||
@@ -24,7 +24,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_popup'] = array
|
||||
)
|
||||
),
|
||||
'onsubmit_callback' => [
|
||||
\Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('clearCache'),
|
||||
['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'clearCache'],
|
||||
],
|
||||
),
|
||||
|
||||
@@ -297,7 +297,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_popup'] = array
|
||||
'eval' => array('tl_class' => 'w50'),
|
||||
'sql' => "char(1) NOT NULL default ''",
|
||||
'save_callback' => [
|
||||
\Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('clearCache'),
|
||||
['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'clearCache'],
|
||||
],
|
||||
),
|
||||
),
|
||||
|
||||
@@ -24,7 +24,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_style'] = array
|
||||
)
|
||||
),
|
||||
'onsubmit_callback' => [
|
||||
\Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('clearCache'),
|
||||
['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'clearCache'],
|
||||
],
|
||||
),
|
||||
|
||||
@@ -305,7 +305,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_style'] = array
|
||||
'eval' => array('tl_class' => 'w50'),
|
||||
'sql' => "char(1) NOT NULL default ''",
|
||||
'save_callback' => [
|
||||
\Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('clearCache'),
|
||||
['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'clearCache'],
|
||||
],
|
||||
),
|
||||
),
|
||||
|
||||
@@ -31,7 +31,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_vector'] = array
|
||||
}
|
||||
),
|
||||
'onsubmit_callback' => [
|
||||
\Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('clearCache'),
|
||||
['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'clearCache'],
|
||||
],
|
||||
),
|
||||
|
||||
@@ -247,7 +247,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_vector'] = array
|
||||
'eval' => array('tl_class' => 'w50'),
|
||||
'sql' => "char(1) NOT NULL default ''",
|
||||
'save_callback' => [
|
||||
\Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('clearCache'),
|
||||
['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'clearCache'],
|
||||
],
|
||||
),
|
||||
'addPopup' => array
|
||||
@@ -322,7 +322,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_vector'] = array
|
||||
\Netzmacht\Contao\Leaflet\Dca\Validator::callback('validateCoordinates')
|
||||
),
|
||||
'wizard' => array(
|
||||
Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('getGeocoder')
|
||||
['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'getGeocoder']
|
||||
),
|
||||
'eval' => array(
|
||||
'maxlength' => 255,
|
||||
|
||||
Reference in New Issue
Block a user