• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/item/workgroup.php
  • Класс: BitrixSocialnetworkItemWorkgroup
  • Вызов: Workgroup::getById
static function getById($groupId = 0, $useCache = true)
{
	global $USER_FIELD_MANAGER;

	static $cachedFields = [];

	$groupItem = false;
	$groupId = (int)$groupId;

	if ($groupId > 0)
	{
		$groupItem = new Workgroup;
		$groupFields = [];

		if ($useCache && isset($cachedFields[$groupId]))
		{
			$groupFields = $cachedFields[$groupId];
		}
		else
		{
			$res = WorkgroupTable::getList(array(
				'filter' => array('=ID' => $groupId)
			));
			if ($fields = $res->fetch())
			{
				$groupFields = $fields;

				if ($groupFields['DATE_CREATE'] instanceof BitrixMainTypeDateTime)
				{
					$groupFields['DATE_CREATE'] = $groupFields['DATE_CREATE']->toString();
				}
				if ($groupFields['DATE_UPDATE'] instanceof BitrixMainTypeDateTime)
				{
					$groupFields['DATE_UPDATE'] = $groupFields['DATE_UPDATE']->toString();
				}
				if ($groupFields['DATE_ACTIVITY'] instanceof BitrixMainTypeDateTime)
				{
					$groupFields['DATE_ACTIVITY'] = $groupFields['DATE_ACTIVITY']->toString();
				}

				$uf = $USER_FIELD_MANAGER->getUserFields(self::UF_ENTITY_ID, $groupId, false, 0);
				if (is_array($uf))
				{
					$groupFields = array_merge($groupFields, $uf);
				}
			}

			$cachedFields[$groupId] = $groupFields;
		}

		$groupItem->setFields($groupFields);
	}

	return $groupItem;
}