From d7d76913b1a2b4c2bea9cfd5c0cb1ec0b5b75e2a Mon Sep 17 00:00:00 2001 From: David Molineus Date: Thu, 6 Oct 2016 09:52:07 +0200 Subject: [PATCH] Validate vector coordinates. --- module/dca/tl_leaflet_vector.php | 6 ++++++ .../Contao/Leaflet/Dca/Validator.php | 19 ++++++++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/module/dca/tl_leaflet_vector.php b/module/dca/tl_leaflet_vector.php index 59b766f..d301d02 100644 --- a/module/dca/tl_leaflet_vector.php +++ b/module/dca/tl_leaflet_vector.php @@ -339,6 +339,9 @@ $GLOBALS['TL_DCA']['tl_leaflet_vector'] = array 'inputType' => 'textarea', 'search' => false, 'eval' => array('mandatory' => true, 'alwaysSave' => true), + 'save_callback' => array( + \Netzmacht\Contao\Leaflet\Dca\Validator::callback('validateMultipleCoordinates') + ), 'sql' => "longblob NULL" ), 'multiData' => array @@ -361,6 +364,9 @@ $GLOBALS['TL_DCA']['tl_leaflet_vector'] = array ) ) ), + 'save_callback' => array( + \Netzmacht\Contao\Leaflet\Dca\Validator::callback('validateMultipleCoordinateSets') + ), 'sql' => "longblob NULL" ), 'bounds' => array diff --git a/src/Netzmacht/Contao/Leaflet/Dca/Validator.php b/src/Netzmacht/Contao/Leaflet/Dca/Validator.php index b4d4bd9..6bcac9f 100644 --- a/src/Netzmacht/Contao/Leaflet/Dca/Validator.php +++ b/src/Netzmacht/Contao/Leaflet/Dca/Validator.php @@ -88,7 +88,24 @@ class Validator } foreach ($lines as $coordinate) { - LatLng::fromString($coordinate); + $this->validateCoordinates($coordinate); + } + + return $values; + } + + /** + * Validate multiple coordinate sets. + * + * @param mixed $values Given value. + * + * @return mixed + */ + public function validateMultipleCoordinateSets($values) + { + $sets = deserialize($values, true); + foreach ($sets as $lines) { + $this->validateMultipleCoordinates($lines); } return $values;