} if (!empty($arNextHistory)) { $iNextHistoryId = $arNextHistory['ID']; } $arResult['ELEMENT'] = $arHistoryResult['DOCUMENT']['FIELDS']; $arResult['ELEMENT']['~DETAIL_TEXT'] = $arResult['ELEMENT']['DETAIL_TEXT']; if (is_array($arHistoryResult['DOCUMENT']['PROPERTIES']['IMAGES']['VALUE'])) { foreach ($arHistoryResult['DOCUMENT']['PROPERTIES']['IMAGES']['VALUE'] as $_sImg) { $arResult['ELEMENT']['IMAGES'][strtolower(bx_basename($_sImg))] = $_sImg; } } $arParams['ELEMENT_ID'] = $arHistoryResult['DOCUMENT']['FIELDS']['ID']; $rsUser = CUser::GetByID($arHistoryResult['USER_ID']); $arUser = $rsUser->Fetch(); $arResult['VERSION'] = array(); $arResult['VERSION']['USER_LOGIN'] = CWikiUtils::GetUserLogin($arUser, $arParams["NAME_TEMPLATE"]); $arResult['VERSION']['MODIFIED'] = FormatDateFromDB($arHistoryResult['MODIFIED']); if ($iCurHistoryId != $historyId) { $arResult['VERSION']['CUR_LINK'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_POST'], array('wiki_name' => urlencode($arParams['ELEMENT_NAME']), 'group_id' => CWikiSocnet::$iSocNetId)), array('oldid' => $iCurHistoryId)); } if (!empty($iPrevHistoryId)) { $arResult['VERSION']['PREV_LINK'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_POST'], array('wiki_name' => urlencode($arParams['ELEMENT_NAME']), 'group_id' => CWikiSocnet::$iSocNetId)), array('oldid' => $iPrevHistoryId)); } if (!empty($iNextHistoryId)) { $arResult['VERSION']['NEXT_LINK'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_POST'], array('wiki_name' => urlencode($arParams['ELEMENT_NAME']), 'group_id' => CWikiSocnet::$iSocNetId)), array('oldid' => $iNextHistoryId)); } $arHp = array('oldid' => $historyId, 'sessid' => bitrix_sessid()); if ($arParams['IN_COMPLEX'] == 'Y' && $arParams['SEF_MODE'] == 'N') { $arHp[$arParams['OPER_VAR']] = 'history'; } $arResult['VERSION']['CANCEL_LINK'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_HISTORY'], array('wiki_name' => urlencode($arParams['ELEMENT_NAME']), 'group_id' => CWikiSocnet::$iSocNetId)), $arHp);
$arResult['PATH_TO_SONET_MESSAGES_CHAT'] = $this->GetParent()->arParams['PATH_TO_MESSAGES_CHAT']; } $arErrorsTmp = array(); while ($arHistory = $rsHistory->GetNext()) { $arHistory['USER_LINK'] = ''; $arHistoryResult = CBPDocument::GetDocumentFromHistory($arHistory['ID'], $arErrorsTmp); $arHistory["MODIFY_COMMENT"] = $arHistoryResult["DOCUMENT"]["MODIFY_COMMENT"]; if (!empty($arParams['PATH_TO_USER'])) { $arHistory['USER_LINK'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_USER'], array('wiki_name' => urlencode($arParams['ELEMENT_NAME']), 'group_id' => CWikiSocnet::$iSocNetId, 'user_id' => $arHistory['USER_ID'])), array()); } /*CBPHistoryService::GetHistoryList() returns specialchared values and CWikiUtils::GetUserLogin also do htmlspecialchars*/ foreach (array('USER_LOGIN', 'USER_NAME', 'USER_LAST_NAME', 'USER_SECOND_NAME') as $key) { $arHistory[$key] = CWikiUtils::htmlspecialchars_decode($arHistory[$key]); } $arHistory['USER_LOGIN'] = CWikiUtils::GetUserLogin($arHistory, $arParams["NAME_TEMPLATE"]); $arHistory['DISCUSSION_LINK'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_DISCUSSION'], array('wiki_name' => urlencode($arParams['ELEMENT_NAME']), 'group_id' => CWikiSocnet::$iSocNetId)), $arParams['IN_COMPLEX'] == 'Y' && $arParams['SEF_MODE'] == 'N' ? array($arParams['OPER_VAR'] => 'discussion') : array()); $arHistory['SHOW_LINK'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_POST'], array('wiki_name' => urlencode($arParams['ELEMENT_NAME']), 'group_id' => CWikiSocnet::$iSocNetId)), array('oldid' => $arHistory['ID'])); $arHp = array('oldid' => $arHistory['ID'], 'sessid' => bitrix_sessid()); if ($arParams['IN_COMPLEX'] == 'Y' && $arParams['SEF_MODE'] == 'N') { $arHp[$arParams['OPER_VAR']] = 'history'; } $arHistory['CANCEL_LINK'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_HISTORY'], array('wiki_name' => urlencode($arParams['ELEMENT_NAME']), 'group_id' => CWikiSocnet::$iSocNetId)), $arHp); if ($arHistoryFirst['ID'] != $arHistory['ID']) { $arHp = array('diffid' => $arHistoryFirst['ID'], 'oldid' => $arHistory['ID']); if ($arParams['IN_COMPLEX'] == 'Y' && $arParams['SEF_MODE'] == 'N') { $arHp[$arParams['OPER_VAR']] = 'history_diff'; } $arHistory['CUR_LINK'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_HISTORY_DIFF'], array('wiki_name' => urlencode($arParams['ELEMENT_NAME']), 'group_id' => CWikiSocnet::$iSocNetId)), $arHp); } if (CWikiUtils::IsDeleteable()) {
function parseBeforeSave($text, &$arCat = array(), $nameTemplate = "") { $userLogin = CWikiUtils::GetUserLogin(array(), $nameTemplate); //$text = preg_replace_callback('/(<nowiki>(.*)<\/nowiki>)/isU'.BX_UTF_PCRE_MODIFIER, array(&$this, '_noWikiCallback'), $text); // Subscribe $text = preg_replace('/--~~~~*/' . BX_UTF_PCRE_MODIFIER, '\\1--' . $userLogin . ' ' . ConvertTimeStamp(false, 'FULL'), $text); // Category $matches = array(); if (preg_match_all('/\\[\\[(Category|' . GetMessage('CATEGORY_NAME') . '):(.+)\\]\\]/iU' . BX_UTF_PCRE_MODIFIER, $text, $matches)) { $arCat = array_unique($matches[2]); } //$text = preg_replace_callback('/(##NOWIKI(\d+)##)/isU'.BX_UTF_PCRE_MODIFIER, array(&$this, '_noWikiReturn2Callback'), $text); return $text; }