Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * Created by PhpStorm.
- * User: joe.broderick
- * Date: 6/12/2015
- * Time: 5:19 PM
- */
- class CustomHMenu extends DataObject implements PermissionProvider{
- private static $db = array(
- 'Name' => 'Varchar',
- 'Slug' => 'Text'
- );
- public static $many_many = array(
- 'Pages' => 'SiteTree',
- 'CustomHMenus' => 'CustomHMenu'
- );
- public function getCMSFields(){
- $fields = FieldList::create(TabSet::create('Root'));
- $fields->addFieldsToTab('Root.Main',array(
- TextField::create('Name', 'Menu Name')
- ));
- $fields = parent::getCMSFields();
- $fields->removeByName('Pages');
- $fields->removeByName('CustomHMenus');
- if(!$this->ID) {
- $fields->addFieldToTab('Root.Main', new TextField('Name','Menu Name'));
- $fields->addFieldToTab('Root.Main', new TextField('Slug', 'Slug (for internal referencing)'));
- } else {
- $fields->addFieldToTab('Root.Main', new HeaderField('MenuSettings',_t('CustomMenus.FormSettingsHeader','Menu Settings')));
- $fields->addFieldToTab('Root.Main', new TextField('Name','Menu Name'));
- $fields->addFieldToTab('Root.Main', new TextField('Slug', 'Slug (for internal referencing)'));
- $fields->addFieldToTab('Root.Main', new HeaderField('MenuPages',_t('CustomMenus.FormPagesHeader','Pages in this Menu')));
- $fields->addFieldToTab('Root.Main', new TreeMultiselectField('Pages',_t('CustomMenus.FormPagesPages','Select pages'), 'SiteTree'));
- $fields->addFieldToTab('Root.Main', new HeaderField('MenuMenus','Sub Menus'));
- $fields->addFieldToTab('Root.Main', new TreeMultiselectField('CustomHMenus','Select Sub Menus', 'CustomHMenu'));
- //$fields->addFieldToTab('Root.Main', new CheckboxSetField('CustomHMenus', 'Select Sub Menus', 'CustomHMenu'));
- //$fields->addFieldToTab('Root.Main', new GridField( 'Pages', "Drag to Sort", $this->Pages, $config = GridFieldConfig_RelationEditor::create()->addComponent(new GridFieldOrderableRows())));
- }
- $this->extend('updateCMSFields', $fields);
- return $fields;
- }
- /** Permissions
- * -----------------------------------------------------------------------
- */
- public function providePermissions() {
- return array(
- 'MENU_VIEWALL' => array(
- 'name' => 'View all menus',
- 'help' => 'Allow viewing of all menus in the "Menus" section',
- 'category' => 'Menus',
- 'sort' => 100
- ),
- 'MENU_CREATE' => array(
- 'name' => 'Create menus',
- 'help' => 'Allow creation of menus in the "Menus" section',
- 'category' => 'Menus',
- 'sort' => 110
- ),
- 'MENU_DELETE' => array(
- 'name' => 'Delete menus',
- 'help' => 'Allow deleting of menus in the "Menus" section',
- 'category' => 'Menus',
- 'sort' => 120
- ),
- 'MENU_EDIT' => array(
- 'name' => 'Edit menus',
- 'help' => 'Allow editing of menus in the "Menu" section',
- 'category' => 'Menus',
- 'sort' => 130
- ),
- );
- }
- public function canView($member = null) {
- if(Permission::check('ADMIN') || Permission::check('MENU_VIEWALL'))
- return true;
- else
- return false;
- }
- public function canCreate($member = null) {
- if(Permission::check('ADMIN') || Permission::check('MENU_CREATE'))
- return true;
- else
- return false;
- }
- public function canDelete($member = null) {
- if(Permission::check('ADMIN') || Permission::check('MENU_DELETE'))
- return true;
- else
- return false;
- }
- public function canEdit($member = null) {
- if(Permission::check('ADMIN') || Permission::check('MENU_EDIT'))
- return true;
- else
- return false;
- }
- }
- class CustomHMenu_Controller extends Page_Controller {
- private static $allowed_actions = array(
- 'edit'
- );
- public function edit(){
- die('it works!');
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement