Anleitung eLeDia Tiny Styles für Admins
Installation & Konfiguration (für Admins)
1. Installation:
- Installiere das Plugin wie gewohnt über Website-Administration → Plugins → Install plugins oder kopiere die Dateien ins Verzeichnis lib/editor/tiny/plugins/elediastyles.
2. Konfiguration:
- Rufe Website-Administration → Plugins → Texteditoren → EleDia Styles auf.
- Fülle das Feld "Style-Definitionen (JSON)" mit den gewünschten Namen und CSS-Klassen für Dein Dropdown-Menü.
3. Aussehen gestalten (SCSS eingeben):
- Fülle das Feld "CSS/SCSS-Definitionen" mit dem SCSS-Code, der das Aussehen Deiner Klassen (Farben, Ränder, etc.) festlegt.
4. (optional) Zusatzeinstellungen wählen
Folgende Einstelloptionen sind verfügbar:
- Die Option im Editor, um Styles zu löschen, kann entweder innerhalb des Dropdowns angeboten werden oder als eigener Button in der Tiny MCE Menüzeile. Aktiviere bei Bedarf den entsprechenden Button

- Optional kannst Du externe CSS-Dateien laden. Trage pro Zeile eine vollständige URL ein (z. B. https://…/ styles.css). Diese Styles werden im Editor-Inhalt angewendet, damit Vorschau und Formatierung konsistent sind.
- Hinweise:
- Die Reihenfolge der Zeilen entspricht der Lade-Reihenfolge (spätere überschreiben frühere Regeln).
- Stelle sicher, dass die Dateien erreichbar sind (CORS/HTTPS/ CSP).
- Für die Anzeige nach dem Speichern empfiehlt sich zusätzlich die Hinterlegung im Theme, falls die CSS nicht global geladen wird.
- Die Reihenfolge der Zeilen entspricht der Lade-Reihenfolge (spätere überschreiben frühere Regeln).
5. Kompilieren und Speichern:
- Klicke am Ende der Seite auf „Änderungen Speichern“
- Das Plugin kompiliert nun Deinen SCSS-Code und die Seite wird anschließend automatisch neugeladen.
6. CSS ins Theme kopieren:
- Scrolle nach unten zum Anzeigefeld "Kompiliertes CSS".
- Klicke den Button "Copy All" oder markiere und kopiere den gesamten Inhalt des Feldes in die Zwischenablage.

- Navigiere zu den Einstellungen Deine aktiven Themes (z.B. unter Website-Administration → Darstellung → Designs → [Dein Theme]).
- Füge den kopierten CSS-Code in das Feld für benutzerdefiniertes CSS ein (oft "Raw SCSS" oder "Custom CSS" genannt).
- Speichere die Theme-Einstellungen.
7. Caches leeren:
- Leere zur Sicherheit alle Moodle-Caches (Website-Administration → Entwicklung → Alle Caches löschen).
8. Capabilities festlegen (optional)
Das Plugin bitetet folgende Capability, über die eingestellt werden, welche Rollen das Plugin nutzen können:
tiny/elediastyles:use
Auf dem Weg kann zum Beispiel Teilnehmer:innen das Recht entzogen werden, die Formatvorlagen auszuwählen.
- Struktur: Achte bei den JSON-Einträgen sorgfältig auf korrekte Syntax (Anführungszeichen, Kommas). Andernfalls kann das Plugin die Daten nicht verarbeiten.
- CSS vs. JSON: Der Style-Definitionen-Bereich legt nur fest, welche Klassen anwendbar sind. Die tatsächliche Darstellung (Farben, Ränder, etc.) muss in den CSS-Definitionen stehen.
Damit ist
"eleDia Styles" erfolgreich konfiguriert. Die Styles sind nun sowohl
im Editor als auch auf der gesamten Moodle-Seite sichtbar. Nutzer:innen können nun die vordefinierten Formatierungen per Dropdown auswählen und auf markierte Textstellen anwenden.
Hinweise zur Style-Konfiguration (für Admins)
1. Style-Definitionen (JSON)
Einstellung:
Website-Administration → Plugins → Texteditoren → EleDia Styles → Style-Definitionen (JSON)
Intern: tiny_elediastyles | styleslist
Beschreibung:
Hier legst Du fest, welche Stile im Editor zur Auswahl angeboten werden und welche CSS-Klassen sie anwenden. Die Eingabe erfolgt in einer JSON-Struktur (ein Array aus Stil-Objekten).
Ein Beispiel für blockorientierte Styles sieht so aus und besteht aus einem Array mit Objekten mit folgenden Feldern:
- title: Der Name, der im Dropdown-Menü angezeigt wird (z.B. "Arbeitsauftrag oder Green Box").
- type: Legt fest, ob der Stil blockweise („block“) oder inline („inline“) angewendet wird
- classes: Die CSS-Klassen, die dem Text/Absatz hin-zugefügt werden (z.B. "as-task"). Mehrere Klassen werden durch ein Leerzeichen getrennt.
- preview: (optional) Gibt an, ob eine Vorschau angezeigt werden soll
Beispiel (JSON):
[
{
"title": "Arbeitsauftrag",
"type": "block",
"classes": "as-task",
"preview": true
},
{
"title": "Bearbeitungszeit",
"type": "inline",
"classes": "as-workload",
"preview": true
},
]
2. CSS-Definitionen
Einstellung:
Website-Administration → Plugins → Texteditoren → EleDia Styles → CSS-Definitionen
Intern: tiny_elediastyles | csslist
Beschreibung:
In diesem Feld hinterlegen Sie die eigentlichen CSS-Regeln, die das Aussehen der oben definierten Klassen bestimmen. Das Plugin verfügt über einen integrierten SCSS-Compiler. Sie können hier also modernen SCSS-Code verwenden, inklusive Variablen ($meine-farbe: #ff0000;) und Verschachte-lungen, um Ihre Styles effizient zu verwalten.
Beispiel(SCSS):
.as-task {
background-color: #FFFFFF !important;
color: #1f3d7a !important;
box-shadow: 5px 5px 0px #CEDAF3;
border: 1px solid #CEDAF3;
margin: 1.5rem 0rem 2rem 0rem;
&::before {
font-family: "Font Awesome 6 Free";
font-size: 1.875rem;
font-weight: 900;
color: #244890;
content: '\e4bb';
position: absolute;
left: 20px;
top: 14px;
}
}
.as-workload {
text-align: right;
background-color: #074c89 !important;
padding: 1px 10px 4px 10px;
border-radius: 1rem;
color: #fff !important;
font-weight: 600;
font-size: 0.9rem;
line-height: 1.2rem;
margin-bottom: 10px;
&::before {
font-family: "Font Awesome 6 Free";
content: '\f017';
padding-right: 10px;
}
}
Definiere hier alle Klassen, die in Deinen Style-Definitionen verwendet werden.
Besonderheit - Styling der Vorschau im Dropdown-Menü
Du wirst eventuell bemerken, dass Deine Styles im Editorinhalt korrekt angezeigt werden, aber in der Vorschau-Liste im Dropdown-Menü nicht (zum Beispiel fehlt die Hintergrundfarbe). Das liegt daran, dass TinyMCE eigene, starke Styles für seine Menüelemente hat, die Deine benutzerdefinierten Regeln überschreiben können.
Hierfür gibt es zwei Lösungsansätze:
Lösung A: Die pragmatische Methode mit !important
Dies ist der einfachste und oft zuverlässigste Weg, um sicherzustellen, dass Deine Vorschau-Styles im Dropdown sichtbar sind. Füge !important zu den CSS-Eigenschaften hinzu, die für die Vorschau entscheidend sind (üblicherweise background-color und color).
Beispiel (SCSS):
.as-task {
background-color: #E91E63 !important; /*!important erzwingt die Anwendung*/
color: #fff !important;
}
Lösung B: Die fortgeschrittene Methode mit spezifischeren Selektoren
Diese Methode vermeidet !important, erfordert aber eine genauere Kenntnis der CSS-Struktur von TinyMCE. Die Idee ist, CSS-Regeln zu schreiben, die "stärker" sind als die von TinyMCE, indem sie spezifischer sind.
Prinzip: Du kombinierst die TinyMCE-Klassen für Menü-Elemente (z.B. .tox-collection item) mit Deinen eigenen Klassen
Beispiel (SCSS):
// Basis-Style für den Inhalt im Editor
.as-task {
background-color: #FFFFFF;
color: #1f3d7a;
}
// Spezieller Override NUR für die Dropdown-Vorschau
// Dies zielt nur auf Elemente mit der Klasse .as-task, die auch ein TinyMCE-Menü-Item sind.
.tox-collection item.as-task {
background-color: #FFFFFF;
color: #1f3d7a;
// Zusätzlich den Zustand überschreiben, wenn das Element ausgewählt ist
&.tox-collection, &:hover {
background-color: #E91E63; // Erzwingt die Pink-Farbe auch im Hover Aktiv Zustand
}
}
Hinweis: Dieser Ansatz erfordert eventuell eine Analyse mit den Entwicklertools des Browsers, um die genauen TinyMCE-Klassen zu finden, und kann bei Updates von TinyMCE Anpassungen erfordern.
Empfehlung: Für die meisten Anwendungsfälle empfehlen wir, mit Lösung A (!important) für die Dropdown-Vorschau zu beginnen, da sie schnell zum gewünschten visuellen Ergebnis führt.
