improve directory listing
Some checks failed
DokuWiki Default Tasks / all (push) Has been cancelled

This commit is contained in:
2026-01-06 11:38:30 +01:00
parent 41580fa010
commit a835f76f90
8 changed files with 107 additions and 15 deletions

View File

@@ -265,27 +265,47 @@ class Output
$renderer->table_open($columns);
if ($params['tableheader']) {
$hasOpenLocation = isset($params['openlocation']) && is_string($params['openlocation']) && trim($params['openlocation']) !== '';
$hasHeader = !empty($params['tableheader']);
if ($hasOpenLocation || $hasHeader) {
$renderer->tablethead_open();
$renderer->tablerow_open();
$renderer->tableheader_open();
$renderer->cdata($this->getLang('filename'));
$renderer->tableheader_close();
// Small row above the header with an "Open Location" link.
if ($hasOpenLocation && ($renderer instanceof \Doku_Renderer_xhtml)) {
$openItem = [
'name' => $this->getLang('openlocation'),
'path' => $params['openlocation'],
'isdir' => true,
];
if ($params['showsize']) {
$renderer->tableheader_open();
$renderer->cdata($this->getLang('filesize'));
$renderer->tableheader_close();
/** @var \Doku_Renderer_xhtml $renderer */
$renderer->doc .= '<tr class="luxtools-openlocation-row"><td colspan="' . (int)$columns . '">';
$this->renderDirectoryLink($openItem);
$renderer->doc .= '</td></tr>';
}
if ($params['showdate']) {
if ($hasHeader) {
$renderer->tablerow_open();
$renderer->tableheader_open();
$renderer->cdata($this->getLang('lastmodified'));
$renderer->cdata($this->getLang('filename'));
$renderer->tableheader_close();
if ($params['showsize']) {
$renderer->tableheader_open();
$renderer->cdata($this->getLang('filesize'));
$renderer->tableheader_close();
}
if ($params['showdate']) {
$renderer->tableheader_open();
$renderer->cdata($this->getLang('lastmodified'));
$renderer->tableheader_close();
}
$renderer->tablerow_close();
}
$renderer->tablerow_close();
$renderer->tablethead_close();
}