/** * Utilized to create or update model attribute values after a workflow's triggers are fired as true. * @param WorkflowActionProcessingModelAdapter $adapter * @param $attribute * @throws NotSupportedException */ public function resolveValueAndSetToModel(WorkflowActionProcessingModelAdapter $adapter, $attribute) { assert('is_string($attribute)'); if ($this->type == WorkflowActionAttributeForm::TYPE_STATIC) { $adapter->getModel()->{$attribute} = User::getById((int) $this->value); } elseif ($this->type == self::TYPE_DYNAMIC_OWNER_OF_TRIGGERED_MODEL) { if ($adapter->getTriggeredModel() instanceof OwnedSecurableItem) { $adapter->getModel()->{$attribute} = $adapter->getTriggeredModel()->owner; } } elseif ($this->type == self::TYPE_DYNAMIC_CREATED_BY_USER) { $adapter->getModel()->{$attribute} = $adapter->getTriggeredModel()->createdByUser; } elseif ($this->type == self::TYPE_DYNAMIC_MODIFIED_BY_USER) { $adapter->getModel()->{$attribute} = $adapter->getTriggeredModel()->modifiedByUser; } elseif ($this->type == self::TYPE_DYNAMIC_TRIGGERED_BY_USER) { $adapter->getModel()->{$attribute} = $adapter->getTriggeredByUser(); } else { throw new NotSupportedException(); } }
protected function resolveValueForMergeTags($value, WorkflowActionProcessingModelAdapter $adapter) { $mergeTagsUtil = MergeTagsUtilFactory::make(EmailTemplate::TYPE_WORKFLOW, Yii::app()->languageHelper->getByUser($adapter->getTriggeredByUser()), $value); if (false === ($resolvedValue = $mergeTagsUtil->resolveMergeTags($adapter->getTriggeredModel()))) { return $value; } return $resolvedValue; }