static function select($path, $fields, $where, $order, $limit, $vars, $mfolder) { $rows = array(); $modules = select::modules(); asort($modules); foreach ($modules as $module => $name) { if ($name[0] == " ") { continue; } $file = sys_find_module($module); $row = array("id" => $file, "name" => $name, "modulename" => $module, "created" => @filectime($file), "lastmodified" => @filemtime($file), "lastmodifiedby" => "", "searchcontent" => $file, "filename" => $file, "filemtime" => @filemtime($file), "filectime" => @filectime($file), "filesize" => @filesize($file), "filecontent" => ""); if (sys_select_where($row, $where, $vars)) { $rows[$file] = $row; } } return sys_select($rows, $order, $limit, $fields); }
function folder_build_tree($visible) { $vars = array(); $sel_folder = $GLOBALS["sel_folder"]; $schemas = select::modules(); if (empty($_REQUEST["popup"])) { $where = array("(flevel<2 or parent in (@states@))", $_SESSION["permission_sql_read"]); $vars["states"] = array_filter(array_keys($_SESSION["folder_states"]), "is_numeric"); if (count($vars["states"]) == 0) { $vars["states"] = 0; } } $treelimit = 100; $treepage = 1; $tree_count = db_count("simple_sys_tree", $where, $vars); $last_treepage = ceil($tree_count / $treelimit); if ($last_treepage < 1) { $last_treepage = 1; } if (isset($_REQUEST["treepage"])) { $_SESSION["treepage"] = $_REQUEST["treepage"]; } if (isset($_SESSION["treepage"]) and $_SESSION["treepage"] > $last_treepage) { $_SESSION["treepage"] = $last_treepage; } if (isset($_SESSION["treepage"]) and is_numeric($_SESSION["treepage"]) and $_SESSION["treepage"] > 0) { $treepage = $_SESSION["treepage"]; } $tree = array(); $limit = array(($treepage - 1) * $treelimit, $treelimit); $rows = db_select("simple_sys_tree", array("*"), $where, "lft asc", $limit, $vars); if (is_array($rows) and count($rows) > 0) { _folder_process_folders($rows, $tree, 0); } $prev_treepage = $treepage <= 1 ? 1 : $treepage - 1; $next_treepage = $treepage == $last_treepage ? $last_treepage : $treepage + 1; sys::$smarty->assign("sys_schemas", $schemas); sys::$smarty->assign("tree", array("tree" => $tree, "visible" => $visible, "page" => $treepage, "lastpage" => $last_treepage, "prevpage" => $prev_treepage, "nextpage" => $next_treepage)); }
/** * Return folder create or rename form * * @param int|string $folder Folder ID or String (/Workspace/.../) * @param bool $create true for create, false for rename * @return html form */ static function folder_options($folder, $create) { self::_require_access($folder, "write"); $sel_folder = folder_build_selfolder($folder, ""); $tpl = new template(); $tpl->schemas = select::modules(); $tpl->icons = select::icons_modules(); $tpl->isdbfolder = is_numeric($folder); $tpl->style = $_SESSION["theme"]; $tpl->folder = array("name" => $sel_folder["ftitle"], "description" => $sel_folder["fdescription"], "type" => $sel_folder["ftype"], "assets" => $sel_folder["fcount"], "icon" => $sel_folder["icon"], "notification" => $sel_folder["notification"], "id" => $folder); return $tpl->render($create ? "templates/ajax_folder_create.php" : "templates/ajax_folder_rename.php"); }
static function rename($folder, $ftitle, $type, $description = null, $icon = null, $notification = null) { if (!array_key_exists($type, select::modules())) { $type = ""; } $ftitle = ltrim($ftitle, "!^/"); $row = db_select_first("simple_sys_tree", array("id", "lft", "rgt", "parent"), "id=@id@", "", array("id" => $folder)); if (isset($row["lft"])) { $duplicate = db_select_value("simple_sys_tree", "id", array("id!=@id@", "parent=@parent@", "ftitle=@ftitle@"), array("id" => $row["id"], "parent" => $row["parent"], "ftitle" => $ftitle)); if (empty($duplicate)) { $fields = array("ftitle" => $ftitle); if ($type != "") { $fields["ftype"] = $type; } if ($description !== null) { $fields["fdescription"] = $description; } if ($icon !== null) { $fields["icon"] = $icon; } if ($notification !== null) { $fields["notification"] = $notification; } db_update("simple_sys_tree", $fields, array("id=@id@"), array("id" => $folder)); db_search_update("simple_sys_tree", $folder, array(), _folder_searchtypes()); return $folder; } } return ""; }