98 lines
2.6 KiB
PHP
98 lines
2.6 KiB
PHP
<?php
|
|
/*
|
|
* @package Joomla 3.8
|
|
* @copyright Copyright (C) 2005 Open Source Matters. All rights reserved.
|
|
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
|
|
*
|
|
* @component Phoca Gallery
|
|
* @copyright Copyright (C) Jan Pavelka www.phoca.cz
|
|
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
|
|
*/
|
|
|
|
// Check to ensure this file is included in Joomla!
|
|
defined('_JEXEC') or die();
|
|
use Joomla\CMS\MVC\Model\BaseDatabaseModel;
|
|
use Joomla\CMS\Factory;
|
|
|
|
jimport('joomla.application.component.model');
|
|
|
|
class PhocaMapsModelMap extends BaseDatabaseModel
|
|
{
|
|
var $_id = null;
|
|
var $_data = null;
|
|
|
|
function __construct() {
|
|
parent::__construct();
|
|
$app = Factory::getApplication();
|
|
$this->setState('filter.language',$app->getLanguageFilter());
|
|
$id = $app->input->get('id', 0, 'int');
|
|
$this->setId((int)$id);
|
|
}
|
|
|
|
function setId($id){
|
|
$this->_id = $id;
|
|
$this->_data = null;
|
|
}
|
|
|
|
|
|
function &getData() {
|
|
if (!$this->_loadData()) {
|
|
$this->_initData();
|
|
}
|
|
return $this->_data;
|
|
}
|
|
|
|
function _loadData() {
|
|
if (empty($this->_data)) {
|
|
|
|
// Map
|
|
$where = array();
|
|
$where[] = 'a.id = '.(int) $this->_id;
|
|
//$where[] = 'a.published = 1';
|
|
// Filter by language
|
|
if ($this->getState('filter.language')) {
|
|
$where[] = 'a.language IN ('.$this->_db->Quote(Factory::getLanguage()->getTag()).','.$this->_db->Quote('*').')';
|
|
}
|
|
$where = (count($where) ? ' WHERE '. implode(' AND ', $where) : '');
|
|
$query = 'SELECT a.*'
|
|
.' FROM #__phocamaps_map AS a'
|
|
.' ' . $where;
|
|
$this->_db->setQuery($query);
|
|
$this->_data['map'] = $this->_db->loadObject();
|
|
|
|
// Marker
|
|
$where = array();
|
|
$where[] = 'c.id = '.(int) $this->_id;
|
|
$where[] = 'a.published = 1';
|
|
|
|
if ($this->getState('filter.language')) {
|
|
$where[] = 'a.language IN ('.$this->_db->Quote(Factory::getLanguage()->getTag()).','.$this->_db->Quote('*').')';
|
|
}
|
|
$where = (count($where) ? ' WHERE '. implode(' AND ', $where) : '');
|
|
|
|
$query = 'SELECT a.*, i.id as iconid, i.url as iurl, i.urls as iurls, i.object as iobject, i.objects as iobjects, i.objectshape as iobjectshape'
|
|
.' FROM #__phocamaps_marker AS a'
|
|
.' LEFT JOIN #__phocamaps_map AS c ON c.id = a.catid '
|
|
.' LEFT JOIN #__phocamaps_icon AS i ON i.id = a.iconext '
|
|
.' ' . $where
|
|
.' ORDER BY a.ordering ASC';
|
|
$this->_db->setQuery($query);
|
|
$this->_data['marker'] = $this->_db->loadObjectList();
|
|
|
|
return (boolean) $this->_data;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
|
|
function _initData() {
|
|
if (empty($this->_data)) {
|
|
$this->_data = '';
|
|
return (boolean) $this->_data;
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
?>
|