- Vollständig mit YForm umgesetzt: Alle Features und Anpassungsmöglichkeiten von YForm verfügbar
- Einfach: Die Ausgabe erfolgt über
rex_sql
oder objektorientiert über YOrm - Flexibel: Filtere Fragen und Antworten nach Kategorien
- Sinnvoll: Nur ausgewählte Rollen/Redakteure haben Zugriff
- Suchmaschinenoptimiert: Bereit für das JSON+LD-Format und Strucured Data auf Basis von schema.org
- Bereit für viel mehr: Kompatibel zum URL2-Addon
Tipp: Das Addon arbeitet hervorragend zusammen mit den Addons
yform_usability
Steuere eigene Verbesserungen dem GitHub-Repository von qanda bei. Oder unterstütze dieses Addon: Mit einer Beauftragung unterstützt du die Weiterentwicklung dieses AddOns
Im REDAXO-Installer das Addon qanda
herunterladen und installieren. Anschließend erscheint ein neuer Menüpunkt Fragen & Antworten
.
<h1>FAQ-Seite</h1>
<?php
echo qanda::showFAQPage(qanda::getAll()); // Json+ld
foreach (qanda::getAll() as $question) {
echo '<details><summary>'.$question->getQuestion().'</summary>';
echo '<div class="answer">'.$question->getAnswer().'</div></details>';
}
?>
<h3>Die wichtigsten Fragen</h3>
<?php
foreach (qanda::getAll() as $question) {
echo '<details><summary>'.$question->getQuestion().'</summary>';
echo '<div class="answer">'.$question->getAnswer().'</div></details>';
echo qanda::showJsonLd($question);
}
?>
Typ rex_yform_manager_dataset
. Greift auf die Tabelle rex_qanda
mit Fragen und Antworten zu.
$question = qanda::get(3); // Frage mit der id=3
// Frage und Antwort
dump($question->getQuestion()); // Frage
dump($question->getAuthor()); // Autor der Frage
dump($question->getAnswer()); // Antwort als HTML (sofern ein Editor angegeben wurde)
dump($question->getAnswerAsPlaintext()); // Antwort als Text, statt als HTML
// Kategorie
dump($question->getCategory()); // Kategorie zur Frage/Antwort mit der id=3
dump($question->getCategories()); // Kategorien zur Frage/Antwort mit der id=3
// Weitere Methoden
dump($question->getUrl()); // URL zur aktuellen Seite mit Sprungmarke `question-header-{id}`
Weitere Methoden unter https://github.com/yakamara/redaxo_yform/blob/master/docs/04_yorm.md
Typ rex_yform_manager_dataset
. Greift auf die Tabelle rex_qanda_category
zu.
dump(qanda_category::get(3)); // Kategorie mit der id=3
dump(qanda_category::get(3)->getAllQuestions()); // Alle Frage-Antwort-Paare der Kategorie id=3
Weitere Methoden unter https://github.com/yakamara/redaxo_yform/blob/master/docs/04_yorm.md
In der Tabelle rex_qanda
werden einzelne Frage-Antwort-Kombinationen festgehalten.
GitHub Copilot: Hier sind die deutschen PHP-Docs in dieser Klasse mit Beispielen als Markdown:
Gibt die erste Kategorie zurück.
$firstCategory = $question->getCategory();
Gibt alle Kategorien zurück.
$categories = $question->getCategories();
Gibt die Frage in der angegebenen Sprache zurück, falls vorhanden, sonst in der Standardsprache.
$question = $question->getQuestion('de');
Findet Datensätze anhand ihrer IDs.
$records = qanda::findByIds([1, 2, 3], 1.0);
Findet Datensätze anhand ihrer Kategorie-IDs.
$records = qanda::findByCategoryIds([1, 2, 3], 1.0);
Gibt die Antwort in der angegebenen Sprache zurück, falls vorhanden, sonst in der Standardsprache.
$answer = $question->getAnswer('de');
GitHub Copilot: Hier sind die deutschen PHP-Docs in dieser Klasse mit Beispielen als Markdown:
Gibt die Antwort als reinen Text (ohne HTML-Tags) in der angegebenen Sprache zurück, falls vorhanden, sonst in der Standardsprache.
$plaintextAnswer = $question->getAnswerAsPlaintext('de');
Gibt die Übersetzung in der angegebenen Sprache zurück, falls vorhanden, sonst die Sammlung aller Übersetzungen.
$translation = $question->getTranslation('de');
Gibt den Autor zurück.
$author = $question->getAuthor();
Gibt die URL zurück, optional mit einem spezifischen Parameter.
$url = $question->getUrl('question-header-');
Gibt die JSON-LD-Darstellung einer Frage zurück.
$jsonLd = MyClass::showJsonLd($question);
Gibt die JSON-LD-Darstellung einer FAQ-Seite zurück.
$jsonLd = MyClass::showFAQPage($questions);
Die Tabelle für Kategorien kann frei verändert werden, um Fragen / Antworten zu gruppieren oder zu Verschlagworten (als Tags).
GitHub Copilot: Hier sind die deutschen PHP-Docs in dieser Klasse mit Beispielen als Markdown:
Gibt den Namen der Kategorie zurück.
$name = $category->getName();
Findet Kategorien anhand ihrer IDs.
$categories = qanda_category::findByIds([1, 2, 3], 1);
Findet Fragen, die zu dieser Kategorie gehören.
$questions = $category->find(1);
GitHub Copilot: Hier sind alle deutschen PHP-Docs in dieser Klasse mit Beispielen als Markdown:
Gibt die Antwort als reinen Text (ohne HTML-Tags) zurück.
$plaintextAnswer = $qanda_lang->getAnswerAsPlaintext();
Gibt die Frage zurück.
$question = $qanda_lang->getQuestion();
Gibt die Antwort zurück.
$answer = $qanda_lang->getAnswer();
Setzt den Wert für die Antwort.
$qanda_lang->setAnswer('This is the answer.');
Setzt den Wert für die Frage.
$qanda_lang->setQuestion('What is the question?');
Gibt die Übersetzung für eine bestimmte Frage und Sprache zurück.
$translation = qanda_lang::getTranslation(1, 'de');
MIT-Lizenz
Alexander Walther
http://www.alexplus.de
https://github.com/alexplusde
Projekt-Lead
Alexander Walther
qanda basiert auf: YForm