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;