Ein moderner Datei-Uploader für REDAXO mit Chunk-Upload und nahtloser Medienpool-Integration.
Alternative: uppy
-
Chunk-Upload als Kernfeature:
- Zuverlässiges Hochladen großer Dateien in kleinen Teilen (Chunks)
- Einstellbare Chunk-Größe (Standard: 5MB)
- Fortschrittsanzeige für einzelne Chunks und die Gesamtdatei
- Automatisches Zusammenführen der Chunks nach dem Upload
-
Verzögerter Upload-Modus:
- Auswahl und Anordnung von Dateien vor dem Upload
- Trennung von Dateiauswahl und Upload-Prozess
- Benutzerfreundlicher Upload-Button erscheint automatisch
- Löschen unerwünschter Dateien vor dem Upload
- Ideal für Redakteure mit vielen Dateien
-
Moderne Oberfläche:
- Drag & Drop für einfaches Hochladen von Dateien
- Live-Vorschau der Bilder während des Uploads
- Responsives Design für alle Bildschirmgrößen
-
Automatische Bildoptimierung:
- Clientseitige Verkleinerung großer Bilder vor dem Upload (optional, standardmäßig deaktiviert)
- Schnellerer Upload durch reduzierte Dateigröße
- Weniger Serverlast – ideal für Shared Hosting
- Automatische EXIF-Orientierungskorrektur (wichtig für Smartphone-Fotos)
- Einstellbare Kompressionsqualität für JPEG/PNG/WebP
- Beibehaltung der Originaldimensionen für GIF-Dateien
- Optional: Zusätzliche serverseitige Bildverarbeitung aktivierbar
- Wichtig: Beide Optionen deaktiviert = Original-Dateien werden hochgeladen (empfohlen für professionelle Fotografie)
-
Barrierefreiheit & rechtliche Sicherheit:
- Erzwingt das Setzen von Alt-Texten für Bilder
- Legt automatisch Metafelder an, falls sie noch nicht existieren
- Optionale Abfrage des Copyrights und der Beschreibung für Mediendateien
-
YForm-Integration:
- Spezielles YForm-Value-Feld mit automatischer Löschung nicht verwendeter Medien
- Multi-Upload-Unterstützung mit dynamischer Vorschau
- Einfache Konfiguration über bekannte YForm-Schnittstellen
-
Mehrsprachigkeit:
- Verfügbar in Deutsch (DE) und Englisch (EN)
- Einfach erweiterbar für weitere Sprachen
-
Sichere API:
- Token-basierte Authentifizierung für externe Zugriffe
- Unterstützung für YCOM-Benutzerauthentifizierung
- Validierung von Dateitypen und -größen
-
Info Center Integration:
- Upload-Widget direkt im REDAXO Info Center Dashboard
- Schneller Zugriff ohne Medienpool zu öffnen
- Kategorie-Auswahl mit rex_media_category_select
- Automatische Positionierung nach TimeTracker Widget
- Respektiert alle FilePond-Konfigurationen und Benutzerberechtigungen
-
Media Widget Integration:
- Nahtlose Integration mit REX_MEDIA und REX_MEDIALIST Widgets
- Direkter Upload von Dateien in Formularfelder
- Bildvorschau mit Thumbnails für bessere Übersicht
- Bulk-Übernahme für Medienlisten
- Mehrsprachige Benutzeroberfläche
-
Wartungswerkzeuge:
- Einfache Bereinigung temporärer Dateien und Chunks
- Protokollierung aller Upload-Vorgänge
- Admin-Interface zur Systemwartung
-
Alt-Text-Checker für Barrierefreiheit:
- Findet alle Bilder ohne Alt-Text im Medienpool
- Statistik-Dashboard mit Vollständigkeits-Prozent
- Akkordeon-Vorschau: Große Bildansicht zum besseren Beschreiben
- Inline-Bearbeitung direkt in der Tabelle
- Unterstützt mehrsprachige Alt-Texte (metainfo_lang_fields)
- Dekorative Bilder markieren (Negativ-Liste für Bilder ohne Alt-Text-Pflicht)
- AI Alt-Text-Generierung - automatische Beschreibungen per Knopfdruck
- Unterstützt Google Gemini und Cloudflare Workers AI als Provider
- Schnelle Navigation mit Tab-Taste
- Bulk-Speichern aller Änderungen
- Filter nach Dateiname und Kategorie
- Als Unterseite im Medienpool integriert
- Eigene Berechtigung:
filepond_uploader[alt_checker]
- AddOn installieren: Installiere das AddOn "filepond_uploader" über den REDAXO-Installer.
- AddOn aktivieren: Aktiviere das AddOn im Backend unter "AddOns".
- Konfigurieren: Passe die Einstellungen unter "FilePond Uploader > Einstellungen" an deine Bedürfnisse an.
- Fertig: Der Uploader ist nun einsatzbereit!
Das FilePond AddOn bietet ein praktisches Upload-Widget im Info Center des REDAXO-Backends. Dieses Widget ermöglicht das schnelle Hochladen von Dateien direkt aus dem Dashboard heraus, ohne den Medienpool öffnen zu müssen.
Schneller Zugriff:
- Upload-Funktionalität direkt im Info Center verfügbar
- Kein Wechsel zum Medienpool erforderlich
- Kompakte Darstellung ohne Dashboard zu verlassen
Vollständige FilePond-Integration:
- Alle konfigurierten FilePond-Einstellungen werden übernommen
- Drag & Drop Upload direkt im Info Center
- Chunk-Upload für große Dateien
- Bildoptimierung und Metadaten-Eingabe
Kategorie-Auswahl:
- Dropdown zur Auswahl der Zielkategorie
- Verwendet den Standard rex_media_category_select
- Respektiert Benutzerberechtigungen für Kategorien
Intelligente Positionierung:
- Erscheint automatisch nach dem TimeTracker Widget
- Nur für angemeldete Benutzer sichtbar
- Robuste Erkennung verfügbarer AddOns
Das Info Center Widget wird automatisch aktiviert, wenn folgende Bedingungen erfüllt sind:
- Info Center AddOn installiert: Das REDAXO Info Center AddOn muss aktiviert sein
- FilePond Uploader aktiv: Dieses AddOn muss aktiviert sein
- Benutzer angemeldet: Widget erscheint nur für angemeldete Backend-Benutzer
Hinweis: Das Widget wird automatisch zwischen TimeTracker und anderen Widgets positioniert (Priorität 0.5). Es sind keine weiteren Konfigurationen erforderlich.
Upload-Formular:
- Identische Struktur wie die Medienpool-Upload-Seite
- Kategorie-Auswahl mit allen verfügbaren Medienpool-Kategorien
- Automatische Aktualisierung bei Kategorie-Wechsel
- Respektiert alle FilePond-Konfigurationen (Dateitypen, Größenlimits, etc.)
Metadaten-Eingabe:
- Vollständige Integration der Metadaten-Dialoge
- Unterstützung für mehrsprachige Felder (MetaInfo Lang Fields)
- Validierung nach konfigurierten Regeln
- Alt-Text und Copyright-Abfrage wie gewohnt
Benutzerfreundlichkeit:
- Drag & Drop direkt im Widget
- Live-Vorschau hochgeladener Dateien
- Fortschrittsanzeige und Chunk-Upload
- Nahtlose Integration in die REDAXO-Oberfläche
Falls das Info Center Widget nicht gewünscht ist, kann es durch Deaktivierung des Info Center AddOns oder durch Customizing in der boot.php entfernt werden.
Das FilePond AddOn bietet eine nahtlose Integration mit REDAXO's Standard Media Widgets (REX_MEDIA und REX_MEDIALIST). Nach dem Upload können Dateien direkt in Formularfelder übernommen werden.
- Öffne ein Media Widget: Klicke in einem beliebigen Formular auf das "Öffnen" Icon neben einem REX_MEDIA oder REX_MEDIALIST Feld
- Upload-Modus aktiviert: FilePond erkennt automatisch den Widget-Kontext und zeigt einen Info-Banner
- Dateien hochladen: Nutze die gewohnte Drag&Drop oder Auswahl-Funktionalität
- Direktübernahme: Nach erfolgreichem Upload erscheinen Buttons zur direkten Übernahme
Für REX_MEDIA (Einzelmedien):
- Upload → Übernahme → Fenster schließt sich automatisch
- Bildvorschau mit 80x80px Thumbnails
- Dateitypspezifische Icons für Nicht-Bild-Dateien
Für REX_MEDIALIST (Medienlisten):
- Upload → Fenster bleibt offen für weitere Uploads
- Einzelne Übernahme pro Datei möglich
- "Alle übernehmen" Button bei mehreren Dateien
- Duplikat-Schutz verhindert doppelte Einträge
- Visuelles Feedback mit "Hinzugefügt" Status
Das AddOn zeigt automatische Vorschauen für hochgeladene Inhalte:
Bilder (jpg, png, gif, webp, etc.):
- 80x80px Thumbnail-Vorschau
- Proportionale Skalierung mit object-fit
- Fallback auf Dateitype-Icon bei Fehlern
Andere Dateitypen:
- Farbcodierte Icons nach Dateityp
- PDF (rot), Word (blau), Excel (grün), etc.
- Dateiendung als Label unter dem Icon
Die Media Widget Integration unterstützt vollständige Mehrsprachigkeit:
Deutsch:
- "Upload-Auswahl"
- "Die ausgewählten Elemente können in die Liste übernommen werden."
English:
- "Upload Selection"
- "The selected items can be added to the list."
Hinweis: Die Media Widget Integration ist ein Add-On Feature und erfordert keine zusätzliche Konfiguration. Sie funktioniert automatisch mit allen bestehenden REX_MEDIA und REX_MEDIALIST Feldern.
$yform->setValueField('filepond', [
'name' => 'bilder',
'label' => 'Bildergalerie',
'allowed_max_files' => 5,
'allowed_types' => 'image/*',
'allowed_filesize' => 10,
'category' => 1,
'delayed_upload' => 0
]);Mit der Option delayed_upload wird gesteuert, wann die Dateien tatsächlich hochgeladen und mit dem Formular verknüpft werden:
| Wert | Verhalten | Typischer Einsatzzweck |
|---|---|---|
0 |
Dateien werden sofort beim Auswählen hochgeladen. | Standardverhalten, z. B. Bildergalerien |
1 |
Dateien werden erst hochgeladen, wenn der Nutzer den Upload-Button klickt. | Wenn mehrere Dateien gesammelt und gemeinsam hochgeladen werden sollen (z. B. Bewerbungsunterlagen) |
2 |
Nach dem Upload wird die YForm sofort automatisch abgesendet. | Schnell-Upload-Formulare. Hier sollten alle übrigen Felder des Formulars clientseitig auf required geprüft werden, da die Dateien sonst bereits hochgeladen werden, auch wenn die Formularvalidierung fehlschlägt. |
Hinweis:
Dasfilepond-Value-Feld in YForm ist eine bequeme Möglichkeit, den Uploader zu verwenden.
Alternativ kann ein normales Input-Feld mit den notwendigendata-Attributen versehen werden.
In diesem Fall entfällt jedoch die automatische Löschung nicht verwendeter Medien.
<input
type="hidden"
name="REX_INPUT_VALUE[1]"
value="REX_VALUE[1]"
data-widget="filepond"
data-filepond-cat="1"
data-filepond-maxfiles="5"
data-filepond-types="image/*"
data-filepond-maxsize="10"
data-filepond-lang="de_de"
data-filepond-chunk-enabled="true"
data-filepond-chunk-size="5242880"
data-filepond-title-required="true"
data-filepond-metainfo-lang="true"
>Hinweis zu den neuen Attributen:
data-filepond-title-required="true": Macht das title Feld im Metadaten-Dialog zu einem Pflichtfelddata-filepond-metainfo-lang="true": Aktiviert die automatische Erkennung mehrsprachiger MetaInfo-Felder
Hinweis zu data-filepond-types:
- MIME-Types werden bevorzugt:
image/*,video/*,application/pdf - Dateiendungen werden automatisch konvertiert:
.pdf,.doc,.docx - Beide Formate können gemischt werden:
image/*, .pdf, .doc
<?php
$files = explode(',', 'REX_VALUE[1]');
foreach($files as $file) {
if($media = rex_media::get($file)) {
// Standard-Metadaten
echo '<img
src="'.$media->getUrl().'"
alt="'.$media->getValue('med_alt').'"
title="'.$media->getValue('title').'"
>';
// Mehrsprachige Metadaten (falls MetaInfo Lang Fields verwendet wird)
if (class_exists('\FriendsOfRedaxo\MetaInfoLangFields\MetainfoLangHelper')) {
$titles = \FriendsOfRedaxo\MetaInfoLangFields\MetainfoLangHelper::getFieldValues(
$media,
'med_title_lang'
);
// Titel für aktuelle Sprache
$currentTitle = $titles[rex_clang::getCurrentId()] ?? '';
echo '<p>Titel: ' . rex_escape($currentTitle) . '</p>';
// Beschreibung für aktuelle Sprache
$descriptions = \FriendsOfRedaxo\MetaInfoLangFields\MetainfoLangHelper::getFieldValues(
$media,
'med_description_lang'
);
$currentDescription = $descriptions[rex_clang::getCurrentId()] ?? '';
echo '<p>Beschreibung: ' . rex_escape($currentDescription) . '</p>';
}
}
}
?>Für die Übernahme der Uploads in E-Mails über YForm Formulare steht eine Action zur Verfügung, die in ein Formular eingebaut werden kann. In der Pipe Notation schreibt man:
action|filepond2email|label_filepondIn der PHP Notation schreibt man:
$yform->setActionField('filepond2email',['label_filepond']);label_filepond ist zu ersetzen durch den Feldnamen, den das filepond Feld hat, also z.B. uploads
Der Chunk-Upload ist das Herzstück des FilePond-Uploaders und ermöglicht das zuverlässige Hochladen großer Dateien auch bei langsameren Internetverbindungen.
- Datei-Aufteilung: Große Dateien werden clientseitig in kleine Teile (Chunks) aufgeteilt.
- Chunk-weiser Upload: Jeder Chunk wird einzeln hochgeladen, mit individueller Fortschrittsanzeige.
- Serverseitige Zusammenführung: Nach Abschluss des Uploads werden alle Chunks zu einer vollständigen Datei zusammengefügt.
- Automatische Bereinigung: Temporäre Dateien werden nach erfolgreichem Upload automatisch entfernt.
- Verbesserte Zuverlässigkeit: Bei Netzwerkproblemen müssen nur fehlgeschlagene Chunks erneut hochgeladen werden.
- Große Dateien: Überwindung von Server-Limits für maximale Upload-Größen.
- Bessere Performance: Serverseitige Ressourcen werden effizienter genutzt.
- Benutzerfreundlichkeit: Klare Fortschrittsanzeige für jeden Chunk und die Gesamtdatei.
Im Backend können Sie folgende Chunk-Upload-Einstellungen anpassen:
- Chunk-Upload aktivieren/deaktivieren: Globale Einstellung für alle Upload-Felder.
- Chunk-Größe: Die Größe jedes Chunks in MB (Standard: 5MB).
- Temporäre Dateien aufräumen: Manuelle Bereinigung alter temporärer Dateien.
Das AddOn enthält eine Helper-Klasse, die das Einbinden von CSS- und JavaScript-Dateien vereinfacht.
// Im Template oder Modul
<?php
echo filepond_helper::getScripts();
echo filepond_helper::getStyles();
?>Folgende data-Attribute können zur Konfiguration verwendet werden:
| Attribut | Beschreibung | Standardwert |
|---|---|---|
data-filepond-cat |
Medienpool Kategorie ID | 0 |
data-filepond-types |
Erlaubte Dateitypen (MIME-Types oder Dateiendungen, kommagetrennt) | image/* |
data-filepond-maxfiles |
Maximale Anzahl an Dateien | 30 |
data-filepond-maxsize |
Maximale Dateigröße in MB | 10 |
data-filepond-lang |
Sprache (de_de / en_gb) |
de_de |
data-filepond-skip-meta |
Meta-Eingabe deaktivieren | false |
data-filepond-chunk-enabled |
Chunk-Upload aktivieren | true |
data-filepond-chunk-size |
Chunk-Größe in MB | 5 |
data-filepond-delayed-upload |
Verzögerter Upload-Modus | false |
data-filepond-delayed-type |
Upload-Modus-Typ (1=Button, 2=Submit) | 1 wenn delayed-upload aktiv |
data-filepond-title-required |
Titel-Feld als Pflichtfeld | false |
data-filepond-title-lang-required |
Mehrsprachiger Titel als Pflichtfeld (deprecated) | true |
data-filepond-metainfo-lang |
MetaInfo Lang Fields Integration aktivieren | false |
data-filepond-max-pixel |
Maximale Bildgröße in Pixeln für clientseitige Verkleinerung | 2100 |
data-filepond-image-quality |
JPEG/WebP Kompressionsqualität (10-100) | 90 |
data-filepond-client-resize |
*Clientseitige Bildverkleinerung aktivieren (true/false) |
false |
data-filepond-opener-field |
Opener Input Field für Media Widget Integration | - |
data-filepond-title-required
Steuert, ob das einfache title Feld (für interne Verwaltung) als Pflichtfeld behandelt wird:
<!-- Titel als Pflichtfeld -->
<input data-filepond-title-required="true" data-widget="filepond" ...>
<!-- Titel optional (Standard) -->
<input data-filepond-title-required="false" data-widget="filepond" ...>data-filepond-metainfo-lang
Aktiviert die automatische Erkennung und Integration von MetaInfo Lang Fields:
<!-- MetaInfo Lang Fields aktivieren -->
<input data-filepond-metainfo-lang="true" data-widget="filepond" ...>Hinweis: Das Attribut
data-filepond-title-lang-requiredist deprecated. Mehrsprachige Titel (med_title_lang) sind automatisch Pflichtfelder und können nicht deaktiviert werden. Verwenden Sie stattdessendata-filepond-title-requiredfür das einfache Titel-Feld.
Das Addon unterstützt sowohl MIME-Types als auch Dateiendungen. MIME-Types werden jedoch bevorzugt, da sie sicherer und eindeutiger sind.
Empfohlene Verwendung (MIME-Types):
data-filepond-types="mime/type"
Alternativ (Dateiendungen):
data-filepond-types=".extension"
Wichtig: Dateiendungen werden automatisch in MIME-Types konvertiert. Beide Formate können gemischt werden.
- Bilder:
image/*oderimage/jpeg, image/png, image/gif, image/webp - Videos:
video/*odervideo/mp4, video/webm, video/quicktime - Audio:
audio/*oderaudio/mpeg, audio/wav, audio/ogg - PDFs:
application/pdf - Microsoft Word:
application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document - Microsoft Excel:
application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - Microsoft PowerPoint:
application/vnd.ms-powerpoint, application/vnd.openxmlformats-officedocument.presentationml.presentation
Nur Bilder (empfohlen):
data-filepond-types="image/*"Bilder und PDFs (MIME-Types - empfohlen):
data-filepond-types="image/*, application/pdf"Bilder und PDFs (gemischt - funktioniert auch):
data-filepond-types="image/*, .pdf"Bilder, Videos und PDFs (MIME-Types - empfohlen):
data-filepond-types="image/*, video/*, application/pdf"Bilder, Videos und PDFs (Dateiendungen - wird automatisch konvertiert):
data-filepond-types="image/*, video/*, .pdf"Dokumente (MIME-Types - empfohlen):
data-filepond-types="application/pdf, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document, text/plain"Dokumente (Dateiendungen - wird automatisch konvertiert):
data-filepond-types=".pdf, .doc, .docx, .txt"Microsoft Office (MIME-Types - empfohlen):
data-filepond-types="application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-powerpoint, application/vnd.openxmlformats-officedocument.presentationml.presentation"Medien und Dokumente gemischt (beide Formate):
data-filepond-types="image/*, video/*, application/pdf, .doc, .docx, .txt"Das Addon konvertiert automatisch folgende Dateiendungen zu den entsprechenden MIME-Types:
- Bilder:
.jpg, .jpeg, .png, .gif, .webp, .avif, .svg, .bmp, .tiff, .tif, .ico - Videos:
.mp4, .webm, .ogg, .ogv, .avi, .mov, .wmv, .flv, .mkv - Audio:
.mp3, .wav, .ogg, .oga, .flac, .m4a, .aac - Dokumente:
.pdf, .doc, .docx, .xls, .xlsx, .ppt, .pptx, .odt, .ods, .odp - Text:
.txt, .csv, .rtf, .html, .htm, .xml, .json - Archive:
.zip, .rar, .7z, .tar, .gz, .bz2
Hinweis: MIME-Types sind die bevorzugte Methode, da sie eindeutiger sind und weniger Fehleranfälligkeit haben. Dateiendungen werden nur aus Kompatibilitätsgründen unterstützt und automatisch in MIME-Types konvertiert.
Hinweis: Bei Verwendung von YForm/Yorm muss
rex_login::startSession()vor Yform/YOrm aufgerufen werden.
Im Frontend sollte die Session gestartet werden:
rex_login::startSession();Die Werte sollten zurückgesetzt werden, wenn sie nicht mehr benötigt werden.
rex_set_session('filepond_token', rex_config::get('filepond_uploader', 'api_token'));Dadurch wird der API-Token übergeben, um Datei-Uploads auch außerhalb von YCOM im Frontend zu ermöglichen.
rex_set_session('filepond_no_meta', true);Dadurch lässt sich die Meta-Abfrage (Titel, Alt-Text, Copyright) deaktivieren (boolescher Wert: true / false).
rex_set_session('filepond_title_required', true);Dadurch wird das einfache title Feld als Pflichtfeld markiert (boolescher Wert: true / false).
rex_set_session('filepond_metainfo_lang', true);Dadurch wird die automatische Erkennung mehrsprachiger MetaInfo-Felder aktiviert (boolescher Wert: true / false).
<?php
rex_login::startSession();
// Session-Token für API-Zugriff setzen (für Frontend)
rex_set_session('filepond_token', rex_config::get('filepond_uploader', 'api_token'));
// Optional: Meta-Eingabe deaktivieren
rex_set_session('filepond_no_meta', true);
// Optional: Titel als Pflichtfeld
rex_set_session('filepond_title_required', true);
// Optional: MetaInfo Lang Fields aktivieren
rex_set_session('filepond_metainfo_lang', true);
// Filepond Assets einbinden (besser im Template ablegen)
if (rex::isFrontend()) {
echo filepond_helper::getStyles();
echo filepond_helper::getScripts();
}
?>
<form class="uploadform" method="post" enctype="multipart/form-data">
<input
type="hidden"
name="REX_INPUT_MEDIALIST[1]"
value="REX_MEDIALIST[1]"
data-widget="filepond"
data-filepond-cat="1"
data-filepond-types="image/*,video/*,application/pdf"
data-filepond-maxfiles="3"
data-filepond-maxsize="10"
data-filepond-lang="de_de"
data-filepond-skip-meta="<?= rex_session('filepond_no_meta', 'boolean', false) ? 'true' : 'false' ?>"
data-filepond-title-required="<?= rex_session('filepond_title_required', 'boolean', false) ? 'true' : 'false' ?>"
data-filepond-metainfo-lang="<?= rex_session('filepond_metainfo_lang', 'boolean', false) ? 'true' : 'false' ?>"
data-filepond-chunk-enabled="true"
data-filepond-chunk-size="5242880"
>
</form>document.addEventListener('DOMContentLoaded', function() {
// Dieser Code wird ausgeführt, nachdem das HTML vollständig geladen wurde.
initFilePond();
});Falls JQuery im Einsatz ist, rex:ready im Frontend triggern.
document.addEventListener('DOMContentLoaded', function() {
// Dieser Code wird ausgeführt, nachdem das HTML vollständig geladen wurde.
$('body').trigger('rex:ready', [$('body')]);
});Falls das Panel nicht richtig dargestellt wird, kann es helfen, den Stil anzupassen:
.filepond--panel-root {
border: 1px solid var(--fp-border);
background-color: #eedede;
min-height: 150px;
}Das AddOn enthält anpassbare Stile für verschiedene Bereiche der FilePond-Oberfläche. Diese können über CSS-Variablen und eigene CSS-Regeln individuell angepasst werden.
Der Upload-Button im verzögerten Upload-Modus kann über CSS-Variablen vollständig angepasst werden:
:root {
--filepond-upload-btn-color: #4285f4; /* Hintergrundfarbe */
--filepond-upload-btn-hover-color: #3367d6; /* Hover-Farbe */
--filepond-upload-btn-text-color: #fff; /* Textfarbe */
--filepond-upload-btn-border-radius: 4px; /* Eckenradius */
--filepond-upload-btn-padding: 10px 16px; /* Innenabstand */
--filepond-upload-btn-font-size: 14px; /* Schriftgröße */
--filepond-upload-btn-font-weight: 500; /* Schriftstärke */
--filepond-upload-btn-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Schatten */
--filepond-upload-btn-shadow-hover: 0 4px 8px rgba(0, 0, 0, 0.2); /* Hover-Schatten */
}Roter Warn-Button:
:root {
--filepond-upload-btn-color: #dc3545;
--filepond-upload-btn-hover-color: #c82333;
}Grüner Success-Button:
:root {
--filepond-upload-btn-color: #28a745;
--filepond-upload-btn-hover-color: #218838;
}Minimalistischer Button:
:root {
--filepond-upload-btn-color: transparent;
--filepond-upload-btn-hover-color: rgba(0, 0, 0, 0.05);
--filepond-upload-btn-text-color: #007bff;
--filepond-upload-btn-shadow: none;
--filepond-upload-btn-shadow-hover: none;
}
.filepond-upload-btn {
border: 2px solid currentColor !important;
}Die Rahmen bei Upload-Status (Erfolg/Fehler) können ebenfalls individuell angepasst werden:
/* Erfolgreicher Upload - grüner Rahmen */
[data-filepond-item-state='processing-complete'] {
border: 3px solid #28a745 !important;
box-shadow: 0 0 8px rgba(40, 167, 69, 0.3) !important;
border-radius: 0.5em !important;
}
/* Fehler beim Upload - roter Rahmen */
[data-filepond-item-state*='error'],
[data-filepond-item-state*='invalid'] {
border: 3px solid #dc3545 !important;
box-shadow: 0 0 8px rgba(220, 53, 69, 0.3) !important;
border-radius: 0.5em !important;
}Falls die pulsierenden Glow-Effekte nicht gewünscht sind:
[data-filepond-item-state='processing-complete'],
[data-filepond-item-state*='error'],
[data-filepond-item-state*='invalid'] {
animation: none !important;
}Dickere Rahmen:
[data-filepond-item-state='processing-complete'] {
border: 5px solid #28a745 !important;
}
[data-filepond-item-state*='error'],
[data-filepond-item-state*='invalid'] {
border: 5px solid #dc3545 !important;
}Gestrichelte Rahmen:
[data-filepond-item-state='processing-complete'] {
border: 3px dashed #28a745 !important;
}
[data-filepond-item-state*='error'],
[data-filepond-item-state*='invalid'] {
border: 3px dashed #dc3545 !important;
}Abgerundete Ecken anpassen:
[data-filepond-item-state='processing-complete'],
[data-filepond-item-state*='error'],
[data-filepond-item-state*='invalid'] {
border-radius: 15px !important; /* Stark abgerundete Ecken */
}Das AddOn unterstützt vordefinierte Themes:
Dark Theme:
.dark-theme .filepond-upload-btn {
--filepond-upload-btn-color: #3d4852;
--filepond-upload-btn-hover-color: #2d3748;
--filepond-upload-btn-text-color: #f7fafc;
}Minimal Theme:
.minimal-theme .filepond-upload-btn {
--filepond-upload-btn-color: transparent;
--filepond-upload-btn-hover-color: rgba(0, 0, 0, 0.05);
--filepond-upload-btn-text-color: #2196F3;
--filepond-upload-btn-shadow: none;
--filepond-upload-btn-shadow-hover: none;
border: 1px solid currentColor;
}Die Anpassungen sollten in einer eigenen CSS-Datei gespeichert und nach den FilePond-Styles geladen werden:
<!-- Nach den FilePond-Styles -->
<link rel="stylesheet" href="path/to/filepond-custom-styles.css">
<link rel="stylesheet" href="path/to/meine-anpassungen.css">Im REDAXO-Template:
<?php
// Standard FilePond-Styles laden
echo filepond_helper::getStyles();
// Eigene Anpassungen laden
rex_view::addCssFile($this->getAssetsUrl('css/meine-filepond-anpassungen.css'));
?>Für umfassende Änderungen können die originalen Stile komplett überschrieben werden:
/* Komplett eigener Upload-Button */
.filepond-upload-btn {
background: linear-gradient(45deg, #ff6b6b, #4ecdc4) !important;
color: white !important;
border: none !important;
border-radius: 25px !important;
padding: 15px 30px !important;
font-weight: bold !important;
text-transform: uppercase !important;
letter-spacing: 1px !important;
transition: all 0.3s ease !important;
}
.filepond-upload-btn:hover {
transform: translateY(-2px) !important;
box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3) !important;
}Tipp: Verwende die Browser-Entwicklertools (F12), um die CSS-Selektoren zu identifizieren und deine Änderungen in Echtzeit zu testen, bevor du sie in deine CSS-Datei überträgst.
Bilder können automatisch optimiert werden – entweder clientseitig im Browser, serverseitig nach dem Upload oder beides kombiniert. Beide Optionen sind unabhängig voneinander aktivierbar.
Die clientseitige Verarbeitung nutzt FilePond-Plugins, um Bilder direkt im Browser zu optimieren:
- Automatische Verkleinerung großer Bilder auf die konfigurierte Maximalgröße
- EXIF-Orientierungskorrektur für Smartphone-Fotos
- Qualitätskompression für JPEG/PNG/WebP
- Kein Upscaling – kleine Bilder bleiben unverändert
- GIF-Dateien werden nicht verändert
Vorteile:
- ✅ Schnellerer Upload durch kleinere Dateien
- ✅ Weniger Serverlast und Speicherverbrauch
- ✅ Ideal für Shared Hosting mit limitierten Server-Ressourcen
- ✅ Sofortige Vorschau der optimierten Bilder
Deaktivierung:
- Navigiere zu REDAXO > AddOns > FilePond Uploader > Einstellungen
- Deaktiviere die Option "Clientseitige Bildverkleinerung aktivieren"
Die serverseitige Verarbeitung optimiert Bilder nach dem Upload auf dem Server.
Vorteile:
- ✅ Funktioniert auch bei älteren Browsern ohne Canvas-Unterstützung
- ✅ Zusätzliche Sicherheitsstufe für Bildvalidierung
- ✅ Einheitliche Verarbeitung unabhängig vom Client
- ✅ Ideal bei ausreichenden Server-Ressourcen
Aktivierung:
- Navigiere zu REDAXO > AddOns > FilePond Uploader > Einstellungen
- Aktiviere die Option "Serverseitige Bildverarbeitung aktivieren"
| Clientseitig | Serverseitig | Anwendungsfall |
|---|---|---|
| ✅ | ❌ | Standard – Ideal für Shared Hosting |
| ❌ | ✅ | Server mit guten Ressourcen, ältere Browser |
| ✅ | ✅ | Kaskadierende Optimierung (siehe unten) |
| ❌ | ❌ | Keine Bildoptimierung (Originalbilder behalten) |
Die folgenden globalen Einstellungen gelten standardmäßig für beide Verarbeitungsmethoden:
| Einstellung | Standard | Beschreibung |
|---|---|---|
| Maximale Bildgröße | 2100 px | Maximale Breite/Höhe in Pixeln |
| Bildqualität | 90 | JPEG/WebP/PNG-Kompression (10-100) |
Wenn beide Verarbeitungsmethoden aktiviert sind, erscheinen zusätzliche Einstellungen, um die clientseitige Vorverarbeitung separat zu konfigurieren:
| Einstellung | Beschreibung |
|---|---|
| Clientseitige max. Bildgröße | Maximale Größe für die Vorverkleinerung im Browser |
| Clientseitige Bildqualität | Qualität für die clientseitige Kompression |
Typischer Workflow:
- Client: Verkleinert z.B. von 6000px auf 3000px mit 95% Qualität → schnellerer Upload
- Server: Optimiert auf finale 1600px mit 85% Qualität via ImageMagick → beste Qualität
Wenn die clientseitigen Werte leer gelassen werden, werden die globalen Einstellungen verwendet.
Die EXIF-Orientierungskorrektur erfolgt automatisch clientseitig durch das FilePond EXIF-Orientation Plugin (wenn clientseitige Verarbeitung aktiviert ist). Dies ist besonders wichtig für Fotos von Smartphones.
Funktionsweise:
- Erkennt EXIF-Orientierungsinformationen in JPEG-Bildern
- Dreht und spiegelt Bilder automatisch in die korrekte Ausrichtung
- Verhindert, dass Hochformat-Bilder als Querformat erscheinen
- Die Korrektur erfolgt vor dem Upload im Browser
Serverseitige EXIF-Korrektur (optional):
Falls die serverseitige Bildverarbeitung aktiviert ist, kann zusätzlich eine serverseitige EXIF-Korrektur erfolgen:
- Navigiere zu REDAXO > AddOns > FilePond Uploader > Einstellungen
- Aktiviere die Option "EXIF-Orientierung automatisch korrigieren"
- Speichere die Einstellungen
Hinweise:
- Die clientseitige Korrektur ist immer aktiv und benötigt keine Konfiguration
- Die serverseitige Funktion benötigt die PHP-EXIF-Erweiterung
- Nur JPEG-Bilder werden verarbeitet, da andere Formate selten EXIF-Daten enthalten
Das FilePond AddOn bietet umfassende Unterstützung für mehrsprachige Metadaten durch die Integration mit dem MetaInfo Lang Fields AddOn von Friends of REDAXO.
Für die Verwendung mehrsprachiger Metafelder sind folgende AddOns erforderlich:
- MetaInfo AddOn (Standard REDAXO AddOn)
- MetaInfo Lang Fields AddOn von Friends of REDAXO
Hinweis: Das System funktioniert automatisch mit allen in REDAXO konfigurierten Sprachen (rex_clang).
# Via Composer (empfohlen)
composer require friendsofredaxo/metainfo_lang_fields
# Oder über den REDAXO InstallerErstelle in REDAXO > AddOns > MetaInfo > Medien neue Felder mit mehrsprachigen Feldtypen:
Beispiel: Mehrsprachiger Titel
- Feldname:
med_title_lang - Feldtyp:
lang_textoderlang_text_all - Bezeichnung:
Titel (mehrsprachig)
Beispiel: Mehrsprachige Beschreibung
- Feldname:
med_description_lang - Feldtyp:
lang_textareaoderlang_textarea_all - Bezeichnung:
Beschreibung (mehrsprachig)
Das FilePond AddOn erkennt automatisch:
- Alle verfügbaren MetaInfo-Felder
- Welche Felder mehrsprachig konfiguriert sind
- Alle konfigurierten Sprachen in REDAXO
| Feldtyp | Beschreibung | Verwendung |
|---|---|---|
lang_text |
Einzeiliges Textfeld für die aktuelle Sprache | Titel, Keywords |
lang_text_all |
Einzeiliges Textfeld für alle Sprachen | Titel, Alt-Texte |
lang_textarea |
Mehrzeiliges Textfeld für die aktuelle Sprache | Beschreibungen |
lang_textarea_all |
Mehrzeiliges Textfeld für alle Sprachen | Beschreibungen |
Diese Felder bleiben einsprachig und werden automatisch erkannt:
title- Titel für interne Verwaltungmed_alt- Alt-Text für Barrierefreiheitmed_copyright- Copyright-Informationen
Erstelle diese Felder als mehrsprachige Varianten:
Mehrsprachiger Titel (med_title_lang):
Feldname: med_title_lang
Feldtyp: lang_text_all
Bezeichnung: Titel (mehrsprachig)
Priorität: 1
Mehrsprachige Beschreibung (med_description_lang):
Feldname: med_description_lang
Feldtyp: lang_textarea_all
Bezeichnung: Beschreibung (mehrsprachig)
Priorität: 4
Mehrsprachige Keywords (med_keywords_lang):
Feldname: med_keywords_lang
Feldtyp: lang_text_all
Bezeichnung: Schlüsselwörter (mehrsprachig)
Priorität: 5
Bei mehrsprachigen Feldern wird eine benutzerfreundliche Oberfläche angezeigt:
- Hauptsprache sichtbar: Die erste/Standard-Sprache wird immer angezeigt
- Weitere Sprachen über Globus-Icon: Klick auf das Globus-Symbol öffnet weitere Sprachen
- Sprachspezifische Validierung: Verschiedene Validierungsregeln pro Sprache
- Alt-Text mit Dekorativ-Option: Checkbox für dekorative Bilder pro Sprache
Die Felder werden in folgender Reihenfolge angezeigt:
title(einfacher Titel für interne Verwaltung)med_title_lang(mehrsprachiger Titel) - Pflichtfeldmed_alt(Alt-Text für Bilder) - Pflichtfeld bei Bildernmed_copyright(Copyright-Information)med_descriptionodermed_description_lang(Beschreibung)- Weitere Felder alphabetisch sortiert
med_title_lang: Immer Pflichtfeld bei mehrsprachigen Titelnmed_alt: Pflichtfeld bei Bildern (kann per "dekorativ" deaktiviert werden)title: Optional (kann in Settings/YForm als Pflichtfeld konfiguriert werden)
Für Alt-Texte gibt es eine "Dekoratives Bild" Checkbox:
- Deaktiviert die Alt-Text-Pflicht für das jeweilige Sprachfeld
- Funktioniert sprachspezifisch
- Orientiert sich an Accessibility-Standards
Mehrsprachige Metafelder werden automatisch erkannt und angezeigt. Keine zusätzliche Konfiguration erforderlich.
Das einfache title Feld kann optional als Pflichtfeld konfiguriert werden:
Global (Upload-Seite): In den AddOn-Einstellungen unter "Titel-Feld auf Upload-Seite als Pflichtfeld"
Pro YForm-Feld:
$yform->setValueField('filepond', [
'name' => 'upload',
'label' => 'Dateien',
'title_required' => 1 // Titel als Pflichtfeld
]);In Modulen/Templates:
<input
data-widget="filepond"
data-filepond-title-required="true"
...
>Mehrsprachige Felder werden im MetaInfo Lang Fields Format gespeichert:
[
{"clang_id": 1, "value": "Deutscher Titel"},
{"clang_id": 2, "value": "English Title"}
]In Templates/Modulen:
<?php
$media = rex_media::get('dateiname.jpg');
// MetaInfo Lang Fields Helper verwenden
if (class_exists('\FriendsOfRedaxo\MetaInfoLangFields\MetainfoLangHelper')) {
$titles = \FriendsOfRedaxo\MetaInfoLangFields\MetainfoLangHelper::getFieldValues(
$media,
'med_title_lang'
);
// Titel für aktuelle Sprache
$currentTitle = $titles[rex_clang::getCurrentId()] ?? '';
// Titel für spezifische Sprache (z.B. Deutsch)
$germanTitle = $titles[1] ?? '';
}
// Traditionelles Abrufen über getValue
$titleData = $media->getValue('med_title_lang');
// $titleData enthält JSON-String mit allen Sprachen
?>In YForm/YOrm:
// Bei YOrm-Models werden mehrsprachige Felder automatisch aufgelöst
$dataset = \rex_yform_manager_dataset::get(1, 'my_table');
$files = explode(',', $dataset->getValue('upload_field'));
foreach ($files as $filename) {
if ($media = rex_media::get($filename)) {
$titleData = $media->getValue('med_title_lang');
if ($titleData) {
$titles = json_decode($titleData, true);
foreach ($titles as $langData) {
echo "Sprache {$langData['clang_id']}: {$langData['value']}<br>";
}
}
}
}Das AddOn stellt eine API bereit, die automatisch alle verfügbaren Metafelder erkennt:
// API-Aufruf für Felderkennung
fetch('/redaxo/index.php?rex-api-call=filepond_auto_metainfo&action=get_fields')
.then(response => response.json())
.then(data => {
data.fields.forEach(field => {
console.log(`Feld: ${field.name}, Mehrsprachig: ${field.multilingual}`);
if (field.multilingual) {
console.log('Verfügbare Sprachen:', field.languages);
}
});
});// Mehrsprachige Metadaten speichern
const metadata = {
'title': 'Einfacher Titel',
'med_title_lang': {
'de': 'Deutscher Titel',
'en': 'English Title'
},
'med_description_lang': {
'de': 'Deutsche Beschreibung',
'en': 'English Description'
}
};
fetch('/redaxo/index.php?rex-api-call=filepond_auto_metainfo&action=save_metadata', {
method: 'POST',
body: new FormData()
});- Prüfe ob MetaInfo Lang Fields AddOn installiert und aktiviert ist
- Stelle sicher, dass die Felder mit
lang_*Feldtypen angelegt sind - Cache leeren: REDAXO > System > Cache löschen
- Prüfe die Browser-Konsole auf JavaScript-Fehler
- Stelle sicher, dass mehrere Sprachen in REDAXO konfiguriert sind
- Prüfe die AJAX-Antworten der MetaInfo-API
- Prüfe die Berechtigung für Medienpool-Zugriff
- Kontrolliere die API-Token-Konfiguration
- Prüfe die PHP-Error-Logs
Das AddOn ist kompatibel mit:
- MetaInfo Lang Fields v1.0+ von Friends of REDAXO
- REDAXO 5.15+ mit konfigurierten Sprachen
- Alle gängigen FilePond-Konfigurationen
Die Mehrsprachigkeit ist vollständig rückwärtskompatibel - bestehende einsprachige Installationen funktionieren weiterhin ohne Änderungen.
Folgende Metadaten können für jede hochgeladene Datei erfasst werden:
Standard-Metadaten (einsprachig):
- Titel: Wird im Medienpool zur Verwaltung der Datei verwendet (gespeichert in
title). - Alt-Text: Beschreibt den Bildinhalt für Screenreader (wichtig für Barrierefreiheit und SEO), gespeichert in
med_alt. - Copyright: Information zu Bildrechten und Urhebern, gespeichert in
med_copyright. - Beschreibung: Ausführlichere Beschreibung des Medieninhalts, gespeichert in
med_description.
Mehrsprachige Metadaten (mit MetaInfo Lang Fields):
- Mehrsprachiger Titel: Titel in allen konfigurierten Sprachen, gespeichert in
med_title_lang(Pflichtfeld). - Mehrsprachige Beschreibung: Beschreibung in allen Sprachen, gespeichert in
med_description_lang. - Mehrsprachige Keywords: Schlüsselwörter pro Sprache, gespeichert in
med_keywords_lang.
Konfigurierbare Pflichtfelder:
title(einfacher Titel): Optional als Pflichtfeld konfigurierbar über Settings oder data-Attributmed_title_lang(mehrsprachiger Titel): Immer Pflichtfeld, nicht deaktivierbarmed_alt(Alt-Text): Pflichtfeld bei Bildern, kann pro Sprache als "dekorativ" markiert werden
Hinweis: Die Felder werden automatisch in der Datenbank angelegt, falls sie noch nicht existieren. Bei mehrsprachigen Feldern muss das MetaInfo Lang Fields AddOn installiert sein.
Wichtige JavaScript-Events für eigene Entwicklungen:
// Upload erfolgreich
pond.on('processfile', (error, file) => {
if(!error) {
console.log('Datei hochgeladen:', file.serverId);
}
});
// Datei gelöscht
pond.on('removefile', (error, file) => {
console.log('Datei entfernt:', file.serverId);
});
// Chunk-Upload-Fortschritt (nur wenn Chunk-Upload aktiviert ist)
pond.on('processfileProgress', (file, progress) => {
console.log(`Chunk-Fortschritt für ${file.filename}: ${Math.floor(progress * 100)}%`);
});Als Administrator können Sie temporäre Dateien und Chunks über die Einstellungsseite bereinigen. Dies ist besonders nützlich, wenn:
- Uploads abgebrochen wurden
- Temporäre Dateien nicht automatisch gelöscht wurden
- Sie Speicherplatz freigeben möchten
Die Wartungsfunktion löscht:
- Alte Chunk-Verzeichnisse (älter als 24 Stunden)
- Temporäre Metadaten-Dateien
- Nicht mehr benötigte temporäre Dateien
Mit dem Bulk Resize Feature können bestehende Bilder im Medienpool nachträglich verkleinert werden. Dies ist besonders nützlich, wenn:
- Große Bilder ohne Optimierung hochgeladen wurden
- Die maximale Bildgröße nachträglich angepasst werden soll
- Speicherplatz eingespart werden soll
Die Bulk Resize Funktion ist verfügbar unter FilePond Uploader → Bulk Resize für:
- Administratoren
- Nutzer mit der Berechtigung
filepond_uploader[bulk_resize]
Filter & Suche:
- Filterung nach Dateiname (Teilsuche)
- Filterung nach Medienkategorie
- Einstellbare Zielgröße (max. Breite/Höhe in Pixel)
- Einstellbare Kompressionsqualität (10-100%)
Verarbeitung:
- Parallele Verarbeitung von bis zu 3 Bildern gleichzeitig
- Live-Fortschrittsanzeige mit Prozent-Balken
- Echtzeit-Statistiken (verarbeitet, erfolgreich, übersprungen, gespart)
- Verarbeitungsprotokoll mit Zeitstempeln
- Abbruch-Funktion jederzeit möglich
Unterstützte Formate:
- Standard (GD): JPG, JPEG, PNG, GIF, WebP
- Mit ImageMagick zusätzlich: PSD, BMP
- Automatische EXIF-Orientierungskorrektur
Bildverarbeitung:
- Proportionale Skalierung (Seitenverhältnis bleibt erhalten)
- Qualitätserhaltende Kompression
- Automatische Aktualisierung der Datenbankeinträge
- Media-Cache wird automatisch geleert
- Öffne FilePond Uploader → Bulk Resize
- Setze die gewünschte Maximalgröße (z.B. 2100px)
- Optional: Filtere nach Kategorie oder Dateiname
- Klicke auf Bilder suchen
- Wähle die zu verarbeitenden Bilder aus (oder "Alle auswählen")
- Klicke auf Resize starten
- Warte auf die Fertigstellung und prüfe die Ersparnis
Der Alt-Text-Checker hilft dabei, die Barrierefreiheit der Website zu verbessern, indem er alle Bilder ohne Alt-Text auflistet und eine schnelle Bearbeitung ermöglicht.
Die Funktion ist als Unterseite im Medienpool → Alt-Text-Checker verfügbar für:
- Administratoren
- Nutzer mit der Berechtigung
filepond_uploader[alt_checker]
Statistik-Dashboard:
- Gesamtanzahl der Bilder im Medienpool
- Anzahl mit/ohne Alt-Text
- Prozentuale Vollständigkeit mit Fortschrittsbalken
Inline-Bearbeitung:
- Alt-Text direkt in der Tabelle eingeben
- Enter-Taste zum schnellen Speichern
- Tab-Taste zur Navigation zum nächsten Bild
- Visuelle Rückmeldung bei Änderungen (gelb) und Speicherung (grün)
Akkordeon-Vorschau:
- Klick auf Pfeil/Thumbnail öffnet große Bildansicht
- Erleichtert das Beschreiben komplexer Bilder
- Link zum Öffnen im Medienpool für weitere Details
Dekorative Bilder:
- Button zum Markieren als "dekorativ" (Auge-Symbol)
- Für Bilder die keinen Alt-Text benötigen (z.B. reine Dekoration)
- Werden in einer Negativ-Liste gespeichert (
med_altbleibt leer) - WCAG 2.1 konform: Dekorative Bilder dürfen leeren alt-Text haben
- Zählen in der Statistik als "erledigt"
Filter & Suche:
- Filterung nach Dateiname
- Filterung nach Medienkategorie
- Vorschau-Thumbnails mit Klick zum Medienpool
Workflow:
- Öffne Medienpool → Alt-Text-Checker
- Prüfe die Statistik - wie viele Bilder fehlen?
- Optional: Filtere nach Kategorie
- Klicke auf den Pfeil um die große Vorschau zu öffnen
- Gib Alt-Texte ein (Tab zum Wechseln, Enter zum Speichern)
- Oder: Markiere dekorative Bilder mit dem Auge-Button
- Oder: Nutze den AI-Button (Zauberstab) für automatische Generierung
- Oder: Bearbeite mehrere und klicke "Alle speichern"
Hinweis: Das MetaInfo-Feld
med_altmuss existieren. Falls nicht, wird ein Hinweis mit Link zur MetaInfo-Konfiguration angezeigt.Tipp: Die Liste der dekorativen Bilder wird in der Addon-Konfiguration gespeichert und kann bei Bedarf zurückgesetzt werden.
Das AddOn unterstützt die automatische Generierung von Alt-Texten mittels KI. Zwei Provider stehen zur Auswahl:
Google Gemini bietet exzellente Bildanalyse mit hervorragender Mehrsprachigkeit.
Kostenlos: Bis zu 1500 Requests pro Tag (Free Tier)
Einrichtung:
- Gehe zu Google AI Studio
- Erstelle einen neuen API-Key (kostenlos mit Google-Account)
- In REDAXO: FilePond Uploader → Einstellungen → AI Alt-Text
- Wähle Provider: Google Gemini
- Füge den API-Key ein
- Wähle ein Modell (empfohlen: Gemini 2.5 Flash)
- Aktiviere "AI-Generierung aktivieren"
- Teste die Verbindung
Verfügbare Modelle:
| Modell | Kosten | Beschreibung |
|---|---|---|
| Gemini 2.5 Flash | Kostenlos | Beste Balance aus Qualität und Geschwindigkeit ⭐ |
| Gemini 2.5 Flash-Lite | Kostenlos | Schneller, etwas kürzer |
| Gemini 2.0 Flash | Kostenlos | Älteres Modell |
| Gemini 2.5 Pro | Bezahlt | Höchste Qualität |
Rate Limits (Free Tier):
- 20 Requests pro Minute (RPM)
- 1500 Requests pro Tag (RPD)
- 250.000 Tokens pro Minute
- Reset: Täglich um 9:00 Uhr MEZ
Cloudflare bietet eine Alternative mit großzügigem kostenlosen Kontingent.
Kostenlos: 10.000 Neurons pro Tag (~100-200 Bildanalysen)
Einrichtung:
- Erstelle einen Cloudflare-Account (kostenlos)
- Gehe zu Profil → API Tokens → Create Token
- Wähle Custom Token → Get Started
- Konfiguriere:
- Token name:
FilePond AI(oder beliebig) - Permissions: Account → Workers AI → Read
- Account Resources: Deinen Account auswählen
- Token name:
- Klicke Continue to summary → Create Token
- Kopiere den Token (wird nur einmal angezeigt!)
- Hole deine Account ID:
- Gehe zu Cloudflare Dashboard
- Wähle Workers & Pages
- Account ID steht in der rechten Sidebar
- In REDAXO: FilePond Uploader → Einstellungen → AI Alt-Text
- Wähle Provider: Cloudflare Workers AI
- Füge Token und Account ID ein
- Aktiviere "AI-Generierung aktivieren"
- Teste die Verbindung
Hinweis: Das LLaVA-Modell von Cloudflare ist etwas kleiner als Gemini und liefert kürzere Beschreibungen. Bei Screenshots mit Text kann es zu Fehlern kommen.
Nach der Einrichtung erscheint im Alt-Text-Checker:
- Zauberstab-Button (✨) bei jedem Bild für einzelne Generierung
- "AI für alle generieren" Button für Bulk-Generierung aller leeren Alt-Texte
- Bei mehrsprachigen Feldern werden alle Sprachen automatisch generiert
- Token-Verbrauch wird nach jeder Generierung angezeigt (nur Gemini)
Nicht unterstützt: SVG-Dateien (können von der AI nicht analysiert werden)
- Die maximale Dateigröße wird serverseitig überprüft.
- Das Copyright-Feld und die Beschreibung sind optional, Titel und Alt-Text sind Pflicht.
- Uploads landen automatisch im Medienpool.
- Metadaten werden im Medienpool gespeichert.
- Videos können direkt im Upload-Dialog betrachtet werden.
- Bilder werden automatisch auf die maximale Größe optimiert.
- Chunk-Upload funktioniert auch bei langsameren Internetverbindungen zuverlässig.
Der verzögerte Upload-Modus trennt den Prozess der Dateiauswahl vom eigentlichen Upload-Vorgang. Dateien werden erst hochgeladen, wenn der Benutzer auf den "Dateien hochladen"-Button klickt.
- Bessere Kontrolle: Vorschau und Sichtung vor dem Upload
- Datei-Management: Löschen unerwünschter Dateien vor dem Upload
- Neuordnung: Sortieren der Dateien vor dem Upload
- Effizientes Arbeiten: Besonders nützlich für große Dateimengen
Der verzögerte Upload-Modus kann global in den FilePond-Einstellungen aktiviert werden:
- Navigiere zu REDAXO > AddOns > FilePond Uploader > Einstellungen
- Aktiviere die Option "Verzögerter Upload-Modus"
- Speichere die Einstellungen
Für YForm-Felder kann der verzögerte Upload-Modus individuell aktiviert werden:
$yform->setValueField('filepond', [
'name' => 'bilder',
'label' => 'Bildergalerie',
'allowed_max_files' => 5,
'allowed_types' => 'image/*',
'delayed_upload' => 1 // Verzögerter Upload aktivieren
]);Bei direkter Einbindung kann der verzögerte Upload-Modus über ein Attribut aktiviert werden:
<input
type="hidden"
name="REX_INPUT_VALUE[1]"
value="REX_VALUE[1]"
data-widget="filepond"
data-filepond-cat="1"
data-filepond-delayed-upload="true"
>Hinweis: Das Attribut data-filepond-delayed-type steuert den Upload-Modus:
1: Upload-Button wird angezeigt (Standard wenndata-filepond-delayed-upload="true")2: Upload erfolgt beim Formular-Submit (muss explizit gesetzt werden)
Das Attribut data-filepond-delayed-type muss nur gesetzt werden, wenn der Submit-Modus (2) gewünscht ist. Beim Aktivieren von data-filepond-delayed-upload="true" wird automatisch der Upload-Button-Modus (1) verwendet.
Der Upload-Button wird automatisch unter dem FilePond-Element angezeigt, wenn der verzögerte Upload-Modus aktiviert ist. Die Optik kann über CSS-Variablen angepasst werden:
:root {
--filepond-upload-btn-color: #4285f4; /* Hintergrundfarbe */
--filepond-upload-btn-hover-color: #3367d6; /* Hover-Farbe */
--filepond-upload-btn-text-color: #fff; /* Textfarbe */
--filepond-upload-btn-border-radius: 4px; /* Eckenradius */
--filepond-upload-btn-padding: 10px 16px; /* Innenabstand */
--filepond-upload-btn-font-size: 14px; /* Schriftgröße */
--filepond-upload-btn-font-weight: 500; /* Schriftstärke */
}Hinweis: Bei aktiviertem verzögerten Upload-Modus können Benutzer die Dateien vor dem Upload neu anordnen, löschen und in Ruhe auswählen. Die tatsächliche Upload-Verarbeitung beginnt erst nach dem Klick auf den Button.
- KLXM Crossmedia GmbH: klxm.de - Die Werbeagentur vom Niederrhein
- Entwickler: Thomas Skerbis
- Vendor: FilePond - pqina.nl/filepond
- Lizenz: MIT
We believe in giving back to the community. You'll find various open source projects in our repositories that we've developed and maintain. We're also proud contributors to the REDAXO CMS ecosystem, actively participating in its development and community.
- GitHub Issues: Für Fehlermeldungen und Feature-Anfragen.
- REDAXO Slack: Für Community-Support und Diskussionen.
- www.redaxo.org: Offizielle REDAXO-Website.
- AddOn Homepage: Für aktuelle Informationen und Updates.
