553 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			553 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /*
 | |
|  * @package		Joomla.Framework
 | |
|  * @copyright	Copyright (C) 2005 - 2010 Open Source Matters, Inc. All rights reserved.
 | |
|  * @license		GNU General Public License version 2 or later; see LICENSE.txt
 | |
|  *
 | |
|  * @component Phoca Component
 | |
|  * @copyright Copyright (C) Jan Pavelka www.phoca.cz
 | |
|  * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License version 2 or later;
 | |
|  */
 | |
| defined('_JEXEC') or die();
 | |
| use Joomla\CMS\MVC\Model\AdminModel;
 | |
| use Joomla\CMS\Factory;
 | |
| use Joomla\CMS\Table\Table;
 | |
| use Joomla\CMS\Component\ComponentHelper;
 | |
| use Joomla\CMS\Filesystem\File;
 | |
| use Joomla\CMS\Language\Text;
 | |
| use Joomla\CMS\Router\Route;
 | |
| use Joomla\CMS\Filesystem\Folder;
 | |
| use Joomla\CMS\Filesystem\Path;
 | |
| use Joomla\CMS\Object\CMSObject;
 | |
| 
 | |
| jimport('joomla.application.component.modeladmin');
 | |
| jimport('joomla.filesystem.folder');
 | |
| jimport('joomla.filesystem.file');
 | |
| phocagalleryimport('phocagallery.file.filefolderlist');
 | |
| setlocale(LC_ALL, 'C.UTF-8', 'C');
 | |
| 
 | |
| class PhocaGalleryCpModelPhocaGalleryM extends AdminModel
 | |
| {
 | |
| 	protected $option 			= 'com_phocagallery';
 | |
| 	protected $text_prefix		= 'com_phocagallery';
 | |
| 	public 		$typeAlias 		= 'com_phocagallery.phocagallerym';
 | |
| 
 | |
| 	protected $imageCount		= 0;
 | |
| 	protected $categoryCount	= 0;
 | |
| 	protected $firstImageFolder	= '';
 | |
| 
 | |
| 	function __construct() {
 | |
| 		$this->imageCount 		= 0;
 | |
| 		$this->categoryCount 	= 0;
 | |
| 		$this->firstImageFolder	= '';
 | |
| 		parent::__construct();
 | |
| 	}
 | |
| 
 | |
| 	public function getForm($data = array(), $loadData = true) {
 | |
| 
 | |
| 		$form 	= $this->loadForm('com_phocagallery.phocagallerym', 'phocagallerym', array('control' => 'jform', 'load_data' => $loadData));
 | |
| 		if (empty($form)) {
 | |
| 			return false;
 | |
| 		}
 | |
| 		return $form;
 | |
| 	}
 | |
| 
 | |
| 	protected function canDelete($record)
 | |
| 	{
 | |
| 		$user = Factory::getUser();
 | |
| 
 | |
| 		if (!empty($record->catid)) {
 | |
| 			return $user->authorise('core.delete', 'com_phocagallery.phocagalleryimg.'.(int) $record->catid);
 | |
| 		} else {
 | |
| 			return parent::canDelete($record);
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	protected function canEditState($record)
 | |
| 	{
 | |
| 		$user = Factory::getUser();
 | |
| 
 | |
| 		if (!empty($record->catid)) {
 | |
| 			return $user->authorise('core.edit.state', 'com_phocagallery.phocagalleryimg.'.(int) $record->catid);
 | |
| 		} else {
 | |
| 			return parent::canEditState($record);
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	public function getTable($type = 'PhocaGallery', $prefix = 'Table', $config = array())
 | |
| 	{
 | |
| 		return Table::getInstance($type, $prefix, $config);
 | |
| 	}
 | |
| 
 | |
| 
 | |
| 
 | |
| 	protected function loadFormData()
 | |
| 	{
 | |
| 		// Check the session for previously entered form data.
 | |
| 		$data = Factory::getApplication()->getUserState('com_phocagallerym.edit.phocagallerym.data', array());
 | |
| 
 | |
| 		if (empty($data)) {
 | |
| 			$data = $this->getItem();
 | |
| 		}
 | |
| 
 | |
| 		return $data;
 | |
| 	}
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 	/*function &getData() {
 | |
| 		$this->_initData();
 | |
| 		return $this->_data;
 | |
| 	}*/
 | |
| 
 | |
| 	/*
 | |
| 	 * - If we add only image, then the thumbnail creation will be run
 | |
| 	 * - If we add folder with image, we need to know the first image in the folder
 | |
| 	 *   to run thumbnail creating (PhocaGalleryFileThumbnail::getOrCreateThumbnail())
 | |
| 	 */
 | |
| 	function setFirstImageFolder($filename) {
 | |
| 		$this->firstImageFolder = $filename;
 | |
| 	}
 | |
| 
 | |
| 	function setImageCount($count) {
 | |
| 		$this->imageCount = $this->imageCount + $count;
 | |
| 	}
 | |
| 
 | |
| 	function setCategoryCount($count) {
 | |
| 		$this->categoryCount = $this->categoryCount + $count;
 | |
| 	}
 | |
| 
 | |
| 
 | |
| 	function save($data) {
 | |
| 		$app	= Factory::getApplication();
 | |
| 
 | |
| 		$foldercid	= Factory::getApplication()->input->get('foldercid', array(), 'raw');
 | |
| 		$cid	= Factory::getApplication()->input->get('cid', 0, 'raw');
 | |
| 		$data	= Factory::getApplication()->input->get('jform', array(0), 'post', 'array');
 | |
| 
 | |
| 
 | |
| 		if(isset($foldercid)) {
 | |
| 			$data['foldercid']	= $foldercid;
 | |
| 		} else {
 | |
| 			$data['foldercid']	= array();
 | |
| 		}
 | |
| 		if(isset($cid)) {
 | |
| 			$data['cid']		= $cid;
 | |
| 		} else {
 | |
| 			$data['cid']	= array();
 | |
| 		}
 | |
| 
 | |
| 		if (isset($data['catid']) && (int)$data['catid'] > 0) {
 | |
| 			$data['catid']		= (int)$data['catid'];
 | |
| 		} else {
 | |
| 			$data['catid']		= 0;
 | |
| 		}
 | |
| 
 | |
| 		//Params
 | |
| 		$params				= ComponentHelper::getParams( 'com_phocagallery' );
 | |
| 		$clean_thumbnails 	= $params->get( 'clean_thumbnails', 0 );
 | |
| 
 | |
| 		//Get folder variables from Helper
 | |
| 		$path 			= PhocaGalleryPath::getPath();
 | |
| 		$origPath 		= $path->image_abs;
 | |
| 		$origPathServer = str_replace('\\', '/', $path->image_abs);
 | |
| 
 | |
| 		// Cache all existing categories
 | |
| 		$query = 'SELECT id, title, parent_id'
 | |
| 	    . ' FROM #__phocagallery_categories' ;
 | |
| 		$this->_db->setQuery( $query );
 | |
| 	    $existingCategories = $this->_db->loadObjectList() ;
 | |
| 
 | |
| 		// Cache all existing images
 | |
| 		$query = 'SELECT catid, filename'
 | |
| 	    . ' FROM #__phocagallery';
 | |
| 		$this->_db->setQuery( $query );
 | |
| 	    $existingImages = $this->_db->loadObjectList() ;
 | |
| 
 | |
| 		$result = new stdClass();
 | |
| 		$result->category_count = 0;
 | |
| 		$result->image_count 	= 0;
 | |
| 		$i = 1;
 | |
| 
 | |
| 		// Category will be saved - Images will be saved in recursive function
 | |
| 		if (isset($data['foldercid'])) {
 | |
| 			foreach ($data['foldercid'] as $foldername) {
 | |
| 				if (strlen($foldername) > 0) {
 | |
| 					$fullPath 		= $path->image_abs.$foldername;
 | |
| 					$result 		= $this->_createCategoriesRecursive( $origPathServer, $fullPath, $existingCategories, $existingImages, $data['catid'], $data );
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		// Only Imagees will be saved
 | |
| 		if (isset($data['cid']) && !empty($data['cid'])) {
 | |
| 			foreach ($data['cid'] as $filename) {
 | |
| 				if ($filename) {
 | |
| 					$ext = strtolower(File::getExt($filename));
 | |
| 					// Don't create thumbnails from defined files (don't save them into a database)...
 | |
| 					$dontCreateThumb	= PhocaGalleryFileThumbnail::dontCreateThumb ($filename);
 | |
| 					if ($dontCreateThumb == 1) {
 | |
| 						$ext = '';// WE USE $ext FOR NOT CREATE A THUMBNAIL CLAUSE
 | |
| 					}
 | |
| 					if ($ext == 'jpg' || $ext == 'png' || $ext == 'gif' || $ext == 'jpeg' || $ext == 'webp' || $ext == 'avif') {
 | |
| 
 | |
| 						$row = $this->getTable('phocagallery');
 | |
| 
 | |
| 						$datam = array();
 | |
| 						$datam['published']		= $data['published'];
 | |
| 						$datam['catid']			= $data['catid'];
 | |
| 						$datam['approved']		= $data['approved'];
 | |
| 						$datam['language']		= $data['language'];
 | |
| 						$datam['filename']		= $filename;
 | |
| 
 | |
| 						if ($data['title']	!= '') {
 | |
| 
 | |
| 							$datam['title']		= $data['title'];
 | |
| 							$datam['title']		= str_replace('{###}', str_pad((string)$i, 3, '0', STR_PAD_LEFT), $datam['title']);
 | |
| 							$datam['title']		= str_replace('{##}', str_pad((string)$i, 2, '0', STR_PAD_LEFT), $datam['title']);
 | |
| 							$datam['title']		= str_replace('{#}', $i, $datam['title']);
 | |
| 						} else {
 | |
| 							$datam['title']		= PhocaGalleryFile::getTitleFromFile($filename);
 | |
| 						}
 | |
| 
 | |
| 						if ($data['alias']	!= '') {
 | |
| 							$datam['alias']		= $data['alias'];
 | |
| 						} else {
 | |
| 							$datam['alias']		= $datam['title'];//PhocaGalleryText::getAliasName($datam['title']);
 | |
| 						}
 | |
| 
 | |
| 						$datam['imgorigsize'] 	= PhocaGalleryFile::getFileSize($datam['filename'], 0);
 | |
| 						$datam['format'] 		= PhocaGalleryFile::getFileFormat($datam['filename']);
 | |
| 
 | |
| 
 | |
| 						// Geo
 | |
| 						phocagalleryimport('phocagallery.geo.geo');
 | |
| 						$coords = PhocaGalleryGeo::getGeoCoords($datam['filename']);
 | |
| 						$datam['longitude'] = $coords['longitude'];
 | |
| 						$datam['latitude'] = $coords['latitude'];
 | |
| 						if ($datam['latitude'] != '' && $datam['longitude'] != ''){
 | |
| 							$datam['zoom'] = PhocaGallerySettings::getAdvancedSettings('geozoom');
 | |
| 						}
 | |
| 
 | |
| 
 | |
| 
 | |
| 						// Save
 | |
| 						// Bind the form fields to the Phoca gallery table
 | |
| 						if (!$row->bind($datam)) {
 | |
| 							$this->setError($row->getError());
 | |
| 							return false;
 | |
| 						}
 | |
| 
 | |
| 						// Create the timestamp for the date
 | |
| 						$row->date = gmdate('Y-m-d H:i:s');
 | |
| 
 | |
| 						// if new item, order last in appropriate group
 | |
| 
 | |
| 						if (!$row->id) {
 | |
| 							$where = 'catid = ' . (int) $row->catid ;
 | |
| 							$row->ordering = $row->getNextOrder( $where );
 | |
| 						}
 | |
| 
 | |
| 
 | |
| 						// Make sure the Phoca gallery table is valid
 | |
| 						if (!$row->check()) {
 | |
| 							$this->setError($row->getError());
 | |
| 							return false;
 | |
| 						}
 | |
| 
 | |
| 						// Store the Phoca gallery table to the database
 | |
| 						if (!$row->store()) {
 | |
| 							$this->setError($row->getError());
 | |
| 							return false;
 | |
| 						}
 | |
| 						$result->image_count++;
 | |
| 						$i++;
 | |
| 					}
 | |
| 				}
 | |
| 
 | |
| 			}
 | |
| 			$this->setImageCount($result->image_count);
 | |
| 
 | |
| 		}
 | |
| 
 | |
| 
 | |
| 		// - - - - - - - - - - - - - - - - -
 | |
| 		//Create thumbnail small, medium, large
 | |
| 		//file - abc.img, file_no - folder/abc.img
 | |
| 		//Get folder variables from Helper
 | |
| 		//	$refresh_url 	= 'index.php?option=com_phocagallery&task=phocagalleryimg.thumbs';
 | |
| 
 | |
| 		$msg = $this->categoryCount. ' ' .Text::_('COM_PHOCAGALLERY_CATEGORIES_ADDED') .', '.$this->imageCount. ' ' . Text::_('COM_PHOCAGALLERY_IMAGES_ADDED');
 | |
| 		$app->enqueueMessage($msg);
 | |
| 		$app->redirect(Route::_('index.php?option=com_phocagallery&view=phocagalleryimgs&countimg='.$this->imageCount.'&imagesid='.md5(time()), false));
 | |
| 
 | |
| 		// Only image without folder was added to the system
 | |
| 		if (isset($row->filename) && $row->filename != '') {
 | |
| 			$fileNameThumb 	= $row->filename;
 | |
| 		} else if ($this->firstImageFolder != '') {
 | |
| 			$fileNameThumb	= $this->firstImageFolder;
 | |
| 		} else {
 | |
| 			$fileNameThumb = '';
 | |
| 		}
 | |
| 
 | |
| 		if ($fileNameThumb != '') {
 | |
| 
 | |
| 			$refresh_url 	= 'index.php?option=com_phocagallery&view=phocagalleryimgs&countimg='.$this->imageCount;
 | |
| 			$fileThumb 		= PhocaGalleryFileThumbnail::getOrCreateThumbnail($fileNameThumb, $refresh_url, 1, 1, 1);
 | |
| 		}
 | |
| 
 | |
| 		//Clean Thumbs Folder if there are thumbnail files but not original file
 | |
| 		if ($clean_thumbnails == 1) {
 | |
| 			PhocaGalleryFileFolder::cleanThumbsFolder();
 | |
| 		}
 | |
| 		// - - - - - - - - - - - - - - - - -
 | |
| 
 | |
| 		return true;
 | |
| 
 | |
| 	}
 | |
| 
 | |
| 	protected function _getCategoryId( &$existingCategories, &$title, $parentId ) {
 | |
| 	    $id = -1 ;
 | |
| 		$i 	= 0;
 | |
| 		$count = count($existingCategories);
 | |
| 		while ( $id == -1 && $i < $count ) {
 | |
| 
 | |
| 			if ( $existingCategories[$i]->title == $title &&
 | |
| 			     $existingCategories[$i]->parent_id == $parentId ) {
 | |
| 				$id = $existingCategories[$i]->id ;
 | |
| 			}
 | |
| 			$i++;
 | |
| 		}
 | |
| 		return $id ;
 | |
| 	}
 | |
| 
 | |
| 	protected function _ImageExist( &$existing_image, &$filename, $catid ) {
 | |
| 	    $result = false ;
 | |
| 		$i 		= 0;
 | |
| 		$count = count($existing_image);
 | |
| 
 | |
| 		while ( $result == false && $i < $count ) {
 | |
| 			if ( $existing_image[$i]->filename == $filename &&
 | |
| 			     $existing_image[$i]->catid == $catid ) {
 | |
| 				$result = true;
 | |
| 			}
 | |
| 			$i++;
 | |
| 		}
 | |
| 		return $result;
 | |
| 	}
 | |
| 
 | |
| 	protected function _addAllImagesFromFolder(&$existingImages, $category_id, $fullPath, $rel_path, $data = array()) {
 | |
| 		$count = 0;
 | |
| 		$i = 1;
 | |
| 		$fileList = Folder::files( $fullPath );
 | |
| 		natcasesort($fileList);
 | |
| 		// Iterate over the files if they exist
 | |
| 		//file - abc.img, file_no - folder/abc.img
 | |
| 
 | |
| 		if ($fileList !== false) {
 | |
| 			foreach ($fileList as $filename) {
 | |
| 			    $storedfilename	= ltrim(str_replace('\\', '/', Path::clean($rel_path . '/'. $filename )), '/');
 | |
| 				$ext = strtolower(File::getExt($filename));
 | |
| 				// Don't create thumbnails from defined files (don't save them into a database)...
 | |
| 				$dontCreateThumb	= PhocaGalleryFileThumbnail::dontCreateThumb ($filename);
 | |
| 				if ($dontCreateThumb == 1) {
 | |
| 					$ext = '';// WE USE $ext FOR NOT CREATE A THUMBNAIL CLAUSE
 | |
| 				}
 | |
| 				if ($ext == 'jpg' || $ext == 'png' || $ext == 'gif' || $ext == 'jpeg' || $ext == 'webp' || $ext == 'avif') {
 | |
| 					if (File::exists($fullPath. '/'. $filename) &&
 | |
| 					    substr($filename, 0, 1) != '.' &&
 | |
| 						strtolower($filename) !== 'index.html' &&
 | |
| 						!$this->_ImageExist($existingImages, $storedfilename, $category_id) ) {
 | |
| 
 | |
| 						$row = $this->getTable('phocagallery');
 | |
| 
 | |
| 						$datam = array();
 | |
| 						$datam['published']		= $data['published'];
 | |
| 						$datam['catid']			= $category_id;
 | |
| 						$datam['filename']		= $storedfilename;
 | |
| 						$datam['approved']		= $data['approved'];
 | |
| 						$datam['language']		= $data['language'];
 | |
| 						if ($data['title']	!= '') {
 | |
| 							$datam['title']		= $data['title'];
 | |
| 
 | |
| 							$datam['title']		= str_replace('{###}', str_pad((string)$i, 3, '0', STR_PAD_LEFT), $datam['title']);
 | |
| 							$datam['title']		= str_replace('{##}', str_pad((string)$i, 2, '0', STR_PAD_LEFT), $datam['title']);
 | |
| 							$datam['title']		= str_replace('{#}', $i, $datam['title']);
 | |
| 						} else {
 | |
| 							$datam['title']		= PhocaGalleryFile::getTitleFromFile($filename);
 | |
| 						}
 | |
| 
 | |
| 						if ($data['alias']	!= '') {
 | |
| 							$datam['alias']		= $data['alias'];
 | |
| 						} else {
 | |
| 							$datam['alias']		= $datam['title'];//PhocaGalleryText::getAliasName($datam['title']);
 | |
| 						}
 | |
| 						$datam['imgorigsize'] 	= PhocaGalleryFile::getFileSize($datam['filename'], 0);
 | |
| 						$datam['format'] 		= PhocaGalleryFile::getFileFormat($datam['filename']);
 | |
| 						// Geo
 | |
| 						phocagalleryimport('phocagallery.geo.geo');
 | |
| 						$coords = PhocaGalleryGeo::getGeoCoords($datam['filename']);
 | |
| 						$datam['longitude'] = $coords['longitude'];
 | |
| 						$datam['latitude'] = $coords['latitude'];
 | |
| 						if ($datam['latitude'] != '' && $datam['longitude'] != ''){
 | |
| 							$datam['zoom'] = PhocaGallerySettings::getAdvancedSettings('geozoom');
 | |
| 						}
 | |
| 
 | |
| 						// Save
 | |
| 						// Bind the form fields to the Phoca gallery table
 | |
| 						if (!$row->bind($datam)) {
 | |
| 							$this->setError($row->getError());
 | |
| 							return false;
 | |
| 						}
 | |
| 
 | |
| 						// Create the timestamp for the date
 | |
| 						$row->date = gmdate('Y-m-d H:i:s');
 | |
| 
 | |
| 						// if new item, order last in appropriate group
 | |
| 						if (!$row->id) {
 | |
| 							$where = 'catid = ' . (int) $row->catid ;
 | |
| 							$row->ordering = $row->getNextOrder( $where );
 | |
| 						}
 | |
| 
 | |
| 						// Make sure the Phoca gallery table is valid
 | |
| 						if (!$row->check()) {
 | |
| 							$this->setError($row->getError());
 | |
| 							return false;
 | |
| 						}
 | |
| 
 | |
| 						// Store the Phoca gallery table to the database
 | |
| 						if (!$row->store()) {
 | |
| 							$this->setError($row->getError());
 | |
| 							return false;
 | |
| 						}
 | |
| 
 | |
| 						if ($this->firstImageFolder == '') {
 | |
| 							$this->setFirstImageFolder($row->filename);
 | |
| 						}
 | |
| 
 | |
| 						$image 				= new CMSObject();
 | |
| 					    $image->filename 	= $storedfilename ;
 | |
| 					    $image->catid 		= $category_id;
 | |
| 					    $existingImages[] 	= &$image ;
 | |
| 						$count++ ;
 | |
| 						$i++;
 | |
| 					}
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 	//	$this->setImageCount($count);
 | |
| 		return $count;
 | |
| 	}
 | |
| 
 | |
| 	protected function _createCategoriesRecursive(&$origPathServer, $path, &$existingCategories, &$existingImages, $parentId = 0, $data = array() ) {
 | |
| 
 | |
| 		$totalresult = new stdClass();
 | |
| 		$totalresult->image_count 		= 0 ;
 | |
| 		$totalresult->category_count	= 0 ;
 | |
| 
 | |
| 		$categoryName 	= basename($path);
 | |
| 		$id 			= $this->_getCategoryId( $existingCategories, $categoryName, $parentId ) ;
 | |
| 		$category 		= null;
 | |
| 
 | |
| 		// Full path: eg. "/home/www/joomla/images/categ/subcat/"
 | |
| 		$fullPath	   	= str_replace('\\', '/', Path::clean('/' . $path));
 | |
| 		// Relative path eg "categ/subcat"
 | |
| 		$relativePath 	= str_replace($origPathServer, '', $fullPath);
 | |
| 
 | |
| 		// Category doesn't exist
 | |
| 		if ( $id == -1 ) {
 | |
| 		  $row = $this->getTable('phocagalleryc');
 | |
| 		  $row->published 	= $data['published'];
 | |
| 		  $row->approved	= $data['approved'];
 | |
| 		  $row->language	= $data['language'];
 | |
| 		  $row->parent_id 	= $parentId;
 | |
| 		  $row->title 		= $categoryName;
 | |
| 
 | |
| 		  // Create the timestamp for the date
 | |
| 		  $row->date 		= gmdate('Y-m-d H:i:s');
 | |
| 		 // $row->alias 		= PhocaGalleryText::getAliasName($categoryName);
 | |
| 		  $row->userfolder	= ltrim(str_replace('\\', '/', Path::clean($relativePath )), '/');
 | |
| 		  $row->ordering 	= $row->getNextOrder( "parent_id = " . $this->_db->Quote($row->parent_id) );
 | |
| 
 | |
| 		  if (!$row->check()) {
 | |
| 
 | |
| 			throw new Exception('Check Problem', 500);
 | |
| 		  }
 | |
| 
 | |
| 		  if (!$row->store()) {
 | |
| 
 | |
| 			throw new Exception('Store Problem', 500);
 | |
| 		  }
 | |
| 
 | |
| 		  $category 			= new CMSObject();
 | |
| 		  $category->title 		= $categoryName ;
 | |
| 		  $category->parent_id 	= $parentId;
 | |
| 		  $category->id 		= $row->id;
 | |
| 		  $totalresult->category_count++;
 | |
| 		  $id = $category->id;
 | |
| 		  $existingCategories[] = &$category ;
 | |
| 		  $this->setCategoryCount(1);//This subcategory was added
 | |
| 		}
 | |
| 
 | |
| 
 | |
| 
 | |
| 		// Add all images from this folder
 | |
| 		$totalresult->image_count += $this->_addAllImagesFromFolder( $existingImages, $id, $path, $relativePath, $data );
 | |
| 		$this->setImageCount($totalresult->image_count);
 | |
| 
 | |
| 		// Do sub folders
 | |
| 		$parentId 		= $id;
 | |
| 		$folderList 	= Folder::folders( $path, $filter = '.', $recurse = false, $fullpath = true, $exclude = array('thumbs') );
 | |
| 		// Iterate over the folders if they exist
 | |
| 		if ($folderList !== false) {
 | |
| 			foreach ($folderList as $folder) {
 | |
| 				//$this->setCategoryCount(1);//This subcategory was added
 | |
| 				$folderName = $relativePath .'/' . str_replace($origPathServer, '', $folder);
 | |
| 				$result = $this->_createCategoriesRecursive( $origPathServer, $folder, $existingCategories, $existingImages, $id , $data);
 | |
| 				$totalresult->image_count += $result->image_count ;
 | |
| 				$totalresult->category_count += $result->category_count ;
 | |
| 			}
 | |
| 		}
 | |
| 		return $totalresult ;
 | |
| 	}
 | |
| 
 | |
| 
 | |
| 	/*
 | |
| 	 * Images
 | |
| 	 */
 | |
| 	function getFolderState($property = null) {
 | |
| 		static $set;
 | |
| 
 | |
| 		if (!$set) {
 | |
| 			$folder = Factory::getApplication()->input->get( 'folder', '', '', 'path' );
 | |
| 			$this->setState('folder', $folder);
 | |
| 
 | |
| 			$parent = str_replace("\\", "/", dirname($folder));
 | |
| 			$parent = ($parent == '.') ? null : $parent;
 | |
| 			$this->setState('parent', $parent);
 | |
| 			$set = true;
 | |
| 		}
 | |
| 		return parent::getState($property);
 | |
| 	}
 | |
| 
 | |
| 	function getImages() {
 | |
| 		$refreshUrl = 'index.php?option=com_phocagallery&view=phocagalleryi&tmpl=component';
 | |
| 		$list = PhocaGalleryFileFolderList::getList(0,0,0,$refreshUrl);
 | |
| 		return $list['Images'];
 | |
| 	}
 | |
| 
 | |
| 	function getFolders() {
 | |
| 		$refreshUrl = 'index.php?option=com_phocagallery&view=phocagalleryi&tmpl=component';
 | |
| 		$list = PhocaGalleryFileFolderList::getList(0,0,0,$refreshUrl);
 | |
| 		return $list['folders'];
 | |
| 	}
 | |
| 
 | |
| }
 | |
| ?>
 |