function Certificate($STUDENT_ID, $COURSE_ID, $checkPerms = true) { global $DB; $STUDENT_ID = intval($STUDENT_ID); $COURSE_ID = intval($COURSE_ID); if ($STUDENT_ID < 1 || $COURSE_ID < 1) { return false; } if (CCertification::IsCourseCompleted($STUDENT_ID, $COURSE_ID)) { $strSql = "SELECT SUM(G.RESULT) CNT, SUM(G.MAX_RESULT) MAX_CNT FROM b_learn_gradebook G\n\t\t\tINNER JOIN b_learn_test T ON T.ID = G.TEST_ID\n\t\t\tWHERE G.COMPLETED = 'Y' AND G.STUDENT_ID = '" . $STUDENT_ID . "' AND T.COURSE_ID = '" . $COURSE_ID . "'"; $res = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); $SUMMARY = $MAX_SUMMARY = 0; if ($ar = $res->Fetch()) { $SUMMARY = $ar["CNT"]; $MAX_SUMMARY = $ar["MAX_CNT"]; } $arFields = array('STUDENT_ID' => $STUDENT_ID, 'COURSE_ID' => $COURSE_ID, 'SUMMARY' => &$SUMMARY, 'MAX_SUMMARY' => &$MAX_SUMMARY); foreach (GetModuleEvents('learning', 'OnBeforeCertificate', true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, array(&$arFields)) === false) { return false; } } $arParams = array(); if (!$checkPerms) { $arParams['CHECK_PERMISSIONS'] = 'N'; } $strSql = "SELECT ID FROM b_learn_certification WHERE STUDENT_ID = '" . $STUDENT_ID . "' AND COURSE_ID = '" . $COURSE_ID . "'"; $res = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); if ($ar = $res->Fetch()) { return CCertification::Update($ar["ID"], array("SUMMARY" => $SUMMARY, "MAX_SUMMARY" => $MAX_SUMMARY, "ACTIVE" => "Y"), $arParams); } else { $arFields = array("STUDENT_ID" => $STUDENT_ID, "COURSE_ID" => $COURSE_ID, "SUMMARY" => $SUMMARY, "MAX_SUMMARY" => $MAX_SUMMARY, "~DATE_CREATE" => CDatabase::CurrentTimeFunction()); $ID = CCertification::Add($arFields, $arParams); return $ID > 0; } } return false; }
/** * <p>Добавляет или изменяет сертификат, если курс был пройден.</p> * * * * * @param int $STUDENT_ID Идентификатор студента. * * * * @param int $COURSE_ID Идентификатор курса. * * * * @return bool <p>Метод возвращает <i>true</i>, если сертификация прошла успешно, * иначе - <i>false</i>.</p> * * * <h4>Example</h4> * <pre> * <?<br>if (CModule::IncludeModule("learning"))<br>{<br> $STUDENT_ID = 1;<br> $COURSE_ID = 92;<br><br> $done = CCertification::Certificate($STUDENT_ID, $COURSE_ID);<br><br> if ($done)<br> echo "Success!";<br> else<br> echo "Course is not completed";<br>}<br>?> * </pre> * * * * <h4>See Also</h4> * <ul> <li> <a href="http://dev.1c-bitrix.ru/api_help/learning/classes/ccertification/index.php">CCertification</a>::<a * href="http://dev.1c-bitrix.ru/api_help/learning/classes/ccertification/add.php">Add</a> </li> <li> <a * href="http://dev.1c-bitrix.ru/api_help/learning/classes/ccertification/index.php">CCertification</a>::<a * href="http://dev.1c-bitrix.ru/api_help/learning/classes/ccertification/update.php">Update</a> </li> <li> <a * href="http://dev.1c-bitrix.ru/api_help/learning/classes/ctest/index.php">CTest</a>::<a * href="http://dev.1c-bitrix.ru/api_help/learning/classes/ctest/getlist.php">GetList</a> </li> <li> <a * href="http://dev.1c-bitrix.ru/api_help/learning/classes/cgradebook/index.php">CGradeBook</a>::<a * href="http://dev.1c-bitrix.ru/api_help/learning/classes/cgradebook/getlist.php">GetList</a> </li> </ul><a * name="examples"></a> * * * @static * @link http://dev.1c-bitrix.ru/api_help/learning/classes/ccertification/certificate.php * @author Bitrix */ public static function Certificate($STUDENT_ID, $COURSE_ID) { global $DB; $STUDENT_ID = intval($STUDENT_ID); $COURSE_ID = intval($COURSE_ID); if ($STUDENT_ID < 1 || $COURSE_ID < 1) return false; if (CCertification::IsCourseCompleted($STUDENT_ID, $COURSE_ID)) { $strSql = "SELECT SUM(G.RESULT) CNT, SUM(G.MAX_RESULT) MAX_CNT FROM b_learn_gradebook G INNER JOIN b_learn_test T ON T.ID = G.TEST_ID WHERE G.COMPLETED = 'Y' AND G.STUDENT_ID = '".$STUDENT_ID."' AND T.COURSE_ID = '".$COURSE_ID."'"; $res = $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__); $SUMMARY = $MAX_SUMMARY = 0; if ($ar = $res->Fetch()) { $SUMMARY = $ar["CNT"]; $MAX_SUMMARY = $ar["MAX_CNT"]; } $strSql = "SELECT ID FROM b_learn_certification WHERE STUDENT_ID = '".$STUDENT_ID."' AND COURSE_ID = '".$COURSE_ID."'"; $res = $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__); if ($ar = $res->Fetch()) { return CCertification::Update($ar["ID"], Array("SUMMARY" => $SUMMARY, "MAX_SUMMARY" => $MAX_SUMMARY, "ACTIVE" => "Y") ); } else { $arFields = Array( "STUDENT_ID" => $STUDENT_ID, "COURSE_ID" => $COURSE_ID, "SUMMARY" => $SUMMARY, "MAX_SUMMARY" => $MAX_SUMMARY, "~DATE_CREATE" => CDatabase::CurrentTimeFunction(), ); $ID = CCertification::Add($arFields); return ($ID > 0); } } return false; }