예제 #1
0
 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);
 }
예제 #2
0
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));
}
예제 #3
0
 /**
  * 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");
 }
예제 #4
0
 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 "";
 }