function smarty_function_init_folders($params, &$smarty) { global $site, $leht, $class_path; include_once $class_path . 'adminpage.inc.php'; ############## # default values extract($params); if (!isset($name)) { $name = 'folders'; } if (!isset($parent) && !isset($parent_dir)) { # default parent for file (folder "public/"): get folder ID of "public/" $sql = $site->db->prepare("SELECT objekt_id, relative_path FROM obj_folder WHERE relative_path = ? LIMIT 1", $site->CONF['file_path']); $sth = new SQL($sql); $folder = $sth->fetch(); $parent_dir = $folder['relative_path']; $parent = $folder['objekt_id']; } elseif (isset($parent)) { # get parent folder info $parent = (int) $parent; if ($parent) { $sql = $site->db->prepare("SELECT objekt_id, relative_path FROM obj_folder WHERE objekt_id = ?", $parent); $sth = new SQL($sql); } else { return; } } elseif (isset($parent_dir)) { $parent_dir = preg_replace('#^/#', '', $parent_dir); $parent_dir = preg_replace('#/$#', '', $parent_dir); $sql = $site->db->prepare("SELECT objekt_id, relative_path FROM obj_folder WHERE relative_path = ? LIMIT 1", '/' . $parent_dir); $sth = new SQL($sql); if ($sth->rows == 1) { $folder = $sth->fetch(); $parent_dir = $folder['relative_path']; $parent = $folder['objekt_id']; } } else { return; } $folders = array(); $folders_from_fm = get_subfolders($parent); foreach ($folders_from_fm as $folder) { $obj = new stdClass(); # Bug #2318 $obj->title = $folder['title']; $obj->path = $folder['relative_path']; $obj->id = $folder['objekt_id']; # current folder ID $obj->parent_id = $folder['parent_id']; ## parent folder ID?? $obj->fullpath = $site->absolute_path . $folder['relative_path']; # absolute path of the folder $obj->file_count = $folder['file_count']; $folders[] = $obj; } $smarty->assign($name, $folders); return; }
switch ($site->fdat['sort_dir']) { case 'asc': $sort_by .= ' asc'; break; case 'desc': $sort_by .= ' desc'; break; default: $sort_by .= ' asc'; break; } $synchro = synchronise_folder($folder_id); if ($synchro === true) { $files = get_files_from_folder($folder_id, $sort_by); $files = array('total_files' => $files['total_files'], 'files' => array(1 => $files['files'])); $folders = get_subfolders($folder_id); // dont send the parent itself reset($folders); unset($folders[key($folders)]); $response = array('error' => 0, 'folder_id' => $folder_id, 'files' => $files, 'folders' => $folders); } else { $response = array('error' => 1, 'error_message' => $synchro); } echo $json_encoder->encode($response); exit; } // upload file if ($site->user->user_id && $site->fdat['op'] == 'file_upload' && (int) $site->fdat['folder_id']) { verify_form_token(); include_once $class_path . 'adminpage.inc.php'; include_once $class_path . 'custom.inc.php';
//always get public folder $parent_id = $public_folder_id; while ($parent_id) { $folder_tree += get_subfolders($parent_id); $parent_id = $folder_tree[$parent_id]['parent_id']; } // get folders starting from open folder $parent_id = $open_folder_id; while ($parent_id) { $subfolders = get_subfolders($parent_id); if (is_array($subfolders)) { $folder_tree += $subfolders; } $parent_id = $folder_tree[$parent_id]['parent_id']; } $shared_folders = get_subfolders($shared_folder_id); if (is_array($shared_folders)) { $folder_tree += $shared_folders; } // resort folder tree $folders = array(); foreach ($folder_tree as $objekt_id => $folder) { $folders[$objekt_id] = $folder['relative_path']; } asort($folders); $temp_folder_tree = $folder_tree; $folder_tree = array(); foreach ($folders as $objekt_id => $path) { $folder_tree[$objekt_id] = $temp_folder_tree[$objekt_id]; } // mark open folders
$cs_sort[6] = 'gallery_time DESC'; $cs_sort[7] = 'folders_id ASC'; $cs_sort[8] = 'folders_id DESC'; $cs_sort[9] = 'gallery_status ASC'; $cs_sort[10] = 'gallery_status DESC'; $order = $cs_sort[$sort]; $gallery_count = cs_sql_count(__FILE__, 'gallery', $where); $data['manage']['head'] = cs_subtemplate(__FILE__, $data, 'gallery', 'manage_head'); $data['head']['count'] = $gallery_count; $data['head']['pages'] = cs_pages('gallery', 'manage', $gallery_count, $start, $where_x, $sort); $data['head']['getmsg'] = cs_getmsg(); $where = ''; $status_id = ''; if (!empty($folders_id) and empty($access_id)) { $where = "gal.folders_id= '" . $folders_id . "' "; $folder_arr = get_subfolders($folders_id); if (!empty($folder_arr)) { foreach ($folder_arr as $cond) { $where .= "OR gal.folders_id = '" . $cond['folders_id'] . "' "; } } } if (!empty($access_id) and empty($folders_id)) { $where = "gal.gallery_access = '" . $access_id . "' "; } if (!empty($access_id) and !empty($folders_id)) { $where = "gal.folders_id = '" . $folders_id . "' AND gallery_access = '" . $access_id . "'"; } $where = trim($where); $access_data = array(0 => array('access_id' => '1', 'access_name' => $cs_lang['lev_1']), 1 => array('access_id' => '2', 'access_name' => $cs_lang['lev_2']), 2 => array('access_id' => '3', 'access_name' => $cs_lang['lev_3']), 3 => array('access_id' => '4', 'access_name' => $cs_lang['lev_4']), 4 => array('access_id' => '5', 'access_name' => $cs_lang['lev_5'])); $data['dropdown']['folders'] = make_folders_select('where', $folders_id, 0, 'gallery', 0);
function get_subfolders($id) { settype($id, 'integer'); $folders = cs_sql_select(__FILE__, 'folders', 'folders_id', 'sub_id = \'' . $id . '\'', 0, 0, 0); $count_folders = count($folders); for ($run = 0; $run < $count_folders; $run++) { $new_folders = get_subfolders($folders[$run]['folders_id']); if (!empty($new_folders)) { $folders = array_merge($folders, $new_folders); } } return $folders; }