26 'text' => Loc::getMessage(
'BIZPROC_RESULT_BP_WORKFLOW_NO_RESULT'),
30 $text = $this->extractFromSource($renderedResult->text ??
'',
$files);
32 if (is_null($renderedResult))
34 if (isset($cache[$this->workflowId]))
39 $state = WorkflowStateTable::getByPrimary(
41 [
'select' => [
'STARTED_BY',
'MODULE_ID',
'ENTITY',
'DOCUMENT_ID']]
50 $startedBy = $state->getStartedBy();
51 if (empty($startedBy))
53 $startedBy = \CCrmBizProcHelper::getDocumentResponsibleId($state->getComplexDocumentId());
60 $userLink =
'[URL=/company/personal/user/' . $startedBy .
'/]' .
$userName .
'[/URL]';
61 $text = Loc::getMessage(
'BIZPROC_RESULT_BP_WORKFLOW_RESULT_USER', [
'#USER#' => $userLink]) ??
'';
77 switch ($renderedResult->status)
82 'status' => $renderedResult->status,
88 'text' => Loc::getMessage(
89 'BIZPROC_RESULT_BP_WORKFLOW_RESULT_USER', [
'#USER#' => $renderedResult->text]
91 'status' => $renderedResult->status,
97 'text' => Loc::getMessage(
'BIZPROC_RESULT_BP_RESULT_NO_RIGHTS') ??
'',
98 'status' => $renderedResult->status,
106 private function extractFromSource(
string $sourceText,
array &
$files): string
108 $sourceText = preg_replace_callback(
109 '|\[url\s*=\s*/bitrix/tools/bizproc_show_file\.php\?([^]]+)]|',
110 $this->getFileLinksReplacer(
$files),
114 if (Loader::includeModule(
'disk'))
116 $sourceText = preg_replace_callback(
117 '|\[url\s*=\s*/bitrix/tools/disk/uf.php\?([^]]+)]|',
118 $this->getDiskFileLinksReplacer(
$files),
126 private function getFileLinksReplacer(
array&
$files): callable
131 $fileId =
$query[
'i'] ??
null;
134 $fileId = (int)$fileId;
135 $file = \CFile::GetFileArray($fileId);
140 $uri =
'fid://' . $fileId;
141 $fileName = $file[
'ORIGINAL_NAME'] ?: $file[
'FILE_NAME'];
143 'id' => (int)$file[
'ID'],
145 'url' => $file[
'SRC'],
146 'type' => MimeType::getByFilename(
$fileName),
149 return '[url=' .
$uri .
']';
156 private function getDiskFileLinksReplacer(
array&
$files): callable
161 $attachedModel = AttachedObject::loadById(
$query[
'attachedId'] ??
null);
162 $diskFile = $attachedModel?->getFile();
163 if (isset($diskFile))
165 $file = \CFile::GetFileArray($diskFile->getFileId());
171 $uri =
'fid://' . $diskFile->getFileId();
172 $fileName = $file[
'ORIGINAL_NAME'] ?: $file[
'FILE_NAME'];
174 'id' => (int)$file[
'ID'],
176 'url' => $file[
'SRC'],
177 'type' => MimeType::getByFilename(
$fileName),
180 return '[url=' .
$uri .
']';
if(file_exists($_SERVER['DOCUMENT_ROOT'] . "/urlrewrite.php")) $uri