• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/search_reindex.php
  • Класс: CSocNetSearchReindex
  • Вызов: CSocNetSearchReindex::IndexBlogItemUser
function IndexBlogItemUser($arFields)
{
	global $DB;

	$ID = $arFields["ID"];
	if($ID=="")
		return true;
	unset($arFields["ID"]);

	switch(mb_substr($ID, 0, 1))
	{
		case "P":
			$blog = $this->GetBlog($arFields["PARAM2"]);
			if(
				is_array($blog)
				&& intval($blog["SOCNET_GROUP_ID"]) <= 0
				&& intval($blog["OWNER_ID"]) > 0
				&& $this->_params["PATH_TO_USER_BLOG_POST"] <> ''
			)
			{
				$paramsTmp = $this->GetSearchParams(
					"U",
					intval($blog["OWNER_ID"]),
					'blog',
					'view_post'
				);
				if(!empty($arFields["PARAMS"]))
				{
					$arFields["PARAMS"] = array_merge($paramsTmp, $arFields["PARAMS"]);
				}
				else
				{
					$arFields["PARAMS"] = $paramsTmp;
				}

				foreach($arFields["SITE_ID"] as $site_id => $url)
				{
					$arFields["SITE_ID"][$site_id] = str_replace(
						array(
							"#user_id#",
							"#group_id#",
							"#post_id#",
						),
						array(
							$blog["OWNER_ID"],
							$blog["SOCNET_GROUP_ID"],
							mb_substr($ID, 1),
						),
						$this->_params["PATH_TO_USER_BLOG_POST"]
					);
				}

				$arFields["REINDEX_FLAG"] = true;
				CSearch::Index("blog", $ID, $arFields, false, $this->_sess_id);
				$this->_counter++;
			}
			break;
		case "C":
			$blog = $this->GetBlog(intval($arFields["PARAM2"]));
			if(
				is_array($blog)
				&& intval($blog["SOCNET_GROUP_ID"]) <= 0
				&& intval($blog["OWNER_ID"]) > 0
				&& $this->_params["PATH_TO_USER_BLOG_COMMENT"] <> ''
			)
			{
				$paramsTmp = $this->GetSearchParams(
					"U",
					intval($blog["OWNER_ID"]),
					'blog',
					'view_comment'
				);
				if(!empty($arFields["PARAMS"]))
				{
					$arFields["PARAMS"] = array_merge($paramsTmp, $arFields["PARAMS"]);
				}
				else
				{
					$arFields["PARAMS"] = $paramsTmp;
				}

				foreach($arFields["SITE_ID"] as $site_id => $url)
				{
					$arFields["SITE_ID"][$site_id] = str_replace(
						array(
							"#user_id#",
							"#group_id#",
							"#post_id#",
							"#comment_id#",
						),
						array(
							$blog["OWNER_ID"],
							$blog["SOCNET_GROUP_ID"],
							mb_substr($arFields["PARAM2"], mb_strpos($arFields["PARAM2"], "|") + 1),
							mb_substr($ID, 1),
						),
						$this->_params["PATH_TO_USER_BLOG_COMMENT"]
					);
				}

				$arFields["REINDEX_FLAG"] = true;
				CSearch::Index("blog", $ID, $arFields, false, $this->_sess_id);
				$this->_counter++;
			}
			break;
	}

	if($this->_end_time && $this->_end_time <= time())
		return false;
	else
		return true;
}