| Server IP : 54.36.91.62 / Your IP : 216.73.217.111 Web Server : Apache System : Linux webm013.cluster127.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64 User : coopiak ( 151928) PHP Version : 8.3.23 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/coopiak/amisdesseniors-fr/components/com_community/helpers/ |
Upload File : |
<?php
/**
* @copyright (C) 2013 iJoomla, Inc. - All rights reserved.
* @license GNU General Public License, version 2 (http://www.gnu.org/licenses/gpl-2.0.html)
* @author iJoomla.com <webmaster@ijoomla.com>
* @url https://www.jomsocial.com/license-agreement
* The PHP code portions are distributed under the GPL license. If not otherwise stated, all images, manuals, cascading style sheets, and included JavaScript *are NOT GPL, and are released under the IJOOMLA Proprietary Use License v1.0
* More info at https://www.jomsocial.com/license-agreement
*/
use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
defined('_JEXEC') or die('Restricted access');
require_once( JPATH_ROOT .'/components/com_community/libraries/core.php' );
try {
Factory::getLanguage()->load('com_community.country');
} catch (Exception $e) {
// do nothing
}
class CMapsHelper
{
/**
* Returns an object of data containing user's address information
*
* @access static
* @params int $userId
* @return stdClass Object
**/
static public function getAddress( $userId )
{
$user = CFactory::getUser( $userId );
$config = CFactory::getConfig();
// try using fieldcodelocation as detault address
$obj = new stdClass();
$obj->location = $user->getInfo($config->get('fieldcodelocation', ''), false);
$obj->street = $user->getInfo($config->get('fieldcodestreet', ''), false);
$obj->city = $user->getInfo($config->get('fieldcodecity', ''), false);
$obj->state = $user->getInfo($config->get('fieldcodestate', ''), false);
$obj->country = Text::_($user->getInfo($config->get('fieldcodecountry', ''), false));
$obj->zip = $user->getInfo($config->get('fieldcodepostcode', ''), false);
// make sure location field value took from google (in JSON)
$location = json_decode($obj->location ?: '');
if (json_last_error() === 0 && $obj->location) {
// return location object only
unset($obj->street);
unset($obj->city);
unset($obj->state);
unset($obj->country);
unset($obj->zip);
} else {
// return street, city, state, country, zip
unset($obj->location);
}
return $obj;
}
static public function getRadiusDistance($latitudeFrom, $longitudeFrom, $latitudeTo, $longitudeTo, $unit = 'miles', $userId = null){
// check if google maps integration properly setup
if (!CMapsHelper::mapSetup()) {
return false;
}
if (!$latitudeFrom || !$longitudeFrom || !$latitudeTo || !$longitudeTo) {
return false;
}
$config = CFactory::getConfig();
// check the user location
if ($userId) {
$location = implode('', (array)(CMapsHelper::getAddress($userId)));
if (empty($location)) {
return false;
} else {
$location = json_decode($location);
if (json_last_error() === 0) {
if (isset($location->name) && empty($location->name)) {
return false;
}
}
}
}
$unit = $config->get('advanced_search_units');
switch($unit){
case 'metric' : //km
$earthRadius = 6371;
break;
default:
$earthRadius = 6371/1.609344;
}
if($latitudeFrom == 255 || $longitudeFrom == 255 || $latitudeTo == 255 || $longitudeTo == 255){
return false;
}
$latFrom = deg2rad($latitudeFrom);
$lonFrom = deg2rad($longitudeFrom);
$latTo = deg2rad($latitudeTo);
$lonTo = deg2rad($longitudeTo);
$lonDelta = $lonTo - $lonFrom;
$a = pow(cos($latTo) * sin($lonDelta), 2) +
pow(cos($latFrom) * sin($latTo) - sin($latFrom) * cos($latTo) * cos($lonDelta), 2);
$b = sin($latFrom) * sin($latTo) + cos($latFrom) * cos($latTo) * cos($lonDelta);
$angle = atan2(sqrt($a), $b);
$distance = $angle * $earthRadius;
return (int)round($distance);
}
static public function getLocationData($location) {
$location = json_decode($location ?: '');
if (json_last_error() === 0) {
if (isset($location->name)) {
return $location;
}
} else {
return $location = (object)array('name' => $location, 'desc' => '', 'lat' => '', 'lng' => '');
}
}
/**
* Google Maps integration setup check
*
* @access static
* @params int $userId
* @return boolean
**/
static public function mapSetup() {
$config = CFactory::getConfig();
if ($config->get('maps_api', '') == 'googlemap') {
if ($config->get('googleapikey', '')) {
if ($config->get('fieldcodelocation', '')) {
return true;
} else if ($config->get('fieldcodestreet') || $config->get('fieldcodecity') || $config->get('fieldcodestate') || $config->get('fieldcodecountry') || $config->get('fieldcodepostcode')) {
return true;
}
}
} else if ($config->get('maps_api', '') == 'openstreetmap') {
if ($config->get('fieldcodelocation', '')) {
return true;
} else if ($config->get('fieldcodestreet') || $config->get('fieldcodecity') || $config->get('fieldcodestate') || $config->get('fieldcodecountry') || $config->get('fieldcodepostcode')) {
return true;
}
}
return false;
}
}