Skip to content

Commit

Permalink
ENH Update code to reflect changes in template layer
Browse files Browse the repository at this point in the history
  • Loading branch information
GuySartorelli committed Oct 14, 2024
1 parent 0513531 commit cf4085c
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 9 deletions.
11 changes: 5 additions & 6 deletions src/Actions/NotifyUsersWorkflowAction.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand Down Expand Up @@ -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
Expand All @@ -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 {
Expand Down
8 changes: 5 additions & 3 deletions src/Admin/WorkflowDefinitionExporter.php
Original file line number Diff line number Diff line change
Expand Up @@ -108,9 +108,11 @@ public function export()
*/
public function format($templateData)
{
$viewer = SSViewer::execute_template(['type' => 'Includes', 'WorkflowDefinitionExport'], $templateData);
// Temporary until we find the source of the replacement in SSViewer
$processed = str_replace('&', '&', $viewer ?? '');
$viewer = SSViewer::create(['type' => 'Includes', 'WorkflowDefinitionExport']);
$viewer->setRewriteHashLinks(false);
$viewer->includeRequirements(false);
// str_replace is temporary until we find the source of the replacement in SSViewer
$processed = str_replace('&', '&', $viewer->process($templateData));
// Clean-up newline "gaps" that SSViewer leaves behind from the placement of template control structures
return preg_replace("#^\R+|^[\t\s]*\R+#m", '', $processed ?? '');
}
Expand Down

0 comments on commit cf4085c

Please sign in to comment.