Eine Discourse Theme Component, die das Erstellen von Office-Dokumenten in Nextcloud direkt aus dem Discourse Composer ermöglicht.
- ✅ Button "Word/EXCEL/PowerPoint-Datei" im Discourse Composer
- ✅ Erstellt .docx/.xlsx./pptx-Dateien in Nextcloud
- ✅ Fügt bearbeitbaren Share-Link ins Posting ein
- ✅ Automatische Dateinamengenerierung aus Topic-Titel
- ✅ Konfigurierbare API-URL via Theme-Settings
Diese Theme Component benötigt einen LAMP-Server als Middleware zwischen Discourse und Nextcloud.
Backend-Code: Die PHP-Middleware finden Sie im Hauptprojekt-Repository.
Via GitHub (empfohlen):
- Als Admin in Discourse einloggen
- Admin-Panel → Customize → Themes
- Install → From a git repository
- Repository-URL eingeben:
https://github.com/rstockm/discourse-nextcloud-word - Install klicken
Via Manual Upload:
- Repository herunterladen
- Admin-Panel → Customize → Themes
- Install → Dateien einzeln hochladen
- Wählen Sie ein aktives Theme
- Include component →
Nextcloud Word Integration - Save
Falls Ihr LAMP-Server eine andere URL hat:
- Theme Component öffnen
- Settings →
api_urlanpassen - Save
- Neuen Post oder Reply in Discourse erstellen
- Button "Word-Datei" im Composer-Toolbar klicken
- Word-Dokument wird automatisch in Nextcloud erstellt
- Bearbeitbarer Share-Link wird ins Posting eingefügt
Beispiel-Output:
📄 [Mein-Dokument.docx](https://nextcloud.domain/s/xxxxx)- api_url: URL des LAMP-Server API-Endpoints (Standard:
https://nextdiscourse.wolkenbar.de/create-docx.php)
Um den Button anzupassen, editieren Sie javascripts/discourse/api-initializers/nextcloud-word-button.js:
Icon ändern:
icon: "file-word" // Andere Icons: "file", "cloud", "folder", etc.Label ändern:
label: "Word-Datei" // Ihr eigener TextPosition ändern:
group: "extras" // Optionen: "fontStyles", "insertions", "extras"Discourse Theme Component (JavaScript)
↓ AJAX POST
LAMP-Server Middleware (PHP)
↓ WebDAV + OCS API
Nextcloud (Dateispeicher)
- Prüfen Sie, ob die Component einem aktiven Theme zugewiesen ist
- Browser-Cache leeren
- Discourse-Browser-Session neu laden
- Prüfen Sie die API-URL in den Settings
- Öffnen Sie Browser-Console für Details (F12 → Console)
- Testen Sie die API direkt:
curl -X POST https://ihre-api.domain/create-docx.php \ -H "Content-Type: application/json" \ -d '{"fileName": "test.docx"}'
Stellen Sie sicher, dass Ihre Discourse-Domain in der LAMP-Server config.php unter ALLOWED_ORIGINS eingetragen ist:
define('ALLOWED_ORIGINS', ['https://ihre-discourse.domain']);Bei Problemen bitte ein Issue im GitHub-Repository erstellen.
MIT License - siehe LICENSE-Datei