Esempio n. 1
0
 /**
  * @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;
 }