- Модуль: 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;
}