Reputation: 14246
I am trying to render a form with template with the following:
function FacebookForm($fbFields) {
$actions = new FieldSet(
new FormAction('doFaceBookForm', 'Register')
);
$memberfields = singleton('XEUser')->getMemberFormFields();
$fields = new FieldSet();
$reqFields = array();
foreach($fbFields as $key => $value){
switch($value){
case 'Gender':
$fields->push($memberfields->fieldByName('Gender'));
$reqFields[] = 'Gender';
break;
case 'DateOfBirth':
$fields->push($memberfields->fieldByName('DateOfBirth'));
$reqFields[] = 'DateOfBirth';
break;
}
}
$validator = new RequiredFields($reqFields);
$form = new Form($this, 'FaceBookForm', $fields, $actions,$validator);
$form->disableSecurityToken();
return $form->renderWith(array('FacebookController','Page'));
//return $form;
}
When I just return $form
my form appears but in the default contentController.ss so I created a new template and added return $form->renderWith(array('FacebookController','Page'));
. When I do this, I get everything that should be in the page but with no styles being applied at all and the form doesn't even appear. Here is my FacebookController template:
<div id="left">
<h2>Thankyou for signing up with your Facebook account</h2>
<p>The following details could not be obtained from your Facebook account, please enter them now.</p>
$form
</div>
<div id="right">
</div>
can anyone shed any light on this?
Upvotes: 0
Views: 899
Reputation: 887
Try using the name of the method in your template:
$FacebookForm
Alternatively, you could subclass the Form class and use a custom forTemplate()
method. More info below.
See:
Upvotes: 1