diff --git a/docs/HasManyExample.md b/docs/HasManyExample.md new file mode 100644 index 0000000..5f9fe93 --- /dev/null +++ b/docs/HasManyExample.md @@ -0,0 +1,32 @@ + :::php + /*** TestPage.php ***/ + class TestPage extends Page { + public static $has_many=array( + 'TestObjects'=>'TestObject' + ); + + public function getCMSFields() { + $fields=parent::getCMSFields(); + + $conf=GridFieldConfig_RelationEditor::create(10); + $conf->addComponent(new GridFieldSortableRows('SortOrder')); + + $fields->addFieldToTab('Root.TestObjects', new GridField('TestObjects', 'TestObjects', $this->TestObjects(), $conf)); + + return $fields; + } + } + + + /*** TestObject.php ***/ + class TestObject extends DataObject { + public static $db=array( + 'Title'=>'Text' + ); + + public static $belongs_many_many=array( + 'TestPages'=>'TestPage' + ); + + public static $default_sort='SortOrder'; + } \ No newline at end of file diff --git a/docs/ManyManyExample.md b/docs/ManyManyExample.md new file mode 100644 index 0000000..040674a --- /dev/null +++ b/docs/ManyManyExample.md @@ -0,0 +1,41 @@ + :::php + /*** TestPage.php ***/ + class TestPage extends Page { + public static $many_many=array( + 'TestObjects'=>'TestObject' + ); + + public static $many_many_extraFields=array( + 'TestObjects'=>array( + 'SortOrder'=>'Int' + ) + ); + + + public function getCMSFields() { + $fields=parent::getCMSFields(); + + $conf=GridFieldConfig_RelationEditor::create(10); + $conf->addComponent(new GridFieldSortableRows('SortOrder')); + + $fields->addFieldToTab('Root.TestObjects', new GridField('TestObjects', 'TestObjects', $this->TestObjects(), $conf)); + + return $fields; + } + + public function TestObjects() { + return $this->getManyManyComponents('TestObjects')->sort('SortOrder'); + } + } + + + /*** TestObject.php ***/ + class TestObject extends DataObject { + public static $db=array( + 'Title'=>'Text' + ); + + public static $belongs_many_many=array( + 'TestPages'=>'TestPage' + ); + } \ No newline at end of file