public function execute(WorkflowInstance $workflow) { if (!($target = $workflow->getTarget())) { return true; } if (class_exists('AbstractQueuedJob') && $this->UnpublishDelay) { $job = new WorkflowPublishTargetJob($target, "unpublish"); $days = $this->UnpublishDelay; $after = date('Y-m-d H:i:s', strtotime("+{$days} days")); singleton('QueuedJobService')->queueJob($job, $after); } else { if ($target->hasExtension('WorkflowEmbargoExpiryExtension')) { // setting future date stuff if needbe // set these values regardless $target->DesiredUnPublishDate = ''; $target->DesiredPublishDate = ''; $target->write(); if ($target->hasMethod('doUnpublish')) { $target->doUnpublish(); } } else { if ($target->hasMethod('doUnpublish')) { $target->doUnpublish(); } } } return true; }
public function execute(WorkflowInstance $workflow) { $members = $workflow->getAssignedMembers(); if (!$members || !count($members)) { return true; } $context = $this->getContextFields($workflow->getTarget()); $member = $this->getMemberFields(); $initiator = $this->getMemberFields($workflow->Initiator()); $variables = array(); foreach ($context as $field => $val) { $variables["\$Context.{$field}"] = $val; } foreach ($member as $field => $val) { $variables["\$Member.{$field}"] = $val; } foreach ($initiator as $field => $val) { $variables["\$Initiator.{$field}"] = $val; } $pastActions = $workflow->Actions()->sort('Created DESC'); $variables["\$CommentHistory"] = $this->customise(array('PastActions' => $pastActions, 'Now' => SS_Datetime::now()))->renderWith('CommentHistory'); $subject = str_replace(array_keys($variables), array_values($variables), $this->EmailSubject); $item = $workflow->customise(array('Items' => $workflow->Actions(), 'Member' => Member::currentUser(), 'Context' => $workflow->getTarget(), 'CommentHistory' => $variables["\$CommentHistory"])); if ($this->ListingTemplateID) { $item = $workflow->customise(array('Items' => $workflow->Actions(), 'Member' => Member::currentUser(), 'Initiator' => $workflow->Initiator(), 'Context' => $workflow->getTarget())); $template = DataObject::get_by_id('ListingTemplate', $this->ListingTemplateID); $view = SSViewer::fromString($template->ItemTemplate); } else { $view = SSViewer::fromString($this->EmailTemplate); } $body = $view->process($item); $from = str_replace(array_keys($variables), array_values($variables), $this->EmailFrom); foreach ($members as $member) { if ($member->Email) { $email = new Email(); $email->setTo($member->Email); $email->setSubject($subject); $email->setFrom($from); $email->setBody($body); $email->send(); } } return true; }
public function execute(WorkflowInstance $workflow) { if (!($target = $workflow->getTarget())) { return true; } if ($target->hasField($this->Property)) { $target->setField($this->Property, $this->Value); } $target->write(); return true; }
public function execute(WorkflowInstance $workflow) { $email = new Email(); $members = $workflow->getAssignedMembers(); $emails = ''; if (!$members || !count($members)) { return; } foreach ($members as $member) { if ($member->Email) { $emails .= "{$member->Email}, "; } } $context = $this->getContextFields($workflow->getTarget()); $member = $this->getMemberFields(); $variables = array(); foreach ($context as $field => $val) { $variables["\$Context.{$field}"] = $val; } foreach ($member as $field => $val) { $variables["\$Member.{$field}"] = $val; } $subject = str_replace(array_keys($variables), array_values($variables), $this->EmailSubject); if ($this->ListingTemplateID) { $item = $workflow->customise(array('Items' => $workflow->Actions(), 'Member' => Member::currentUser(), 'Context' => $workflow->getTarget())); $template = DataObject::get_by_id('ListingTemplate', $this->ListingTemplateID); $view = SSViewer::fromString($template->ItemTemplate); $body = $view->process($item); } else { $body = str_replace(array_keys($variables), array_values($variables), $this->EmailTemplate); } $email->setSubject($subject); $email->setFrom($this->EmailFrom); $email->setBcc(substr($emails, 0, -2)); $email->setBody($body); $email->send(); return true; }
public function execute(WorkflowInstance $workflow) { if (!($target = $workflow->getTarget())) { return true; } if (class_exists('AbstractQueuedJob') && $this->PublishDelay) { $job = new WorkflowPublishTargetJob($target); $days = $this->PublishDelay; $after = date('Y-m-d H:i:s', strtotime("+{$days} days")); singleton('QueuedJobService')->queueJob($job, $after); } else { $target->doPublish(); } return true; }