<?php declare(strict_types=1); namespace A2G\A2gTravelBlog\Evaluation; /** * This file is part of the "tt_address" Extension for TYPO3 CMS. * * For the full copyright and license information, please read the * LICENSE.txt file that was distributed with this source code. */ use A2G\A2gTravelBlog\Utility\EvalcoordinatesUtility; /** * Class for validation/evaluation of Longitude to be used in 'eval' of TCA * removes everything except numbers and digit-sign (dot). Fills coordinates up with zeros if too short */ class LongitudeEvaluation { /** * JavaScript code for client side validation/evaluation * * @return string JavaScript code for client side validation/evaluation */ public function returnFieldJS() { // Nice to have: add javascript-code for evaluation on blur return ' return value; '; } /** * Server-side validation/evaluation on saving the record * Tests if latitude is between -90 and +90, fills up with zeros to mach decimal (14,12) in database * * @param string $value The field value to be evaluated * @return string Evaluated field value */ public function evaluateFieldValue($value) { // test if we have any longitude if ($value && $value !== '') { return EvalcoordinatesUtility::formatLongitude($value); } return null; } /** * Server-side validation/evaluation on opening the record * * @param array $parameters Array with key 'value' containing the field value from the database * @return string Evaluated field value */ public function deevaluateFieldValue(array $parameters) { // test if we have any longitude if ($parameters['value'] && $parameters['value'] != '') { $parameters['value'] = EvalcoordinatesUtility::formatLongitude($parameters['value']); } return $parameters['value']; } }