| Server IP : 54.36.91.62 / Your IP : 216.73.217.112 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/plats-individuels/lyon/administrator/components/com_mymaplocations/ |
Upload File : |
<?php
/**
* @version 4.6.0
* @package com_mymaplocations
* @copyright JoomUnited (C) 2011. All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
* ****@author joomunited - contact@joomunited.com
*/
// No direct access
defined('_JEXEC') or die;
jimport('joomla.filesystem.folder');
class MyMaplocationsController extends JControllerLegacy {
/**
* Method to display a view.
*
* @param boolean $cachable If true, the view output will be cached
* @param array $urlparams An array of safe url parameters and their variable types, for valid values see {@link JFilterInput::clean()}.
*
* @return JController This object to support chaining.
* @since 1.5
*/
public function display($cachable = false, $urlparams = false) {
require_once JPATH_COMPONENT . '/helpers/mymaplocations.php';
// Load the submenu.
MyMaplocationsBackendHelper::addSubmenu($this->input->get('view', 'locations'));
$view = $this->input->get('view', 'locations');
$this->input->set('view', $view);
parent::display();
return $this;
}
public function delete_log()
{
$app = JFactory::getApplication();
$config=JFactory::getConfig();
$db = JFactory::getDbo();
$sql="select * from #__mymaplocations_statistics";
$db->setQuery($sql);
$items=$db->loadObjectList();
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->delete($db->quoteName('#__mymaplocations_statistics'));
$db->setQuery($query);
$result = $db->execute();
$app->enqueueMessage(JText::_('COM_MYMAPLOCATIONS_LOG_ITEMS_DELETED'));
$app->redirect('index.php?option=com_mymaplocations&view=statistics');
}
public function export_log_csv()
{
//ob_end_clean();
$app = JFactory::getApplication();
$config=JFactory::getConfig();
$name=JApplicationHelper::stringURLSafe($config->get('sitename'));
header("Content-type: text/csv; charset=utf-8");
header("Content-Disposition: attachment; filename=".$name."_log.csv");
header("Pragma: no-cache");
header("Expires: 0");
$output = fopen('php://output', 'w');
fputcsv($output, array('id','term','month','year','catid','extension','hits'));
JModelLegacy::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_mymaplocations/models', 'MyMaplocationsModel');
// Get the dbo
$db = JFactory::getDbo();
$sql="select * from #__mymaplocations_statistics";
$db->setQuery($sql);
$items=$db->loadObjectList();
foreach($items as $item)
{
fputcsv($output,array($item->id,$item->term,$item->month,$item->year,$item->catid,$item->extension,$item->hits), ",");
}
$app->close();die();
}
public function export_csv()
{
//ob_end_clean();
$app = JFactory::getApplication();
$config=JFactory::getConfig();
$name=JApplicationHelper::stringURLSafe($config->get('sitename'));
header("Content-type: text/csv; charset=utf-8");
header("Content-Disposition: attachment; filename=".$name.".csv");
header("Pragma: no-cache");
header("Expires: 0");
$output = fopen('php://output', 'w');
$db = JFactory::getDbo();
$fdata=array('id','name','logo','icon','address','town','locationstate','country','postal','latitude','longitude','description','metakey','metadesc','contactlink','exturl','extlink','hours','phone','markercolor','language','category_title','tags');
JModelLegacy::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_mymaplocations/models', 'MyMaplocationsModel');
// Get the dbo
$db = JFactory::getDbo();
// Get an instance of the generic articles model
$model = JModelLegacy::getInstance('locations', 'MyMaplocationsModel', array('ignore_request' => true));
// Set application parameters in model
$app = JFactory::getApplication();
$model->setState('list.start', 0);
$model->setState('list.limit', -1);
$model->setState('filter.component', 'com_mymaplocations');
$model->setState('filter.state', 1);
$model->setState('list.ordering', 'a.ordering');
$model->setState('list.direction', 'desc');
$items = $model->getItems();
if(count($items[0]->extraFields)!=0)
{
foreach($items[0]->extraFields as $k=>$extraFields)
{
$fdata[]="extrafield___".$extraFields->name."___".$extraFields->type;
}
}
fputcsv($output,$fdata);
foreach($items as $item)
{
$tag="";
$extra_field="";
if(count($item->tags->itemTags)!=0)
{
foreach($item->tags->itemTags as $tags)
{
$tag.=$tags->title.":";
}
$tag=substr($tag,0,-1);
}
$finaldata=array($item->id,str_replace(array('"',",","\n", "\r"),array("'"," "," "," "),$item->name),$item->logo,$item->icon,str_replace(array('"',",","\n", "\r"),array("'"," "," "," "),$item->address),str_replace(array('"',",","\n", "\r"),array("'"," "," "," "),$item->town),str_replace(array('"',",","\n", "\r"),array("'"," "," "," "),$item->locationstate),str_replace(array('"',",","\n", "\r"),array("'"," "," "," "),$item->country),str_replace(array('"',",","\n", "\r"),array("'"," "," "," "),$item->postal),$item->latitude,$item->longitude,str_replace(array('"',",","\n", "\r"),array("'"," "," "," "),$item->description),str_replace(array('"',",","\n", "\r"),array("'"," "," "," "),$item->metakey),str_replace(array('"',",","\n", "\r"),array("'"," "," "," "),$item->metadesc),str_replace(array('"',",","\n", "\r"),array("'"," "," "," "),$item->contactlink),str_replace(array('"',",","\n", "\r"),array("'"," "," "," "),$item->exturl),str_replace(array('"',",","\n", "\r"),array("'"," "," "," "),$item->extlink),str_replace(array('"',",","\n", "\r"),array("'"," "," "," "),$item->hours),str_replace(array('"',",","\n", "\r"),array("'"," "," "," "),$item->phone),$item->markercolor,$item->language,str_replace(array('"',",","\n", "\r"),array("'"," "," "," "),$item->category_title),str_replace(array('"',",","\n", "\r"),array("'"," "," "," "),$tag));
if(count($item->extraFields)!=0)
{
foreach($item->extraFields as $extraFields)
{
if($extraFields->rawvalue!=null)
{
$finaldata[]=str_replace(array('"',",","\n", "\r"),array("'"," "," "," "),$extraFields->rawvalue);
}
}
}
fputcsv($output,$finaldata, ",");
}
$app->close();die();
}
public function export_kml()
{
//ob_end_clean();
$app = JFactory::getApplication();
// Creates the Document.
$dom = new DOMDocument('1.0', 'UTF-8');
// Creates the root KML element and appends it to the root document.
$node = $dom->createElementNS('http://www.opengis.net/kml/2.2', 'kml');
$parNode = $dom->appendChild($node);
// Creates a KML Document element and append it to the KML element.
$dnode = $dom->createElement('Document');
$docNode = $parNode->appendChild($dnode);
$config=JFactory::getConfig();
$name=JApplicationHelper::stringURLSafe($config->get('sitename'));
header('Content-type: application/vnd.google-earth.kml+xml');
header("Content-Disposition: attachment; filename=".$name.".kml");
header("Pragma: no-cache");
header("Expires: 0");
JModelLegacy::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_mymaplocations/models', 'MyMaplocationsModel');
// Get the dbo
$db = JFactory::getDbo();
// Get an instance of the generic articles model
$model = JModelLegacy::getInstance('locations', 'MyMaplocationsModel', array('ignore_request' => true));
// Set application parameters in model
$app = JFactory::getApplication();
$model->setState('list.start', 0);
$model->setState('list.limit', -1);
$model->setState('filter.component', 'com_mymaplocations');
$model->setState('filter.state', 1);
$model->setState('list.ordering', 'a.ordering');
$model->setState('list.direction', 'desc');
$items = $model->getItems();
foreach($items as $item)
{
$node = $dom->createElement('Placemark');
$placeNode = $docNode->appendChild($node);
// Creates an id attribute and assign it the value of id column.
$placeNode->setAttribute('id', 'placemark' . $item->id);
// Create name, and description elements and assigns them the values of the name and address columns from the results.
$nameNode = $dom->createElement('name',htmlentities($item->name));
$placeNode->appendChild($nameNode);
$address="";
$data=array();
if (!empty($item->address)) {
$data[] = $item->address.'<br/>';
}
if (!empty($item->town)) {
$data[] = $item->town;
}
if (!empty($item->locationstate)) {
$data[] = ($item->locationstate) . '<br/>';
}
if (!empty($item->country)) {
$data[] = ($item->country);
}
if (!empty($item->postal)) {
$data[] = $item->postal;
}
$address.=str_replace('<br/>,', '<br>', implode(",", $data));
if (!empty($item->phone)) {
$address.='<br/><abbr title="Phone"><i class="icon-phone"></i></abbr>' . $item->phone;
}
if (!empty($item->description)) {
$address.='<br/>'.strip_tags($item->description);
}
$descNode = $dom->createElement('description');
$descNode->appendChild($dom->createCDATASection($address));
$placeNode->appendChild($descNode);
$barStyleNode = $dom->createElement('Style');
$barStyleNode->setAttribute('id', 'barStyle');
$barIconstyleNode = $dom->createElement('IconStyle');
$barIconstyleNode->setAttribute('id', 'barIcon');
$barIconNode = $dom->createElement('Icon');
if($item->icon)
{}
else
{
$item->icon='images/icons/b1.png';
}
$barHref = $dom->createElement('href', JURI::root().$item->icon);
$barIconNode->appendChild($barHref);
$barIconstyleNode->appendChild($barIconNode);
$barStyleNode->appendChild($barIconstyleNode);
$docNode->appendChild($barStyleNode);
$styleUrl = $dom->createElement('styleUrl', '#barStyle');
$placeNode->appendChild($styleUrl);
// Creates a Point element.
$pointNode = $dom->createElement('Point');
$placeNode->appendChild($pointNode);
// Creates a coordinates element and gives it the value of the lng and lat columns from the results.
$coorStr = $item->longitude . ',' .$item->latitude;
$coorNode = $dom->createElement('coordinates', $coorStr);
$pointNode->appendChild($coorNode);
}
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
ob_clean();
$kmlOutput = $dom->saveXML();
echo $kmlOutput;die();
}
public function import_console()
{
JSession::checkToken() or die(Text::_('JINVALID_TOKEN_NOTICE'));
$app = JFactory::getApplication();
$input = JFactory::getApplication()->input;
$extension_id = $input->getInt('id',0);
$db=JFactory::getDBO();
$sql="select extension_id,element,folder from #__extensions where extension_id=".(int)$extension_id;
$db->setQuery($sql);
$res=$db->loadObject();
if($res->element=="mymaplocations"&&$res->folder=="console")
{
$csv_file=$input->getString('csv_file','');
$object = new stdClass();
$object->extension_id = $extension_id;
$data['csv_file']= $csv_file;
$object->params=json_encode($data);
$result = JFactory::getDbo()->updateObject('#__extensions', $object, 'extension_id', $updateNulls);
$msg="Path Updated Successfully";
$app->enqueueMessage($msg);
}
else
{
$msg="Error";
$app->enqueueMessage($msg);
}
$app->redirect('index.php?option=com_mymaplocations&view=import');
}
public function import_csv()
{
JModelLegacy::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_mymaplocations/models', 'MyMaplocationsModel');
// Get an instance of the generic articles model
$model = JModelLegacy::getInstance('location', 'MyMaplocationsModel', array('ignore_request' => true));
$model->saveCsv();
}
public function import_kml()
{
JModelLegacy::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_mymaplocations/models', 'MyMaplocationsModel');
// Get an instance of the generic articles model
$model = JModelLegacy::getInstance('locations', 'MyMaplocationsModel', array('ignore_request' => true));
$model->saveKml();
}
public function sync()
{
require_once JPATH_SITE. '/components/com_mymaplocations/helpers/mymaplocations.php';
$user=JFactory::getUser()->id;
$db = JFactory::getDbo();
$query = "UPDATE #__mymaplocations_location SET language = '*' Where language=''";
$db->setQuery($query);
$result = $db->execute();
$db = JFactory::getDbo();
$query="select * from #__mymaplocations_location where (alias IS NULL OR alias= '') OR (latitude=0 AND longitude=0)";
$db->setQuery($query);
$results = $db->loadObjectList();
$address="";
$query="select * from #__categories where extension='com_mymaplocations' AND published=1 ORDER BY id asc";
$db->setQuery($query);
$category = $db->loadObject();
$msg="";
foreach($results as $result)
{
$query = $db->getQuery(true);
$conditions=array();
$fields=array();
$address="";
if(($result->latitude)||($result->latitude==0))
{
if(!empty($result->address))
{
$address.=$result->address;
}
if(!empty($result->town))
{
$address.=" ".$result->town;
}
if(!empty($result->locationstate))
{
$address.=" ".$result->locationstate;
}
if(!empty($result->country))
{
$address.=" ".$result->country;
}
if(!empty($result->postal))
{
$address.=" ".$result->postal;
}
if(!empty($address))
{
if(($result->latitude)&&($result->longitude))
{
$fields = array(
$db->quoteName('latitude') . ' = '.$result->latitude,
$db->quoteName('longitude') . ' = '.$result->longitude
);
}
else
{
$address=str_replace('"', ' ', $address);
$zip = @MyMaplocationsHelper::getLatLongFromPostcode($address);
if(($zip['lat'])&&($zip['lang']))
{
$fields = array(
$db->quoteName('latitude') . ' = '.$zip['lat'],
$db->quoteName('longitude') . ' = '.$zip['lang']
);
}
}
}
if(empty($result->alias))
{
$fields=array_merge($fields , array(
$db->quoteName('alias') . ' = '.$db->quote($result->id.'-'.JApplicationHelper::stringURLSafe($result->name))));
}
if($result->catid==0)
{
$fields= array_merge($fields , array($db->quoteName('catid') . ' = '.$category->id));
}
$conditions = array($db->quoteName('id') . ' = '.$result->id);
if($fields)
{
$query->update($db->quoteName('#__mymaplocations_location'))->set($fields)->where($conditions);
$db->setQuery($query);
}
$final = $db->execute();
$msg.=$result->name." Updated <br/>";
}
}
if ((JFolder::exists(JPATH_SITE . '/components/com_hikamarket/'))) {
JTable::addIncludePath(JPATH_ADMINISTRATOR.'/components/com_mymaplocations/tables');
$plugin = JPluginHelper::getPlugin('hikamarket', 'mymaplocations');
$params = new JRegistry($plugin->params);
$query = $db->getQuery(true);
$query->select($db->quoteName(array('extra_id')));
$query->from('#__mymaplocations_location');
$query->where(' component = ' . $db->Quote('com_hikamarket'));
$db->setQuery($query);
$data = $db->loadObjectList();
$query = $db->getQuery(true);
$query->select('*');
$query->from('#__hikamarket_vendor');
$query->where('vendor_published = 1' );
if(!empty($data))
{
$arr=array();
foreach($data as $dat)
{
$arr[]=$dat->extra_id;
}
$query->where("vendor_id NOT IN (".implode(',', $arr).")");
}
$db->setQuery($query);
$results = $db->loadObjectList();
foreach($results as $vendor)
{
$faddress="";
$geo=array();
$address=$params->get('vendor_address_column','vendor_address_street');
$city=$params->get('vendor_city_column','vendor_address_city');
$st=$params->get('vendor_state_column','vendor_address_state');
$country=$params->get('vendor_country_column','vendor_address_country');
$czip=$params->get('vendor_zip_column','vendor_address_post_code');
$faddress=$vendor->$address;
if(!empty($vendor->$city))
{
$faddress.=" ".$vendor->$city;
}
$sql = "select zone_name_english from #__hikashop_zone where zone_namekey=" . $db->Quote($vendor->$st);
$db->setQuery($sql);
$locstate= $db->loadObject();
$locationstate=$locstate->zone_name_english;
if(!empty($locationstate))
{
$faddress.=" ".$locationstate;
}
$sql = "select zone_name_english from #__hikashop_zone where zone_namekey=" . $db->Quote($vendor->$country);
$db->setQuery($sql);
$countr= $db->loadObject();
if(!empty($countr))
{
$faddress.=" ".$countr->zone_name_english;
}
if(!empty($vendor->$czip))
{
$faddress.=" ".$vendor->$czip;
}
$geo=@MyMaplocationsHelper::getLatLongFromPostcode($faddress) ;
$type = 'location';
$prefix = 'MyMaplocationsTable';
$config = array();
$table = JTable::getInstance($type, $prefix, $config);
$mapdata['name'] = $vendor->vendor_id. '-' . $vendor->vendor_name;
$mapdata['alias'] = $vendor->vendor_id . '-' . $vendor->vendor_name;
$mapdata['component'] = 'com_hikamarket';
$mapdata['extra_id'] = $vendor->vendor_id;
$mapdata['latitude'] =$geo['lat'];
$mapdata['longitude'] =$geo['lang'];
$table->bind($mapdata);
if (!$table->check()) {
JFactory::getApplication()->enqueueMessage($table->getError(), 'error');
}
if (!$table->store()) {
JFactory::getApplication()->enqueueMessage($table->getError(), 'error');
}
$msg.="Hikamarket ".$vendor->vendor_name." Updated <br/>";
}
}
if ((JFolder::exists(JPATH_SITE . '/components/com_comprofiler/'))) {
JTable::addIncludePath(JPATH_ADMINISTRATOR.'/components/com_mymaplocations/tables');
$type = 'location';
$prefix = 'MyMaplocationsTable';
$config = array();
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select($db->quoteName('params'));
$query->from('#__comprofiler_plugin');
$query->where(' element = ' . $db->quote('mymaplocations'));
try{
$db->setQuery($query);
}
catch (Exception $e)
{
echo $e->getMessage();
exit;
}
$result= $db->loadObject();
$param=json_decode($result->params,true);
if(empty($param))
{
$param=parse_ini_string($result->params);
}
$usedefault=$param['usedefault'];
if($usedefault==0)
{
$data=array();
if(!empty($param['address']))
$data[]=$param['address'];
if(!empty($param['city']))
$data[]=$param['city'];
if(!empty($param['locationstate']))
$data[]=$param['locationstate'];
if(!empty($param['country']))
$data[]=$param['country'];
if(!empty($param['postal']))
$data[]=$param['postal'];
$sql = "SELECT name from #__comprofiler_fields where fieldid IN (".implode(',', $data).") ORDER BY FIELD( fieldid,".implode(',', $data).")";
$db->setQuery($sql);
$fieldDatas = $db->loadObjectList();
$query = $db->getQuery(true);
$query->select($db->quoteName(array('extra_id')));
$query->from('#__mymaplocations_location');
$query->where(' component = ' . $db->Quote('com_comprofiler'));
$db->setQuery($query);
$data = $db->loadObjectList();
$query = $db->getQuery(true);
$query->select('*');
$query->from('#__comprofiler');
if(!empty($data))
{
$arr=array();
foreach($data as $dat)
{
$arr[]=$dat->extra_id;
}
$query->where("user_id NOT IN (".implode(',', $arr).")");
}
$db->setQuery($query);
$results = $db->loadObjectList();
foreach($results as $vendor)
{
$faddress="";
$geo=array();
foreach($fieldDatas as $field)
{
$fname=$field->name;
$faddress.=$vendor->$fname." ";
}
$geo=@MyMaplocationsHelper::getLatLongFromPostcode($faddress) ;
if(($geo['lat'])&&($geo['lang']))
{
$mapdata=array();
$mapdata['name'] = $vendor->user_id. '-' . $vendor->firstname;
$mapdata['alias'] = $vendor->user_id. '-' . $vendor->firstname;
$mapdata['component'] = 'com_comprofiler';
$mapdata['extra_id'] = $vendor->user_id;
$mapdata['latitude'] =$geo['lat'];
$mapdata['longitude'] =$geo['lang'];
$table = JTable::getInstance($type, $prefix, $config);
$table->bind($mapdata);
if (!$table->check()) {
JFactory::getApplication()->enqueueMessage($table->getError(), 'error');
}
if (!$table->store()) {
JFactory::getApplication()->enqueueMessage($table->getError(), 'error');
}
$msg.="Community Builder user updated ".$vendor->firstname." Updated <br/>";
}
}
}
}
$msg.="<br/>".JText::_('COM_MYMAPLOCATIONS_DATA_UPDATED');
$mainframe = JFactory::getApplication();
$mainframe->enqueueMessage(JText::_($msg));
$mainframe->redirect('index.php?option=com_mymaplocations&view=locations');
}
public function overridehelper()
{
jimport('joomla.filesystem.folder');
jimport('joomla.filesystem.file');
$app=JFactory::getApplication();
$document=JFactory::getDocument();
$db=JFactory::getDbo();
$sql="select * from #__template_styles where client_id=0 and home=1";
$db->setQuery($sql);
$result=$db->loadObject();
$tpath=JPATH_SITE."/templates/".$result->template."/html/com_mymaplocations/mymaplocations.php";
$cpath=JPATH_SITE."/components/com_mymaplocations/helpers/mymaplocations.php";
$msg=JText::_('COM_MYMAPLOCATIONS_FORM_LBL_HELPER_EXIST');
$app->enqueueMessage(JText::_($msg));
if(JFolder::create(JPATH_SITE."/templates/".$result->template."/html/com_mymaplocations/")) {
}
JFile::copy($cpath,$tpath);
$app->redirect($_SERVER['HTTP_REFERER']);
}
}