Требуется разработчик! Поддержка серверов

CCertification::Certificate: метод Битрикс

Постоянная ссылка: http://bxapi.ru/src/?id=169409

<?php 
//    CCertification::Certificate()
//    /bitrix/modules/learning/classes/general/certification.php:312

    
function Certificate($STUDENT_ID$COURSE_ID$checkPerms true)
    {
        global 
$DB;

        
$STUDENT_ID intval($STUDENT_ID);
        
$COURSE_ID intval($COURSE_ID);

        if (
$STUDENT_ID || $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($strSqlfalse"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($strSqlfalse"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;
    }

Блог разработчика

9 августа 2016 ResizeImageGet и простой водяной знак налету

Сегодня поговорим о том как проще всего воткнуть водяной знак на картинки в Битрикс. Например, на все изображения каталога.

21 июля 2016 Добавление вкладки в CRM коробки Битрикс24

В этом посте я покажу, как легко и просто добавить вкладку в сущность CRM. И не просто добавить, а вывести там свой контент.

21 июля 2016 Как просто обращаться из коробки Битрикс24 на сайт на базе Битрикс

К примеру вам хочется внутренним скриптом дернуть с сайта-магазина информацию, которая там, в свою очередь, закрыта некоторыми правами. Например, админскими. Можно конечно мутить свой REST, или иной формат общения, но проще всего воспользоваться штатным инструментом:

Текст сообщения*
Загрузить изображение