From caa137e56695c05d6e274a01ef7c397e814dddf2 Mon Sep 17 00:00:00 2001 From: David Molineus Date: Thu, 6 Oct 2016 11:44:56 +0200 Subject: [PATCH] Format vector type. --- module/config/services.php | 12 ++++++++++ module/dca/tl_leaflet_vector.php | 4 ++-- .../Contao/Leaflet/Dca/VectorCallbacks.php | 24 +++++++++++++++++-- 3 files changed, 36 insertions(+), 4 deletions(-) diff --git a/module/config/services.php b/module/config/services.php index 638189e..6f94f18 100644 --- a/module/config/services.php +++ b/module/config/services.php @@ -18,6 +18,7 @@ use Netzmacht\Contao\Leaflet\Dca\FrontendIntegration; use Netzmacht\Contao\Leaflet\Dca\LayerCallbacks; use Netzmacht\Contao\Leaflet\Dca\MapCallbacks; use Netzmacht\Contao\Leaflet\Dca\Validator; +use Netzmacht\Contao\Leaflet\Dca\VectorCallbacks; use Netzmacht\Contao\Leaflet\DependencyInjection\LeafletServices; use Netzmacht\Contao\Leaflet\Frontend\MapElement; use Netzmacht\Contao\Leaflet\Frontend\MapModule; @@ -214,6 +215,17 @@ $container['leaflet.dca.control-callbacks'] = $container->share( } ); +/** + * Callback helper class for tl_leaflet_control. + * + * @return ControlCallbacks + */ +$container['leaflet.dca.vector-callbacks'] = $container->share( + function ($container) { + return new VectorCallbacks($container[Services::DCA_MANAGER]); + } +); + /** * Callback helper class for frontend integration. * diff --git a/module/dca/tl_leaflet_vector.php b/module/dca/tl_leaflet_vector.php index d301d02..526921a 100644 --- a/module/dca/tl_leaflet_vector.php +++ b/module/dca/tl_leaflet_vector.php @@ -40,7 +40,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_vector'] = array 'flag' => 1, 'panelLayout' => 'sort,filter;search,limit', 'headerFields' => array('title', 'type'), - 'child_record_callback' => array('Netzmacht\Contao\Leaflet\Dca\VectorCallbacks', 'generateRow'), + 'child_record_callback' => Netzmacht\Contao\Leaflet\Dca\VectorCallbacks::callback('generateRow'), ), 'label' => array ( @@ -279,7 +279,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_vector'] = array 'label' => &$GLOBALS['TL_LANG']['tl_leaflet_vector']['style'], 'exclude' => true, 'inputType' => 'select', - 'options_callback' => array('Netzmacht\Contao\Leaflet\Dca\VectorCallbacks', 'getStyles'), + 'options_callback' => Netzmacht\Contao\Leaflet\Dca\VectorCallbacks::callback('getStyles'), 'eval' => array( 'mandatory' => false, 'tl_class' => 'w50', diff --git a/src/Netzmacht/Contao/Leaflet/Dca/VectorCallbacks.php b/src/Netzmacht/Contao/Leaflet/Dca/VectorCallbacks.php index d128cff..8dd7c8a 100644 --- a/src/Netzmacht/Contao/Leaflet/Dca/VectorCallbacks.php +++ b/src/Netzmacht/Contao/Leaflet/Dca/VectorCallbacks.php @@ -11,6 +11,7 @@ namespace Netzmacht\Contao\Leaflet\Dca; +use Netzmacht\Contao\Toolkit\Dca\Callback\Callbacks; use Netzmacht\Contao\Toolkit\Dca\Options\OptionsBuilder; use Netzmacht\Contao\Leaflet\Model\StyleModel; @@ -19,8 +20,22 @@ use Netzmacht\Contao\Leaflet\Model\StyleModel; * * @package Netzmacht\Contao\Leaflet\Dca */ -class VectorCallbacks +class VectorCallbacks extends Callbacks { + /** + * Name of the data container. + * + * @var string + */ + protected static $name = 'tl_leaflet_vector'; + + /** + * Helper service name. + * + * @var string + */ + protected static $serviceName = 'leaflet.dca.vector-callbacks'; + /** * Generate the row label. * @@ -30,7 +45,12 @@ class VectorCallbacks */ public function generateRow($row) { - return sprintf('%s [%s]', $row['title'], $row['type']); + return sprintf( + '%s %s (%s)', + $row['title'], + $row['alias'], + $this->getFormatter()->formatValue('type', $row['type']) + ); } /**