• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/Service/Timeline/Item/Activity/Document.php
  • Класс: Bitrix\Crm\Service\Timeline\Item\Activity\Document
  • Вызов: Document::getContentBlocks
public function getContentBlocks(): ?array
{
	$blocks =  [];

	$documentsPermissions = Driver::getInstance()->getUserPermissions($this->getContext()->getUserId());

	if ($this->isScheduled() && $documentsPermissions->canModifyDocument($this->getDocument()))
	{
		$titleBlock =
			(new Layout\Body\ContentBlock\EditableText())
				->setValue($this->getDocumentTitle())
				->setAction(
					(new Layout\Action\JsEvent('Document:UpdateTitle'))
						->addActionParamInt('documentId', $this->getDocumentId())
					,
				)
		;

		$createDateBlock =
			(new Layout\Body\ContentBlock\EditableDate())
				->setDate($this->getDocumentCreateDate())
				->setAction(
					(new Layout\Action\JsEvent('Document:UpdateCreateDate'))
						->addActionParamInt('documentId', $this->getDocumentId())
					,
				)
		;
	}
	else
	{
		$titleBlock =
			(new Layout\Body\ContentBlock\Text())
				->setValue($this->getDocumentTitle())
		;

		$createDateBlock =
			(new Layout\Body\ContentBlock\Text())
				->setValue((string)$this->getDocumentCreateDate())
		;
	}

	$blocks['titleAndCreateDate'] = Layout\Body\ContentBlock\ContentBlockFactory::createLineOfTextFromTemplate(
		(string)Loc::getMessage('CRM_TIMELINE_ACTIVITY_DOCUMENT_TITLE_AND_CREATE_DATE'),
		[
			'#TITLE#' => $titleBlock,
			'#CREATE_DATE#' => $createDateBlock,
		],
		'titleAndCreateDate',
	);

	$productsCount = $this->getProductsCount();
	$opportunity = $this->getOpportunity();

	if (!is_null($opportunity))
	{
		if ($productsCount > 0)
		{
			$blocks['opportunityTitle'] =
				(new Layout\Body\ContentBlock\Link())
					->setValue(
						Loc::getMessage('CRM_TIMELINE_ACTIVITY_DOCUMENT_SUM_TITLE_WITH_PRODUCTS', ['#PRODUCTS_COUNT#' => $productsCount])
					)
					->setAction(
						(new Layout\Action\JsEvent('Item:OpenEntityDetailTab'))
							->addActionParamString('tabId', 'tab_products')
					)
			;
		}
		else
		{
			$blocks['opportunityTitle'] =
				(new Layout\Body\ContentBlock\Text())
					->setValue(Loc::getMessage('CRM_TYPE_ITEM_FIELD_OPPORTUNITY'))
			;
		}

		$blocks['opportunity'] =
			(new Layout\Body\ContentBlock\Money())
				->setOpportunity($opportunity)
				->setCurrencyId($this->getCurrencyId())
		;
	}

	$blocks['myCompany'] =
		(new Layout\Body\ContentBlock\ContentBlockWithTitle())
			->setTitle(Loc::getMessage('CRM_TYPE_ITEM_FIELD_MYCOMPANY_ID'))
			->setContentBlock(
				(new Layout\Body\ContentBlock\Text())
					->setValue($this->getMyCompanyCaption())
			)
	;

	$blocks['client'] =
		(new Layout\Body\ContentBlock\ContentBlockWithTitle())
			->setTitle(Loc::getMessage('CRM_COMMON_CLIENT'))
			->setContentBlock(
				(new Layout\Body\ContentBlock\Text())
					->setValue($this->getClientCaption())
			)
	;

	return $blocks;
}