Your IP : 3.147.126.36


Current Path : /home/bitrix/ext_www/dev.shuft.com.ua/bitrix/modules/forum/classes/general/
Upload File :
Current File : /home/bitrix/ext_www/dev.shuft.com.ua/bitrix/modules/forum/classes/general/event_manager.php

<?
#############################################
# Bitrix Site Manager Forum					#
# Copyright (c) 2002-2013 Bitrix			#
# http://www.bitrixsoft.com					#
# mailto:admin@bitrixsoft.com				#
#############################################
class ForumEventManager
{
	function ForumEventManager()
	{
		if (IsModuleInstalled("iblock")) {
			AddEventHandler("forum", "onAfterMessageAdd", array(&$this, "updateIBlockPropertyAfterAddingMessage"));
			AddEventHandler("forum", "onMessageModerate", array(&$this, "updateIBlockProperty"));
			AddEventHandler("forum", "onAfterMessageDelete", array(&$this, "updateIBlockPropertyAfterDeletingMessage"));
		}
	}

	function updateIBlockPropertyAfterAddingMessage($ID, $arFields, $arTopic = array())
	{
		if ($ID > 0 && $arFields["PARAM1"] != "IB" && $arFields["APPROVED"] == "Y")
		{
			self::updateIBlockProperty($ID, "SHOW", $arFields, $arTopic);
		}
	}

	function updateIBlockPropertyAfterDeletingMessage($ID, $arFields)
	{
		if ($ID > 0 && $arFields["PARAM1"] != "IB" && $arFields["APPROVED"] == "Y")
		{
			self::updateIBlockProperty($ID, "HIDE", $arFields);
		}
	}

	public static function updateIBlockProperty($ID, $TYPE, $arMessage, $arTopic = array())
	{
		if ($ID > 0 && $arMessage["PARAM1"] != "IB" && IsModuleInstalled("iblock"))
		{
			$arTopic = (empty($arTopic) ? CForumTopic::GetByID($arMessage["TOPIC_ID"]) : $arTopic);
			if (!empty($arTopic) && $arTopic["XML_ID"] == "IBLOCK_".$arMessage["PARAM2"] && CModule::IncludeModule("iblock"))
			{
				CIBlockElement::SetPropertyValuesEx($arMessage["PARAM2"], 0, array(
					"FORUM_MESSAGE_CNT" => array(
						"VALUE" => CForumMessage::GetList(array(), array("TOPIC_ID" => $arMessage["TOPIC_ID"], "APPROVED" => "Y", "!PARAM1" => "IB"), true),
						"DESCRIPTION" => "",
					)
				));
			}
		}
	}
}
?>