| Server IP : 46.105.57.169 / Your IP : 216.73.216.144 Web Server : Apache System : Linux webd003.cluster120.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 : maitricfuz ( 93378) PHP Version : 8.4.10 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/maitricfuz/www/new-saint-martin/administrator/components/com_templateck/models/ |
Upload File : |
<?php
/**
* @name Template Creator CK
* @copyright Copyright (C) since 2011. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
* @author Cedric Keiflin - https://www.template-creator.com - https://www.joomlack.fr
*/
defined('TCK_LOADED') or die;
use Templatecreatorck\CKModel;
class TemplateckModelBrowse extends CKModel {
public function __construct() {
parent::__construct();
}
/*
* Get a list of folders and files
*/
public function getItemsList($type = 'image') {
$input = \Joomla\CMS\Factory::getApplication()->input;
$type = $input->get('type', $type, 'string');
switch ($type) {
case 'video' :
$filetypes = array('.mp4', '.ogv', '.webm');
break;
case 'audio' :
$filetypes = array('.mp3', '.ogg');
break;
case 'image' :
default :
$filetypes = array('.jpg', '.jpeg', '.png', '.gif', '.tiff', '.webp');
break;
}
$folder = $input->get('folder', 'images', 'string');
$tree = new stdClass();
// look for all folder and files
$this->getSubfolder(JPATH_SITE . '/' . $folder, $tree, implode('|', $filetypes), 1);
$tree = $this->prepareList($tree);
return $tree;
}
/*
* List the subfolders and files according to the filter
*/
private function getSubfolder($folder, &$tree, $filter, $level) {
$folders = \Joomla\CMS\Filesystem\Folder::folders($folder, '.', $recurse = false, $fullpath = true);
if (! count($folders)) return;
foreach ($folders as $f) {
// list all authorized files from the folder
$files = \Joomla\CMS\Filesystem\Folder::files($f, $filter, $recurse = false, $fullpath = false);
$fName = \Joomla\CMS\Filesystem\File::makeSafe($f);
$tree->$fName = new stdClass();
$name = explode('/', $f);
$name = end($name);
$tree->$fName->name = $name;
$tree->$fName->path = $f;
$tree->$fName->files = $files;
$tree->$fName->level = $level;
// recursive loop
$this->getSubfolder($f, $tree, $filter, $level+1);
}
return;
}
/*
* Set level diff and check for depth
*/
private function prepareList($items) {
if (! $items) return $items;
$lastitem = 0;
foreach ($items as $i => $item)
{
$item->deeper = false;
$item->shallower = false;
$item->level_diff = 0;
if (isset($items->$lastitem))
{
$items->$lastitem->deeper = ($item->level > $items->$lastitem->level);
$items->$lastitem->shallower = ($item->level < $items->$lastitem->level);
$items->$lastitem->level_diff = ($items->$lastitem->level - $item->level);
}
$lastitem = $i;
$item->basepath = str_replace(JPATH_SITE, '', $item->path);
$item->basepath = str_replace('\\', '/', $item->basepath);
$item->basepath = trim($item->basepath, '/');
}
return $items;
}
}