schachbulle / contao-interview-bundle
Inhaltselement für Interviews mit abwechselnd gesetzten Fragen und Antworten, für Contao 4.13 und Contao 5.
Package info
github.com/Samson1964/contao-interview-bundle
Type:contao-bundle
pkg:composer/schachbulle/contao-interview-bundle
Requires
- php: ^8.1
- contao/core-bundle: ^4.13 || ^5.0
- menatwork/contao-multicolumnwizard-bundle: ^3.6
- symfony/config: ^5.4 || ^6.4 || ^7.0
- symfony/dependency-injection: ^5.4 || ^6.4 || ^7.0
- symfony/http-kernel: ^5.4 || ^6.4 || ^7.0
Requires (Dev)
- contao/manager-plugin: ^2.0
Conflicts
- contao/core: *
- contao/manager-plugin: <2.0 || >=3.0
README
Stellt für Contao ein Inhaltselement bereit, mit dem sich ein Interview aus beliebig vielen Frage-Antwort-Paaren zusammenstellen lässt. Zu jeder Frage und zu jeder Antwort kann zusätzlich ein Bild ausgegeben werden.
Das Element eignet sich für Redaktionsseiten, Vereinsnachrichten und überall dort, wo ein Gespräch abgedruckt werden soll, ohne dass die Redaktion die Auszeichnung von Hand in einen Text-Inhaltselement schreiben muss.
Voraussetzungen
- Contao 4.13 LTS oder Contao 5
- PHP 8.1 oder neuer
- MultiColumnWizard (wird als Abhängigkeit automatisch mitinstalliert)
Installation
Über den Contao Manager nach schachbulle/contao-interview-bundle suchen
und das Paket hinzufügen.
Oder auf der Kommandozeile:
composer require schachbulle/contao-interview-bundle
Anschließend die Datenbank aktualisieren — entweder im Contao Manager unter „Systemwartung“ oder auf der Kommandozeile:
vendor/bin/contao-console contao:migrate
Dabei wird der Tabelle tl_content das Feld interview hinzugefügt, in dem
alle Frage-Antwort-Paare eines Elements gespeichert werden.
Verwendung
Inhaltselement anlegen
- Im Backend unter Artikel den gewünschten Artikel öffnen und ein neues Inhaltselement anlegen.
- Als Typ Interview wählen (Gruppe Texte).
- Im Abschnitt Einstellungen die Frage-Antwort-Paare eintragen.
Jede Zeile der Tabelle ist ein Frage-Antwort-Paar. Über die Schaltflächen am rechten Rand lassen sich Zeilen hinzufügen, löschen und verschieben — die Reihenfolge der Zeilen ist die Reihenfolge der Ausgabe im Frontend.
Die Felder einer Zeile
| Feld | Bedeutung |
|---|---|
| Veröffentlicht | Nur angehakte Zeilen erscheinen im Frontend. So lassen sich einzelne Fragen vorbereiten oder zurückstellen, ohne sie zu löschen. |
| Frage | Der Text der Frage, mit Rich-Text-Editor. Bleibt das Feld leer, wird im Frontend keine Frage ausgegeben. |
| Bild unter der Frage | Beliebige Bilddatei aus der Dateiverwaltung. Wird unterhalb der Frage ausgegeben. |
| Bildgröße (Frage) | Eine im Theme angelegte Bildgröße oder Breite/Höhe/Modus. Ohne Angabe erscheint das Bild in Originalgröße. |
| Antwort | Der Text der Antwort, mit Rich-Text-Editor. Bleibt das Feld leer, wird im Frontend keine Antwort ausgegeben. |
| Bild unter der Antwort | Wie bei der Frage, nur unterhalb der Antwort. |
| Bildgröße (Antwort) | Wie bei der Frage. |
Ein Interview kann also auch nur aus Fragen (etwa für einen Fragenkatalog) oder nur aus Antworten bestehen — leere Felder werden im Frontend übersprungen und hinterlassen keine leeren Absätze.
Wird ein Bild nachträglich in der Dateiverwaltung gelöscht, bleibt die Ausgabe fehlerfrei: Das Element lässt das Bild an dieser Stelle einfach weg.
Überschrift, Template und Sichtbarkeit
Das Element bringt die üblichen Contao-Abschnitte mit: Überschrift, Template, Zugriffsschutz, Experten-Einstellungen (CSS-ID/-Klasse) und Sichtbarkeit (Start- und Ablaufdatum).
Einstellungen
Unter System → Einstellungen → Inhaltselement Interview gibt es eine einzige Einstellung:
- Standard-CSS einbinden — bindet das mitgelieferte Stylesheet
bundles/contaointerview/default.cssim Frontend ein. Die Einstellung ist ab Werk ausgeschaltet, damit ein Update das Aussehen bestehender Seiten nicht verändert. Wer das Aussehen vollständig aus dem eigenen Theme steuert, lässt sie aus.
Das Stylesheet für das Backend wird immer geladen, aber ausschließlich im Backend — im Frontend entsteht dadurch kein zusätzlicher Ladeaufwand.
Ausgabe im Frontend
Das Element gibt je veröffentlichter Zeile bis zu vier Blöcke aus:
<div class="ce_interview block"> <h2>Überschrift des Elements</h2> <div class="interview_question">Text der Frage</div> <div class="interview_question_image"> <figure class="image_container">…</figure> </div> <div class="interview_answer">Text der Antwort</div> <div class="interview_answer_image"> <figure class="image_container">…</figure> </div> </div>
Die Bilder werden über das Contao-Teiltemplate image ausgegeben. Damit
gelten die üblichen Contao-Regeln: responsive Bildgrößen (picture/srcset),
Bildunterschrift aus den Metadaten der Datei und ein Verweis auf die
Großansicht. Ob dieser Verweis eine Lightbox öffnet, entscheidet das
Seitenlayout unter „Vorlagen-Einstellungen“.
Eigenes Aussehen
Für eigenes CSS stehen diese Klassen bereit:
| Klasse | Inhalt |
|---|---|
.ce_interview |
das gesamte Inhaltselement |
.interview_question |
der Text einer Frage |
.interview_answer |
der Text einer Antwort |
.interview_question_image |
das Bild unter einer Frage |
.interview_answer_image |
das Bild unter einer Antwort |
Das mitgelieferte default.css setzt die Frage in Fettschrift auf grauen
Grund mit Fragezeichen-Symbol und die Antwort kursiv. Es ist als Vorschlag
gedacht und darf im eigenen Theme gern überschrieben werden.
Eigenes Template
Im Abschnitt Template des Inhaltselements lässt sich ein eigenes Template
auswählen. Dazu ce_interview.html5 aus dem Bundle-Verzeichnis
src/Resources/contao/templates/ in den Ordner templates/ der Installation
kopieren und dort anpassen, zum Beispiel als ce_interview_zweispaltig.html5.
Im Template stehen zur Verfügung:
$this->interview— die Liste der Frage-Antwort-Paare. Jeder Eintrag ist ein Array mit den Schlüsselnpublished,question,answer,question_imageundanswer_image.$this->interview_css— der Schalter aus den Systemeinstellungen.
Die beiden Bildschlüssel enthalten entweder false (kein Bild ausgewählt
oder Datei nicht mehr vorhanden) oder ein Objekt mit den bekannten
Contao-Bildfeldern (picture, src, alt, caption, href …) sowie unter
figure das zugehörige Figure-Objekt.
Umstieg von Version 2.x
Bestehende Inhalte werden unverändert übernommen, eine Datenmigration ist nicht nötig. Zu beachten ist:
- Version 3 setzt PHP 8.1 und Contao 4.13 voraus. Für ältere Installationen bleibt Version 2.1.1 verfügbar.
- Die Bilder werden jetzt über das Contao-Teiltemplate
imageausgegeben und in einen eigenendivmit der Klasseinterview_question_imagebeziehungsweiseinterview_answer_imagegefasst. Wer die Bilder bisher per CSS über.ce_interview figureangesprochen hat, sollte das Ergebnis prüfen. - Ein eigenes, aus Version 2 kopiertes Template funktioniert weiterhin, gibt die Bilder aber ohne responsive Bildgrößen aus. Es empfiehlt sich, das neue Template als Grundlage zu nehmen.
Lizenz
LGPL-3.0-or-later. Siehe LICENSE.
Fehler und Wünsche bitte als Issue melden.