Your IP : 216.73.216.84


Current Path : /home/helpink/www/administrator/components/com_jbusinessdirectory/tables/
Upload File :
Current File : /home/helpink/www/administrator/components/com_jbusinessdirectory/tables/city.php

<?php
/**
 * @package    J-BusinessDirectory
 *
 * @author     CMSJunkie http://www.cmsjunkie.com/
 * @copyright  Copyright (C) 2007 - 2022 CMSJunkie. All rights reserved.
 * @license    https://www.gnu.org/licenses/agpl-3.0.en.html
 */
defined('_JEXEC') or die('Restricted access');

class JTableCity extends JTable {
	/**
	 * Constructor
	 *
	 * @param object Database connector object
	 */
	public function __construct(&$db) {
		parent::__construct('#__jbusinessdirectory_cities', 'id', $db);
	}

	public function setKey($k) {
		$this->_tbl_key = $k;
	}

	public function getCity($cityId) {
		$db    = JFactory::getDbo();

		$where = "name = '$cityId'";
		if(is_numeric($cityId)){
			$where = "id = $cityId";
		}

		$query = "SELECT *, name as cityName FROM #__jbusinessdirectory_cities where $where ORDER BY name";
		$db->setQuery($query);
		return $db->loadObject();
	}

	public function getCityByName($city) {
		$db    = JFactory::getDbo();
		$query = "SELECT *, name as cityName FROM #__jbusinessdirectory_cities where name = '$city' ORDER BY name";
		$db->setQuery($query);
		return $db->loadObject();
	}

	public function getCities() {
		$appSettings = JBusinessUtil::getApplicationSettings();

		$orderBy = ' name';
		if($appSettings->cities_regions_order == ORDER_BY_ORDER) {
			$orderBy = ' ordering asc';
		}
		
		$db    = JFactory::getDbo();
		$query = "SELECT * FROM #__jbusinessdirectory_cities ORDER BY " .$orderBy;
		$db->setQuery($query);

		return $db->loadObjectList();
	}

	public function getCitiesByRegions($regionIds) {
		$appSettings = JBusinessUtil::getApplicationSettings();

		$orderBy = ' c.name';
		if($appSettings->cities_regions_order == ORDER_BY_ORDER) {
			$orderBy = 'c.ordering asc';
		}

		$db    = JFactory::getDbo();
		$query = "select c.* 
				  from #__jbusinessdirectory_cities as c
				  where c.region_id in ($regionIds)
				  order by $orderBy";
		$db->setQuery($query);

		return $db->loadObjectList();
	}

	public function getCitiesByRegion($regionId) {
		$appSettings = JBusinessUtil::getApplicationSettings();
		$db    = JFactory::getDbo();

		$orderBy = ' c.name';
		if($appSettings->cities_regions_order == ORDER_BY_ORDER) {
			$orderBy = ' c.ordering asc';
		}

		$whereCond = '';
		if (!empty($regionId)) {
			$whereCond = ' and c.region_id=' . $regionId;
		}

		$query = "select c.* 
				  from #__jbusinessdirectory_cities as c
				  left join #__jbusinessdirectory_regions as rg on rg.id = c.region_id
				  where 1 $whereCond
				  order by $orderBy";
		$db->setQuery($query);

		return $db->loadObjectList();
	}

	public function getCitiesByRegionName($region) {
		$appSettings = JBusinessUtil::getApplicationSettings();
		$db    = JFactory::getDbo();

		$orderBy = ' c.name';
		if($appSettings->cities_regions_order == ORDER_BY_ORDER) {
			$orderBy = ' c.ordering asc';
		}
		
		$_region = $db->escape($region);
		$query = "select c.* 
				  from #__jbusinessdirectory_cities as c
				  left join #__jbusinessdirectory_regions as rg on rg.id = c.region_id
				  where rg.name = '$_region'
				  order by $orderBy";
		$db->setQuery($query);

		return $db->loadObjectList();
	}

	public function getCitiesByCountry($countryId) {
		$appSettings = JBusinessUtil::getApplicationSettings();
		$db    = JFactory::getDbo();

		$orderBy = ' c.name';
		if($appSettings->cities_regions_order == ORDER_BY_ORDER) {
			$orderBy = ' c.ordering asc';
		}

		$whereCond = '';
		if (!empty($countryId)) {
			$whereCond = ' and rg.country_id = ' . $countryId;
		}

		$query = "select c.* 
				  from #__jbusinessdirectory_cities as c
				  left join #__jbusinessdirectory_regions as rg on rg.id = c.region_id
				  left join #__jbusinessdirectory_countries as ctr on ctr.id  = rg.country_id
				  where 1 $whereCond
				  order by $orderBy";
		$db->setQuery($query);

		return $db->loadObjectList();
	}

	public function getCitiesForExport() {
		$db =JFactory::getDBO();
		$query = "select name as cityName, region_id as regionId from #__jbusinessdirectory_cities order by id desc";
		$db->setQuery($query);

		return $db->loadObjectList();
	}

	/**
	 * Get city suggestions based on keyword
	 *
	 * @return void
	 */
	public function getCitySuggestions($keyword){
		$appSettings = JBusinessUtil::getApplicationSettings();
		$db    = JFactory::getDbo();

		$orderBy = ' c.name';
		if($appSettings->cities_regions_order == ORDER_BY_ORDER) {
			$orderBy = ' c.ordering asc';
		}

		$whereCond = '';
		if (!empty($keyword)) {
			$whereCond = " and c.name like '%$keyword%'";
		}

		$query = "select c.*, rg.name as region_name, rg.id as region_id, cnt.id as country_id
					from #__jbusinessdirectory_cities as c
					left join #__jbusinessdirectory_regions as rg on rg.id = c.region_id
					left join #__jbusinessdirectory_countries as cnt on cnt.id = rg.country_id
					where 1 $whereCond
					order by cnt.country_name, $orderBy, rg.name
					limit 0,10";
		$db->setQuery($query);

		$result = $db->loadObjectList();

		return $result;
	}

	public function getCitiesByKeyword($keyword){
		$appSettings = JBusinessUtil::getApplicationSettings();

		$whereCond = '';
		if (!empty($keyword)) {
			$whereCond = ' and city like "%' . $keyword . '%"';
		}

		$db          = JFactory::getDBO();
		$query       = "SELECT DISTINCT city, city AS id FROM #__jbusinessdirectory_companies
                  WHERE state = 1 AND city != '' $whereCond
                    " . (($appSettings->show_secondary_locations) ? "
                  union
                  select distinct city, city as id from #__jbusinessdirectory_company_locations where city != '' $whereCond
                    " : "") . "
                ORDER BY city ASC";
		$db->setQuery($query);
		return $db->loadObjectList();
	}

	public function checkCityExists($cityName, $regionId) {
		$db     = JFactory::getDbo();
		$cityName = $db->escape($cityName);

		$query = "select c.id
				  from #__jbusinessdirectory_cities as c
				  where c.name = '$cityName' and c.region_id = '$regionId'";

		$db->setQuery($query);		
		return $db->loadResult();
	}
}