/** * @param ObjectManager $objectManager */ public function load(ObjectManager $objectManager) { $csvIterator = new CsvIterator($this->container->getParameter('sulu_event.csv_import_file')); \Locale::setDefault('de'); $countries = Intl::getRegionBundle()->getCountryNames(); $geocoder = new GoogleMaps(new GuzzleHttpAdapter(), true, $this->container->getParameter('sulu_event.google_maps_api_key')); $output = $this->getConsoleOutput(); foreach ($csvIterator as $row => $data) { if (empty($data)) { break; } if ($row == 1) { continue; } // sleep 1 second to prevent Google Geocode API from going OVER_QUERY_LIMIT sleep(1); $event = new Event(); $event->setTitle(trim($data[0]) === '' ? 'Nicht definierter Event-Titel' : $data[0]); $event->setStartDate(new \DateTime($data[1])); if (!empty($data[2])) { $event->setStartTime(new \DateTime($data[2])); } $event->setDescription('<p>' . $data[3] . '</p>'); $event->setDescriptionVenue('<p>' . $data[4] . '</p>'); $event->setZip($data[5]); $event->setCity($data[6]); $countryAlpha2 = array_keys($countries, $data[7]); $event->setCountry(isset($countryAlpha2[0]) ? $countryAlpha2[0] : 'DE'); $organizer = new EventOrganizer(); $organizer->setTitle($data[10]); $organizer->setFirstName($data[11]); $organizer->setLastName($data[12]); $organizer->setStreet($data[13]); $organizer->setZip($data[14]); $organizer->setCity($data[15]); $organizer->setPhone($data[16]); $organizer->setFax($data[17]); $organizer->setEmail($data[18]); $event->setOrganizer($organizer); $result = $geocoder->geocode($data[4] . '+' . $data[5]); if (isset($result->results[0])) { $event->setLatitude($result->results[0]->geometry->location->lat); $event->setLongitude($result->results[0]->geometry->location->lng); } else { $error = 'No geocoding data at event ' . $data[0] . '(row ' . $row . ') with status' . $result->status; $output->writeln($error); $event->setLatitude(0); $event->setLongitude(0); } $event->setWebsite($data[19]); $objectManager->persist($event); } $objectManager->flush(); }
private function initOrm() { $this->purgeDatabase(); $event = new Event(); $event->setTitle('test'); }
/** * @param Event $event * @param $mediaData * @param $locale * @return bool * @throws EventDependencyNotFoundException * @throws \Sulu\Bundle\MediaBundle\Media\Exception\MediaNotFoundException */ protected function addMedia(Event $event, $mediaData, $locale) { $media = $this->mediaManager->getById($mediaData, $locale); if (!$media) { throw new EventDependencyNotFoundException(MediaManager::ENTITY_NAME_MEDIA, $mediaData); } $media = $media->getEntity(); $event->addMedia($media); $this->entityManager->persist($media); return true; }