Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

Customising the CMS

ComplexTableField for all entries


Reply

4 Posts   1694 Views

Avatar
madmaurice

6 April 2010 at 4:02am Community Member, 20 Posts

I try to use the ComplexTableField in a LeftAndMain to allow the user to edit all entries of one type (dataobject)

VIPAdmin.php

<?

class VIPAdmin extends LeftAndMain {
   static $url_segment = "vip";
   
   static $url_rule = '$Action';
   
   static $menu_title = "VIP Editor";
   
   static $menu_property = 60;

   function getEditor() {
      $editor = new ComplexTableField(
         $this,
         'VIPs',
         'VIP',
         array('Name','Spruch'),
         new FieldSet(
            new TextField('Name'),
            new TextareaField('Spruch')
         )
      );
      
      $editor->setParentClass(false);
      
      return new FieldSet($editor);
   }
   
   function VIPs() {
      return DataObject::get('VIP');
   }
}

?>

VIP.php

<?

class VIP extends DataObject {
   static $db = array(
      "Name" => "Varchar(50)",
      "Spruch" => "Text"
   );
   static $has_one = array(
      "Bild" => "Image"
   );
}

?>

VIPAdmin_right.ss

<h1>VIP Editor</h1>

<% if Editor %>
   $Editor
<% else %>
   Kein Editor
<% end_if %>

if i replace the "return new FieldSet($editor);" with a "return "Hello World!"; " it works. however with the $editor. it shows blank unless the h1-tag

Thx for your help.

ps.: sry for my broken english. im from germany

Avatar
madmaurice

6 April 2010 at 9:58am Community Member, 20 Posts

when just returning the complextablefield i get a (none).
hope this is helpful

Avatar
madmaurice

6 April 2010 at 10:51pm (Last edited: 6 April 2010 11:29pm), Community Member, 20 Posts

Got it with this example: http://doc.silverstripe.org/doku.php?id=leftandmain#subclassing

i needed to use a Form.

Now i got the "i can't sub-URLs of xyz"-Error with my VIPAdmin Thingy

VIPAdmin.php

<?

class VIPAdmin extends LeftAndMain {
   static $url_segment = "vip";
   
   static $url_rule = '$Action';
   
   static $menu_title = "VIP Editor";
   
   static $menu_property = 60;

   function init() {
      parent::init();
      
      //Requirements::css("sapphire/css/ComplexTableField.css");
   }

   function Editor() {
   
      $editor = new ComplexTableField(
         $this,
         'Editor',
         'VIP',
         array('Name','Spruch'),
         'getCMSFields'
      );
      
      //$editor->setReadOnly(false);
      $editor->setCustomSourceItems( DataObject::get('VIP') );
      
      /*$editor->setPermissions(array(
          'delete',
          'export',
          'print',
          'edit'
      ));*/
      //return $editor;
      return new Form($this,"EditForm",
         new FieldSet(
            new HiddenField('ID', ''),
            $editor
         ),
         new FieldSet(new FormAction('go'))
      );
   }
   
   function VIPs() {
      return new DataObjectSet();
   }
}

?>

Url i try to access:   http://***/***/admin/vip/EditForm/field/Editor/add
Error i get:      I can't handle sub-URLs of a VIPAdmin object.

Avatar
aimcom

24 September 2010 at 9:55pm Community Member, 8 Posts

I have a similar problem and I'm still looking for a solution (see [url]http://ssorg.bigbird.silverstripe.com/customising-the-cms/show/292590[/url]). How did you solve this?