rex_sql
oder objektorientiert über YOrmTipp: 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);
}
?>
qanda
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
qanda_category
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:
getCategory()
Gibt die erste Kategorie zurück.
$firstCategory = $question->getCategory();
getCategories()
Gibt alle Kategorien zurück.
$categories = $question->getCategories();
getQuestion(string|null $lang = null)
Gibt die Frage in der angegebenen Sprache zurück, falls vorhanden, sonst in der Standardsprache.
$question = $question->getQuestion('de');
findByIds(array $ids, float $status = 1)
Findet Datensätze anhand ihrer IDs.
$records = qanda::findByIds([1, 2, 3], 1.0);
findByCategoryIds(array $category_ids, float $status = 1)
Findet Datensätze anhand ihrer Kategorie-IDs.
$records = qanda::findByCategoryIds([1, 2, 3], 1.0);
getAnswer(string|null $lang = null)
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:
getAnswerAsPlaintext(string|null $lang = null)
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');
getTranslation(string|null $lang = null)
Gibt die Übersetzung in der angegebenen Sprache zurück, falls vorhanden, sonst die Sammlung aller Übersetzungen.
$translation = $question->getTranslation('de');
getAuthor()
Gibt den Autor zurück.
$author = $question->getAuthor();
getUrl(string $param = 'question-header-')
Gibt die URL zurück, optional mit einem spezifischen Parameter.
$url = $question->getUrl('question-header-');
showJsonLd(int|rex_yform_manager_dataset $question)
Gibt die JSON-LD-Darstellung einer Frage zurück.
$jsonLd = MyClass::showJsonLd($question);
showFAQPage(array|rex_yform_manager_collection $questions)
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:
getName()
Gibt den Namen der Kategorie zurück.
$name = $category->getName();
findByIds(array|string $ids, int $status = 1)
Findet Kategorien anhand ihrer IDs.
$categories = qanda_category::findByIds([1, 2, 3], 1);
find(int $status = 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:
getAnswerAsPlaintext()
Gibt die Antwort als reinen Text (ohne HTML-Tags) zurück.
$plaintextAnswer = $qanda_lang->getAnswerAsPlaintext();
getQuestion()
Gibt die Frage zurück.
$question = $qanda_lang->getQuestion();
getAnswer()
Gibt die Antwort zurück.
$answer = $qanda_lang->getAnswer();
setAnswer(string $answer)
Setzt den Wert für die Antwort.
$qanda_lang->setAnswer('This is the answer.');
setQuestion(string $question)
Setzt den Wert für die Frage.
$qanda_lang->setQuestion('What is the question?');
getTranslation(int $question, string $lang)
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