silverstripe-frameworktest/code/TestPage.php

90 lines
2.0 KiB
PHP
Raw Normal View History

2008-10-03 00:05:45 +02:00
<?php
/**
* Parent class of all test pages
*/
class TestPage extends Page {
/**
* We can only create subclasses of TestPage
*/
2012-04-12 05:04:39 +02:00
function canCreate($member = null) {
2008-10-03 00:05:45 +02:00
return $this->class != 'TestPage' && parent::canCreate();
}
function requireDefaultRecords(){
if($this->class == 'TestPage') return;
$class = $this->class;
if(!DataObject::get_one($class)) {
$page = new $class();
$page->Title = str_replace("TestPage","",$class) . " Test";
$page->write();
$page->doPublish();
}
}
}
/**
* Parent class of all test page controllers
*/
class TestPage_Controller extends Page_Controller {
2008-11-13 22:32:37 +01:00
static $allowed_actions = array(
'Form',
'save',
);
/**
* This form is exactly like the CMS form. It gives us an opportunity to test the fields outside of the CMS context
*/
function Form() {
$fields = $this->getCMSFields();
$actions = new FieldList(
2009-08-24 08:59:08 +02:00
new FormAction("save", "Save"),
$gohome = new FormAction("gohome", "Go home")
2009-08-24 08:59:08 +02:00
);
$gohome->setAttribute('src', 'frameworktest/images/test-button.png');
$form = new Form($this, "Form", $fields, $actions);
$form->loadDataFrom($this->dataRecord);
return $form;
}
2008-10-03 00:05:45 +02:00
function save($data, $form) {
$form->saveInto($this->dataRecord);
$this->dataRecord->write();
Director::redirectBack();
}
2008-11-13 22:32:37 +01:00
2009-08-24 08:59:08 +02:00
function gohome() {
Director::redirect("./");
}
function EmailForm() {
return new Form($this, "EmailForm", new FieldList(
new TextField("Email", "Email address")
), new FieldList(
new FormAction("sendEmail", "Send test email to this address")
));
}
function email() {
return array(
'Content' => '<p>Use this form to send a test email</p>',
'Form' => $this->EmailForm()
);
}
function sendEmail($data, $form) {
$email = new Email();
$email->setTo($data['Email']);
$email->setFrom($data['Email']);
$email->setSubject('A subject with some umlauts: öäüß');
$email->setBody('A body with some umlauts: öäüß');
$email->send();
echo "<p>email sent to " . $data['Email'] . "</p>";
}
2008-10-03 00:05:45 +02:00
}
2012-04-12 05:04:39 +02:00
?>