$historyService->DeleteHistory($historyId, array('iblock', 'CWikiDocument', $arParams['ELEMENT_ID'])); $CACHE_MANAGER->ClearByTag('wiki_' . $arParams['ELEMENT_ID']); LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_HISTORY'], array('wiki_name' => $arParams['ELEMENT_NAME'], 'group_id' => CWikiSocnet::$iSocNetId))); } else { $this->AbortResultCache(); ShowError(GetMessage('WIKI_ACCESS_DENIED')); return; } } else { try { $CWIKI = new CWiki(); if ($CWIKI->Recover($historyId, $arParams['ELEMENT_ID'], $arParams['IBLOCK_ID'])) { // $arResult["MESSAGE"] = GetMessage('WIKI_PAGE_RECOVER'); // so how could it change the name $arResult['ELEMENT_NEW'] = CWiki::GetElementById($arParams['ELEMENT_ID'], $arFilter); if (CWiki::GetDefaultPage($arParams['IBLOCK_ID']) == $arResult['ELEMENT']['NAME'] && $arResult['ELEMENT']['NAME'] != $arResult['ELEMENT_NEW']['NAME']) { CWiki::SetDefaultPage($arParams['IBLOCK_ID'], $arResult['ELEMENT_NEW']['NAME']); } $CACHE_MANAGER->ClearByTag('wiki_' . $arParams['ELEMENT_ID']); LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_POST'], array('wiki_name' => urlencode($arResult['ELEMENT_NEW']['NAME']), 'group_id' => CWikiSocnet::$iSocNetId))); } else { $arResult['FATAL_MESSAGE'] = GetMessage('WIKI_PAGE_RECOVER_ERROR'); } } catch (Exception $e) { $arResult['FATAL_MESSAGE'] = $e->getMessage(); } } } $history = new CBPHistoryService(); $arFilter = array('DOCUMENT_ID' => $documentId); $dbResultList = $history->GetHistoryList(array('ID' => 'DESC'), $arFilter, false, false, array('ID', 'DOCUMENT_ID', 'NAME', 'MODIFIED', 'USER_ID', 'USER_NAME', 'USER_LAST_NAME', 'USER_SECOND_NAME', 'USER_LOGIN'));
} if (!CWikiSocnet::Init($arParams['SOCNET_GROUP_ID'], $arParams['IBLOCK_ID'])) { ShowError(GetMessage('WIKI_SOCNET_INITIALIZING_FAILED')); return; } $arResult['SOCNET'] = true; } if (!CWikiUtils::IsWriteable() || $arResult['WIKI_oper'] == 'delete' && !CWikiUtils::IsDeleteable()) { ShowError(GetMessage('WIKI_ACCESS_DENIED')); return; } $CWiki = new CWiki(); $arParams['ELEMENT_NAME'] = urldecode($arParams['ELEMENT_NAME']); $arFilter = array('IBLOCK_ID' => $arParams['IBLOCK_ID'], 'CHECK_PERMISSIONS' => 'N'); if (empty($arParams['ELEMENT_NAME'])) { $arParams['ELEMENT_NAME'] = CWiki::GetDefaultPage($arParams['IBLOCK_ID']); } $arResult['ELEMENT'] = array(); if ($arResult['WIKI_oper'] == 'delete') { $arResult['ELEMENT'] = CWiki::GetElementById($arParams['ELEMENT_NAME'], $arFilter); if (!$arResult['ELEMENT']) { $arResult['ERROR_MESSAGE'] = GetMessage("WIKI_DELETE_ERROR"); $arParams['ELEMENT_NAME'] = ""; } else { $arParams['ELEMENT_NAME'] = $arResult['ELEMENT']['NAME']; } } $bNotPage = true; // localize the name of the stream $sPageName = CWikiUtils::htmlspecialcharsback($arParams['ELEMENT_NAME']); $sCatName = '';
} if (isset($_REQUEST['oldid'])) { $arPages[] = 'article'; $arPages[] = 'history_diff'; } $bNotEl = false; if (!empty($arParams['ELEMENT_NAME']) && ($arResult['ELEMENT'] = CWiki::GetElementByName($arParams['ELEMENT_NAME'], $arFilter)) != false) { if ($arResult['ELEMENT']['ACTIVE'] == 'N') { $bNotEl = true; $arPages[] = 'add'; } $arParams['ELEMENT_ID'] = $arResult['ELEMENT']['ID']; } else { $bNotEl = true; if ($bNotPage || empty($arParams['ELEMENT_NAME'])) { $arResult['ELEMENT']['NAME'] = CWiki::GetDefaultPage($arParams['IBLOCK_ID']); //http://jabber.bx/view.php?id=28710 if (empty($arResult['ELEMENT']['NAME'])) { $arResult['ELEMENT']['NAME'] = GetMessage('WIKI_DEFAULT_PAGE_NAME'); } //todo: insert into CWiki::GetDefaultPage() $arParams['ELEMENT_NAME'] = $arResult['ELEMENT']['NAME']; } else { $arResult['ELEMENT']['NAME'] = $arParams["ELEMENT_NAME"]; } $arParams['ELEMENT_ID'] = 0; $arResult['ELEMENT']['ID'] = 0; $sServiceName = ''; $arPages[] = 'add'; } $arResult['TOPLINKS'] = CWikiUtils::getRightsLinks($arPages);