diff --git a/.DS_Store b/.DS_Store
index b1a7722..d20a3d2 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/mod_pdf_tree/.DS_Store b/mod_pdf_tree/.DS_Store
index b7184eb..a15041b 100644
Binary files a/mod_pdf_tree/.DS_Store and b/mod_pdf_tree/.DS_Store differ
diff --git a/mod_pdf_tree/Archiv.zip b/mod_pdf_tree/Archiv.zip
index 841218f..ee1583a 100644
Binary files a/mod_pdf_tree/Archiv.zip and b/mod_pdf_tree/Archiv.zip differ
diff --git a/mod_pdf_tree/helper.php b/mod_pdf_tree/helper.php
index 9c37c26..0068002 100644
--- a/mod_pdf_tree/helper.php
+++ b/mod_pdf_tree/helper.php
@@ -39,61 +39,74 @@ class ModEisAnzeigeHelper
/**
* Hauptfunktion zum Rendern des Baums
+ * - Nutzt title als alternativen Anzeigenamen (Fallback name)
+ * - Fügt für Ordner eine klickbare Label-Zeile hinzu (bessere Tap-Ziele auf iPad)
+ * - Liefert data-* Attribute für spätere Inline-Edits / Preview
*/
- public static function renderTree(array $items, int $parentId = null): string
-{
- if (!isset($items[$parentId])) {
- return '';
- }
-
- $html = '
';
-
- foreach ($items[$parentId] as $item) {
- $isFolder = (bool) $item['is_folder'];
- $rawName = $item['title'] ?: $item['name'];
- $fileId = (int) $item['id'];
-
- // Dateiendung .pdf entfernen und escapen
- $displayName = preg_replace('/\.pdf$/i', '', $rawName);
- $displayName = htmlspecialchars($displayName, ENT_QUOTES, 'UTF-8');
-
- if ($isFolder) {
- $fileCount = self::countFilesRecursive($items, $item['id']);
-
- // WICHTIG: Toggle-Element einfügen – dein JS hängt hier dran
- $html .= '- ';
- $html .= '▶ ';
- $html .= '📁 ' . $displayName . ' (' . (int) $fileCount . ')';
-
- // Kindknoten
- $html .= self::renderTree($items, $item['id']);
- $html .= '
';
- } else {
- $link = Route::_('index.php?option=com_eis&task=download.download&id=' . $fileId);
-
- // Tooltip + (neu) inline-Anzeige der Dateigröße, falls der Pfad existiert
- $tooltip = '';
- $sizeStr = '';
- if (!empty($item['path']) && is_file($item['path'])) {
- $size = @filesize($item['path']);
- if ($size !== false) {
- $formatted = self::formatFileSize((int) $size);
- $tooltip = ' title="Größe: ' . $formatted . '"';
- // Sichtbar neben dem Dateinamen anzeigen
- //$sizeStr = ' (' . $formatted . ')';
- }
- }
-
- $html .= '- ';
- //$html .= '📄 ' . $displayName . '' . $sizeStr;
- $html .= '📄 ' . $displayName . '';
- $html .= '
';
+ public static function renderTree(array $items, ?int $parentId = null): string
+ {
+ if (!isset($items[$parentId])) {
+ return '';
}
- }
- $html .= '
';
- return $html;
-}
+ $html = '';
+
+ foreach ($items[$parentId] as $item) {
+ $isFolder = (bool) $item['is_folder'];
+ $rawName = $item['title'] ?: $item['name'];
+ $fileId = (int) $item['id'];
+
+ // Dateiendung .pdf entfernen und escapen
+ $displayName = preg_replace('/\.pdf$/i', '', (string) $rawName);
+ $displayName = htmlspecialchars($displayName, ENT_QUOTES, 'UTF-8');
+
+ if ($isFolder) {
+ $fileCount = self::countFilesRecursive($items, $item['id']);
+
+ // Ordner-- inkl. Data-Attribute + große Tap-Ziele (toggle + folder-label)
+ $html .= '
- ';
+ $html .= '▶ ';
+ $html .= '📁 ' . $displayName . ' (' . (int) $fileCount . ')';
+
+ // Kindknoten
+ $html .= self::renderTree($items, $item['id']);
+ $html .= '
';
+ } else {
+ $link = Route::_('index.php?option=com_eis&task=download.download&id=' . $fileId);
+
+ // Tooltip + (optional) inline-Anzeige der Dateigröße
+ $tooltip = '';
+ $sizeStr = '';
+ if (!empty($item['path']) && is_file($item['path'])) {
+ $size = @filesize($item['path']);
+ if ($size !== false) {
+ $formatted = self::formatFileSize((int) $size);
+ $tooltip = ' title="Größe: ' . $formatted . '"';
+ // Wenn du die Größe auch sichtbar möchtest, Zeile darunter einkommentieren:
+ // $sizeStr = ' (' . $formatted . ')';
+ }
+ }
+
+ // Datei-- inkl. Data-Attribute + data-filename am Link (für Preview-Anzeige)
+ $html .= '
- ';
+ $html .= '📄 '
+ . $displayName . '' . $sizeStr;
+ $html .= '
';
+ }
+ }
+
+ $html .= '
';
+ return $html;
+ }
/**
* Zählt alle PDF-Dateien unterhalb eines Ordners rekursiv
@@ -108,7 +121,7 @@ class ModEisAnzeigeHelper
foreach ($items[$parentId] as $item) {
if ((bool) $item['is_folder']) {
- $count += self::countFilesRecursive($items, $item['id']);
+ $count += self::countFilesRecursive($items, (int) $item['id']);
} else {
$count++;
}
@@ -118,7 +131,7 @@ class ModEisAnzeigeHelper
}
/**
- * Formatierte Dateigröße für Tooltip
+ * Formatierte Dateigröße für Tooltip / Anzeige
*/
private static function formatFileSize(int $bytes): string
{
diff --git a/mod_pdf_tree/tmpl/default.php b/mod_pdf_tree/tmpl/default.php
index 444a9e7..91c4fc5 100644
--- a/mod_pdf_tree/tmpl/default.php
+++ b/mod_pdf_tree/tmpl/default.php
@@ -1,83 +1,141 @@
-
-
+
+
@@ -85,49 +143,98 @@
= ModEisAnzeigeHelper::renderTree($items); ?>
-
+
+