本文整理汇总了PHP中CRatings::BuildRating方法的典型用法代码示例。如果您正苦于以下问题:PHP CRatings::BuildRating方法的具体用法?PHP CRatings::BuildRating怎么用?PHP CRatings::BuildRating使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CRatings
的用法示例。
在下文中一共展示了CRatings::BuildRating方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: Calculate
/**
* <p>Метод подсчитывает результаты рейтинга с идентификатором <i>id</i>. Динамичный метод.</p>
*
*
* @param int $id Идентификатор рейтинга
*
* @param bool $forceRecalc Принудительный пересчет. Если данный параметр установлен в
* <b>true</b>, то критерии рейтинга будут пересчитаны без учета времени
* следующего запуска.
*
* @return string
*
* <h4>Example</h4>
* <pre>
* <?
* // принудительно пересчитаем все критерии рейтинга
* $ID = 4;
* $bforceRecalc = true;
* CRatings::Calculate($ID, $bforceRecalc);
* ?>
* </pre>
*
*
* @static
* @link http://dev.1c-bitrix.ru/api_help/main/reference/cratings/calculate.php
* @author Bitrix
*/
public static function Calculate($ID, $bForceRecalc = false)
{
global $DB;
$ID = intval($ID);
$err_mess = CRatings::err_mess() . "<br>Function: Calculate<br>Line: ";
$strSql = "SELECT\n\t\t\t\tRC.*,\n\t\t\t\t" . $DB->DateToCharFunction("RC.LAST_MODIFIED") . "\tLAST_MODIFIED,\n\t\t\t\t" . $DB->DateToCharFunction("RC.LAST_CALCULATED") . " LAST_CALCULATED,\n\t\t\t\t" . $DB->DateToCharFunction("RC.NEXT_CALCULATION") . " NEXT_CALCULATION\n\t\t\tFROM\n\t\t\t\tb_rating_component RC\n\t\t\tWHERE\n\t\t\t\tRATING_ID = {$ID}\n\t\t\t\tand ACTIVE = 'Y' " . ($bForceRecalc ? '' : 'AND NEXT_CALCULATION <= ' . $DB->GetNowFunction());
$res = $DB->Query($strSql, false, $err_mess . __LINE__);
while ($arRes = $res->Fetch()) {
if (CModule::IncludeModule(strtolower($arRes['MODULE_ID']))) {
$arRes['CONFIG'] = unserialize($arRes['CONFIG']);
// If the type is automatic calculation of parameters * global vote weight
$sRatingWeightType = COption::GetOptionString("main", "rating_weight_type", "auto");
if ($sRatingWeightType == 'auto') {
$voteWeight = COption::GetOptionString("main", "rating_vote_weight", 1);
$arRes['CONFIG']['COEFFICIENT'] = $arRes['CONFIG']['COEFFICIENT'] * $voteWeight;
}
if (strlen($arRes['EXCEPTION_METHOD']) > 0) {
if (method_exists($arRes['CLASS'], $arRes['EXCEPTION_METHOD'])) {
$exceptionText = call_user_func(array($arRes['CLASS'], $arRes['EXCEPTION_METHOD']));
if ($exceptionText === false) {
if (method_exists($arRes['CLASS'], $arRes['CALC_METHOD'])) {
$result = call_user_func(array($arRes['CLASS'], $arRes['CALC_METHOD']), $arRes);
}
}
}
} else {
if (method_exists($arRes['CLASS'], $arRes['CALC_METHOD'])) {
$result = call_user_func(array($arRes['CLASS'], $arRes['CALC_METHOD']), $arRes);
}
}
}
}
CRatings::BuildRating($ID);
return "CRatings::Calculate({$ID});";
}