Skip to content
53eef90 Aug 23, 2013
38 lines (32 sloc) 1.44 KB

ModelAdmin implementation Example

Please note this example is written with 3.0.x in mind, if you are using 3.1.x make sure you scope all static properties to private not public.

/**** MyModelAdmin.php ****/
class MyModelAdmin extends ModelAdmin {
    public static $menu_title='My Model Admin';
    public static $url_segment='my-model-admin';

    public static $managed_models=array(
                                        'MATestObject'
                                    );

    public function getEditForm($id = null, $fields = null) {
        $form=parent::getEditForm($id, $fields);

        //This check is simply to ensure you are on the managed model you want adjust accordingly
        if($this->modelClass=='MATestObject' && $gridField=$form->Fields()->dataFieldByName($this->sanitiseClassName($this->modelClass))) {
            //This is just a precaution to ensure we got a GridField from dataFieldByName() which you should have
            if($gridField instanceof GridField) {
                $gridField->getConfig()->addComponent(new GridFieldSortableRows('SortOrder'));
            }
        }

        return $form;
    }
}

/**** MATestObject.php ****/
class MATestObject extends DataObject {
    public static $db=array(
                            'Title'=>'Varchar',
                            'SortOrder'=>'Int'
                        );

    public static $default_sort='SortOrder';
}
Something went wrong with that request. Please try again.