39 lines
1.9 KiB
PHP
Executable File
39 lines
1.9 KiB
PHP
Executable File
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace A2G\A2gMaps\Hooks;
|
|
|
|
use TYPO3\CMS\Core\DataHandling\DataHandler;
|
|
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
|
use A2G\A2gMaps\Utility\MapConfigUtility;
|
|
|
|
class MapEntryDataHandlerHooks {
|
|
|
|
/**
|
|
* @param string|int $id
|
|
*/
|
|
public function processDatamap_postProcessFieldArray(
|
|
string $status, // Status of the current operation, 'new' or 'update'
|
|
string $table, // The table currently processing data for
|
|
$id, // The record uid currently processing data for,
|
|
// [integer] or [string] (like 'NEW...')
|
|
array &$fieldArray, // The field array of a record, cleaned to only
|
|
// 'to-be-changed' values. Needs to be &$fieldArray to be considered reference.
|
|
DataHandler $dataHandler
|
|
): void
|
|
{
|
|
if ($table === 'tx_a2gmaps_domain_model_mapentry') {
|
|
if( ( $fieldArray['latitude'] === 0.0 || $fieldArray['longitude'] === 0.0 ) || $fieldArray['nav_to_url'] === ''){
|
|
if($fieldArray['nav_to_url'] === '' && ($fieldArray['latitude'] != 0.0 || $fieldArray['longitude'] != 0.0 )){
|
|
|
|
} else if($fieldArray['city'] !== '' && $fieldArray['zip'] !== '' && $fieldArray['addressline'] !== ''){
|
|
$latLon = MapConfigUtility::getLatLonFrom($fieldArray['addressline'], $fieldArray['zip'] === '' ? $fieldArray['city'] : $fieldArray['zip'].' '.$fieldArray['city']);
|
|
$fieldArray['latitude'] = (float)$latLon['lat'];
|
|
$fieldArray['longitude'] = (float)$latLon['lon'];
|
|
$fieldArray['nav_to_url'] = MapConfigUtility::getNavToLink($fieldArray['addressline'], $fieldArray['zip'] === '' ? $fieldArray['city'] : $fieldArray['zip'].' '.$fieldArray['city']);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |