diff --git a/_config/config.yml b/_config/config.yml new file mode 100644 index 0000000..9ab47f4 --- /dev/null +++ b/_config/config.yml @@ -0,0 +1,5 @@ +--- +Name: userformsconfig +--- +SilverStripe\UserForms\Control\UserDefinedFormController: + disable_form_content_interpolation: false diff --git a/code/Control/UserDefinedFormController.php b/code/Control/UserDefinedFormController.php index b37bf93..6226093 100644 --- a/code/Control/UserDefinedFormController.php +++ b/code/Control/UserDefinedFormController.php @@ -108,6 +108,9 @@ class UserDefinedFormController extends PageController */ public function index(HTTPRequest $request = null) { + if ($this->config()->disable_form_content_interpolation) { + return []; + } if ($this->Content && $form = $this->Form()) { $hasLocation = stristr($this->Content, '$UserDefinedForm'); if ($hasLocation) { diff --git a/tests/Control/UserDefinedFormControllerTest.php b/tests/Control/UserDefinedFormControllerTest.php index 1fa8207..64ddb5c 100644 --- a/tests/Control/UserDefinedFormControllerTest.php +++ b/tests/Control/UserDefinedFormControllerTest.php @@ -255,7 +255,7 @@ class UserDefinedFormControllerTest extends FunctionalTest $controller = new UserDefinedFormController($form); - // check to see if $Form is replaced to inside the content + // check to see if $Form is placed in the template $index = new ArrayData($controller->index()); $parser = new CSSContentParser($index->renderWith(__CLASS__)); @@ -274,6 +274,22 @@ class UserDefinedFormControllerTest extends FunctionalTest $this->checkTemplateIsCorrect($parser, $form); } + + public function testRenderingIntoTemplateWithDisabledInterpolation() + { + $form = $this->setupFormFrontend(); + + $controller = new UserDefinedFormController($form); + $controller->config()->set('disable_form_content_interpolation', true); + // check to see if $Form is replaced to inside the content + $index = new ArrayData($controller->index()); + $html = $index->renderWith(__CLASS__); + $parser = new CSSContentParser($html); + + $this->assertContains('$UserDefinedForm', $html); + + $this->checkTemplateIsCorrect($parser, $form); + } /** * Publish a form for use on the frontend *