/** * @return bool */ public function execute() { $zeroResults = array(); $objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager'); $this->persistenceManager = $objectManager->get('TYPO3\\CMS\\Extbase\\Persistence\\Generic\\PersistenceManager'); $this->storeRepository = $objectManager->get('Aijko\\StoreLocator\\Domain\\Repository\\StoreRepository'); $extensionConfiguration = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['store_locator']); $stores = $this->storeRepository->findAllStoresWithoutLatLong($this->storagePid); foreach ($stores as $store) { try { $data = \Aijko\StoreLocator\Utility\GoogleUtility::getLatLongFromAddress($store->getAddress(), $extensionConfiguration['googleApiKey']); if (isset($data['ZERO_RESULTS'])) { $zeroResults[] = $data['ZERO_RESULTS']; $store->setHidden(TRUE); } else { $store->setLatitude($data['latitude']); $store->setLongitude($data['longitude']); } $this->storeRepository->update($store); sleep(2); // Usage limits exceeded - https://developers.google.com/maps/documentation/business/articles/usage_limits } catch (\Aijko\StoreLocator\Task\Store\GoogleException $e) { $this->addMessage($e->getMessage(), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR); return FALSE; } } $this->addMessage('Bei folgenden Adressen wurde der Datensatz deaktiviert da keine Lat/Long dazu vorhanden sind:<br> - ' . implode('<br> - ', $zeroResults), \TYPO3\CMS\Core\Messaging\FlashMessage::INFO); $this->persistenceManager->persistAll(); return TRUE; }