• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/component/loglist.php
  • Класс: BitrixSocialnetworkComponentLogList
  • Вызов: LogList::processLogFormComments
protected function processLogFormComments(&$result): void
{
	global $USER_FIELD_MANAGER;

	$params = $this->arParams;

	if (
		!$result['AJAX_CALL']
		&& empty($this->getErrors())
		&& Util::checkUserAuthorized()
	)
	{
		$cache = new CPHPCache;
		$cacheId = 'log_form_comments'.serialize($params['COMMENT_PROPERTY']);
		$cachePath = '/sonet/log_form/comments';
		$ttl = (defined('BX_COMP_MANAGED_CACHE') ? 2592000 : 600);

		if ($cache->initCache($ttl, $cacheId, $cachePath))
		{
			$cacheVars = $cache->getVars();
			$result['COMMENT_PROPERTIES'] = $cacheVars['comment_props'];
			$cache->output();
		}
		else
		{
			$cache->startDataCache($ttl, $cacheId, $cachePath);

			$result['COMMENT_PROPERTIES'] = [ 'SHOW' => 'N' ];
			if (
				!empty($params['COMMENT_PROPERTY'])
				&& is_array($params['COMMENT_PROPERTY'])
			)
			{
				$arPostFields = $USER_FIELD_MANAGER->getUserFields('SONET_COMMENT', 0, LANGUAGE_ID);
				foreach ($arPostFields as $fieldName => $fieldData)
				{
					if (!in_array($fieldName, $params['COMMENT_PROPERTY'], true))
					{
						continue;
					}

					$fieldData['EDIT_FORM_LABEL'] = $fieldData['EDIT_FORM_LABEL'] <> '' ? $fieldData['EDIT_FORM_LABEL'] : $fieldData['FIELD_NAME'];
					$fieldData['~EDIT_FORM_LABEL'] = $fieldData['EDIT_FORM_LABEL'];
					$fieldData['EDIT_FORM_LABEL'] = htmlspecialcharsEx($fieldData['EDIT_FORM_LABEL']);
					$result['COMMENT_PROPERTIES']['DATA'][$fieldName] = $fieldData;
				}

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

			$cache->endDataCache([ 'comment_props' => $result['COMMENT_PROPERTIES'] ]);
		}
	}
}