Public Member Functions | |
ilFileSystemGUI ($a_main_directory) | |
& | executeCommand () |
execute command | |
addCommand (&$a_obj, $a_func, $a_name) | |
add command | |
labelFile ($a_file, $a_label) | |
label a file | |
activateLabels ($a_act, $a_label_header) | |
activate file labels | |
& | extCommand ($a_nr) |
call external command | |
listFiles () | |
list files | |
renameFileForm () | |
list files | |
renameFile () | |
rename a file | |
cancelRename () | |
cancel renaming a file | |
createDirectory () | |
create directory | |
uploadFile () | |
upload file | |
deleteFile () | |
delete object file | |
unzipFile () | |
delete object file | |
downloadFile () | |
delete object file | |
getTabs (&$tabs_gui) | |
get tabs | |
Data Fields | |
$ctrl |
Definition at line 32 of file class.ilFileSystemGUI.php.
ilFileSystemGUI::activateLabels | ( | $ | a_act, | |
$ | a_label_header | |||
) |
activate file labels
Definition at line 105 of file class.ilFileSystemGUI.php.
{ $this->label_enable = $a_act; $this->label_header = $a_label_header; }
ilFileSystemGUI::addCommand | ( | &$ | a_obj, | |
$ | a_func, | |||
$ | a_name | |||
) |
add command
Definition at line 82 of file class.ilFileSystemGUI.php.
{ $i = count($this->commands); $this->commands[$i]["object"] =& $a_obj; $this->commands[$i]["method"] = $a_func; $this->commands[$i]["name"] = $a_name; //$this->commands[] = $arr; }
ilFileSystemGUI::cancelRename | ( | ) |
cancel renaming a file
Definition at line 466 of file class.ilFileSystemGUI.php.
{
$this->ctrl->redirect($this, "listFiles");
}
ilFileSystemGUI::createDirectory | ( | ) |
create directory
Definition at line 474 of file class.ilFileSystemGUI.php.
References $_GET, $_POST, ilUtil::makeDir(), and ilUtil::stripSlashes().
{ // determine directory $cur_subdir = str_replace(".", "", ilUtil::stripSlashes($_GET["cdir"])); $cur_dir = (!empty($cur_subdir)) ? $this->main_dir."/".$cur_subdir : $this->main_dir; $new_dir = str_replace(".", "", ilUtil::stripSlashes($_POST["new_dir"])); $new_dir = str_replace("/", "", $new_dir); if (!empty($new_dir)) { ilUtil::makeDir($cur_dir."/".$new_dir); } $this->ctrl->saveParameter($this, "cdir"); $this->ctrl->redirect($this, "listFiles"); }
ilFileSystemGUI::deleteFile | ( | ) |
delete object file
Definition at line 520 of file class.ilFileSystemGUI.php.
References $_GET, $_POST, $file, ilUtil::delDir(), and ilUtil::stripSlashes().
{ if (!isset($_POST["file"])) { $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE); } foreach ($_POST["file"] as $post_file) { if (ilUtil::stripSlashes($post_file) == "..") { $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE); break; } $cur_subdir = str_replace(".", "", ilUtil::stripSlashes($_GET["cdir"])); $cur_dir = (!empty($cur_subdir)) ? $this->main_dir."/".$cur_subdir : $this->main_dir; $file = $cur_dir."/".ilUtil::stripSlashes($post_file); if (@is_file($file)) { unlink($file); } if (@is_dir($file)) { ilUtil::delDir($file); } } $this->ctrl->saveParameter($this, "cdir"); $this->ctrl->redirect($this, "listFiles"); }
ilFileSystemGUI::downloadFile | ( | ) |
delete object file
Definition at line 591 of file class.ilFileSystemGUI.php.
References $_GET, $_POST, $file, ilUtil::deliverFile(), exit, if, and ilUtil::stripSlashes().
{ if (!isset($_POST["file"])) { $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE); } if (count($_POST["file"]) > 1) { $this->ilias->raiseError($this->lng->txt("cont_select_max_one_item"),$this->ilias->error_obj->MESSAGE); } $cur_subdir = str_replace(".", "", ilUtil::stripSlashes($_GET["cdir"])); $cur_dir = (!empty($cur_subdir)) ? $this->main_dir."/".$cur_subdir : $this->main_dir; $file = $cur_dir."/".$_POST["file"][0]; if (@is_file($file) && !(@is_dir($file))) { ilUtil::deliverFile($file, $_POST["file"][0]); exit; } else { $this->ctrl->saveParameter($this, "cdir"); $this->ctrl->redirect($this, "listFiles"); } }
& ilFileSystemGUI::executeCommand | ( | ) |
execute command
Definition at line 55 of file class.ilFileSystemGUI.php.
References $cmd, and extCommand().
{ $next_class = $this->ctrl->getNextClass($this); $cmd = $this->ctrl->getCmd(); switch($next_class) { default: if (substr($cmd, 0, 11) == "extCommand_") { $ret =& $this->extCommand(substr($cmd, 11, strlen($cmd) - 11)); } else { $ret =& $this->$cmd(); } break; } return $ret; }
& ilFileSystemGUI::extCommand | ( | $ | a_nr | ) |
call external command
Definition at line 114 of file class.ilFileSystemGUI.php.
References $_GET, $_POST, $file, and ilUtil::stripSlashes().
Referenced by executeCommand().
{ if (!isset($_POST["file"])) { $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE); } if (count($_POST["file"]) > 1) { $this->ilias->raiseError($this->lng->txt("cont_select_max_one_item"),$this->ilias->error_obj->MESSAGE); } if ($_POST["file"][0] == ".." ) { $this->ilias->raiseError($this->lng->txt("select_a_file"),$this->ilias->error_obj->MESSAGE); } $cur_subdir = str_replace(".", "", ilUtil::stripSlashes($_GET["cdir"])); $file = (!empty($cur_subdir)) ? $this->main_dir."/".$cur_subdir."/".ilUtil::stripSlashes($_POST["file"][0]) : $this->main_dir."/".ilUtil::stripSlashes($_POST["file"][0]); // check wether selected item is a directory if (@is_dir($file)) { $this->ilias->raiseError($this->lng->txt("select_a_file"),$this->ilias->error_obj->MESSAGE); } $file = (!empty($cur_subdir)) ? $cur_subdir."/".ilUtil::stripSlashes($_POST["file"][0]) : ilUtil::stripSlashes($_POST["file"][0]); $obj =& $this->commands[$a_nr]["object"]; $method = $this->commands[$a_nr]["method"]; return $obj->$method($file); }
ilFileSystemGUI::getTabs | ( | &$ | tabs_gui | ) |
get tabs
Definition at line 624 of file class.ilFileSystemGUI.php.
{ // object usages $tabs_gui->addTarget("cont_list_files", $this->ctrl->getLinkTarget($this, "listFiles"), "listFiles", get_class($this)); }
ilFileSystemGUI::ilFileSystemGUI | ( | $ | a_main_directory | ) |
Definition at line 36 of file class.ilFileSystemGUI.php.
References $ilCtrl, $ilias, $lng, and $tpl.
{ global $lng, $ilCtrl, $tpl, $ilias; $this->ctrl =& $ilCtrl; $this->lng =& $lng; $this->ilias =& $ilias; $this->tpl =& $tpl; $this->main_dir = $a_main_directory; $this->commands = array(); $this->file_labels = array(); $this->label_enable = false; $this->ctrl->saveParameter($this, "cdir"); //echo "<br>main_dir:".$this->main_dir.":"; }
ilFileSystemGUI::labelFile | ( | $ | a_file, | |
$ | a_label | |||
) |
label a file
Definition at line 97 of file class.ilFileSystemGUI.php.
{ $this->file_labels[$a_file] = $a_label; }
ilFileSystemGUI::listFiles | ( | ) |
list files
Definition at line 157 of file class.ilFileSystemGUI.php.
References $_GET, $entries, $tbl, ilUtil::getDir(), ilUtil::getImagePath(), if, ilUtil::stripSlashes(), and ilUtil::switchColor().
{ // create table require_once("classes/class.ilTableGUI.php"); $tbl = new ilTableGUI(); // determine directory // FIXME: I have to call stripSlashes here twice, because I could not // determine where the second layer of slashes is added to the // URL Parameter $cur_subdir = ilUtil::stripSlashes(ilUtil::stripSlashes($_GET["cdir"])); $new_subdir = ilUtil::stripSlashes(ilUtil::stripSlashes($_GET["newdir"])); if($new_subdir == "..") { $cur_subdir = substr($cur_subdir, 0, strrpos($cur_subdir, "/")); } else { if (!empty($new_subdir)) { if (!empty($cur_subdir)) { $cur_subdir = $cur_subdir."/".$new_subdir; } else { $cur_subdir = $new_subdir; } } } $cur_subdir = str_replace(".", "", $cur_subdir); $cur_dir = (!empty($cur_subdir)) ? $this->main_dir."/".$cur_subdir : $this->main_dir; // load files templates $this->tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.directory.html", false); $this->ctrl->setParameter($this, "cdir", $cur_subdir); $this->tpl->setVariable("FORMACTION1", $this->ctrl->getFormAction($this)); $this->tpl->setVariable("TXT_NEW_DIRECTORY", $this->lng->txt("cont_new_dir")); $this->tpl->setVariable("TXT_NEW_FILE", $this->lng->txt("cont_new_file")); $this->tpl->setVariable("CMD_NEW_DIR", "createDirectory"); $this->tpl->setVariable("CMD_NEW_FILE", "uploadFile"); $this->tpl->setVariable("BTN_NEW_DIR", $this->lng->txt("create")); $this->tpl->setVariable("BTN_NEW_FILE", $this->lng->txt("upload")); // $this->tpl->addBlockfile("FILE_TABLE", "files", "tpl.table.html"); // load template for table content data $this->tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.directory_row.html", false); $num = 0; $obj_str = ($this->call_by_reference) ? "" : "&obj_id=".$this->obj_id; $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this)); $tbl->setTitle($this->lng->txt("cont_files")." ".$cur_subdir); //$tbl->setHelp("tbl_help.php","icon_help.gif",$this->lng->txt("help")); /* $cols = array("", "", "dir_file", "size"); $header_params = array("ref_id" => $_GET["ref_id"], "obj_id" => $_GET["obj_id"], "cmd" => "listFiles", "hier_id" => $_GET["hier_id"]); $tbl->setHeaderVars($cols, $header_params);*/ //$tbl->setColumnWidth(array("1%", "1%", "60%", "40%")); // control /* $tbl->setOrderColumn($_GET["sort_by"]); $tbl->setOrderDirection($_GET["sort_order"]); $tbl->setLimit($_GET["limit"]); $tbl->setOffset($_GET["offset"]); $tbl->setMaxCount($this->maxcount);*/ // ??? //$tbl->setMaxCount(30); // ??? if (!$this->label_enable) { $tbl->setHeaderNames(array("", "", $this->lng->txt("cont_dir_file"), $this->lng->txt("cont_size"))); $this->tpl->setVariable("COLUMN_COUNTS", 4); $tbl->setColumnWidth(array("1%", "1%", "60%", "40%")); $cols = array("", "", "dir_file", "size"); $header_params = $this->ctrl->getParameterArray($this, "listFiles"); /* $header_params = array("ref_id" => $_GET["ref_id"], "obj_id" => $_GET["obj_id"], "cmd" => "listFiles", "cmdClass" => get_class($this), "hier_id" => $_GET["hier_id"]);*/ $tbl->setHeaderVars($cols, $header_params); } else { $tbl->setHeaderNames(array("", "", $this->lng->txt("cont_dir_file"), $this->lng->txt("cont_size"), $this->label_header)); $this->tpl->setVariable("COLUMN_COUNTS", 5); $tbl->setColumnWidth(array("1%", "1%", "50%", "25%", "25%")); $cols = array("", "", "dir_file", "size", "label"); $header_params = $this->ctrl->getParameterArray($this, "listFiles"); /* $header_params = array("ref_id" => $_GET["ref_id"], "obj_id" => $_GET["obj_id"], "cmd" => "listFiles", "cmdClass" => get_class($this), "hier_id" => $_GET["hier_id"]);*/ $tbl->setHeaderVars($cols, $header_params); } $tbl->setOrderColumn($_GET["sort_by"]); $tbl->setOrderDirection($_GET["sort_order"]); $tbl->setLimit($_GET["limit"]); $tbl->setOffset($_GET["offset"]); $tbl->setMaxCount($this->maxcount); // ??? // delete button $this->tpl->setVariable("IMG_ARROW", ilUtil::getImagePath("arrow_downright.gif")); $this->tpl->setCurrentBlock("tbl_action_btn"); $this->tpl->setVariable("BTN_NAME", "deleteFile"); $this->tpl->setVariable("BTN_VALUE", $this->lng->txt("delete")); $this->tpl->parseCurrentBlock(); // unzip button $this->tpl->setCurrentBlock("tbl_action_btn"); $this->tpl->setVariable("BTN_NAME", "unzipFile"); $this->tpl->setVariable("BTN_VALUE", $this->lng->txt("unzip")); $this->tpl->parseCurrentBlock(); // download button $this->tpl->setCurrentBlock("tbl_action_btn"); $this->tpl->setVariable("BTN_NAME", "downloadFile"); $this->tpl->setVariable("BTN_VALUE", $this->lng->txt("download")); $this->tpl->parseCurrentBlock(); // rename button $this->tpl->setCurrentBlock("tbl_action_btn"); $this->tpl->setVariable("BTN_NAME", "renameFileForm"); $this->tpl->setVariable("BTN_VALUE", $this->lng->txt("rename")); $this->tpl->parseCurrentBlock(); // additional commands for ($i=0; $i < count($this->commands); $i++) { $this->tpl->setCurrentBlock("tbl_action_btn"); $this->tpl->setVariable("BTN_NAME", "extCommand_".$i); $this->tpl->setVariable("BTN_VALUE", $this->commands[$i]["name"]); $this->tpl->parseCurrentBlock(); } // footer $tbl->setFooter("tblfooter",$this->lng->txt("previous"),$this->lng->txt("next")); //$tbl->disable("footer"); $entries = ilUtil::getDir($cur_dir); //$objs = ilUtil::sortArray($objs, $_GET["sort_by"], $_GET["sort_order"]); $tbl->setMaxCount(count($entries)); $entries = array_slice($entries, $_GET["offset"], $_GET["limit"]); $tbl->render(); if(count($entries) > 0) { $i=0; foreach($entries as $entry) { if(($entry["entry"] == ".") || ($entry["entry"] == ".." && empty($cur_subdir))) { continue; } $cfile = (!empty($cur_subdir)) ? $cur_subdir."/".$entry["entry"] : $entry["entry"]; // label if ($this->label_enable) { $this->tpl->setCurrentBlock("Label"); if ($this->file_labels[$cfile] != "") { $this->tpl->setVariable("TXT_LABEL", $this->file_labels[$cfile]); } else { $this->tpl->setVariable("TXT_LABEL", " "); } $this->tpl->parseCurrentBlock(); } //$this->tpl->setVariable("ICON", $obj["title"]); if($entry["type"] == "dir") { $this->tpl->setCurrentBlock("FileLink"); $this->ctrl->setParameter($this, "cdir", $cur_subdir); $this->ctrl->setParameter($this, "newdir", $entry["entry"]); $this->tpl->setVariable("LINK_FILENAME", $this->ctrl->getLinkTarget($this, "listFiles")); $this->tpl->setVariable("TXT_FILENAME", $entry["entry"]); $this->tpl->parseCurrentBlock(); $this->tpl->setVariable("ICON", "<img src=\"". ilUtil::getImagePath("icon_cat.gif")."\">"); } else { $this->tpl->setCurrentBlock("File"); $this->tpl->setVariable("TXT_FILENAME2", $entry["entry"]); $this->tpl->parseCurrentBlock(); } $this->tpl->setCurrentBlock("tbl_content"); $css_row = ilUtil::switchColor($i++, "tblrow1", "tblrow2"); $this->tpl->setVariable("CSS_ROW", $css_row); $this->tpl->setVariable("TXT_SIZE", $entry["size"]); $this->tpl->setVariable("CHECKBOX_ID", $entry["entry"]); $compare = (!empty($cur_subdir)) ? $cur_subdir."/".$entry["entry"] : $entry["entry"]; $purpose = array(); $this->tpl->parseCurrentBlock(); } } //if is_array else { $this->tpl->setCurrentBlock("notfound"); $this->tpl->setVariable("TXT_OBJECT_NOT_FOUND", $this->lng->txt("obj_not_found")); $this->tpl->setVariable("NUM_COLS", 4); $this->tpl->parseCurrentBlock(); } $this->tpl->parseCurrentBlock(); }
ilFileSystemGUI::renameFile | ( | ) |
rename a file
Definition at line 442 of file class.ilFileSystemGUI.php.
References $_GET, $_POST, $dir, ilUtil::renameExecutables(), and ilUtil::stripSlashes().
{ $new_name = str_replace("..", "", ilUtil::stripSlashes($_POST["new_name"])); $new_name = str_replace("/", "", $new_name); if ($new_name == "") { $this->ilias->raiseError($this->lng->txt("enter_new_name"),$this->ilias->error_obj->MESSAGE); } $cur_subdir = str_replace(".", "", ilUtil::stripSlashes($_GET["cdir"])); $dir = (!empty($cur_subdir)) ? $this->main_dir."/".$cur_subdir."/" : $this->main_dir."/"; rename($dir.ilUtil::stripSlashes($_GET["old_name"]), $dir.$new_name); ilUtil::renameExecutables($this->main_dir); $this->ctrl->redirect($this, "listFiles"); }
ilFileSystemGUI::renameFileForm | ( | ) |
list files
Definition at line 394 of file class.ilFileSystemGUI.php.
References $_GET, $_POST, $file, and ilUtil::stripSlashes().
{ if (!isset($_POST["file"])) { $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE); } if (count($_POST["file"]) > 1) { $this->ilias->raiseError($this->lng->txt("cont_select_max_one_item"),$this->ilias->error_obj->MESSAGE); } if (ilUtil::stripSlashes($_POST["file"][0]) == ".." ) { $this->ilias->raiseError($this->lng->txt("select_a_file"),$this->ilias->error_obj->MESSAGE); } $cur_subdir = str_replace(".", "", ilUtil::stripSlashes($_GET["cdir"])); $file = (!empty($cur_subdir)) ? $this->main_dir."/".$cur_subdir."/".ilUtil::stripSlashes($_POST["file"][0]) : $this->main_dir."/".ilUtil::stripSlashes($_POST["file"][0]); // load files templates $this->tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.file_rename.html", false); $this->ctrl->setParameter($this, "old_name", ilUtil::stripSlashes($_POST["file"][0])); $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this)); if (@is_dir($file)) { $this->tpl->setVariable("TXT_HEADER", $this->lng->txt("rename_dir")); } else { $this->tpl->setVariable("TXT_HEADER", $this->lng->txt("rename_file")); } $this->tpl->setVariable("TXT_NAME", $this->lng->txt("name")); $this->tpl->setVariable("VAL_NAME", ilUtil::stripSlashes($_POST["file"][0])); $this->tpl->setVariable("CMD_CANCEL", "cancelRename"); $this->tpl->setVariable("CMD_SUBMIT", "renameFile"); $this->tpl->setVariable("TXT_CANCEL", $this->lng->txt("cancel")); $this->tpl->setVariable("TXT_SUBMIT", $this->lng->txt("rename")); $this->tpl->parseCurrentBlock(); }
ilFileSystemGUI::unzipFile | ( | ) |
delete object file
Definition at line 559 of file class.ilFileSystemGUI.php.
References $_GET, $_POST, $file, ilUtil::renameExecutables(), ilUtil::stripSlashes(), and ilUtil::unzip().
{ if (!isset($_POST["file"])) { $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE); } if (count($_POST["file"]) > 1) { $this->ilias->raiseError($this->lng->txt("cont_select_max_one_item"),$this->ilias->error_obj->MESSAGE); } $cur_subdir = str_replace(".", "", ilUtil::stripSlashes($_GET["cdir"])); $cur_dir = (!empty($cur_subdir)) ? $this->main_dir."/".$cur_subdir : $this->main_dir; $file = $cur_dir."/".ilUtil::stripSlashes($_POST["file"][0]); if (@is_file($file)) { ilUtil::unzip($file, true); } ilUtil::renameExecutables($this->main_dir); $this->ctrl->saveParameter($this, "cdir"); $this->ctrl->redirect($this, "listFiles"); }
ilFileSystemGUI::uploadFile | ( | ) |
upload file
Definition at line 497 of file class.ilFileSystemGUI.php.
References $_GET, if, ilUtil::renameExecutables(), and ilUtil::stripSlashes().
{ // determine directory $cur_subdir = str_replace(".", "", ilUtil::stripSlashes($_GET["cdir"])); $cur_dir = (!empty($cur_subdir)) ? $this->main_dir."/".$cur_subdir : $this->main_dir; if (is_file($_FILES["new_file"]["tmp_name"])) { move_uploaded_file($_FILES["new_file"]["tmp_name"], $cur_dir."/".ilUtil::stripSlashes($_FILES["new_file"]["name"])); } $this->ctrl->saveParameter($this, "cdir"); ilUtil::renameExecutables($this->main_dir); $this->ctrl->redirect($this, "listFiles"); }
ilFileSystemGUI::$ctrl |
Definition at line 34 of file class.ilFileSystemGUI.php.