$bCreateRule = true; $rsData = $DB->Query("SELECT ID, ACTIVE FROM b_rating_rule WHERE CONDITION_MODULE = 'intranet'"); while ($arRule = $rsData->Fetch()) { if ($arRule["ACTIVE"] == "N") { $DB->Query("DELETE FROM b_rating_rule WHERE ID = " . $arRule["ID"], true); } else { COption::SetOptionString("intranet", "ratingSubordinateId", $arRule['ID']); CRatingRule::Apply($arRule['ID']); $bCreateRule = false; } } // после авторитета if ($bCreateRule) { $dbRes = CLanguage::GetList($by = 'sort', $order = 'asc'); while ($arRes = $dbRes->Fetch()) { if (file_exists(dirname(__FILE__) . '/' . $arRes['LID'] . '/rating.php')) { require dirname(__FILE__) . '/' . $arRes['LID'] . '/rating.php'; } } $arFields = array("ACTIVE" => "Y", "NAME" => $MESS['INTR_INSTALL_RATING_RULE'], "ENTITY_TYPE_ID" => "USER", "CONDITION_NAME" => "SUBORDINATE", "CONDITION_MODULE" => "intranet", "CONDITION_CLASS" => "CRatingRulesIntranet", "CONDITION_METHOD" => "subordinateCheck", "CONDITION_CONFIG" => array("SUBORDINATE" => array()), "ACTION_NAME" => "empty", "ACTION_CONFIG" => array(), "ACTIVATE" => "N", "ACTIVATE_CLASS" => "empty", "ACTIVATE_METHOD" => "empty", "DEACTIVATE" => "N", "DEACTIVATE_CLASS" => "empty ", "DEACTIVATE_METHOD" => "empty", "~CREATED" => $DB->GetNowFunction(), "~LAST_MODIFIED" => $DB->GetNowFunction()); $arFields["CONDITION_CONFIG"] = serialize($arFields["CONDITION_CONFIG"]); $arFields["ACTION_CONFIG"] = serialize($arFields["ACTION_CONFIG"]); $ID = $DB->Add("b_rating_rule", $arFields, array("ACTION_CONFIG", "CONDITION_CONFIG")); COption::SetOptionString("intranet", "ratingSubordinateId", $ID); CRatingRule::Apply($ID); } // recount ratings $rsData = CRatings::GetList(array('ID' => 'ASC'), array()); while ($arRes = $rsData->Fetch()) { CRatings::Calculate($arRes['ID'], true); }
} if ($arID = $lAdmin->GroupAction()) { if ($_REQUEST['action_target'] == 'selected') { $rsData = CRatingRule::GetList(array($by => $order), $arFilter); while ($arRes = $rsData->Fetch()) { $arID[] = $arRes['ID']; } } foreach ($arID as $ID) { $ID = IntVal($ID); if ($ID <= 0) { continue; } switch ($_REQUEST['action']) { case "reapply": if (!CRatingRule::Apply($ID, true)) { $lAdmin->AddGroupError(GetMessage("RATING_RULE_LIST_ERR_APP"), $ID); } break; case "delete": if (!CRatingRule::Delete($ID)) { $lAdmin->AddGroupError(GetMessage("RATING_RULE_LIST_ERR_DEL"), $ID); } break; } } } $rsData = CRatingRule::GetList(array($by => $order), $arFilter); $rsData = new CAdminResult($rsData, $sTableID); $rsData->NavStart(); $lAdmin->NavText($rsData->GetNavPrint(GetMessage("RATING_RULE_LIST_NAV")));