Поддержка серверов

CLearnInstall201203ConvertDB::ConvertPermissions: метод Битрикс

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

<?php 
//    /bitrix/modules/learning/classes/general/legacy/converter_to_11.5.0.phpCLearnInstall201203ConvertDB::ConvertPermissions()
//    710:

        
protected static function ConvertPermissions()
        {
            global 
$DB;

            
$arTaskIdByOldSymbol = array();
            
$arTasks = array(
                
'R' => 'learning_lesson_access_read'
                
'W' => 'learning_lesson_access_manage_basic'
                
'X' => 'learning_lesson_access_manage_full');

            foreach (
$arTasks as $oldSymbol => $taskName)
            {
                
$rc $DB->Query (
                    
"SELECT ID 
                    FROM b_task 
                    WHERE NAME = '" 
$taskName "'",
                    
true);

                if (
$rc === false)
                    throw new 
CLearnInstall201203ConvertDBException('EA_SQLERROR');

                
$row $rc->Fetch();

                if ( ! isset(
$row['ID']) )
                    throw new 
CLearnInstall201203ConvertDBException('EA_LOGIC');

                
$arTaskIdByOldSymbol[$oldSymbol] = (int) $row['ID'];
            }



            
$sql 
            
"SELECT TLL.ID, TLCP.PERMISSION, TLCP.USER_GROUP_ID 
            FROM b_learn_lesson TLL
            INNER JOIN b_learn_course_permission TLCP
                ON TLL.COURSE_ID = TLCP.COURSE_ID
            WHERE TLL.COURSE_ID > 0
            AND TLCP.PERMISSION != 'D'

            UNION 

            SELECT TLL.ID, TLCP.PERMISSION, TLCP.USER_GROUP_ID
            FROM b_learn_lesson TLL
            INNER JOIN b_learn_course_permission TLCP
                ON TLL.WAS_COURSE_ID = TLCP.COURSE_ID
            WHERE TLL.COURSE_ID = 0
            AND TLL.WAS_COURSE_ID > 0
            AND TLCP.PERMISSION != 'D'
            "
;

            
$res $DB->Query($sqltrue);

            if (
$res === false)
                throw new 
CLearnInstall201203ConvertDBException('EA_SQLERROR');

            while (
$row $res->Fetch())
            {
                
$lessonId      $row['ID'];
                
$permission    $row['PERMISSION'];
                
$user_group_id $row['USER_GROUP_ID'];

                
$group 'G' $user_group_id;

                
// Determine task id
                
if ( ! in_array($permission, array('R''W''X'), true) )
                    continue;        
// skip elements with D

                
$task_id $arTaskIdByOldSymbol[$permission];

                
$rc $DB->Query (
                    
"DELETE FROM b_learn_rights 
                    WHERE LESSON_ID = " 
. (int) $lessonId "
                        AND SUBJECT_ID = '" 
$DB->ForSql($group) . "'",
                    
true);
                if (
$rc === false)
                    throw new 
CLearnInstall201203ConvertDBException('EA_SQLERROR');
                    

                
$rc $DB->Query (
                    
"INSERT INTO b_learn_rights (LESSON_ID, SUBJECT_ID, TASK_ID) 
                    VALUES (" 
. (int) $lessonId ", '" $DB->ForSql($group) . "', '" $task_id "')"true);

                if (
$rc === false)
                    throw new 
CLearnInstall201203ConvertDBException('EA_SQLERROR');
            }

        }

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

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

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

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

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

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

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

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