64 lines
1.9 KiB
PHP
64 lines
1.9 KiB
PHP
|
<?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'];
|
||
|
}
|
||
|
}
|