require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php"); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/search/prolog.php"); IncludeModuleLangFile(__FILE__); /** @global CMain $APPLICATION */ global $APPLICATION; /** @var CAdminMessage $message */ $searchDB = CDatabase::GetModuleConnection('search'); $SEARCH_RIGHT = $APPLICATION->GetGroupRight("search"); if($SEARCH_RIGHT=="D") $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); if($Rebuild <> '') { require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_js.php"); $NS = intval($NS)+1; $cCustomRank = new CSearchCustomRank; if($Next == '') $res = $cCustomRank->StartUpdate(); $res = $cCustomRank->NextUpdate(); if(is_array($res) && $res["TODO"]>0): ?> else: ?> endif; if(!is_array($res)) { $res = array( "TODO" => 0, "DONE" => 0, ); } if($res["TODO"] == 0) CAdminMessage::ShowMessage(array( "TYPE" => "OK", "HTML" => true, "MESSAGE" => GetMessage("customrank_saved"), )); else CAdminMessage::ShowMessage(array( "TYPE" => "PROGRESS", "HTML" => true, "MESSAGE" => GetMessage("customrank_progress"), "DETAILS" => "#PROGRESS_BAR#", "PROGRESS_TOTAL" => $res["DONE"]+$res["TODO"], "PROGRESS_VALUE" => $res["DONE"], )); require($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/epilog_admin_js.php"); } else { $sTableID = "tbl_search"; $oSort = new CAdminSorting($sTableID, "ID", "desc"); $lAdmin = new CAdminList($sTableID, $oSort); $FilterArr = array( "find", "find_type", "find_id", "find_site_id", "find_module_id", "find_param1", ); $lAdmin->InitFilter($FilterArr); $arFilter = array( "ID" => ($find != "" && $find_type == "id" ? $find : $find_id), "SITE_ID" => ($find_site_id == "NOT_REF" ? "" : ($find != "" && $find_type == "site_id" ? $find : $find_site_id)), "MODULE_ID" => $find_module_id, "PARAM1" => $find_param1, ); if ($lAdmin->EditAction() && $SEARCH_RIGHT >= "W" && is_array($FIELDS)) { foreach ($FIELDS as $ID => $arFields) { if (!$lAdmin->IsUpdated($ID)) continue; $searchDB->StartTransaction(); $ID = intval($ID); $cData = new CSearchCustomRank; if (($rsData = $cData->GetByID($ID)) && ($arData = $rsData->Fetch())) { foreach ($arFields as $key => $value) $arData[$key] = $value; if (!$cData->Update($ID, $arData)) { $lAdmin->AddGroupError(GetMessage("customrank_edit_error").$cData->LAST_ERROR, $ID); $searchDB->Rollback(); } } else { $lAdmin->AddGroupError(GetMessage("customrank_edit_error")." ".GetMessage("customrank_no_rule"), $ID); $searchDB->Rollback(); } $searchDB->Commit(); } } if (($arID = $lAdmin->GroupAction()) && $SEARCH_RIGHT == "W") { if ($_REQUEST['action_target'] == 'selected') { $cData = new CSearchCustomRank; $rsData = $cData->GetList(array( $by => $order, ), $arFilter); while ($arRes = $rsData->Fetch()) $arID[] = $arRes['ID']; } foreach ($arID as $ID) { if ($ID == '') continue; $ID = intval($ID); switch ($_REQUEST['action']) { case "delete": @set_time_limit(0); $searchDB->StartTransaction(); if (!CSearchCustomRank::Delete($ID)) { $searchDB->Rollback(); $lAdmin->AddGroupError(GetMessage("customrank_error_delete"), $ID); } $searchDB->Commit(); break; } } } $cData = new CSearchCustomRank; $rsData = $cData->GetList(array($by=>$order), $arFilter); $rsData = new CAdminResult($rsData, $sTableID); $rsData->NavStart(); $lAdmin->NavText($rsData->GetNavPrint(GetMessage("customrank_rules"))); $lAdmin->AddHeaders(array( array( "id" => "ID", "content" => "ID", "sort" => "id", "align" => "right", "default" => true, ), array( "id" => "SITE_ID", "content" => GetMessage("customrank_site"), "sort" => "site_id", "default" => true, ), array( "id" => "MODULE_ID", "content" => GetMessage("customrank_module"), "sort" => "module_id", "default" => true, ), array( "id" => "PARAM1", "content" => GetMessage("customrank_param1"), "sort" => "param1", "default" => true, ), array( "id" => "PARAM2", "content" => GetMessage("customrank_param2"), "sort" => "param2", "default" => true, ), array( "id" => "ITEM_ID", "content" => GetMessage("customrank_param3"), "sort" => "item_id", "default" => true, ), array( "id" => "RANK", "content" => GetMessage("customrank_sort"), "sort" => "rank", "align" => "right", "default" => true, ), )); while($arRes = $rsData->NavNext(true, "f_")): $row =& $lAdmin->AddRow($f_ID, $arRes); $row->AddEditField("SITE_ID", CLang::SelectBox("FIELDS[".$f_ID."][SITE_ID]", $f_SITE_ID, "" ,"BoxUpdateNew('param1',".$f_ID.")")); $row->AddViewField("SITE_ID","[".$f_SITE_ID."] ".htmlspecialcharsbx(CSearchCustomRank::__GetParam($lang, $f_SITE_ID))); $row->AddSelectField("MODULE_ID",CSearchCustomRank::ModulesList(),array("OnChange"=>"BoxUpdateNew('param1',".$f_ID.")")); $strPARAM1= ''; } elseif($f_MODULE_ID=="forum" && CModule::IncludeModule("forum")) { $rs = CForumNew::GetList(array("sort"=>"asc"), array("LID"=>$f_SITE_ID)); while($ar=$rs->Fetch()) $strPARAM1.=''; $strPARAM1.=''; } else { $strPARAM1=' '; } $row->AddEditField("PARAM1", '