<?php
/*
 * @package Joomla
 * @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
 */
defined('_JEXEC') or die();
use Joomla\CMS\MVC\Model\BaseDatabaseModel;
use Joomla\CMS\Factory;
use Joomla\CMS\Object\CMSObject;
jimport('joomla.application.component.model');

class PhocaGalleryCpModelPhocaGalleryD extends BaseDatabaseModel
{
	protected $id;
	protected $data;
	
	public function __construct() {
		parent::__construct();
		$id = Factory::getApplication()->input->get('id',  0, '', 'int');
		$this->setId((int)$id);
	}

	protected function setId($id) {
		$this->id		= $id;
		$this->data		= null;
	}

	public function getData() {
		if (!$this->loadData()) {
			$this->initData();
		}
		return $this->data;
	}
	
	function loadData() {
		if (empty($this->data)) {
			$query = 'SELECT a.*' .
					' FROM #__phocagallery AS a' .
					' WHERE a.id = '.(int) $this->id;
			$this->_db->setQuery($query);
			
			$fileObject = $this->_db->loadObject();
			
			$file 	= new CMSObject();

			$refresh_url = 'index.php?option=com_phocagallery&view=phocagalleryd&tmpl=component&id='.(int)$this->id;
			
			//Creata thumbnails if not exist
			PhocaGalleryFileThumbnail::getOrCreateThumbnail($fileObject->filename, $refresh_url, 1, 1, 1);
			
			jimport( 'joomla.filesystem.file' );
			if (!isset($fileObject->filename)) {					
				$file->set('linkthumbnailpath', '');			
			} else {
				$thumbFile = PhocaGalleryFileThumbnail::getThumbnailName ($fileObject->filename, 'large');
				$file->set('linkthumbnailpath', $thumbFile->rel);
				$file->set('extid', $fileObject->extid);
				$file->set('extl', $fileObject->extl);
				$file->set('extw', $fileObject->extw);
				$file->set('exth', $fileObject->exth);
			}
				
			$this->data = $file;
			return (boolean) $this->data;
		}
		return true;
	}
	
	protected function initData() {
		if (empty($this->data)) {
			$this->data	= '';
			return (boolean) $this->data;
		}
		return true;
	}	
}
?>
