From 64964f740240e23844dc6eb8bebb44ae263d3eec Mon Sep 17 00:00:00 2001 From: Andrew Aitken-Fincham Date: Mon, 23 Apr 2018 17:01:28 +0100 Subject: [PATCH 1/3] unset http scheme on CLIRequestBuilder --- src/Control/CLIRequestBuilder.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/Control/CLIRequestBuilder.php b/src/Control/CLIRequestBuilder.php index 660ffb7e0..9ad888355 100644 --- a/src/Control/CLIRequestBuilder.php +++ b/src/Control/CLIRequestBuilder.php @@ -2,6 +2,8 @@ namespace SilverStripe\Control; +use SilverStripe\Core\Environment; + /** * CLI specific request building logic */ @@ -66,4 +68,19 @@ class CLIRequestBuilder extends HTTPRequestBuilder // Parse rest of variables as standard return parent::cleanEnvironment($variables); } + + /** + * @param array $variables + * @param string $input + * @return HTTPRequest + */ + public static function createFromVariables(array $variables, $input) + { + $request = parent::createFromVariables($variables, $input); + // unset scheme so that SS_BASE_URL can provide `is_https` information if required + $scheme = parse_url(Environment::getEnv('SS_BASE_URL'), PHP_URL_SCHEME); + $request->setScheme($scheme); + + return $request; + } } From 27ac001d5b27cce4f80ce4b3335c14708b116830 Mon Sep 17 00:00:00 2001 From: Thomas Portelange Date: Tue, 14 Aug 2018 17:26:31 +0200 Subject: [PATCH 2/3] FIX email rendering should not include requirements If no body is defined, the email is rendered according to a template. Clearing requirements prevent unnecessary styles/scripts to be included in the html (and that needs to be processed/stripped down the line). --- src/Control/Email/Email.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Control/Email/Email.php b/src/Control/Email/Email.php index 230af870f..8d79db709 100644 --- a/src/Control/Email/Email.php +++ b/src/Control/Email/Email.php @@ -790,6 +790,9 @@ class Email extends ViewableData return $this; } + // Do not interfere with emails styles + Requirements::clear(); + // Render plain part if ($plainTemplate && !$plainPart) { $plainPart = $this->renderWith($plainTemplate, $this->getData()); @@ -806,6 +809,9 @@ class Email extends ViewableData $htmlPartObject = DBField::create_field('HTMLFragment', $htmlPart); $plainPart = $htmlPartObject->Plain(); } + + // Rendering is finished + Requirements::restore(); // Fail if no email to send if (!$plainPart && !$htmlPart) { From 4da5569232505ee574e0b5106ff2116611393aa4 Mon Sep 17 00:00:00 2001 From: Scott Hutchinson Date: Mon, 27 Aug 2018 15:34:45 +1200 Subject: [PATCH 3/3] FIX ensure createFromVariables takes correct params on CLIRequestBuilder --- src/Control/CLIRequestBuilder.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Control/CLIRequestBuilder.php b/src/Control/CLIRequestBuilder.php index 9ad888355..445da1dbd 100644 --- a/src/Control/CLIRequestBuilder.php +++ b/src/Control/CLIRequestBuilder.php @@ -74,9 +74,9 @@ class CLIRequestBuilder extends HTTPRequestBuilder * @param string $input * @return HTTPRequest */ - public static function createFromVariables(array $variables, $input) + public static function createFromVariables(array $variables, $input, $url = null) { - $request = parent::createFromVariables($variables, $input); + $request = parent::createFromVariables($variables, $input, $url); // unset scheme so that SS_BASE_URL can provide `is_https` information if required $scheme = parse_url(Environment::getEnv('SS_BASE_URL'), PHP_URL_SCHEME); $request->setScheme($scheme);