Всем доброго времени суток. Настала необходимость кастомизировать модуль Обучение под нужды заказчика. И сразу появилось несколько неприятных и неудобных моментов. Отсутствие в модуле функционала ввода ответа на тип вопроса "Текстовый вопрос" еще вроде как допиливается, хотя напильником, и изменения приходится делать в модуле(!) битрикс (кому интересно, рабочее решение данного вопроса есть тут). Но есть одна вещь, которая не дает мне покоя и заставила написать этот пост. Дело в том, что я не могу понять - баг у меня на портале, либо такой функционал был заложен изначально. Я про поведение битрикса при добавлении нового урока. Так вот поясню: если вы создали курс, переходите в него и создаете урок - урок создается как дочерний элемент курса и вас перебрасывает в раздел "Список всех уроков", где в куче находятся все все ваши уроки. Казалось бы, что с этого? Дело в том, что если сейчас нажать на кнопку создать урок, то новый урок будет без родительского раздела и в режиме создания урока родителя указать нельзя. А это значит, что когда вы его закончите редактировать, вам придется найти ваш урок в списке всех уроков, зайти в его редактирование и уже только тогда появляется возможность изменить родителя. Получается двойная работа. Такое же поведение наблюдается в публичной части (до этого было описание админки). Если открыть курс обучения, слева в дереве будет список ваших глав и уроков. Когда я открываю главу/урок и добавляю еще урок (через кнопку добавить, эрмитаж), то вижу схожую картину - родитель уже прописан (та глава или урок, на которой я нахожусь во время добавления нового урока через эрмитаж) и изменить его нельзя. Притом, если кликнуть мышкой на нужную главу, потом добавить урок (он добавится в эту главу), происходит перезагрузка страницы и мы уже находимся в только что добавленном уроке, и для того, чтобы добавить еще один урок в эту же главу, надо опять перейти на ее и добавить урок. Т.е. получается, что после каждого добавленного урока или главы, необходимо возвращаться на нужную главу и добавлять следующий урок. Как это объяснить контент-менеджеру? Зачем эта двойная работа? Почему нет возможности указывать родителя при добавлении урока, хотя есть возможность указывать родителя при его редактировании?
Егор Зотов пишет: Отсутствие в модуле функционала ввода ответа на тип вопроса "Текстовый вопрос" еще вроде как допиливается, хотя напильником,
Этот вид ответа предназначен для проверки ответа преподавателем вручную. Поэтому и не предусмотрено поле для ввода ответа.
Цитата
Егор Зотов пишет: Т.е. получается, что после каждого добавленного урока или главы, необходимо возвращаться на нужную главу и добавлять следующий урок. Как это объяснить контент-менеджеру?
Да, нужно возвращаться в главу. Контент-менеджеру объяснить, что такова особенность системы. На данный момент это работает так, возможно будут исправления, но сейчас это так.
Егор Зотов пишет: Отсутствие в модуле функционала ввода ответа на тип вопроса "Текстовый вопрос" еще вроде как допиливается, хотя напильником,
Этот вид ответа предназначен для проверки ответа преподавателем вручную. Поэтому и не предусмотрено поле для ввода ответа.
Я знаю, но ведь большинство компаний, использующих функционал модуля обучения, ориенитруются на несколько десятков человек, а то и сотен. И если в каждом тесте по несколько текстовых вопросов, а в курсе несколько тестов-крайне неудобно проверять все ответы вручную.
Егор Зотов пишет: Т.е. получается, что после каждого добавленного урока или главы, необходимо возвращаться на нужную главу и добавлять следующий урок. Как это объяснить контент-менеджеру?
Да, нужно возвращаться в главу. Контент-менеджеру объяснить, что такова особенность системы.
Егор Зотов пишет: Я знаю, но ведь большинство компаний, использующих функционал модуля обучения, ориенитруются на несколько десятков человек, а то и сотен. И если в каждом тесте по несколько текстовых вопросов, а в курсе несколько тестов-крайне неудобно проверять все ответы вручную.
Егор, вы ведь знаете, что латинская "с" и кириллическая "с" пишутся одинаково. (Кстати, на вскидку, в двух написаных в предложении "с" какая из них кириллицей, а какая латиницей?) Если в ответе пользователь, не важно из каких побуждений или случайностей, напишет в слове букву не в той раскладке, что выдаст система? Если на какой-то вопрос один юзер ответит: А.С. Пушкин, а другой на тот же вопрос ответит: Александр Сергеевич Пушкин, как системе определить верный ответ? Потому текстовые ответы и проверяются вручную.
У нас в планах стоит увеличение возможностей модуля, но пока сроки реализации не понятны.
Роберт Басыров пишет: Егор, вы ведь знаете, что латинская "с" и кириллическая "с" пишутся одинаково. (Кстати, на вскидку, в двух написаных в предложении "с" какая из них кириллицей, а какая латиницей?) Если в ответе пользователь, не важно из каких побуждений или случайностей, напишет в слове букву не в той раскладке, что выдаст система? Если на какой-то вопрос один юзер ответит: А.С. Пушкин, а другой на тот же вопрос ответит: Александр Сергеевич Пушкин, как системе определить верный ответ? Потому текстовые ответы и проверяются вручную.
Роберт, совершенно верно. Для этого как раз и надо создать возможность ввода нескольких вариантов ответа составителем теста, а потом сравнивать ответ пользователя со всеми вариантами ответа, которые предусмотрел составитель. Предугадать все возможные варианты - это уже работа для тех, кто эти тесты пишет. Если нужно - оставить возможность проверки вручную.
Роберт Басыров Подскажите, как достать значение пользовательского поля у сущности урок (Lesson) в модуле обучение? Само свойство добавил (тип файл), как его теперь вытащить из урока непонятно. В значениях $arResult в шаблоне его нет, в api что-то типа GetProperty у класса CLearnLesson нет. Может что-то упускаю?
Егор, вы ведь знаете, что латинская "с" и кириллическая "с" пишутся одинаково. (Кстати, на вскидку, в двух написаных в предложении "с" какая из них кириллицей, а какая латиницей?) Если в ответе пользователь, не важно из каких побуждений или случайностей, напишет в слове букву не в той раскладке, что выдаст система? Если на какой-то вопрос один юзер ответит: А.С. Пушкин, а другой на тот же вопрос ответит: Александр Сергеевич Пушкин, как системе определить верный ответ? Потому текстовые ответы и проверяются вручную.
Но ведь бывает и другая ситуация, клиент хочет, чтобы проверка работала ИМЕННО ТАК, то есть сравнивалась на побуквенное совпадение. И сделать это возможно только с помощью не очень красивых костылей.
Идеально было бы иметь возможность использовать свои типы вопросов, как типы полей в инфоблоках, чтобы при отсутствии "ненужной" функциональности не упираться лбом в стену и не решать "модифицировать ядро или ради такой мелочи писать свою систему тестирования с нуля".