Advertisement
Guest User

Untitled

a guest
Jun 19th, 2015
260
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.32 KB | None | 0 0
  1. <?php
  2. /**
  3.  * Created by PhpStorm.
  4.  * User: joe.broderick
  5.  * Date: 6/12/2015
  6.  * Time: 5:19 PM
  7.  */
  8.  
  9. class CustomHMenu extends DataObject implements PermissionProvider{
  10.  
  11.     private static $db = array(
  12.         'Name' => 'Varchar',
  13.         'Slug' => 'Text'
  14.     );
  15.  
  16.     public static $many_many = array(
  17.         'Pages' => 'SiteTree',
  18.         'CustomHMenus' => 'CustomHMenu'
  19.     );
  20.  
  21.     public function getCMSFields(){
  22.         $fields = FieldList::create(TabSet::create('Root'));
  23.         $fields->addFieldsToTab('Root.Main',array(
  24.             TextField::create('Name', 'Menu Name')
  25.         ));
  26.  
  27.         $fields = parent::getCMSFields();
  28.  
  29.         $fields->removeByName('Pages');
  30.         $fields->removeByName('CustomHMenus');
  31.  
  32.         if(!$this->ID) {
  33.             $fields->addFieldToTab('Root.Main', new TextField('Name','Menu Name'));
  34.             $fields->addFieldToTab('Root.Main', new TextField('Slug', 'Slug (for internal referencing)'));
  35.         } else {
  36.             $fields->addFieldToTab('Root.Main', new HeaderField('MenuSettings',_t('CustomMenus.FormSettingsHeader','Menu Settings')));
  37.             $fields->addFieldToTab('Root.Main', new TextField('Name','Menu Name'));
  38.             $fields->addFieldToTab('Root.Main', new TextField('Slug', 'Slug (for internal referencing)'));
  39.  
  40.             $fields->addFieldToTab('Root.Main', new HeaderField('MenuPages',_t('CustomMenus.FormPagesHeader','Pages in this Menu')));
  41.             $fields->addFieldToTab('Root.Main', new TreeMultiselectField('Pages',_t('CustomMenus.FormPagesPages','Select pages'), 'SiteTree'));
  42.  
  43.             $fields->addFieldToTab('Root.Main', new HeaderField('MenuMenus','Sub Menus'));
  44.             $fields->addFieldToTab('Root.Main', new TreeMultiselectField('CustomHMenus','Select Sub Menus', 'CustomHMenu'));
  45.             //$fields->addFieldToTab('Root.Main', new CheckboxSetField('CustomHMenus', 'Select Sub Menus', 'CustomHMenu'));
  46.  
  47.             //$fields->addFieldToTab('Root.Main', new GridField( 'Pages', "Drag to Sort", $this->Pages, $config = GridFieldConfig_RelationEditor::create()->addComponent(new GridFieldOrderableRows())));
  48.         }
  49.  
  50.         $this->extend('updateCMSFields', $fields);
  51.  
  52.  
  53.         return $fields;
  54.     }
  55.  
  56.     /**   Permissions
  57.      * -----------------------------------------------------------------------
  58.      */
  59.     public function providePermissions() {
  60.         return array(
  61.             'MENU_VIEWALL' => array(
  62.                 'name' => 'View all menus',
  63.                 'help' => 'Allow viewing of all menus in the "Menus" section',
  64.                 'category' => 'Menus',
  65.                 'sort' => 100
  66.             ),
  67.             'MENU_CREATE' => array(
  68.                 'name' => 'Create menus',
  69.                 'help' => 'Allow creation of menus in the "Menus" section',
  70.                 'category' => 'Menus',
  71.                 'sort' => 110
  72.             ),
  73.             'MENU_DELETE' => array(
  74.                 'name' => 'Delete menus',
  75.                 'help' => 'Allow deleting of menus in the "Menus" section',
  76.                 'category' => 'Menus',
  77.                 'sort' => 120
  78.             ),
  79.             'MENU_EDIT' => array(
  80.                 'name' => 'Edit menus',
  81.                 'help' => 'Allow editing of menus in the "Menu" section',
  82.                 'category' => 'Menus',
  83.                 'sort' => 130
  84.             ),
  85.         );
  86.     }
  87.  
  88.  
  89.     public function canView($member = null) {
  90.         if(Permission::check('ADMIN') || Permission::check('MENU_VIEWALL'))
  91.             return true;
  92.         else
  93.             return false;
  94.     }
  95.  
  96.     public function canCreate($member = null) {
  97.         if(Permission::check('ADMIN') || Permission::check('MENU_CREATE'))
  98.             return true;
  99.         else
  100.             return false;
  101.     }
  102.  
  103.     public function canDelete($member = null) {
  104.         if(Permission::check('ADMIN') || Permission::check('MENU_DELETE'))
  105.             return true;
  106.         else
  107.             return false;
  108.     }
  109.  
  110.     public function canEdit($member = null) {
  111.         if(Permission::check('ADMIN') || Permission::check('MENU_EDIT'))
  112.             return true;
  113.         else
  114.             return false;
  115.     }
  116. }
  117.  
  118. class CustomHMenu_Controller extends Page_Controller {
  119.  
  120.     private static $allowed_actions = array(
  121.         'edit'
  122.     );
  123.  
  124.     public function edit(){
  125.         die('it works!');
  126.     }
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement