• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/log_tools.php
  • Класс: CSocNetLogTools
  • Вызов: CSocNetLogTools::AddComment_Review_CheckIBlock_Forum
static function AddComment_Review_CheckIBlock_Forum($arElement)
{
	if (!CModule::IncludeModule("iblock"))
		return false;

	if (!CModule::IncludeModule("forum"))
		return false;

	$needProperty = array();
	$ELEMENT_IBLOCK_ID = intval($arElement["IBLOCK_ID"]);
	$ELEMENT_FORUM_TOPIC_ID = intval($arElement["PROPERTY_FORUM_TOPIC_ID_VALUE"]);
	$ELEMENT_FORUM_MESSAGE_CNT = intval($arElement["PROPERTY_FORUM_MESSAGE_CNT_VALUE"]);

	if ($ELEMENT_FORUM_TOPIC_ID <= 0):
		$db_res = CIBlockElement::GetProperty($ELEMENT_IBLOCK_ID, $arElement["ID"], false, false, array("CODE" => "FORUM_TOPIC_ID"));
		if (!($db_res && $res = $db_res->Fetch()))
			$needProperty[] = "FORUM_TOPIC_ID";
	endif;
	if ($ELEMENT_FORUM_MESSAGE_CNT <= 0):
		$db_res = CIBlockElement::GetProperty($ELEMENT_IBLOCK_ID, $arElement["ID"], false, false, array("CODE" => "FORUM_MESSAGE_CNT"));
		if (!($db_res && $res = $db_res->Fetch()))
			$needProperty[] = "FORUM_MESSAGE_CNT";
	endif;
	if (!empty($needProperty)):
		$obProperty = new CIBlockProperty;
		$res = true;
		foreach ($needProperty as $nameProperty)
		{
			$sName = trim($nameProperty == "FORUM_TOPIC_ID" ? GetMessage("F_FORUM_TOPIC_ID") : GetMessage("F_FORUM_MESSAGE_CNT"));
			$sName = (empty($sName) ? $nameProperty : $sName);
			$res = $obProperty->Add(array(
				"IBLOCK_ID" => $ELEMENT_IBLOCK_ID,
				"ACTIVE" => "Y",
				"PROPERTY_TYPE" => "N",
				"MULTIPLE" => "N",
				"NAME" => $sName,
				"CODE" => $nameProperty
				)
			);
		}
	endif;

	// Set NULL for topic_id if it was deleted
	if ($ELEMENT_FORUM_TOPIC_ID > 0):
		$arTopic = CForumTopic::GetByID($ELEMENT_FORUM_TOPIC_ID);
		if (!$arTopic || !is_array($arTopic) || count($arTopic) <= 0)
		{
			CIBlockElement::SetPropertyValues($arElement["ID"], $ELEMENT_IBLOCK_ID, 0, "FORUM_TOPIC_ID");
			$ELEMENT_FORUM_TOPIC_ID = 0;
		}
	endif;

	return true;
}