54         ?array $a_file_labels = [],
    55         ?
string $a_label_header = 
"",
    56         ?array $a_commands = [],
    57         ?
bool $a_post_dir_path = 
false,
    58         ?
string $a_table_id = 
""    61         $this->
setId($a_table_id);
    62         $this->
ctrl = $DIC->ctrl();
    63         $this->
lng = $DIC->language();
    64         if ($a_cur_dir !== realpath($a_cur_dir)) {
    65             throw new \InvalidArgumentException(
'$a_cur_dir must be a absolute path');
    67         $this->
filesystem = LegacyPathHelper::deriveFilesystemFrom($a_cur_dir);
    68         $this->relative_cur_dir = LegacyPathHelper::createRelativePath($a_cur_dir);
    69         $this->cur_dir = $a_cur_dir;
    70         $this->cur_subdir = $a_cur_subdir;
    71         $this->label_enable = $a_label_enable;
    72         $this->label_header = $a_label_header;
    73         $this->file_labels = $a_file_labels;
    74         $this->post_dir_path = $a_post_dir_path;
    75         $this->filesystem_gui = $a_parent_obj;
    76         $this->ui_factory = $DIC->ui()->factory();
    77         $this->ui_renderer = $DIC->ui()->renderer();
    82         $this->has_multi = 
false;
    84         foreach ((array) $a_commands as $i => $command) {
    85             if (!($command[
"single"] ?? 
false)) {
    88                 $this->has_multi = 
true;
    90                 $this->row_commands[] = array(
    91                     "cmd" => 
"extCommand_" . $i,
    92                     "caption" => $command[
"name"],
    93                     "allow_dir" => $command[
"allow_dir"] ?? 
false,
    94                     "method" => $command[
"method"] ?? null,
   106             "tpl.directory_row.html",
   107             "components/ILIAS/Filesystem"   114         if ($a_field == 
"size") {
   134             if ($this->cur_dir !== 
'') {
   146                 $basename = basename($content->getPath());
   147                 $entries[$basename] = [
   150                     'entry' => $basename,
   151                     'type' => $content->isDir() ? 
'dir' : 
'file',
   153                     'size' => $content->isFile() ? $this->
filesystem->getSize($content->getPath(), 1)->inBytes() : 0
   157             $entries = array(array(
"type" => 
"dir", 
"entry" => 
".."));
   161         foreach ($entries as 
$e) {
   162             if (($e[
"entry"] == 
".") || ($e[
"entry"] == 
".." && empty($this->cur_subdir))) {
   165             $cfile = (!empty($this->cur_subdir))
   166                 ? $this->cur_subdir . 
"/" . $e[
"entry"]
   169             if ($this->label_enable) {
   170                 $label = (isset($this->file_labels[$cfile]) && is_array($this->file_labels[$cfile]))
   171                     ? implode(
", ", $this->file_labels[$cfile])
   175             $pref = ($e[
"type"] == 
"dir")
   180                 "entry" => $e[
"entry"],
   181                 "type" => $e[
"type"],
   182                 "label" => $label ?? 
'',
   183                 "size" => $e[
"size"] ?? 
'',
   184                 "name" => $pref . $e[
"entry"]
   192         if ($this->has_multi) {
   198         $this->
addColumn($this->
lng->txt(
"cont_dir_file"), 
"name");
   201         if ($this->label_enable) {
   202             $this->
addColumn($this->label_header, 
"label");
   205         if (
sizeof($this->row_commands)) {
   212         return $entry[
'entry'] === 
'..';
   218     protected function fillRow(array $a_set): void
   220         $hash = $this->post_dir_path
   221             ? md5($a_set[
"file"])
   222             : md5($a_set[
"entry"]);
   224         if ($this->has_multi) {
   226                 $this->tpl->touchBlock(
'no_checkbox');
   228                 $this->tpl->setVariable(
"CHECKBOX_ID", $hash);
   233         if ($this->label_enable) {
   234             $this->tpl->setCurrentBlock(
"Label");
   235             $this->tpl->setVariable(
"TXT_LABEL", $a_set[
"label"]);
   236             $this->tpl->parseCurrentBlock();
   239         $this->
ctrl->setParameter($this->parent_obj, 
"cdir", $this->cur_subdir);
   241         if ($a_set[
"type"] == 
"dir") {
   242             $this->tpl->setCurrentBlock(
"FileLink");
   243             $this->
ctrl->setParameter($this->parent_obj, 
"newdir", $a_set[
"entry"]);
   244             $this->
ctrl->setParameter($this->parent_obj, 
"resetoffset", 1);
   245             $this->tpl->setVariable(
   247                 $this->
ctrl->getLinkTarget($this->parent_obj, 
"listFiles")
   249             $this->
ctrl->setParameter($this->parent_obj, 
"newdir", 
"");
   250             $this->tpl->setVariable(
"TXT_FILENAME", $a_set[
"entry"]);
   251             $this->tpl->parseCurrentBlock();
   253             $this->tpl->setVariable(
   258             $this->
ctrl->setParameter($this->parent_obj, 
"resetoffset", 
"");
   260             $this->tpl->setCurrentBlock(
"File");
   261             $this->tpl->setVariable(
"TXT_FILENAME2", $this->secure($a_set[
"entry"]));
   262             $this->tpl->parseCurrentBlock();
   265         if ($a_set[
"type"] != 
"dir") {
   270         if (count($this->row_commands) > 0 && !($a_set[
"type"] === 
"dir" && $a_set[
"entry"] === 
"..")) {
   273             foreach ($this->row_commands as $rcom) {
   274                 if ($rcom[
"allow_dir"] || $a_set[
"type"] !== 
"dir") {
   275                     $file_path = $this->cur_dir . $a_set[
'entry'];
   280                         $this->
ctrl->setParameter($this->parent_obj, 
"fhsh", $hash);
   281                         $url = $this->
ctrl->getLinkTarget($this->parent_obj, $rcom[
"cmd"]);
   282                         $this->
ctrl->setParameter($this->parent_obj, 
"fhsh", 
"");
   284                         $actions[] = $this->ui_factory->link()->standard($rcom[
"caption"], 
$url);
   289             $dropdown = $this->ui_factory->dropdown()->standard($actions);
   290             $this->tpl->setVariable(
"ACTIONS", $this->ui_renderer->render($dropdown));
 
ILIAS UI Renderer $ui_renderer
 
setFormAction(string $a_form_action, bool $a_multipart=false)
 
setEnableTitle(bool $a_enabletitle)
 
setSelectAllCheckbox(string $a_select_all_checkbox, bool $a_select_all_on_top=false)
 
ilFileSystemGUI $filesystem_gui
 
setDefaultOrderField(string $a_defaultorderfield)
 
ILIAS Filesystem Filesystem $filesystem
 
static formatSize(int $size, string $a_mode='short', ?ilLanguage $a_lng=null)
Returns the specified file size value in a human friendly form. 
 
setRowTemplate(string $a_template, string $a_template_dir="")
Set row template. 
 
isDoubleDotDirectory(array $entry)
 
static getImagePath(string $image_name, string $module_path="", string $mode="output", bool $offline=false)
get image path (for images located in a template directory) 
 
setDefaultOrderDirection(string $a_defaultorderdirection)
 
ILIAS UI Factory $ui_factory
 
fillRow(array $a_set)
Fill table row. 
 
setTitle(string $a_title, string $a_icon="", string $a_icon_alt="")
 
__construct(Container $dic, ilPlugin $plugin)
 
numericOrdering(string $a_field)
 
addColumn(string $a_text, string $a_sort_field="", string $a_width="", bool $a_is_checkbox_action_column=false, string $a_class="", string $a_tooltip="", bool $a_tooltip_with_html=false)
 
File System Explorer GUI class. 
 
__construct(ilFileSystemGUI $a_parent_obj, string $a_parent_cmd, string $a_cur_dir, string $a_cur_subdir, bool $a_label_enable, ?array $a_file_labels=[], ?string $a_label_header="", ?array $a_commands=[], ?bool $a_post_dir_path=false, ?string $a_table_id="")
Constructor. 
 
addMultiCommand(string $a_cmd, string $a_text)
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
determineOffsetAndOrder(bool $a_omit_offset=false)
 
setEnableHeader(bool $a_enableheader)