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.

All other Modules /

Discuss all other Modules here.

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

Extending LeftAndMain Help




Community Member, 1 Post

30 November 2009 at 1:20am

Hi Guys,

I've used the forums for a while for information and this is the first time I've had to post, I'm attempting to write a new LeftAndMain module for managing some data.

What I'm trying to get tested and working is a complextablefield in a new tab in the right panel, I'm wanting to use it to manage data from a dataobject. I'm coming across the following error and after an hour or so of browsing I have no idea what I'm doing wrong.

Fatal error: Call to a member function FormAction() on a non-object in H:\www\\sapphire\forms\FormField.php on line 88



class JobsAdmin extends LeftAndMain {
static $url_segment = 'jobs';
static $menu_title = 'Jobs Administration';

static $has_many = array (



public static $managed_models = array(

function init() {

function showForm() {

/*$fields = parent::getCMSFields();

$jobs = new HasManyComplexTableField($this, 'Jobs', 'Jobs', array("Title"=>"Job Title","Location"=>"Job Location","Approved"=>"Approved for viewing"));


return $fields;*/
return new TabSet(
      $name = "TheTabSetName",
      new Tab(
         $title='Tab one',
         new HeaderField("A header"),
         new LiteralField("Lipsum","Lorem ipsum dolor sit amet enim.")
      new Tab(
         $title='Tab two',
         new HeaderField("A second header"),
         new LiteralField("Lipsum","Ipsum dolor sit amet enim."),
         new ComplexTableField(
            $controller = $this,
            $name = "Jobs",
            $sourceClass = "Job",
            $fieldList = array(
               "Title"=>"Job Title",
               "Location"=>"Job Location",
               "Approved"=>"Approved for viewing"
            $callThisFunctionForPopupFields = "getCMSFields_forPopup",
            $sourceFilter = "",
            $sourceSort = ""





class Job extends DataObject {

   static $db = array (

   function getCMSFields_forPopup() {
      return new FieldSet(
         new TextField('Title', 'Job Title'),
         new TextareaField('Description', 'Job Description'),
         new CheckboxField("Approved", "Job Approved")




I was going to use a has_many type until I noticed that the way I wanted things done I would have no has_one, so I though the complextablefield would be the way forward.

Can anyone shed any light on my stupidity?

Thanks in advance,