cyberstammtisch-silverstripe/app/src/FactsPage.php

65 lines
1.8 KiB
PHP

<?php
namespace {
use SilverStripe\CMS\Model\SiteTree;
use SilverStripe\Forms\NumericField; // Beispiel von Feld-Typen
use SilverStripe\Forms\CheckboxField; // dito
use SilverStripe\Forms\TextField; // dito
use SilverStripe\Forms\HTMLEditor\HTMLEditorField; // dito
use SilverStripe\Forms\GridField\GridField;
use SilverStripe\Forms\GridField\GridFieldConfig_RecordEditor;
// Eigener SeitenTyp fürs CMS - im Theme dann einfach mit dem gelcihen Namen ein Template dafür erstellen in Layout/AdventPage.ss
class FactsPage extends Page
{
// Datenbankfelder
private static $db = [
];
private static $defaults = [
];
private static $has_one = [];
// Besitzt viele FactCard Datenobjekte
private static $has_many = [
'Facts' => 'FactCard'
];
// Edit-Felder im Backend
public function getCMSFields() {
$fields = parent::getCMSFields(); // Alle Felder des Mutter-Pagetyps inkludieren (extends Page)
// Spezielles GridField / Tabelle (Mit Root.Main wrde die Tabelle beim normalen Content erscheinen und nicht in eigenenm Tab)
$fields->addFieldToTab('Root.Faktencheck', GridField::create(
'Facts',
'Faktencheck Karten',
$this->Facts(),
GridFieldConfig_RecordEditor::create()
));
return $fields;
}
// Same as above, um Edit-Felder in den Settings Tab zu kriegen
// Kein extra Feld hinzugefügt und nur als Beispiel hier
function getSettingsFields() {
$fields = parent::getSettingsFields();
return $fields;
}
}
class FactsPageController extends PageController {
}
}