• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/lib/component/userprofile/profilepost.php
  • Класс: BitrixIntranetComponentUserProfileProfilePost
  • Вызов: ProfilePost::getStub
public function getStub()
{
	global $USER, $USER_FIELD_MANAGER;

	$result = [];

	if (ModuleManager::isModuleInstalled('blog'))
	{
		$blogGroupId = Option::get('socialnetwork', 'userbloggroup_id', false);
		if ($blogGroupId)
		{
			if ($postId = $this->getPostId())
			{
				$result['POST_ID'] = $postId;
			}

			$result['URL_EDIT'] = CComponentEngine::makePathFromTemplate(
				$this->getPathToPostEdit(),
				[
					"user_id" => $this->getProfileId(),
					"post_id" => (!empty($result['POST_ID']) ? $result['POST_ID'] : 0)
				]
			);
		}

		$permissions = $this->getPermissions();

		if (
			$permissions['edit']
			|| $USER->getId() == $this->getProfileId()
		)
		{
			$result["UID"] = randString(4);
			$result["POST_PROPERTIES"] = [
				"DATA" => [],
				"SHOW" => "N"
			];

			$postFieldsList = $USER_FIELD_MANAGER->getUserFields("BLOG_POST", 0, LANGUAGE_ID);

			$postPropertyList = $this->getProfileBlogPostPropertyList();

			foreach ($postFieldsList as $FIELD_NAME => $postField)
			{
				if (!in_array($FIELD_NAME, $postPropertyList))
				{
					continue;
				}

				$postField["EDIT_FORM_LABEL"] = $postField["EDIT_FORM_LABEL"] <> '' ? $postField["EDIT_FORM_LABEL"] : $postField["FIELD_NAME"];
				$postField["~EDIT_FORM_LABEL"] = $postField["EDIT_FORM_LABEL"];
				$postField["EDIT_FORM_LABEL"] = htmlspecialcharsEx($postField["EDIT_FORM_LABEL"]);
				$result["POST_PROPERTIES"]["DATA"][$FIELD_NAME] = $postField;
			}

			if (!empty($result["POST_PROPERTIES"]["DATA"]))
			{
				$result["POST_PROPERTIES"]["SHOW"] = "Y";
			}

			$formId = "postProfileForm".$result["UID"];

			$result["formParams"] = [
				"FORM_ID" => $formId,
				"SHOW_MORE" => "Y",
				"PARSER" => [
					"Bold", "Italic", "Underline", "Strike", "ForeColor",
					"FontList", "FontSizeList", "RemoveFormat", "Quote",
					"Code", "CreateLink",
					"Image", "UploadFile",
					"InputVideo",
					"Table", "Justify", "InsertOrderedList",
					"InsertUnorderedList",
					"Source", "MentionUser", "Spoiler"
				],
				"BUTTONS" => [
					"UploadFile",
					"CreateLink",
					"InputVideo",
					"Quote", "MentionUser"
				],
				"TEXT" => [
					"NAME" => "profilepost",
					"VALUE" => "",
					"HEIGHT" => "80px"
				],
				"UPLOAD_FILE" => (isset($result["POST_PROPERTIES"]["DATA"]["UF_BLOG_POST_FILE"]) ? $result["POST_PROPERTIES"]["DATA"]["UF_BLOG_POST_FILE"] : false),
				"UPLOAD_WEBDAV_ELEMENT" => [],
				"UPLOAD_FILE_PARAMS" => [
					"width" => 400,
					"height" => 400
				],
				"FILES" => [
					"VALUE" => [],
					"DEL_LINK" => false,
					"SHOW" => "N"
				],
				"SMILES" => (Loader::includeModule('blog') ? CBlogSmile::getSmilesList() : []),
				"LHE" => [
					"id" => "id".$formId,
					"documentCSS" => "body {color:#434343;}",
					"iframeCss" => "html body {padding-left: 14px!important; line-height: 18px!important;}",
					"ctrlEnterHandler" => "__logSubmitCommentForm".$result["UID"],
					"fontSize" => "14px",
					"bInitByJS" => true,
					"height" => 80
				],
				"PROPERTIES" => [
					array_merge(
						(
						isset($result["POST_PROPERTIES"]["DATA"]["UF_BLOG_POST_URL_PRV"])
						&& is_array($result["POST_PROPERTIES"]["DATA"]["UF_BLOG_POST_URL_PRV"])
							? $result["POST_PROPERTIES"]["DATA"]["UF_BLOG_POST_URL_PRV"]
							: []
						),
						[ 'ELEMENT_ID' => 'url_preview_'.$formId ]
					)
				],
				"SELECTOR_VERSION" => 2,
				"HIDE_CHECKBOX_ALLOW_EDIT" => 'Y'
			];
		}
	}

	return $result;
}