public function getNearByUser($user_id, $distance = 5, $page_size = 6, $page = 1) { $gapperLocationM = new Application_Model_GapperLocation(); $latestlocationresult = $gapperLocationM->fetchRow("user_id='{$user_id}' and latest='1'"); if (false === $latestlocationresult) { return false; } $varLatitude = $latestlocationresult->getLatitude(); $varLongitude = $latestlocationresult->getLongitude(); $query = "SELECT gl.address, gl.latest, gl.user_id, sqrt(power(69.1*(gl.latitude - ({$varLatitude})),2)+ power(69.1*(gl.longitude-({$varLongitude}\t\t\t\t\t))*cos(gl.latitude/57.3),2)) as dist ,gl.latitude, gl.longitude FROM\n gapper_location gl where gl.user_id<>'{$user_id}' and gl.latest='1' group by gl.user_id,dist having dist<{$distance} order by dist\n "; $pageObj = new Base_Paginator(); $paginator = $pageObj->fetchPageDataRaw($query, $page, $page_size); $returnArray = array(); foreach ($paginator as $row) { /** * @Modified By : Mahipal Singh Adhikari * @Modified On : 15-Nov-2010 * @Modification: check other users publish location privacy to display others users locations in MAP **/ $view_map = false; $userNs = new Zend_Session_Namespace('members'); $loggedin_id = $userNs->userId; $view_map = $this->checkUserPrivacySettings($row->user_id, $loggedin_id, 3); /* //now get user map permission settings $UserPermissionObj = new Application_Model_UserPermission(); $wherePerCond = "user_id='{$row->user_id}' AND permission_id=3"; $mapPermission = $UserPermissionObj->fetchRow($wherePerCond); $permissionId = $mapPermission->getId(); $mapPermission = $mapPermission->getFriendGroupId(); //echo "<br />mapPermission=".$mapPermission." for id=".$row->user_id."<br />"; if($mapPermission==1) { $view_map = true; //display to public } else { //now check logged in user connection type with other location users $friend_id = $user_id; //looged in user id as friend id $friendM = new Application_Model_Friend(); $friend_cond = "user_id='{$row->user_id}' AND friend_id='{$friend_id}' AND status='accept'"; $conTypeObj = $friendM->fetchRow($friend_cond); //if logged in user connected with this user if(false!==$conTypeObj) { $con_type = $conTypeObj->getConnectionType(); //echo "<br />connection type=".$con_type."<br />"; if($con_type=="friend" && ($mapPermission==2 || $mapPermission==4)) { $view_map = true; //display to Friends & Family AND Friends, Family and Mates } else if($con_type=="family" && ($mapPermission==2 || $mapPermission==4)) { $view_map = true; //display to Friends & Family AND Friends, Family and Mates } else if($con_type=="travelmate" && ($mapPermission==3 || $mapPermission==4)) { $view_map = true; //display to Travel Mates AND Friends, Family and Mates } else { $view_map = false; } }//end if }//end else */ //if user display map location is true then get user information if ($view_map) { $userM = new Application_Model_User(); $userM = $userM->find($row->user_id); if (false !== $userM) { $returnArray[] = array("user_id" => $row->user_id, "dist" => $row->dist, "longitude" => $row->longitude, "latitude" => $row->latitude, "address" => $row->address, 'thumnail' => $userM->getThumbnail(), 'firstName' => $userM->getFirstName(), 'lastName' => $userM->getLastName(), 'username' => $userM->getUsername(), 'thumbnail' => $userM->getThumbnail()); } } //end of if } //end of foreach //var_dump($returnArray);exit; return $returnArray; }
public function indexAction() { $this->_helper->layout->setLayout('3column-profile-user-where-i-am'); $this->view->otherUserId = $this->view->userId = $userid = $this->_getParam('id'); $userM = new Application_Model_User(); $userM = $userM->find($userid); $this->view->userObject = $userM; //Redirect user if not active, added by Mahipal Adhikari on 3-jan-2011 if (false === $userM->checkUserActiveStatus($userid)) { $this->_helper->redirector('index', 'index'); } //get logged in user id $userNs = new Zend_Session_Namespace('members'); $loggedin_id = $userNs->userId; //redirect user to Where-I-Am page if viewing own profile, added by mahipal on 7-Feb-2011 if ($loggedin_id == $userid) { $this->_redirect($this->view->seoUrl('/gapper/where-i-am/')); } /************************ Check user Whre-I-Am privacy settings START *****************/ $user_id = $userid; //echo "user id=".$user_id." and Login id=".$loggedin_id; //now check user where-i-am privacy permissions $view_profile = false; $userObj = new Application_Model_User(); $view_profile = $userObj->checkUserPrivacySettings($user_id, $loggedin_id, 1); //if logged in user has no permission then display error page if (!$view_profile) { //$this->view->error_message = "You are not authorised to view <b>".$userM->getFirstName()." ".$userM->getLastName()."</b>'s location."; $this->view->user_id = $user_id; $this->render('error'); } //get Where I am (Map) permission $view_map = false; $view_map = $userObj->checkUserPrivacySettings($user_id, $loggedin_id, 3); if (false == $view_map) { $this->_helper->redirector('view', 'profile', 'default', array('username' => $userM->getUsername())); //$this->view->error_message = "You are not authorised to view <b>".$userM->getFirstName()." ".$userM->getLastName()."</b>'s map location."; //$this->render('error'); } $this->view->view_map = $view_map; /************************ Check user privacy settings END *****************/ $this->view->postWallAccess = false; if (false !== $userObj->getUserConnection($user_id, $loggedin_id)) { $this->view->postWallAccess = true; } $this->view->countryName = $userM->getCountryName(); $this->view->cityName = $userM->getCityName(); $this->view->userThumb = $userM->getThumbnail(); $this->view->fullName = $userM->getFirstName() . " " . $userM->getLastName(); $destinationM = new Application_Model_Destination(); $destination = $destinationM->fetchAll(); $this->view->destination = $destination; $experienceM = new Application_Model_Experiences(); $destinationId = $this->getRequest()->getParam('destination_id'); /*--find the current location coordinates --*/ $gapperLocationM = new Application_Model_GapperLocation(); $where = "user_id='{$userid}'"; $order = "addedon desc"; $gapperLocation = $gapperLocationM->fetchRow($where, $order); if (false == $gapperLocation) { //these are default coordinates. $this->view->myLongitude = ""; $this->view->myLatitude = ""; //if user have no coordinates then redirect its profile page $this->_helper->redirector('view', 'profile', 'default', array('username' => $userM->getUsername())); } else { $this->view->myLongitude = $gapperLocation->getLongitude(); $this->view->myLatitude = $gapperLocation->getLatitude(); } /*------------------------------------------*/ }
public function whereIAmAction() { $this->_helper->layout->setLayout('3column-my-account'); $userNs = new Zend_Session_Namespace('members'); $this->view->userId = $userId = $userNs->userId; $user = new Application_Model_User(); $user = new Application_Model_User(); $this->view->loc = $user->getNearByUser($userId, 1000, 20); //var_dump($this->view->loc); $user = $user->find($userNs->userId); $this->view->loginUrl = ""; $facebook = $this->view->facebook(); if ($user->getFacebookId() == "" || is_null($user->getFacebookId())) { $return_url = Zend_Registry::get('siteurl') . "/index/do-fb-return/"; $cancel_url = Zend_Registry::get('siteurl') . "/index/cancel-facebook"; $this->view->loginUrl = $loginUrl = $facebook->getLoginUrl(array("cancel_url" => $cancel_url, "next" => $return_url, "req_perms" => "offline_access,publish_stream,read_stream,email,user_birthday,user_location", "display" => "popup")); } $userM = new Application_Model_User(); $userM = $userM->find($userId); $this->view->countryName = $userM->getCountryName(); $this->view->cityName = $userM->getCityName(); $this->view->userThumb = $userM->getThumbnail(); $this->view->fullName = $userM->getFirstName() . " " . $userM->getLastName(); $destinationM = new Application_Model_Destination(); $destination = $destinationM->fetchAll(); $this->view->destination = $destination; $experienceM = new Application_Model_Experiences(); $destinationId = $this->getRequest()->getParam('destination_id'); /*--find the current location coordinates --*/ $gapperLocationM = new Application_Model_GapperLocation(); $where = "user_id='{$userId}'"; $order = "addedon desc"; $gapperLocation = $gapperLocationM->fetchRow($where, $order); if (false == $gapperLocation) { //these are default coordinates. $this->view->myLongitude = ""; $this->view->myLatitude = ""; $this->view->addedon = ""; } else { $this->view->myLongitude = $gapperLocation->getLongitude(); $this->view->myLatitude = $gapperLocation->getLatitude(); $this->view->addedon = $gapperLocation->getAddedon(); } /*------------------------------------------*/ }