I made some custom widgets. All is well except that my Form Widget doesn't work on Blog pages (it does work on all other pages).
Error:
popCurrent called on ModelAsController controller, but it wasn't at the top of the stack
POST /websitename/blog/widget/24/FormWidget
Widget Form Code
class FormWidget_Controller extends Widget_Controller {
function FormWidget() {
return new Form(
$this,
'FormWidget',
new FieldSet(
new EmailField('EmailFormWidget')
),
new FieldSet(
new FormAction('doFormWidget', 'Submit')
),
new RequiredFields('EmailFormWidget')
);
}
function doFormWidget($data, $form) {
//Set data
$from = $data['EmailFormWidget'];
$to = 'example@example.com';
$subject = "this is the subject";
$body = '<h1>Email Signup List</h1><p><b>Email Address</b> - '.$data['EmailFormWidget'].'</p>';
$email = new Email($from, $to, $subject, $body);
$email->send();
Director::redirect(Director::get_current_page()->Link() . "?success=1");
}
// Allows us to show different content in template "if Success"
public function SuccessFormWidget() {
return isset($_REQUEST['success']) && $_REQUEST['success'] == "1";
}
}
Thank you