• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/search.php
  • Класс: CSocNetSearch
  • Вызов: CSocNetSearch::OnSearchReindex
static function OnSearchReindex($NS = Array(), $oCallback = NULL, $callback_method = "")
{
	global $DB;
	$arResult = array();

	if ($NS["MODULE"] === "socialnetwork" && $NS["ID"] <> '')
	{
		$id = (int)$NS["ID"];
	}
	else
	{
		$id = 0;//very first id
	}

	$strNSJoin1 = "";
	$strNSFilter1 = "";

	if($NS["SITE_ID"]!="")
	{
		$strNSJoin1 .= " INNER JOIN b_sonet_group_site sgs ON sgs.GROUP_ID=g.ID ";
		$strNSFilter1 .= " AND sgs.SITE_ID='".$DB->ForSQL($NS["SITE_ID"])."' ";
	}

	$strSql = "
		SELECT
			g.ID
			,".$DB->DateToCharFunction("g.DATE_UPDATE")." as DATE_UPDATE
			,g.NAME
			,g.DESCRIPTION
			,g.SUBJECT_ID
			,g.KEYWORDS
			,g.VISIBLE
		FROM
			b_sonet_group g
			".$strNSJoin1."
		WHERE
			g.ACTIVE = 'Y'
			".$strNSFilter1."
			AND g.ID > ".$id."
		ORDER BY
			g.ID
	";

	$rs = $DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__); while ($ar = $rs->Fetch()) { $arSearchIndexSiteID = array(); $rsGroupSite = CSocNetGroup::GetSite($ar["ID"]); while($arGroupSite = $rsGroupSite->Fetch()) $arSearchIndexSiteID[$arGroupSite["LID"]] = str_replace("#group_id#", $ar["ID"], BitrixSocialnetworkHelperPath::get('group_path_template', $arGroupSite['LID'])); $Result = Array( "ID" => "G".$ar["ID"], "LAST_MODIFIED" => $ar["DATE_UPDATE"], "TITLE" => $ar["NAME"], "BODY" => CSocNetTextParser::killAllTags($ar["DESCRIPTION"]), "SITE_ID" => $arSearchIndexSiteID, "PARAM1" => $ar["SUBJECT_ID"], "PARAM2" => $ar["ID"], "PARAM3" => "GROUP", "PERMISSIONS" => ( $ar["VISIBLE"] === "Y"? array('G2')://public array( 'SG'.$ar["ID"].'_A',//admins 'SG'.$ar["ID"].'_E',//moderators 'SG'.$ar["ID"].'_K',//members ) ), "PARAMS" =>array( "socnet_group" => $ar["ID"], "entity" => "socnet_group", ), "TAGS" => $ar["KEYWORDS"], ); if($oCallback) { $res = call_user_func(array(&$oCallback, $callback_method), $Result); if(!$res) return $Result["ID"]; } else $arResult[] = $Result; } if ($oCallback) return false; return $arResult; }