Benutzerdefinierte Felder designen
Ziel
Unter jedem Artikel automatisch diese Anzeige:
| Information | Wert |
|---|---|
| Termin | 15.10.2026 |
| Preis | 1290 € |
| Raum | B-315 |
| Unterricht | Hybrid |
| Online | Ja |
| Dozent | Max Mustermann |
1. Wo die Ausgabe herkommt
Joomla lädt für jeden Artikel diese Datei:
/components/com_content/tmpl/article/default.php
Die Felder selbst werden hier eingebunden:
/layouts/joomla/content/fields/render.php
Wir überschreiben genau diese Ausgabe — update-sicher.
2. Override erstellen (Backend)
Im Joomla Backend:
System → Templates → Site Templates → Cassiopeia → Overrides → com_content → article
Joomla erzeugt jetzt:
/templates/cassiopeia/html/com_content/article/default.php
UND das ist jetzt DEINE Version.
2a. Override erstellen (Step by Step)
Ziel
Wir erstellen ein Artikel-Override. Danach existiert diese Datei:
/templates/cassiopeia-extended/html/com_content/article/default.php
Und genau DIE bestimmt dann die Artikelanzeige auf:
https://joomla6.rneuhoff.de/irgendein-artikel
Schritt 1 —
Backend öffnen
https://joomla6.rneuhoff.de/administrator
Schritt 2 —
Sicherstellen welches Template aktiv ist
Menü:
System → Site Templates → Styles
Du musst sehen:
Cassiopeia-extended ★ (Standard)
Nur das Stern-Template wird verwendet.
Schritt 3 —
In das richtige Template wechseln
Jetzt NICHT auf „Cassiopeia“ klicken!, sondern auf:
System → Site Templates → Cassiopeia-extended
Schritt 4 —
Override-Generator öffnen
Oben Tabs:
Editor | Overrides | Layouts | Template
Klicke auf:
Overrides
Schritt 5 —
Artikel-Layout erzeugen
Linke Spalte: Components
→ article
→ default
Einmal anklicken.
❗ Joomla erstellt jetzt automatisch Dateien — ohne Meldung.
Schritt 6 —
Kontrollieren ob Datei wirklich existiert
Jetzt: System → Site Templates → Cassiopeia-extended → Editor
Links Ordner öffnen (CSS):
└─ com_content
└─ article
└─ default.php
Das ist dein Override.
Physischer Serverpfad (All-inkl)
Auf dem Webspace liegt die Datei hier:
/www/htdocs/DEIN_ACCOUNT/joomla6.rneuhoff.de/templates/cassiopeia-extended/html/com_content/article/default.php
Vergleich:
|
Typ |
Pfad |
|---|---|
|
Original Joomla |
/components/com_content/tmpl/article/default.php |
|
Dein Override |
/templates/cassiopeia-extended/html/ |
Joomla benutzt jetzt nur noch dein Override.
Schritt 7 —
Funktion testen
Datei öffnen und GANZ OBEN einfügen:
Override funktioniert
</div>
Speichern
Frontend Artikel aufrufen:
https://joomla6.rneuhoff.de/index.php/home
Wenn du den roten Balken siehst → alles korrekt.Danach wieder löschen.
3. Jetzt Felder als Tabelle ausgeben
Öffne:
/templates/cassiopeia/html/com_content/article/default.php
Suche die Zeile:
echo $this->item->jcfields;
oder
echo FieldsHelper::render('com_content.article', 'fields', ['item' => $this->item]);
Diese ersetzen wir komplett.
4. Neue Tabellen-Ausgabe einbauen
Ganz unten vor:
</div>
<table class="custom-fields-table">
<tbody>
<?php foreach ($this->item->jcfields as $field) : ?>
<?php if (!empty($field->value)) : ?>
<tr>
<th><?php echo htmlspecialchars($field->title); ?></th>
<td><?php echo $field->rawvalue; ?></td>
</tr>
<?php endif; ?>
<?php endforeach; ?>
</tbody>
</table>
<?php endif; ?>
5. Tabelle hübsch machen (CSS)
Datei: /templates/cassiopeia-extended/css/user.css
anlegen oder erweitern:
.custom-fields-table {
width: 100%;
border-collapse: collapse;
margin-top: 30px;
font-size: 0.95rem;
}
.custom-fields-table th {
background: #2c5aa0;
color: white;
text-align: left;
padding: 10px;
width: 30%;
}
.custom-fields-table td {
background: #f5f7fb;
padding: 10px;
border-bottom: 1px solid #d0d7e2;
}
.custom-fields-table tr:nth-child(even) td {
background: #e8edf5;
}
Browser STRG + F5
6. Was jetzt im Frontend passiert (sichtbares Ergebnis)
Angenommen dein Artikel hat folgende Felder:
| Feldname | Inhalt |
|---|---|
| Text | Joomla Einführung |
| Kalender | 12.02.2026 |
| Checkbox | Ja |
| Farbe | Blau |
| Zahl | 25 |
| Benutzer | Reiner |
Vorher (Standard Joomla)
Unordentlich untereinander:
Kalender: 12.02.2026
Checkbox: Ja
Farbe: #0000ff
Zahl: 25
Benutzer: Reiner
Der Artikel zeigt automatisch:
| Eigenschaft | Wert |
|---|---|
| Text | Joomla Einführung |
| Kalender | 12.02.2026 |
| Checkbox | Ja |
| Farbe | Blau |
| Zahl | 25 |
| Benutzer | Reiner |
Visuell:
👉 Blau hinterlegte linke Spalte
👉 Hellgraue Werte rechts
👉 Gleichmäßig wie ein Datenblatt
Das passiert automatisch bei JEDEM Artikel mit Feldern. Du musst nie wieder HTML schreiben.
7. Leere Felder nicht anzeigen
Wenn du ein Feld leer lässt → erscheint es NICHT in der Tabelle.
Das kommt von:
if (!empty($field->value))
Also kein Chaos, keine leeren Zeilen.
Ergebnis
Du hast jetzt:
- strukturierte Artikeldaten
- SEO-bessere Lesbarkeit
- wartbare Inhalte
- perfekte Darstellung ohne Editor-Gefrickel