Advertisement
Guest User

Untitled

a guest
Sep 26th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.40 KB | None | 0 0
  1. class TestAdmin extends ModelAdmin {
  2. static $managed_models = array('MyDataObject');
  3. static $url_segment = 'testadmin';
  4. static $menu_title = 'TestAdmin';
  5. }
  6.  
  7. class MyDataObject extends DataObject {
  8. private static $db = array('Name' => 'Varchar(255)');
  9. private static $has_many= array('AnotherDataObjects' => 'AnotherDataObject');
  10.  
  11. function getCMSFields() {
  12. $fields = parent::getCMSFields();
  13.  
  14. if ($grid = $fields->dataFieldByName('AnotherDataObjects')) {
  15. $grid->getConfig()
  16. ->removeComponentsByType('GridFieldAddExistingAutocompleter')
  17. ->addComponent(new GridFieldOrderableRows('Priority'));
  18.  
  19. $fields->removeByName('AnotherDataObjects');
  20. $fields->insertAfter($grid,'Name');
  21. }
  22.  
  23. return $fields;
  24. }
  25. }
  26.  
  27. class AnotherDataObject extends DataObject {
  28. private static $db = array(
  29. 'Name' => 'Varchar(255)',
  30. 'Type' => "Enum('Middle,Top,End','Middle')",
  31. 'Priority' => 'Int'
  32. );
  33. private static $has_one = array('MyDataObject' => 'MyDataObject');
  34.  
  35. function onBeforeWrite() {
  36. parent::onBeforeWrite();
  37.  
  38. if($this->Type == 'Top')
  39. $this->Priority = DB::query("SELECT MIN(Priority) FROM Type = 'Top'")->value();
  40.  
  41. if($this->Type == 'End')
  42. $this->Priority = DB::query("SELECT MAX(Priority) FROM AnotherDataObjectWHERE Type = 'End'")->value() + 1;
  43. }
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement