diff --git a/types/category.php b/types/category.php index 519189ab046cf6a0e00cd67a85d97ad809f4d078..c87fd8dfd7e5b0b31f073a0239debfe33e61aa2c 100644 --- a/types/category.php +++ b/types/category.php @@ -4,39 +4,66 @@ $entries = $Site->getChildren([ 'type' => 'quiqqer/faq:types/entry' ]); -$faqTemplate = 'default'; -$offset = false; -$FAQControl = null; +$faqTemplate = 'default'; +$offset = false; +$FAQControl = null; $useFaqStructuredData = $Site->getAttribute('quiqqer.faq.settings.useFaqStructuredData'); -$faqStructuredData = ''; // html string +$faqStructuredData = ''; // html string switch ($Site->getAttribute('quiqqer.faq.settings.template')) { case 'accordion': $faqTemplate = 'accordion'; $FAQControl = new \QUI\FAQ\Controls\Accordion([ - 'max' => 50, - 'stayOpen' => $Site->getAttribute('quiqqer.faq.settings.accordion.stayOpen'), - 'parentSite' => $Site, + 'max' => 50, + 'stayOpen' => $Site->getAttribute('quiqqer.faq.settings.accordion.stayOpen'), + 'parentSite' => $Site, 'useFaqStructuredData' => $useFaqStructuredData ]); break; case 'default': default: - $offset = intval($Site->getAttribute('quiqqer.faq.settings.offset')); + $offset = intval($Site->getAttribute('quiqqer.faq.settings.offset')); $faqTemplate = 'default'; if ($useFaqStructuredData) { - $FAQControl = new QUI\Bricks\Controls\Accordion(); + $jsonSchemaEntries = []; + + foreach ($entries as $FaqSite) { + $short = $FaqSite->getAttribute('short'); + $content = $FaqSite->getAttribute('content'); + + if ($short) { + $short = '<div class="quiqqer-faqAccordion-item-content-pageShort text-muted">' . $short . '</div>'; + } + + if ($content) { + $content = '<div class="quiqqer-faqAccordion-item-content-pageContent">' . $content . '</div>'; + } + + $entryContent = $short . $content; + + $entry = [ + 'entryTitle' => $FaqSite->getAttribute('title'), + 'entryContent' => $entryContent, + ]; + + $jsonSchemaEntries[] = $entry; + } + + $FAQControl = new QUI\Bricks\Controls\Accordion([ + 'entries' => $jsonSchemaEntries + ]); + $faqStructuredData = $FAQControl->createJSONLDFAQSchemaCode(); } break; } $Engine->assign([ - 'entries' => $entries, - 'faqTemplate' => $faqTemplate, - 'offset' => $offset, - 'FAQControl' => $FAQControl, + 'entries' => $entries, + 'faqTemplate' => $faqTemplate, + 'offset' => $offset, + 'FAQControl' => $FAQControl, 'faqStructuredData' => $faqStructuredData ]);