* @license GPL2 or any later version * * @since Stud.IP 5.0 */ class TabsContainer extends ContainerType { public static function getType(): string { return 'tabs'; } public static function getTitle(): string { return _('Tabs'); } public static function getDescription(): string { return _('Dieser Abschnitt verfügt über eine horizontale Navigation, ' . 'über die sich Gruppen von Blöcken erreichen lassen.'); } public function initialPayload(): array { return [ 'colspan' => 'full', 'sections' => [ 'name' => _('neuer Tab'), 'icon' => '', 'blocks' => [], ], ]; } public function addBlock($block, $sectionIndex = null): void { $payload = $this->getPayload(); if ($sectionIndex !== null) { array_push($payload['sections'][$sectionIndex]['blocks'], $block->id); } else { array_push($payload['sections'][count($payload['sections']) - 1]['blocks'], $block->id); } $this->setPayload($payload); } public static function getJsonSchema(): string { $schemaFile = __DIR__.'/TabsContainer.json'; return file_get_contents($schemaFile); } }