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; } }