/** * @Route("/parserRus/{type}", name="parserRus") */ public function parserRusAction($type) { set_time_limit(0); ini_set("memory_limit", "-1"); // if ($type == 1){ // $filename = '3x6/'.$filename.'.json'; // }elseif($type == 2){ // $filename = 'big/'.$filename; // } if ($type == 1) { $folder = '3x6'; } elseif ($type == 2) { $folder = 'big'; } $em = $this->getDoctrine()->getManager(); $company = $em->getRepository('AppBundle:Company')->findOneByTitle('Russoutdoor'); if ($company == null) { $company = new Company(); $company->setTitle('Russoutdoor'); $em->persist($company); $em->flush($company); $em->refresh($company); } $files = scandir($this->get('kernel')->getRootDir() . '/../web/' . $folder); unset($files[1]); unset($files[0]); foreach ($files as $f) { $filename = $this->get('kernel')->getRootDir() . '/../web/' . $folder . '/' . $f; $file = file_get_contents($filename); $array = json_decode($file, true); $i = 0; foreach ($array['billboards'] as $val) { if (isset($val['longtitude']) && isset($val['latitude']) && isset($val['address'])) { $i++; $banner = new Banner(); $city = $this->getDoctrine()->getRepository('AppBundle:City')->findOneByTitle($val['cityName']); if ($city == null) { $city = new City(); $city->setTitle($val['cityName']); $em->persist($city); $em->flush($city); $em->refresh($city); } $banner->setCity($city); $banner->setCompany($company); $banner->setAdrs($val['address']); $banner->setTitle($val['address']); $banner->setGid($val['gid']); $banner->setGrp($val['grp']); $banner->setOts($val['ots']); $banner->setPrice((isset($val['price']) ? $val['price'] : 0) * 0.82); $banner->setPrice2(isset($val['price']) ? $val['price'] : 0); $banner->setLight($val['light']); $banner->setSide($val['side']); $desc = (isset($val['top']) ? $val['top'] : '') . '<br />' . (isset($val['distance']) ? $val['distance'] : ''); $banner->setBody($desc); if ($type == 1) { $banner->setFormat('3x6'); } elseif ($type == 2) { $banner->setFormat('big'); } $banner->setLongitude($val['longtitude']); $banner->setLatitude($val['latitude']); $banner->setImg(str_replace('//', 'http://', $val['imageURL'])); $em->persist($banner); $em->flush(); } else { echo $val['address'] . '<br />'; echo '<br />'; print_r($val); echo '<br />'; echo '<br />'; } } } exit; }
public function parserGellary3Action($hot = false) { // $this->filePath = $this->filePath.'G2.XLSX'; $em = $this->em; $company = $em->getRepository('AppBundle:Company')->findOneByTitle('Gallery roller'); if ($company == null) { $company = new Company(); $company->setTitle('Gallery roller'); $em->persist($company); $em->flush($company); $em->refresh($company); } $phpExcelObject = $this->container->get('phpexcel')->createPHPExcelObject($this->filePath); $num = 2; while (true) { if ($phpExcelObject->setActiveSheetIndex(0)->getCell('B' . $num)->getValue() == '') { break; } $banner = new Banner(); $banner->setCompany($company); $banner->setAdrs($phpExcelObject->setActiveSheetIndex(0)->getCell('E' . $num)->getValue()); $banner->setTitle($phpExcelObject->setActiveSheetIndex(0)->getCell('E' . $num)->getValue()); $banner->setBody($phpExcelObject->setActiveSheetIndex(0)->getCell('E' . $num)->getValue()); $banner->setSide($this->getSide($phpExcelObject->setActiveSheetIndex(0)->getCell('D' . $num)->getValue())); $city = $this->em->getRepository('AppBundle:City')->findOneByTitle($phpExcelObject->setActiveSheetIndex(0)->getCell('A' . $num)->getValue()); if ($city == null) { $city = new City(); $city->setTitle($phpExcelObject->setActiveSheetIndex(0)->getCell('A' . $num)->getValue()); $em->persist($city); $em->flush($city); $em->refresh($city); } $banner->setCity($city); $banner->setGid($phpExcelObject->setActiveSheetIndex(0)->getCell('N' . $num)->getValue()); $banner->setGrp(str_replace(',', '.', $phpExcelObject->setActiveSheetIndex(0)->getCell('L' . $num)->getValue())); $banner->setOts(str_replace(',', '.', $phpExcelObject->setActiveSheetIndex(0)->getCell('M' . $num)->getValue())); $banner->setPrice(str_replace(array(',', ''), array('.', ''), $phpExcelObject->setActiveSheetIndex(0)->getCell('J' . $num)->getValue())); $banner->setPrice2(str_replace(array(',', ''), array('.', ''), $phpExcelObject->setActiveSheetIndex(0)->getCell('I' . $num)->getValue())); $banner->setPriceDeploy(0); $banner->setTaxType('НДС (18%)'); $banner->setFormat('small'); $banner->setType($phpExcelObject->setActiveSheetIndex(0)->getCell('B' . $num)->getValue()); $banner->setArea($phpExcelObject->setActiveSheetIndex(0)->getCell('W' . $num)->getValue()); $banner->setLight($phpExcelObject->setActiveSheetIndex(0)->getCell('C' . $num)->getValue() == 'Да' || $phpExcelObject->setActiveSheetIndex(0)->getCell('C' . $num)->getValue() == 'да' ? 1 : 0); $banner->setImg($this->getImage($phpExcelObject->setActiveSheetIndex(0)->getCell('G' . $num)->getHyperlink()->getUrl())); $banner->setLink($phpExcelObject->setActiveSheetIndex(0)->getCell('G' . $num)->getHyperlink()->getUrl()); if ($hot) { $banner->setHot(true); } else { $banner->setHot(false); } $url = 'http://geocode-maps.yandex.ru/1.x/?geocode=' . urlencode($phpExcelObject->setActiveSheetIndex(0)->getCell('E' . $num)->getValue()); $content = file_get_contents($url); $XmlObj = simplexml_load_string($content); if (isset($XmlObj->GeoObjectCollection->featureMember->GeoObject->Point->pos)) { $pos['x'] = explode(' ', $XmlObj->GeoObjectCollection->featureMember->GeoObject->Point->pos)[1]; $pos['y'] = explode(' ', $XmlObj->GeoObjectCollection->featureMember->GeoObject->Point->pos)[0]; } else { $pos['x'] = 0; $pos['y'] = 0; } $banner->setLongitude($pos['y']); $banner->setLatitude($pos['x']); $banner = $this->setBanner($banner); $month = array('2015-06-01' => $this->getStatus($phpExcelObject->setActiveSheetIndex(0)->getStyle('O' . $num)->getFill()->getStartColor()->getRGB()), '2015-07-01' => $this->getStatus($phpExcelObject->setActiveSheetIndex(0)->getStyle('P' . $num)->getFill()->getStartColor()->getRGB()), '2015-08-01' => $this->getStatus($phpExcelObject->setActiveSheetIndex(0)->getStyle('Q' . $num)->getFill()->getStartColor()->getRGB()), '2015-09-01' => $this->getStatus($phpExcelObject->setActiveSheetIndex(0)->getStyle('R' . $num)->getFill()->getStartColor()->getRGB()), '2015-10-01' => $this->getStatus($phpExcelObject->setActiveSheetIndex(0)->getStyle('S' . $num)->getFill()->getStartColor()->getRGB()), '2015-11-01' => $this->getStatus($phpExcelObject->setActiveSheetIndex(0)->getStyle('T' . $num)->getFill()->getStartColor()->getRGB()), '2015-12-01' => $this->getStatus($phpExcelObject->setActiveSheetIndex(0)->getStyle('U' . $num)->getFill()->getStartColor()->getRGB())); $this->refreshStatus($banner, $month, array('date' => '2015-06-01', 'sale' => $hot)); $num++; if ($num % 50 == 0) { sleep(rand(1, 5)); } } return true; }
public function editAction(Request $request) { $user = $this->getUser(); if (!is_object($user) || !$user instanceof UserInterface) { throw new AccessDeniedException('This user does not have access to this section.'); } /** @var $dispatcher \Symfony\Component\EventDispatcher\EventDispatcherInterface */ $dispatcher = $this->get('event_dispatcher'); $event = new GetResponseUserEvent($user, $request); $dispatcher->dispatch(FOSUserEvents::PROFILE_EDIT_INITIALIZE, $event); if (null !== $event->getResponse()) { return $event->getResponse(); } /** @var $formFactory \FOS\UserBundle\Form\Factory\FactoryInterface */ $formFactory = $this->get('fos_user.profile.form.factory'); $form = $formFactory->createForm(); $form->setData($user); $form->handleRequest($request); // if ( $request->getMethod('POST') ){ // dump($form); // exit; // } if ($request->getMethod() == 'POST') { $em = $this->getDoctrine()->getManager(); //city $cityTitle = $user->getCity(); $city = $this->getDoctrine()->getRepository('AppBundle:City')->findOneByTitle($cityTitle); if ($city === null) { $city = new City(); $city->setTitle($cityTitle); $city->setCountry($user->getCountry()); $em->persist($city); $em->flush($city); $em->refresh($city); } $user->setCity($city); //university $universityTitle = $user->getUniversity(); $university = $this->getDoctrine()->getRepository('AppBundle:University')->findOneByTitle($cityTitle); if ($university === null) { $university = new University(); $university->setTitle($universityTitle); $university->setCountry($user->getCountry()); $em->persist($university); $em->flush($university); $em->refresh($university); } $user->setUniversity($university); $user->setCertificate([]); /** @var $userManager \FOS\UserBundle\Model\UserManagerInterface */ $userManager = $this->get('fos_user.user_manager'); $event = new FormEvent($form, $request); $dispatcher->dispatch(FOSUserEvents::PROFILE_EDIT_SUCCESS, $event); $userManager->updateUser($user); if (null === ($response = $event->getResponse())) { $url = $this->generateUrl('fos_user_profile_show'); $response = new RedirectResponse($url); } $dispatcher->dispatch(FOSUserEvents::PROFILE_EDIT_COMPLETED, new FilterUserResponseEvent($user, $request, $response)); return $response; } return $this->render('FOSUserBundle:Profile:edit.html.twig', array('form' => $form->createView())); }