get('type', 'image', 'string');
$imagespath = ACCORDEONMENUCK_MEDIA_URL .'/images/';
$returnFunc = $input->get('func', 'ckSelectFile', 'cmd');
$returnField = $input->get('field', '', 'string');
switch ($type) {
case 'video' :
$fileicon = 'file_video.png';
break;
case 'audio' :
$fileicon = 'file_audio.png';
break;
case 'image' :
default :
$fileicon = 'file_image.png';
break;
}
ob_start();
?>
get('fieldid', '', 'string') . '\',$ck(this).attr(\'data-path\'))';
} else {
$onclick = 'ckShowFiles(this)';
}
$lastitem = 0;
foreach ($items as $i => $folder) {
$submenustyle = '';
$folderclass = '';
if ($folder->level == 1) {
$submenustyle = 'display: block;';
$folderclass = 'ckcurrent';
}
?>
level > 1) { ?>

name); ?>
files); ?>
files as $j => $file) {
?>
deeper)
{
echo '
';
}
elseif ($folder->shallower)
{
// The next item is shallower.
echo '
'; // close ckfoldertree
echo str_repeat('
', $folder->level_diff); // close cksubfolder + ckfoldertree
}
else
{
// The next item is on the same level.
echo '
'; // close ckfoldertree
}
}
?>
get('type', $type, 'string');
switch ($type) {
case 'video' :
$filetypes = array('.mp4', '.ogv', '.webm', '.MP4', '.OGV', '.WEBM');
break;
case 'audio' :
$filetypes = array('.mp3', '.ogg', '.MP3', '.OGG');
break;
case 'image' :
default :
$filetypes = array('.jpg', '.jpeg', '.png', '.gif', '.tiff', '.JPG', '.JPEG', '.PNG', '.GIF', '.TIFF', '.ico');
break;
}
$folder = $input->get('folder', WP_CONTENT_DIR. '/uploads', 'string');
$tree = new \stdClass();
// list the files in the root folder
self::getImagesInFolder( $folder, $tree, implode('|', $filetypes), 1);
// look for all folder and files
self::getSubfolder($folder, $tree, implode('|', $filetypes), 2);
$tree = self::prepareList($tree);
return $tree;
}
/*
* List the subfolders and files according to the filter
*/
private static function getSubfolder($folder, &$tree, $filter, $level) {
$folders = CKFolder::folders($folder, '.', $recurse = false, $fullpath = true);
natcasesort($folders);
if (! count($folders)) return;
foreach ($folders as $f) {
// list all authorized files from the folder
self::getImagesInFolder($f, $tree, $filter, $level);
// recursive loop
self::getSubfolder($f, $tree, $filter, $level+1);
}
return;
}
/*
* List the subfolders and files according to the filter
*/
private static function getImagesInFolder($f, &$tree, $filter, $level) {
// list all authorized files from the folder
$files = CKFolder::files($f, $filter, $recurse = false, $fullpath = false);
natcasesort($files);
$fName = CKFile::makeSafe(str_replace(ABSPATH, '', $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;
}
/*
* Set level diff and check for depth
*/
private static function prepareList($items) {
if (! $items) return $items;
$lastitem = 0;
foreach ($items as $i => $item)
{
self::prepareItem($item);
if ($item->level != 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;
}
// for the last item
if (isset($items->$lastitem))
{
$items->$lastitem->deeper = (1 > $items->$lastitem->level);
$items->$lastitem->shallower = (1 < $items->$lastitem->level);
$items->$lastitem->level_diff = ($item->level - 1);
}
return $items;
}
/*
* Set the default values
*/
private static function prepareItem(&$item) {
$item->deeper = false;
$item->shallower = false;
$item->level_diff = 0;
$item->basepath = str_replace('\\', '/', $item->path);
$abspath = str_replace('\\', '/', ABSPATH);
$item->basepath = str_replace($abspath, '', $item->basepath);
$item->basepath = trim($item->basepath, '/');
}
/**
* Get the file and store it on the server
*
* @return mixed, the method return
*/
public static function ajaxAddPicture() {
// check why it does not work
// if (! JSession::checkToken('get')) {
// $msg = __('JINVALID_TOKEN');
// echo '{"error" : "' . $msg . '"}';
// exit;
// }
$input = self::$input;
$file = $input->files->get('file', '', 'array');
$imgpath = '/' . trim($input->get('path', '', 'string'), '/') . '/';
if (!is_array($file)) {
$msg = __('No file received', 'slideshow-ck');
echo '{"error" : "' . $msg . '"}';
exit;
}
$filename = CKFile::makeSafe($file['name']);
//Set up the source and destination of the file
$src = $file['tmp_name'];
// check if the file exists
if (!$src || !CKFile::exists($src)) {
$msg = __('File does not exists', 'slideshow-ck');
echo '{"error" : "' . $msg . '"}';
exit;
}
// check if folder exists, if not then create it
if (!CKFolder::exists(ABSPATH . $imgpath)) {
if (!CKFolder::create(ABSPATH . $imgpath)) {
$msg = __('Unable to create the folder', 'slideshow-ck') . ' : ' . $imgpath;
echo '{"error" : "' . $msg . '"}';
exit;
}
}
// write the file
if (! CKFile::copy($src, ABSPATH . $imgpath . $filename)) {
$msg = __('Unable to write the file', 'slideshow-ck');
echo '{"error" : "' . $msg . '"}';
exit;
}
echo '{"img" : "' . $imgpath . $filename . '", "filename" : "' . $filename . '"}';
exit;
}
}