예제 #1
0
 public function location()
 {
     $hideWhereAmI = true;
     $location = new Location();
     $location->load();
     if (!empty($_GET)) {
         $location = new Location();
         if (!empty($_GET['lat']) and !empty($_GET['lng'])) {
             $location->getPoint()->setLat($_GET['lat']);
             $location->getPoint()->setLng($_GET['lng']);
             $location->save();
         } elseif (!empty($_GET['cep'])) {
             $address = new Address();
             $address->setZipcode($_GET['cep']);
             $geocode = $this->api->geocode($address);
             if (!empty($geocode)) {
                 $location->getPoint()->setLat($geocode->getLat());
                 $location->getPoint()->setLng($geocode->getLng());
                 $revgeocode = $this->api->revgeocode($geocode->getLat(), $geocode->getLng());
                 $location->setAddress($revgeocode);
                 $location->save();
             } else {
                 $this->redirect("profile/location");
             }
         } elseif (!empty($_GET['cityState'])) {
             if (!strstr($_GET['cityState'], ',')) {
                 $this->redirect("profile/location");
             }
             $cityStateToUpper = strtoupper($_GET['cityState']);
             list($cityField, $stateField) = \explode(',', $cityStateToUpper);
             $city = new City();
             $city->setName(trim($cityField));
             $city->setState(trim($stateField));
             $address = new Address();
             $address->setCity(new City($city));
             $geocode = $this->api->geocode($address);
             if (!empty($geocode)) {
                 $location->getPoint()->setLat($geocode->getLat());
                 $location->getPoint()->setLng($geocode->getLng());
                 $location->getAddress()->setCity($city);
                 $location->save();
             } else {
                 $this->redirect("profile/location");
             }
         }
         $this->redirect("/");
     }
     $title = 'Onde estou';
     return compact('title', 'geocode', 'hideWhereAmI', 'location');
 }
예제 #2
0
 public function checkin($placeId = null)
 {
     if (empty($placeId)) {
         $this->redirect('/');
     }
     $place = $this->api->getPlace(array('placeid' => $placeId));
     $placeName = $place->getName();
     $url = ApontadorApi::encurtaUrl($place->getPlaceUrl());
     $status = "Eu estou em " . $place->getName() . ". " . $url . " #checkin via @sitechegamos";
     if (!empty($_POST) && $place instanceof Place) {
         $location = new Location();
         $location->setPoint($place->getPoint());
         $location->setAddress($place->getAddress());
         $location->save();
         $checkinData = array('placeId' => $place->getId(), 'placeName' => $place->getName(), 'term' => $place->getName(), 'lat' => $place->getPoint()->getLat(), 'lng' => $place->getPoint()->getLng());
         $checkinData['url'] = isset($_POST['url']) ? $_POST['url'] : $url;
         $checkinData['status'] = isset($_POST['status']) ? str_replace("\n", " ", $_POST['status']) : $status;
         $checkinData['providers'] = isset($_POST['providers']) ? $_POST['providers'] : array();
         $checkedin = $this->doCheckin($checkinData);
         if ($checkedin) {
             $this->redirect('/places/checkins/' . $placeId);
         } else {
             $this->redirect($place->getPlaceUrl());
         }
     }
     $providers = array();
     if (OauthController::isLogged('apontador')) {
         $providers['apontador'] = "Apontador";
     }
     if (OauthController::isLogged('foursquare')) {
         $providers['foursquare'] = "Foursquare";
     }
     if (OauthController::isLogged('twitter')) {
         $providers['twitter'] = "Twitter";
     }
     if (OauthController::isLogged('facebook')) {
         $providers['facebook'] = "Facebook";
     }
     if (OauthController::isLogged('orkut')) {
         $providers['orkut'] = "Orkut";
     }
     if (count($providers) == 0) {
         OauthController::verifyLogged('apontador');
     }
     $location = new Location();
     $location->load();
     $title = 'Check-in em ' . $placeName;
     return compact('title', 'providers', 'status', 'location');
 }