function Update($ID, $arFields) { $arCats = array(); $CWikiParser = new CWikiParser(); $arFields['DETAIL_TEXT'] = $CWikiParser->parseBeforeSave($arFields['DETAIL_TEXT'], $arCats, $arFields['NAME_TEMPLATE']); $this->CleanCache($ID, $arFields['NAME'], $arFields['IBLOCK_ID']); //save item $this->cIB_E->Update($ID, $arFields); //serve category / bindings $arCats = str_replace("/", "-", $arCats); //http://jabber.bx/view.php?id=28447 $this->UpdateCategory($ID, $arFields['IBLOCK_ID'], $arCats); $modifyComment = isset($arFields["MODIFY_COMMENT"]) ? $arFields["MODIFY_COMMENT"] : ""; $this->UpdateHistory($ID, $arFields['IBLOCK_ID'], $modifyComment); return true; }
$arResult['ELEMENT']['NAME_LOCALIZE'] = CWikiUtils::htmlspecialchars_decode($_POST['POST_TITLE']); $sCatName = ''; if (CWikiUtils::IsCategoryPage($arFields['NAME'], $sCatName)) { $arResult['ELEMENT']['NAME_LOCALIZE'] = CWikiUtils::UnlocalizeCategoryName($sPageName); } if (empty($_POST['POST_TITLE'])) { $arFields['NAME'] = $arParams['ELEMENT_NAME'] = $_POST['POST_TITLE'] = $arResult['ELEMENT']['NAME_LOCALIZE']; $arResult['ERROR_MESSAGE'] = GetMessage('WIKI_ERROR_NAME_EMPTY'); } } $arResult['ELEMENT']['~DETAIL_TEXT'] = $arResult['ALLOW_HTML'] == 'Y' && $_POST['POST_MESSAGE_TYPE'] == 'html' ? $_POST['POST_MESSAGE_HTML'] : $_POST['POST_MESSAGE']; $arResult['ELEMENT']['DETAIL_TEXT_TYPE'] = $arResult['ALLOW_HTML'] == 'Y' ? $_POST['POST_MESSAGE_TYPE'] : 'text'; $arResult['PREVIEW'] = 'Y'; $arResult['ELEMENT_PREVIEW'] = array(); $arCat = array(); $arResult['ELEMENT_PREVIEW']['DETAIL_TEXT'] = $CWikiParser->parseBeforeSave($arResult['ELEMENT']['~DETAIL_TEXT'], $arCat); $arResult['ELEMENT_PREVIEW']['DETAIL_TEXT'] = $CWikiParser->Parse($arResult['ELEMENT_PREVIEW']['DETAIL_TEXT'], $arResult['ELEMENT']['DETAIL_TEXT_TYPE'], $arResult['ELEMENT']['IMAGES']); $arResult['ELEMENT_PREVIEW']['DETAIL_TEXT'] = $CWikiParser->Clear($arResult['ELEMENT_PREVIEW']['DETAIL_TEXT']); $arResult['ELEMENT']['TAGS'] = htmlspecialcharsbx($_POST['TAGS']); $arResult['ELEMENT']['~TAGS'] = htmlspecialcharsbx($_POST['TAGS']); } } } // obtain a list of pictures page $arResult['IMAGES'] = array(); if (!empty($arResult['ELEMENT']['IMAGES'])) { foreach ($arResult['ELEMENT']['IMAGES'] as $_imgID) { $rsFile = CFile::GetByID($_imgID); $arFile = $rsFile->Fetch(); $aImg = array(); $aImg['ID'] = $_imgID;
$arResult['VERSION']['CANCEL_LINK'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_HISTORY'], array('wiki_name' => urlencode($arParams['ELEMENT_NAME']), 'group_id' => CWikiSocnet::$iSocNetId)), $arHp); } } $CACHE_MANAGER->StartTagCache($this->GetCachePath()); $CACHE_MANAGER->RegisterTag('wiki_' . $arParams['ELEMENT_ID']); $CACHE_MANAGER->EndTagCache(); /*$arPages = array('article'); if (isset($arResult['WIKI_oper']) && $arResult['WIKI_oper'] == 'add') $arPages[] = 'add'; $arResult['TOPLINKS'] = CWikiUtils::getRightsLinks($arPages, $arParams);*/ $arCat = array(); $CWikiParser = new CWikiParser(); if ($arResult['REDIRECTED_FROM'] && CWikiUtils::IsWriteable()) { $redirUrl = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_POST_EDIT'], array('wiki_name' => urlencode($arResult['REDIRECTED_FROM']), 'group_id' => CWikiSocnet::$iSocNetId)), $arParams['IN_COMPLEX'] == 'Y' && $arParams['SEF_MODE'] == 'N' ? array($arParams['OPER_VAR'] => $arResult['WIKI_oper']) : array()); $redirUrl = (CMain::IsHTTPS() ? "https://" : "http://") . $_SERVER["HTTP_HOST"] . $redirUrl; $arResult['ELEMENT']['~DETAIL_TEXT'] = GetMessage("WIKI_REDIRECT_FROM") . "[" . $redirUrl . " " . $arResult['REDIRECTED_FROM'] . "]<br><br>" . $arResult['ELEMENT']['~DETAIL_TEXT']; } $arResult['ELEMENT']['DETAIL_TEXT'] = $CWikiParser->parseBeforeSave($arResult['ELEMENT']['~DETAIL_TEXT'], $arCat, $arParams["NAME_TEMPLATE"]); $arResult['ELEMENT']['DETAIL_TEXT'] = $CWikiParser->Parse($arResult['ELEMENT']['DETAIL_TEXT'], $arResult['ELEMENT']['DETAIL_TEXT_TYPE'], $arResult['ELEMENT']['IMAGES']); $arResult['ELEMENT']['DETAIL_TEXT'] = $CWikiParser->Clear($arResult['ELEMENT']['DETAIL_TEXT']); $SERVICE_PAGE_NAME = ''; $arResult['SERVICE_PAGE'] = CWikiUtils::CheckServicePage($arParams['ELEMENT_NAME'], $SERVICE_PAGE_NAME); if ($arResult['SERVICE_PAGE'] == 'category') { $this->AbortResultCache(); } $this->IncludeComponentTemplate(); } $arParams = $_arParams; include_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/components/bitrix/wiki/include/nav.php'; unset($GLOBALS['arParams']); return $arResult['ELEMENT']['ID'];
$arResult['VERSION_OLD']['USER_LINK'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_USER'], array('wiki_name' => urlencode($arParams['ELEMENT_NAME']), 'group_id' => CWikiSocnet::$iSocNetId, 'user_id' => $arHistoryResult['USER_ID'])), array()); } $arHp = array('oldid' => $arHistoryResult['ID'], 'sessid' => bitrix_sessid()); if ($arParams['IN_COMPLEX'] == 'Y' && $arParams['SEF_MODE'] == 'N') { $arHp[$arParams["OPER_VAR"]] = 'history'; } $arResult['CANCEL_LINK'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_HISTORY"], array('wiki_name' => urlencode($arParams['ELEMENT_NAME']), 'group_id' => CWikiSocnet::$iSocNetId)), $arHp); /* erase if ($arHistoryResult['DOCUMENT']['FIELDS']['DETAIL_TEXT_TYPE'] == 'text') $arHistoryResult['DOCUMENT']['FIELDS']['DETAIL_TEXT'] = nl2br($arHistoryResult['DOCUMENT']['FIELDS']['DETAIL_TEXT']); if ($arDiffResult['DOCUMENT']['FIELDS']['DETAIL_TEXT_TYPE'] == 'text') $arDiffResult['DOCUMENT']['FIELDS']['DETAIL_TEXT'] = nl2br($arDiffResult['DOCUMENT']['FIELDS']['DETAIL_TEXT']); */ $arResult['DIFF_NAME'] = CWikiDiff::getDiff($arHistoryResult['DOCUMENT']['FIELDS']['NAME'], $arDiffResult['DOCUMENT']['FIELDS']['NAME']); $arCat = array(); $CWikiParser = new CWikiParser(); /* erase $arHistoryResult['DOCUMENT']['FIELDS']['DETAIL_TEXT'] = $CWikiParser->Clear($arHistoryResult['DOCUMENT']['FIELDS']['DETAIL_TEXT']); $arDiffResult['DOCUMENT']['FIELDS']['DETAIL_TEXT'] = $CWikiParser->Clear($arDiffResult['DOCUMENT']['FIELDS']['DETAIL_TEXT']); */ $arResult['DIFF'] = CWikiDiff::getDiff($arHistoryResult['DOCUMENT']['FIELDS']['DETAIL_TEXT'], $arDiffResult['DOCUMENT']['FIELDS']['DETAIL_TEXT']); $arResult['DIFF'] = $CWikiParser->parseBeforeSave($arResult['DIFF'], $arCat, $arParams["NAME_TEMPLATE"]); $arResult['DIFF'] = $CWikiParser->Parse($arResult['DIFF'], $arHistoryResult['DOCUMENT']['FIELDS']['DETAIL_TEXT_TYPE']); $arResult['DIFF'] = $CWikiParser->Clear($arResult['DIFF']); $CACHE_MANAGER->StartTagCache($this->GetCachePath()); $CACHE_MANAGER->RegisterTag('wiki_' . $arParams['ELEMENT_ID']); $CACHE_MANAGER->EndTagCache(); $this->IncludeComponentTemplate(); } include_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/components/bitrix/wiki/include/nav.php'; unset($GLOBALS['arParams']);