Advertisement
Guest User

Untitled

a guest
May 30th, 2014
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.49 KB | None | 0 0
  1. <?php
  2. class Drawer extends Page {
  3.  
  4.     private static $db = array(
  5.         'SortOrder' => 'Int',
  6.     );
  7.  
  8.     public static $has_many = array(
  9.         'DrawerLinks' => 'DrawerLink',
  10.     );
  11.  
  12.     public function getCMSFields() {
  13.         $fields = parent::getCMSFields();
  14.         // don't show these in the CMS UI
  15.         $fields->removeByName('BannerImage');
  16.         $fields->removeByName('URLSegment');
  17.         // "Navigation label"
  18.         $fields->removeByName('MenuTitle');
  19.         // "Page name"
  20.         $fields->renameField('Title', 'Drawer Title');
  21.         $fields->removeByName('H1');
  22.  
  23.         // Create a default configuration for the new GridField, allowing record editing
  24.         $config = GridFieldConfig_RelationEditor::create();
  25.  
  26.         // Set the names and data for our gridfield columns
  27.         $config->getComponentByType('GridFieldDataColumns')->setDisplayFields(array(
  28.             // field from drawer class => label in UI
  29.             'Label' => 'Label',
  30.             'URL'   => 'External URL',
  31.             'I_URL.Link' => 'Internal URL',
  32.             'Document.getURL' => 'Document',
  33.         ));
  34.  
  35.  
  36.         // Create a gridfield to hold the relationship
  37.         $linksField = new GridField(
  38.             'DrawerLinks',
  39.             'DrawerLink',
  40.             $this->DrawerLinks(),
  41.             $config
  42.         );
  43.  
  44.         $fields->addFieldToTab('Root.DrawerLinks', $linksField);
  45.         return $fields;
  46.     }
  47.  
  48. }
  49. class Drawer_Controller extends Page_Controller {
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement