diff --git a/src/Actions/NotifyUsersWorkflowAction.php b/src/Actions/NotifyUsersWorkflowAction.php index e9eaeaf7..08d68f6f 100644 --- a/src/Actions/NotifyUsersWorkflowAction.php +++ b/src/Actions/NotifyUsersWorkflowAction.php @@ -3,6 +3,7 @@ namespace Symbiote\AdvancedWorkflow\Actions; use SilverStripe\Control\Email\Email; +use SilverStripe\Core\Injector\Injector; use SilverStripe\Forms\HeaderField; use SilverStripe\Forms\LiteralField; use SilverStripe\Forms\TextareaField; @@ -14,7 +15,8 @@ use SilverStripe\Security\Member; use SilverStripe\Security\Security; use SilverStripe\Model\ArrayData; -use SilverStripe\View\SSViewer; +use SilverStripe\View\TemplateEngine; +use SilverStripe\View\ViewLayerData; use Swift_RfcComplianceException; use Symbiote\AdvancedWorkflow\DataObjects\WorkflowAction; use Symbiote\AdvancedWorkflow\DataObjects\WorkflowInstance; @@ -134,10 +136,7 @@ public function execute(WorkflowInstance $workflow) ]); } - - $view = SSViewer::fromString($this->EmailTemplate); - $this->extend('updateView', $view); - + $engine = Injector::inst()->create(TemplateEngine::class); foreach ($members as $member) { if ($member->Email) { // We bind in the assignee at this point, as it changes each loop iteration @@ -146,7 +145,7 @@ public function execute(WorkflowInstance $workflow) $item->Assignee = ArrayData::create($assigneeVars); } - $body = $view->process($item); + $body = $engine->renderString($this->EmailTemplate, ViewLayerData::create($item)); $email = Email::create(); try { diff --git a/src/Admin/WorkflowDefinitionImporter.php b/src/Admin/WorkflowDefinitionImporter.php index 309a5db6..8b2faaa5 100644 --- a/src/Admin/WorkflowDefinitionImporter.php +++ b/src/Admin/WorkflowDefinitionImporter.php @@ -66,7 +66,7 @@ public function parseYAMLImport($source) $convertLF = str_replace(array("\r\n", "\r"), "\n", $source ?? ''); /* * Remove illegal colons from Transition/Action titles, otherwise sfYamlParser will barf on them - * Note: The regex relies on there being single quotes wrapped around these in the export .ss template + * Note: The regex relies on there being single quotes wrapped around these in the export template */ $converted = preg_replace("#('[^:\n][^']+)(:)([^']+')#", "$1;$3", $convertLF ?? ''); $parts = preg_split('#^---$#m', $converted ?? '', -1, PREG_SPLIT_NO_EMPTY);