Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class TestAdmin extends ModelAdmin {
- static $managed_models = array('MyDataObject');
- static $url_segment = 'testadmin';
- static $menu_title = 'TestAdmin';
- }
- class MyDataObject extends DataObject {
- private static $db = array('Name' => 'Varchar(255)');
- private static $has_many= array('AnotherDataObjects' => 'AnotherDataObject');
- function getCMSFields() {
- $fields = parent::getCMSFields();
- if ($grid = $fields->dataFieldByName('AnotherDataObjects')) {
- $grid->getConfig()
- ->removeComponentsByType('GridFieldAddExistingAutocompleter')
- ->addComponent(new GridFieldOrderableRows('Priority'));
- $fields->removeByName('AnotherDataObjects');
- $fields->insertAfter($grid,'Name');
- }
- return $fields;
- }
- }
- class AnotherDataObject extends DataObject {
- private static $db = array(
- 'Name' => 'Varchar(255)',
- 'Type' => "Enum('Middle,Top,End','Middle')",
- 'Priority' => 'Int'
- );
- private static $has_one = array('MyDataObject' => 'MyDataObject');
- function onBeforeWrite() {
- parent::onBeforeWrite();
- if($this->Type == 'Top')
- $this->Priority = DB::query("SELECT MIN(Priority) FROM Type = 'Top'")->value();
- if($this->Type == 'End')
- $this->Priority = DB::query("SELECT MAX(Priority) FROM AnotherDataObjectWHERE Type = 'End'")->value() + 1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement