mirror of
https://github.com/silverstripe/silverstripe-userforms.git
synced 2024-10-22 17:05:42 +02:00
Add(config) create disable_form_content_interpolation option for ignoring $UserDefinedForm in $this->Content
This commit is contained in:
parent
8ab6b0506a
commit
94192f4b66
5
_config/config.yml
Normal file
5
_config/config.yml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
Name: userformsconfig
|
||||||
|
---
|
||||||
|
SilverStripe\UserForms\Control\UserDefinedFormController:
|
||||||
|
disable_form_content_interpolation: false
|
@ -108,6 +108,9 @@ class UserDefinedFormController extends PageController
|
|||||||
*/
|
*/
|
||||||
public function index(HTTPRequest $request = null)
|
public function index(HTTPRequest $request = null)
|
||||||
{
|
{
|
||||||
|
if ($this->config()->disable_form_content_interpolation) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
if ($this->Content && $form = $this->Form()) {
|
if ($this->Content && $form = $this->Form()) {
|
||||||
$hasLocation = stristr($this->Content, '$UserDefinedForm');
|
$hasLocation = stristr($this->Content, '$UserDefinedForm');
|
||||||
if ($hasLocation) {
|
if ($hasLocation) {
|
||||||
|
@ -255,7 +255,7 @@ class UserDefinedFormControllerTest extends FunctionalTest
|
|||||||
|
|
||||||
$controller = new UserDefinedFormController($form);
|
$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());
|
$index = new ArrayData($controller->index());
|
||||||
$parser = new CSSContentParser($index->renderWith(__CLASS__));
|
$parser = new CSSContentParser($index->renderWith(__CLASS__));
|
||||||
|
|
||||||
@ -274,6 +274,22 @@ class UserDefinedFormControllerTest extends FunctionalTest
|
|||||||
|
|
||||||
$this->checkTemplateIsCorrect($parser, $form);
|
$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
|
* Publish a form for use on the frontend
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user