Erstes Joomla-Modul

This commit is contained in:
Thomas Spohr
2025-07-16 10:03:59 +02:00
parent 519f9e16b3
commit af2ebf4ab6
12 changed files with 76612 additions and 6 deletions

BIN
.DS_Store vendored

Binary file not shown.

1
assets/css/jstree.min.css vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,7 @@
#pdfexplorer {
padding: 1em;
background: #f8f9fa;
border-radius: 8px;
min-height: 50px;
font-family: sans-serif;
}

3
assets/js/jstree.min.js vendored Normal file

File diff suppressed because one or more lines are too long

18146
assets/js/pdf.js Normal file

File diff suppressed because it is too large Load Diff

58353
assets/js/pdf.worker.js vendored Normal file

File diff suppressed because one or more lines are too long

9
helper.php Normal file
View File

@@ -0,0 +1,9 @@
<?php
// Keine direkten Zugriffe erlauben
defined('_JEXEC') or die;
// Placeholder für spätere Helper-Funktionen
class ModPdfexplorerHelper
{
// Hier kommen später Funktionen rein (z.B. für Rechte, Verzeichnis-Scan, etc.)
}

24
mod_pdfexplorer.php Normal file
View File

@@ -0,0 +1,24 @@
<?php
// Keine direkten Zugriffe erlauben
defined('_JEXEC') or die;
use Joomla\CMS\Factory;
use Joomla\CMS\Helper\ModuleHelper;
// Hole die Applikation
$app = Factory::getApplication();
// Web Asset Manager holen (Joomla 4/5)
$wa = $app->getDocument()->getWebAssetManager();
// Assets einbinden
$wa->registerAndUseScript('pdfexplorer.pdfjs', 'modules/mod_pdfexplorer/assets/js/pdf.js', [], [], []);
$wa->registerAndUseScript('pdfexplorer.pdfworker', 'modules/mod_pdfexplorer/assets/js/pdf.worker.js', [], [], []);
$wa->registerAndUseScript('pdfexplorer.jstree', 'modules/mod_pdfexplorer/assets/js/jstree.min.js', [], [], []);
$wa->registerAndUseStyle('pdfexplorer.jstree', 'modules/mod_pdfexplorer/assets/css/jstree.min.css', [], []);
$wa->registerAndUseStyle('pdfexplorer.custom', 'modules/mod_pdfexplorer/assets/css/pdfexplorer.css', [], []);
// Übergib Parameter ins Template
require ModuleHelper::getLayoutPath('mod_pdfexplorer', $params->get('layout', 'default'));

48
mod_pdfexplorer.xml Normal file
View File

@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<extension type="module" version="4.0" client="site" method="upgrade">
<name>PDF-Explorer</name>
<creationDate>16.07.2025</creationDate>
<author>TS-IT24</author>
<authorEmail>service@ts-it24.de</authorEmail>
<authorUrl>www.ts-it24.de</authorUrl>
<copyright>Thomas Spohr</copyright>
<version>1.0.0</version>
<description>Modul für die spätere Darstellung eines PDF-Explorers mit Vorschau</description>
<files>
<filename module="mod_pdfexplorer">mod_pdfexplorer.php</filename>
<filename>helper.php</filename>
<folder>tmpl</folder>
<folder>assets</folder>
<filename>README.md</filename>
</files>
<config>
<fields name="params">
<fieldset name="basic">
<field
name="pdf_path"
type="text"
label="Pfad zum PDF-Verzeichnis"
description="Absoluter Serverpfad (außerhalb des DocumentRoot)"
/>
<field
name="usergroups"
type="usergrouplist"
label="Erlaubte Benutzergruppen"
description="Wähle die Benutzergruppen, die Zugriff auf den PDF-Explorer haben sollen."
multiple="true"
/>
<field
name="preview_option"
type="list"
label="Vorschau-Option"
description="Wie sollen PDFs im Frontend angezeigt werden?"
default="both"
>
<option value="thumbnail">Nur Thumbnail</option>
<option value="viewer">Nur PDF-Viewer</option>
<option value="both">Thumbnail + PDF-Viewer</option>
</field>
</fieldset>
</fields>
</config>
</extension>

BIN
pdfexplorer.zip Normal file

Binary file not shown.

View File

@@ -1,6 +0,0 @@
<?php
phpinfo();
/* Kommentar */
/*sadfasdgf */
/* und noch ein Kommentar */
?>

21
tmpl/default.php Normal file
View File

@@ -0,0 +1,21 @@
<?php
defined('_JEXEC') or die;
?>
<div id="pdfexplorer">
<h2>Hello World PDF-Explorer Dummy-Modul</h2>
<p>Modul-Parameter:</p>
<ul>
<li><strong>PDF-Pfad:</strong> <?php echo htmlspecialchars($params->get('pdf_path', '')); ?></li>
<li><strong>Erlaubte Gruppen:</strong>
<?php
$groups = $params->get('usergroups', []);
if (is_array($groups) && count($groups)) {
echo implode(', ', $groups);
} else {
echo 'Keine ausgewählt';
}
?>
</li>
<li><strong>Vorschau-Option:</strong> <?php echo htmlspecialchars($params->get('preview_option', '')); ?></li>
</ul>
</div>