%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/components/bitrix/wiki.discussion/ |
| Current File : //home/bitrix/www/bitrix/components/bitrix/wiki.discussion/component.php |
<?if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED!==true)die();
$arParams['IN_COMPLEX'] = 'N';
if (($arParent = $this->GetParent()) !== NULL)
$arParams['IN_COMPLEX'] = 'Y';
if(empty($arParams['USE_REVIEW']))
$arParams['USE_REVIEW'] = 'Y';
if ($arParams['IN_COMPLEX'] == 'Y' && strpos($this->GetParent()->GetName(), 'socialnetwork') === false)
$arParams['USE_REVIEW'] = $this->GetParent()->arResult['USE_REVIEW'];
if($arParams['USE_REVIEW'] == 'N')
return;
if(empty($arParams['PAGE_VAR']))
$arParams['PAGE_VAR'] = 'title';
if(empty($arParams['OPER_VAR']))
$arParams['OPER_VAR'] = 'oper';
$arParams['PATH_TO_POST'] = trim($arParams['PATH_TO_POST']);
if(empty($arParams['SEF_MODE']))
{
$arParams['SEF_MODE'] = 'N';
if ($arParams['IN_COMPLEX'] == 'Y')
$arParams['SEF_MODE'] = $this->GetParent()->arResult['SEF_MODE'];
}
if(empty($arParams['SOCNET_GROUP_ID']) && $arParams['IN_COMPLEX'] == 'Y')
{
if (strpos($this->GetParent()->GetName(), 'socialnetwork') !== false &&
!empty($this->GetParent()->arResult['VARIABLES']['group_id']))
$arParams['SOCNET_GROUP_ID'] = $this->GetParent()->arResult['VARIABLES']['group_id'];
}
if(empty($arParams['PATH_TO_POST']))
$arParams['PATH_TO_POST'] = htmlspecialcharsbx($APPLICATION->GetCurPage()."?$arParams[PAGE_VAR]=#wiki_name#");
$arParams['PATH_TO_POST_EDIT'] = trim($arParams['PATH_TO_POST_EDIT']);
if(strlen($arParams['PATH_TO_POST_EDIT'])<=0)
$arParams['PATH_TO_POST_EDIT'] = htmlspecialcharsbx($APPLICATION->GetCurPage()."?$arParams[PAGE_VAR]=#wiki_name#");
$arParams['PATH_TO_HISTORY'] = trim($arParams['PATH_TO_HISTORY']);
if(strlen($arParams['PATH_TO_HISTORY'])<=0)
$arParams['PATH_TO_HISTORY'] = htmlspecialcharsbx($APPLICATION->GetCurPage()."?$arParams[PAGE_VAR]=#wiki_name#");
$arParams['PATH_TO_HISTORY_DIFF'] = trim($arParams['PATH_TO_HISTORY_DIFF']);
if(strlen($arParams['PATH_TO_HISTORY_DIFF'])<=0)
$arParams['PATH_TO_HISTORY_DIFF'] = htmlspecialcharsbx($APPLICATION->GetCurPage()."?$arParams[PAGE_VAR]=#wiki_name#");
$arParams['PATH_TO_DISCUSSION'] = trim($arParams['PATH_TO_DISCUSSION']);
if(strlen($arParams['PATH_TO_DISCUSSION'])<=0)
{
$arParams['PATH_TO_DISCUSSION'] = htmlspecialcharsbx($APPLICATION->GetCurPage()."?$arParams[PAGE_VAR]=#wiki_name#");
if ($arParams['IN_COMPLEX'] == 'Y' && $arParams['SEF_MODE'] == 'Y')
$arParams['PATH_TO_DISCUSSION'] = $this->GetParent()->arResult['PATH_TO_DISCUSSION'];
}
$arParams['PATH_TO_CATEGORY'] = trim($arParams['PATH_TO_POST']);
$arParams['PATH_TO_USER'] = trim($arParams['PATH_TO_USER']);
if(strlen($arParams['PATH_TO_USER'])<=0)
{
if ($arParams['IN_COMPLEX'] == 'Y' && $arParams['SEF_MODE'] == 'Y')
$arParams['PATH_TO_USER'] = $this->GetParent()->arParams['PATH_TO_USER'];
}
$GLOBALS['arParams'] = $arParams;
if (!CModule::IncludeModule('wiki'))
{
ShowError(GetMessage('WIKI_MODULE_NOT_INSTALLED'));
return;
}
if (!CModule::IncludeModule('iblock'))
{
ShowError(GetMessage('IBLOCK_MODULE_NOT_INSTALLED'));
return;
}
if (!CModule::IncludeModule('forum'))
{
ShowError(GetMessage('FORUM_MODULE_NOT_INSTALLED'));
return;
}
if (empty($arParams['IBLOCK_ID']))
{
ShowError(GetMessage('IBLOCK_NOT_ASSIGNED'));
return;
}
if (CWikiSocnet::isEnabledSocnet() && !empty($arParams['SOCNET_GROUP_ID']))
{
if(!CModule::IncludeModule('socialnetwork'))
{
ShowError(GetMessage('SOCNET_MODULE_NOT_INSTALLED'));
return;
}
}
if (CWikiSocnet::isEnabledSocnet() && !empty($arParams['SOCNET_GROUP_ID']))
{
$iblock_id_tmp = CWikiSocnet::RecalcIBlockID($arParams["SOCNET_GROUP_ID"]);
if ($iblock_id_tmp)
$arParams['IBLOCK_ID'] = $iblock_id_tmp;
if (!CWikiSocnet::Init($arParams['SOCNET_GROUP_ID'], $arParams['IBLOCK_ID']))
{
ShowError(GetMessage('WIKI_SOCNET_INITIALIZING_FAILED'));
return;
}
CWikiUtils::SetCommentPath(COption::GetOptionString('wiki', 'socnet_forum_id'),"wiki/comment/#MESSAGE_ID#/","/workgroups/index.php"); //http://jabber.bx/view.php?id=25340 todo: /workgroups/index.php => settings
}
else
CWikiUtils::SetCommentPath($arParams['FORUM_ID'],"comment/#MESSAGE_ID#/","/services/wiki.php"); //todo: /workgroups/index.php => settings
if (!CWikiUtils::IsReadable())
{
ShowError(GetMessage('WIKI_ACCESS_DENIED'));
return;
}
$arParams['ELEMENT_NAME'] = rawurldecode($arParams['ELEMENT_NAME']);
$arFilter = array(
// 'IBLOCK_LID' => SITE_ID,
'IBLOCK_ID' => $arParams['IBLOCK_ID'],
'CHECK_PERMISSIONS' => 'N',
// 'IBLOCK_TYPE' => $arParams['IBLOCK_TYPE']
);
if (!CWikiSocnet::isEnabledSocnet() || empty($arParams['SOCNET_GROUP_ID']))
{
$arFilter['IBLOCK_LID'] = SITE_ID;
$arFilter['IBLOCK_TYPE'] = $arParams['IBLOCK_TYPE'];
}
if (empty($arParams['ELEMENT_NAME']))
$arParams['ELEMENT_NAME'] = CWiki::GetDefaultPage($arParams['IBLOCK_ID']);
$arResult['ELEMENT'] = CWiki::GetElementByName($arParams['ELEMENT_NAME'], $arFilter);
if (!empty($arParams['ELEMENT_NAME']) && ($arResult['ELEMENT'] != false))
{
$arParams['ELEMENT_ID'] = $arResult['ELEMENT']['ID'];
if (
CWikiSocnet::isEnabledSocnet()
&& !empty($arParams['SOCNET_GROUP_ID'])
&& array_key_exists('FORUM_TOPIC_ID', $arResult['ELEMENT'])
&& intval($arResult['ELEMENT']['FORUM_TOPIC_ID']) > 0
&& CModule::IncludeModule("forum")
)
{
$arForumTopic = CForumTopic::GetByID($arResult['ELEMENT']['FORUM_TOPIC_ID']);
if ($arForumTopic)
$arParams['FORUM_ID'] = $arForumTopic['FORUM_ID'];
}
}
else
return ;
//$arResult['TOPLINKS'] = CWikiUtils::getRightsLinks('discussion', $arParams);
$arResult['CACHE_TYPE'] = $arParams['CACHE_TYPE'];
$arResult['CACHE_TIME'] = $arParams['CACHE_TIME'];
$arResult['MESSAGES_PER_PAGE'] = $arParams['MESSAGES_PER_PAGE'];
$arResult['USE_CAPTCHA'] = $arParams['USE_CAPTCHA'];
$arResult['PATH_TO_SMILE'] = '/bitrix/images/forum/smile/'; //$arParams['PATH_TO_SMILE'];
$arResult['URL_TEMPLATES_READ'] = $arParams['URL_TEMPLATES_READ'];
$arResult['SHOW_LINK_TO_FORUM'] = $arParams['SHOW_LINK_TO_FORUM'] == 'Y' ? 'Y' : 'N';
$arResult['ELEMENT_ID'] = $arResult['ELEMENT']['ID'];
$arResult['IBLOCK_ID'] = $arParams['IBLOCK_ID'];
$arResult['FORUM_ID'] = $arParams['FORUM_ID'];
$arResult['POST_FIRST_MESSAGE'] = $arParams['POST_FIRST_MESSAGE'];
$arResult['URL_TEMPLATES_DETAIL'] = $arParams['URL_TEMPLATES_DETAIL'];
$arResult['NAME_TEMPLATE'] = $arParams['NAME_TEMPLATE'];
include_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/components/bitrix/wiki/include/nav.php');
if (CWikiSocnet::isEnabledSocnet() && !empty($arParams['SOCNET_GROUP_ID']))
{
class CSocNetWikiForumEvent
{
var $arPath;
var $ForumID = null;
function SetVars($arParams, $arResult)
{
$this->arPath['PATH_TO_SMILE'] = $arParams['PATH_TO_SMILE'];
$this->arPath['PATH_TO_USER'] = $arParams['PATH_TO_USER'];
$this->arPath['PATH_TO_POST'] = $arParams['~PATH_TO_POST'];
$this->ForumID = $arParams['FORUM_ID'];
$this->SonetGroupID = $arParams['SOCNET_GROUP_ID'];
}
private function createLogEntry($iblockElementID)
{
$rsElement = CIBlockElement::GetByID($iblockElementID);
if ($arElement = $rsElement->Fetch())
{
$arWikiElement = CWiki::GetElementById($arElement['ID'], array('IBLOCK_ID' => $arElement['IBLOCK_ID']));
$CWikiParser = new CWikiParser();
$parserLog = new logTextParser();
$arAllow = array("HTML" => "N", "ANCHOR" => "N", "BIU" => "N", "IMG" => "N", "QUOTE" => "N", "CODE" => "N", "FONT" => "N", "LIST" => "N", "SMILES" => "N", "NL2BR" => "N", "VIDEO" => "N", "TABLE" => "N");
$text4message = $CWikiParser->Parse($arElement['DETAIL_TEXT'], $arElement['DETAIL_TEXT_TYPE'], $arWikiElement['IMAGES']);
$text4message = preg_replace("#<br[\s]*\/>#is", "#BR#", $text4message);
$text4message = htmlspecialcharsback($parserLog->convert($text4message, array(), $arAllow));
$text4message = preg_replace("#\#BR\##is", "\n", $text4message);
$text4message = $CWikiParser->Clear($text4message);
$url = str_replace(
array('#group_id#', '#wiki_name#'),
array(intval($this->SonetGroupID), rawurlencode($arElement['NAME'])),
$this->arPath['PATH_TO_POST']
);
$arSoFields = Array(
'ENTITY_TYPE' => SONET_SUBSCRIBE_ENTITY_GROUP,
'IS_CUSTOM_ET' => 'N',
'ENTITY_ID' => intval($this->SonetGroupID),
'EVENT_ID' => 'wiki',
'USER_ID' => $arElement['CREATED_BY'],
'LOG_DATE' => $arElement['DATE_CREATE'],
'LOG_UPDATE' => $arElement['DATE_CREATE'],
'TITLE_TEMPLATE' => GetMessage('WIKI_SONET_LOG_TITLE_TEMPLATE'),
'TITLE' => $arElement['NAME'],
'MESSAGE' => $text4message,
'TEXT_MESSAGE' => '',
'MODULE_ID' => 'wiki',
'URL' => $url,
'CALLBACK_FUNC' => false,
'SOURCE_ID' => intval($iblockElementID),
'PARAMS' => 'forum_id='.$this->ForumID,
'RATING_TYPE_ID' => 'IBLOCK_ELEMENT',
'RATING_ENTITY_ID' => intval($iblockElementID)
);
$log_id = CSocNetLog::Add($arSoFields, false);
$log_user_id = $arElement['CREATED_BY'];
$log_title = $arElement["NAME"];
if (intval($log_id) > 0)
{
CSocNetLog::Update($log_id, array("TMP_ID" => $log_id));
CSocNetLogRights::SetForSonet($log_id, SONET_SUBSCRIBE_ENTITY_GROUP, intval($this->SonetGroupID), "wiki", "view", true);
return array(
"LOG_ID" => $log_id,
"LOG_USER_ID" => $log_user_id,
"LOG_TITLE" => $log_title,
"URL" => $url
);
}
}
return false;
}
private function createLogComment($messageID, $bSocNetLogRecordExists, $iblockElementID, $topicID, $arLogParams)
{
$dbComment = CSocNetLogComments::GetList(array(), array('EVENT_ID' => 'wiki_comment', 'SOURCE_ID' => $messageID), false, false, array('ID'));
if (
($arComment = $dbComment->Fetch())
&& intval($arComment['ID']) > 0
)
{
return false;
}
$arForum = CForumNew::GetByID($this->ForumID);
$parser = new forumTextParser(LANGUAGE_ID, $this->arPath['PATH_TO_SMILE']);
$parser->imageWidth = false;
$parser->imageHeight = false;
$arAllow = array(
'HTML' => "N",
'ANCHOR' => "N",
'BIU' => "N",
'IMG' => "N",
'LIST' => "N",
'QUOTE' => "N",
'CODE' => "N",
'FONT' => "N",
'UPLOAD' => $arForum['ALLOW_UPLOAD'],
'NL2BR' => "N",
'SMILES' => "N"
);
if ($bSocNetLogRecordExists) //if existing record- add only newly added comment
{
$arMessage = CForumMessage::GetByIDEx($messageID);
$sAuthorForMail = str_replace('#TITLE#', $arMessage['AUTHOR_NAME'], GetMessage('SONET_FORUM_LOG_TEMPLATE_GUEST'));
$parser = new forumTextParser(LANGUAGE_ID, $this->arPath['PATH_TO_SMILE']);
$parser->imageWidth = false;
$parser->imageHeight = false;
if (intVal($arMessage['AUTHOR_ID']) > 0)
$sAuthorForMail = str_replace(array('#URL#', '#TITLE#'), array('http://'.SITE_SERVER_NAME.CComponentEngine::MakePathFromTemplate(
$this->arPath['PATH_TO_USER'], array('user_id' => $arMessage['AUTHOR_ID'])), $arMessage['AUTHOR_NAME']),
GetMessage('SONET_FORUM_LOG_TEMPLATE_AUTHOR'));
$arFieldsForSocnet = array(
'ENTITY_TYPE' => SONET_SUBSCRIBE_ENTITY_GROUP,
'ENTITY_ID' => intval($this->SonetGroupID),
'EVENT_ID' => 'wiki_comment',
'=LOG_DATE' => $GLOBALS['DB']->CharToDateFunction($arMessage['POST_DATE'], "FULL", SITE_ID),
'MESSAGE' => $arMessage['POST_MESSAGE'],
'TEXT_MESSAGE' => $parser->convert4mail($arMessage['POST_MESSAGE'].$sAuthorForMail),
'URL' => $arLogParams["URL"],
'MODULE_ID' => false,
'SOURCE_ID' => $messageID,
'LOG_ID' => $arLogParams["LOG_ID"],
'RATING_TYPE_ID' => 'FORUM_POST',
'RATING_ENTITY_ID' => intval($arMessage['ID'])
);
if (intVal($arMessage['AUTHOR_ID']) > 0)
$arFieldsForSocnet['USER_ID'] = $arMessage['AUTHOR_ID'];
$log_comment_id = CSocNetLogComments::Add($arFieldsForSocnet, false, false);
if ($log_comment_id)
{
CSocNetLog::CounterIncrement($log_comment_id, false, false, "LC");
if (
CModule::IncludeModule("im")
&& intval($arMessage["AUTHOR_ID"]) > 0
&& $arMessage["AUTHOR_ID"] != $arLogParams["LOG_USER_ID"]
)
{
$rsUnFollower = CSocNetLogFollow::GetList(
array(
"USER_ID" => $arLogParams["LOG_USER_ID"],
"CODE" => "L".$arLogParams["LOG_ID"],
"TYPE" => "N"
),
array("USER_ID")
);
$arUnFollower = $rsUnFollower->Fetch();
if (!$arUnFollower)
{
$arMessageFields = array(
"MESSAGE_TYPE" => IM_MESSAGE_SYSTEM,
"TO_USER_ID" => $arLogParams["LOG_USER_ID"],
"FROM_USER_ID" => $arMessage["AUTHOR_ID"],
"NOTIFY_TYPE" => IM_NOTIFY_FROM,
"NOTIFY_MODULE" => "wiki",
"NOTIFY_EVENT" => "comment",
);
$arParams["TITLE"] = str_replace(Array("\r\n", "\n"), " ", $arLogParams["LOG_TITLE"]);
$arParams["TITLE"] = TruncateText($arParams["TITLE"], 100);
$arParams["TITLE_OUT"] = TruncateText($arParams["TITLE"], 255);
$arTmp = CSocNetLogTools::ProcessPath(array("ELEMENT_URL" => $arLogParams["URL"]), $arLogParams["LOG_USER_ID"]);
$serverName = $arTmp["SERVER_NAME"];
$url = $arTmp["URLS"]["ELEMENT_URL"];
$arMessageFields["NOTIFY_TAG"] = "WIKI|COMMENT|".$iblockElementID;
$arMessageFields["NOTIFY_MESSAGE"] = GetMessage("WIKI_SONET_IM_COMMENT", Array(
"#title#" => "<a href=\"".$url."\" class=\"bx-notifier-item-action\">".htmlspecialcharsbx($arParams["TITLE"])."</a>",
));
$arMessageFields["NOTIFY_MESSAGE_OUT"] = GetMessage("WIKI_SONET_IM_COMMENT", Array(
"#title#" => htmlspecialcharsbx($arParams["TITLE_OUT"])
))." (".$serverName.$url.")#BR##BR#".$arFieldsForSocnet["MESSAGE"];
CIMNotify::Add($arMessageFields);
}
}
}
}
else //if new socnetlog record - add all comments
{
$dbMessage = CForumMessage::GetListEx(
array(),
array(
"TOPIC_ID" => $topicID,
"NEW_TOPIC" => "N"
)
);
while ($arMessage = $dbMessage->GetNext())
{
if (intVal($arMessage['AUTHOR_ID']) > 0)
$sAuthorForMail = str_replace(array('#URL#', '#TITLE#'), array('http://'.SITE_SERVER_NAME.CComponentEngine::MakePathFromTemplate(
$this->arPath['PATH_TO_USER'], array('user_id' => $arMessage['AUTHOR_ID'])), $arMessage['AUTHOR_NAME']),
GetMessage('SONET_FORUM_LOG_TEMPLATE_AUTHOR'));
$arFieldsForSocnet = array(
'ENTITY_TYPE' => SONET_SUBSCRIBE_ENTITY_GROUP,
'ENTITY_ID' => intval($this->SonetGroupID),
'EVENT_ID' => 'wiki_comment',
'=LOG_DATE' => $GLOBALS['DB']->CharToDateFunction($arMessage['POST_DATE'], "FULL", SITE_ID),
'MESSAGE' => $parser->convert($arMessage['POST_MESSAGE'], $arAllow),
'TEXT_MESSAGE' => $parser->convert4mail($arMessage['POST_MESSAGE'].$sAuthorForMail),
'URL' => $arLogParams["URL"],
'MODULE_ID' => false,
'SOURCE_ID' => $arMessage['ID'],
'LOG_ID' => $arLogParams["LOG_ID"],
'RATING_TYPE_ID' => 'FORUM_POST',
'RATING_ENTITY_ID' => intval($arMessage['ID'])
);
if (intVal($arMessage['AUTHOR_ID']) > 0)
$arFieldsForSocnet['USER_ID'] = $arMessage['AUTHOR_ID'];
$log_comment_id = CSocNetLogComments::Add($arFieldsForSocnet, false, false);
CSocNetLog::CounterIncrement($log_comment_id, false, false, "LC");
}
}
}
private function deleteLogComment($messageID)
{
$dbRes = CSocNetLogComments::GetList(
array("ID" => "DESC"),
array(
"EVENT_ID" => "wiki_comment",
"SOURCE_ID" => $messageID
),
false,
false,
array("ID")
);
while ($arRes = $dbRes->Fetch())
{
CSocNetLogComments::Delete($arRes["ID"]);
}
}
function onMessageModerate($ID, $TYPE, $arMessage)
{
$bSocNetLogRecordExists = false;
if ($TYPE == "SHOW")
{
if (
(
!array_key_exists('PARAM1', $arMessage)
|| $arMessage['PARAM1'] != 'IB'
)
&& array_key_exists('PARAM2', $arMessage)
&& intval($arMessage['PARAM2']) > 0
)
{
$dbRes = CSocNetLog::GetList(
array('ID' => 'DESC'),
array(
"EVENT_ID" => "wiki",
"SOURCE_ID" => $arMessage["PARAM2"] // wiki element id
),
false,
false,
array('ID', 'TITLE', 'USER_ID', 'ENTITY_TYPE', 'ENTITY_ID', 'TMP_ID', 'URL')
);
if ($arRes = $dbRes->Fetch())
{
$log_id = $arRes["ID"];
$log_user_id = $arRes["USER_ID"];
$log_title = $arRes["TITLE"];
$url = $arRes["URL"];
$bSocNetLogRecordExists = true;
}
else
{
$tmpRes = $this->createLogEntry($arMessage["PARAM2"]);
if (
is_array($tmpRes)
&& $tmpRes["LOG_ID"]
)
{
$log_id = $tmpRes["LOG_ID"];
$log_user_id = $tmpRes["LOG_USER_ID"];
$log_title = $tmpRes["LOG_TITLE"];
$url = $tmpRes["URL"];
}
}
if (intval($log_id) > 0)
{
$this->createLogComment($ID, $bSocNetLogRecordExists, $arMessage["PARAM2"], $arMessage["TOPIC_ID"], array(
"LOG_ID" => $log_id,
"LOG_USER_ID" => $log_user_id,
"LOG_TITLE" => $log_title,
"URL" => $url
));
}
}
}
elseif (
(
!array_key_exists('PARAM1', $arMessage)
|| $arMessage['PARAM1'] != 'IB'
)
&& array_key_exists('PARAM2', $arMessage)
&& intval($arMessage['PARAM2']) > 0
)
{
$this->deleteLogComment($ID);
}
}
function onAfterMessageAdd($ID, $arFields)
{
$bSocNetLogRecordExists = false;
// add log comment
if (
(
!array_key_exists('PARAM1', $arFields)
|| $arFields['PARAM1'] != 'IB'
)
&& array_key_exists('PARAM2', $arFields)
&& intval($arFields['PARAM2']) > 0
)
{
$dbRes = CSocNetLog::GetList(
array('ID' => 'DESC'),
array(
"EVENT_ID" => "wiki",
"SOURCE_ID" => $arFields["PARAM2"] // wiki element id
),
false,
false,
array('ID', 'TITLE', 'USER_ID', 'ENTITY_TYPE', 'ENTITY_ID', 'TMP_ID', 'URL')
);
if ($arRes = $dbRes->Fetch())
{
$log_id = $arRes["ID"];
$log_user_id = $arRes["USER_ID"];
$log_title = $arRes["TITLE"];
$url = $arRes["URL"];
$bSocNetLogRecordExists = true;
}
else
{
$tmpRes = $this->createLogEntry($arFields["PARAM2"]);
if (
is_array($tmpRes)
&& $tmpRes["LOG_ID"]
)
{
$log_id = $tmpRes["LOG_ID"];
$log_user_id = $tmpRes["LOG_USER_ID"];
$log_title = $tmpRes["LOG_TITLE"];
$url = $tmpRes["URL"];
}
}
if (intval($log_id) > 0)
{
$this->createLogComment($ID, $bSocNetLogRecordExists, $arFields["PARAM2"], $arFields["TOPIC_ID"], array(
"LOG_ID" => $log_id,
"LOG_USER_ID" => $log_user_id,
"LOG_TITLE" => $log_title,
"URL" => $url
));
}
}
}
function onAfterMessageDelete($ID, $arFields)
{
if (
(
!array_key_exists('PARAM1', $arFields)
|| $arFields['PARAM1'] != 'IB'
)
&& array_key_exists('PARAM2', $arFields)
&& intval($arFields['PARAM2']) > 0
)
{
$this->deleteLogComment($ID);
}
}
function onBeforeTopicAdd(&$arFields)
{
if (intval($this->SonetGroupID) > 0)
{
$arFields["SOCNET_GROUP_ID"] = intval($this->SonetGroupID);
}
}
}
$obWikiForumEventHandler = new CSocNetWikiForumEvent;
$obWikiForumEventHandler->SetVars($arParams, $arResult);
AddEventHandler('forum', 'onAfterMessageAdd', array($obWikiForumEventHandler, 'onAfterMessageAdd'));
AddEventHandler('forum', 'onMessageModerate', array($obWikiForumEventHandler, 'onMessageModerate'));
AddEventHandler('forum', 'onAfterMessageDelete', array($obWikiForumEventHandler, 'onAfterMessageDelete'));
if (intval($arParams['SOCNET_GROUP_ID']) > 0)
{
AddEventHandler('forum', 'onBeforeTopicAdd', array($obWikiForumEventHandler, 'onBeforeTopicAdd'));
}
}
$this->IncludeComponentTemplate();
unset($GLOBALS['arParams']);
?>