Hallo,
Ich habe ein Formular nach folgender Anleitungen erstellt:
http://blog.mike-wittje.de/2009/06/11/formularerstellung-mit-silverstripe/
http://www.ssbits.com/creating-a-simple-contact-form/
... und möchte dieses, wie bei dem Modul Userdefinedforms, im backend um die tabs für die email empfänger, den onsubmission text and die Ausgabe der submissions erweitern.
Die Tabs erscheinen zwar, jedoch funktionieren sie nicht richtig. Die submission und der onsubmission text werden nicht anzeigt und die email empfänger nicht gespeichert. Könnt ihr mir sagen wie ich die Funktionen zu laufen bekomme.
Ich würde auch gern mit den userdefined forms arbeiten... insofern die Möglichkeit besteht für jeden form ein einges template zu nutzen. Gibt es diese Funktion?
Meine samplepage sieht folgendermaßen aus:
class SampleFormPage extends Page
{
static $db = array(
'Mailto' => 'Varchar(100)',
'SubmitText' => 'Text'
);
static $has_many = array(
"Submissions" => "SubmittedForm",
"EmailRecipients" => "UserDefinedForm_EmailRecipient"
);
function getCMSFields() {
$fields = parent::getCMSFields();
// define tabs
$fields->findOrMakeTab('Root.Content.EmailRecipients', _t('EMAILRECIPIENTS', 'Email Recipients'));
$fields->findOrMakeTab('Root.Content.OnComplete', _t('ONCOMPLETE', 'On Complete'));
$fields->findOrMakeTab('Root.Content.Submissions', _t('SUBMISSIONS', 'Submissions'));
// view the submissions
$fields->addFieldToTab("Root.Content.Submissions", new CheckboxField('DisableSaveSubmissions',_t('SAVESUBMISSIONS',"Disable Saving Submissions to Server")));
$fields->addFieldToTab("Root.Content.Submissions", new SubmittedFormReportField( "Reports", _t('RECEIVED', 'Received Submissions'), "", $this ) );
// who do we email on submission
$emailRecipients = new ComplexTableField(
$this,
'EmailRecipients',
'EmailRecipient',
array(
'EmailAddress' => _t('EMAILADDRESS', 'Email'),
'EmailSubject' => _t('EMAILSUBJECT', 'Subject'),
'EmailFrom' => _t('EMAILFROM', 'From')
),
'getCMSFields_forPopup',
"FormID = '$this->ID'"
);
$emailRecipients->setAddTitle(_t('AEMAILRECIPIENT', 'A Email Recipient'));
$fields->addFieldToTab("Root.Content.EmailRecipients", $emailRecipients);
// text to show on complete
$onCompleteFieldSet = new FieldSet(
new HtmlEditorField( "OnCompleteMessage", _t('ONCOMPLETELABEL', 'Show on completion'),3,"",_t('ONCOMPLETEMESSAGE', $this->OnCompleteMessage), $this )
);
$fields->addFieldsToTab("Root.Content.OnComplete", $onCompleteFieldSet);
return $fields;
}
}
class SampleFormPage_Controller extends Page_Controller
{
function SampleForm()
{
return new SampleForm($this,'SampleForm');
}
}
Über ein paar Hinweise, ich das umsetzen kann wär ich sehr dankbar.
grüße,
Plautzer

