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.

General Questions /

General questions about getting started with SilverStripe that don't fit in any of the categories above.

Moderators: martimiz, Sean, biapar, Willr, Ingo, swaiba, simon_w

Simple Testimonials page problem


Reply


2 Posts   1063 Views

Avatar
FireMe!

Community Member, 74 Posts

7 May 2013 at 7:38am

Hi all

I am trying to create a simple testimonials page, with using the new gridfield in SS3 I am running 3.1.0 and I also have silverstripe-gridfield-betterbuttons module, my code bellow

Testimonial.php

<?php
class Testimonial extends DataObject {

   public static $db = array(
      'Name' => 'Varchar(255)',
      'Testimonial' => 'Varchar(255)'
   );
   
   public static $has_one = array(
      'TestimonialsPage' => 'TestimonialsPage'
   );
   
   public function getCMSFields() {
          $fields = parent::getCMSFields();
         $fields->removeFieldFromTab("Root.Main","TestimonialsPageID");
         return $fields;      
    }

}

TestimonialsPage.php

<?php
class TestimonialsPage extends Page {

   public static $has_many = array(
      'Testimonials' => 'Testimonial' // Link the Testimonial Items
   );
   
   public function getCMSFields() {
      $fields = parent::getCMSFields();
      
       // Create a default configuration for the new GridField, allowing record editing
       $config = GridFieldConfig_RecordEditor::create();
       $config->getComponentByType('GridFieldDataColumns')->setDisplayFields(array(
          'Name' => 'Name',
                  'Testimonial' => 'Testimonial'
       ));
       // Create a gridfield to hold the student relationship
       $testimonialsField = new GridField(
       'Testimonial', // Field name
       'Testimonials', // Field title
       $this->Testimonials(), // List of all related students
       $config
       );
       // Create a tab named "Students" and add our field to it
       $fields->addFieldToTab('Root.Testimonials', $testimonialsField);
       return $fields;
   }

}
class TestimonialsPage_Controller extends Page_Controller {

}

When I click save and add another button in CMS i get the below error in the CMS am I doing something wrong here? the record actually gets added also.

Warning at line 673 of /framework/forms/gridfield/GridField.php

Thanks in advance

FireMe!

Avatar
Bambii7

Community Member, 254 Posts

9 May 2013 at 4:42pm

At first glance it all seems OK, I noticed a typo on the GirdField though. Missing an 's' off Testimonials.

$testimonialsField = new GridField(
'Testimonials', // Field name
'Testimonials', // Field title
$this->Testimonials(), // List of all related students
$config
);