• Модуль: blog
  • Путь к файлу: ~/bitrix/modules/blog/lib/item/blog.php
  • Класс: BitrixBlogItemBlog
  • Вызов: Blog::getByUser
static function getByUser(array $params)
{
	$result = false;

	if (
		!isset($params["USER_ID"])
		|| intval($params["USER_ID"]) <= 0

	)
	{
		return $result;
	}

	$siteId = (!empty($params["SITE_ID"]) ? $params["SITE_ID"] : SITE_ID);
	$userId = intval($params["USER_ID"]);
	$groupId = (!empty($params["GROUP_ID"])  ? $params["GROUP_ID"] : false);

	$cacheIdKeysList = array(
		"ACTIVE" => "Y",
		"USE_SOCNET" => (isset($params["USE_SOCNET"]) && $params["USE_SOCNET"] == "Y" ? "Y" : false),
		"GROUP_ID" => $groupId,
		"GROUP_SITE_ID" => $siteId,
		"OWNER_ID" => $userId,
	);

	$cacheTtl = 3153600;
	$cacheId = 'blog_post_blog_'.md5(serialize($cacheIdKeysList));
	$cacheDir = '/blog/form/blog/';

	$cache = new CPHPCache;
	if($cache->initCache($cacheTtl, $cacheId, $cacheDir))
	{
		$result = $cache->getVars();
	}
	else
	{
		$cache->startDataCache();

		if ($groupId)
		{
			$blogFilter = array(
				"ACTIVE" => "Y",
				"GROUP_ID" => $groupId,
				"GROUP_SITE_ID" => $siteId,
				"OWNER_ID" => $userId
			);

			if (
				isset($params["USE_SOCNET"])
				&& $params["USE_SOCNET"] == "Y"
			)
			{
				$blogFilter["USE_SOCNET"] = "Y";
			}

			$res = CBlog::getList(array(), $blogFilter);
			$result = $res->fetch();
		}

		if (
			!$result
			&& ModuleManager::isModuleInstalled("intranet")
		)
		{
			$ideaBlogGroupIdList = array();
			if (ModuleManager::isModuleInstalled("idea"))
			{
				$res = CSite::getList("sort", "desc", Array("ACTIVE" => "Y"));
				while ($site = $res->fetch())
				{
					$val = ConfigOption::get("idea", "blog_group_id", false, $site["LID"]);
					if ($val)
					{
						$ideaBlogGroupIdList[] = $val;
					}
				}
			}

			if (empty($ideaBlogGroupIdList))
			{
				$result = CBlog::getByOwnerID($userId);
			}
			else
			{
				$blogGroupIdList = array();
				$res = CBlogGroup::getList(array(), array(), false, false, array("ID"));
				while($blogGroup = $res->fetch())
				{
					if (!in_array($blogGroup["ID"], $ideaBlogGroupIdList))
					{
						$blogGroupIdList[] = $blogGroup["ID"];
					}
				}

				$result = CBlog::getByOwnerID($userId, $blogGroupIdList);
			}
		}

		$cache->endDataCache($result);
	}

	if (
		!$result
		&& $groupId
		&& isset($params["CREATE"])
		&& $params["CREATE"] == "Y"
	)
	{
		$result = BitrixSocialnetworkComponentHelper::createUserBlog(array(
			"BLOG_GROUP_ID" => $groupId,
			"USER_ID" => $userId,
			"SITE_ID" => $siteId
		));
	}

	return $result;
}