[spoiler]
Прежде всего о самих изменениях.
Самое главное: "свободные уроки", главы, курсы. Теперь любой урок, главу или курс можно использовать в рамках любого другого урока главы или курса. Конец дублированию информации, повышается скорость обновлений данных, повышается скорость работы в целом.
"Приклеивание" урока производится в специальной вкладке:
Здесь можно добавить родительский и дочерний элемент, просмотреть всю цепочку курсов, где присутствует данный урок.
"Приклееный" урок может не отображаться в публичке в рамках курса:
О технологии использования этого функционала - ниже.
С технической точки зрения Уроки, Главы - теперь одна и та же сущность. Любой урок может стать главой, если к нему добавлен в дочерние другой урок. Курс - в принципе тот же урок (он сам может быть "приклеен" к любому уроку), но только к нему можно создавать тесты.
Второе важное изменение: уровень прав.
Права теперь расширенные, те права что заданы в настройках модуля показаны как постоянные, но их можно переназначать (См. группу Сотрудники компании Битрикс). Обратите внимание на примечание снизу формы.
Update: Более подробно о правах читайте
Остальные изменения незначительные, но отметим пару:
Теги, которые позволяют легче находить конкретный урок. Как оказалось проще теперь искать не через курсы, а через страницу админки Список всех уроков.
Вывод статистки ответов и тестов в процентах. Раньше было просто число отвеченных и число верных, теперь - процент. Легче ориентироваться при оценке качества вопросов:
Теперь о том, что даёт такое изменение функционала.
Новый модуль Обучение даёт новые возможности по экономии труда, но и создаёт определённые сложности для разовой работы по соединению существующих курсов. Сложности возникают в силу того, что раньше создатели курсов не думали о том, что одна и та же страница может быть в разных курсах, соответственно не задавались вопросами использования текстов, картинок, вопросов и прочего.
Существует три возможных сценария работы с новым модулем. Каждый имеет свои минусы и плюсы.
- Составление максимально объёмных кусков курсов с отключением каких-то страниц в публичных курсах.
- Составление маленьких, скажем "по ролям", частей в разных курсах с объединением их в едином курсе "по функционалу";
- Просто набор курса из готовых страниц.
Методика "переезда"
У нас сложилась такая методика:
1. Перенос страниц начинаем либо "снизу", со страниц самого нижнего уровня вложенности, если страницы в разделе могут быть разными. Либо целым разделом, если раздел одинаков. Задача: постараться не допустить хотя бы на короткое время "разрыва" в информации. Вдруг кто-то проходит курс в этот момент.
2. Страницы не должны оставаться недоделанными в конце рабочего дня (особенно недели). То есть, если не уверены, что доделаете в течение рабочего дня - лучше не начинать.
3. Сверяем текст страниц, принимаем решение об удалении одной из двух. Критерии, которые должны учитываться при выборе:
- Не потерять информацию
- Число лайков
- Минимум переделки текста
- Оптимизация картинок и их числа.
5. Перед удалением другой страницы, проверяем, не привязан ли к ней какой либо вопрос теста. Если вопрос есть, то он переносится в другую страницу раздела. Суть: вопросы привязаны к урокам. В настройках теста выбирается глава. Значит надо сохранить все вопросы в рамках главы.
6. Удаляемую из курса страницу не удаляли физически, какое-то время их лучше держать под рукой. Вдруг чего позабыли или не то "приклеели". Мы переносили их в специальную папку по возможности с сохранением старой структуры.
7. Добавляем теги в страницу. Теги: Название всех курсов, в которых используется, ключевые слова по смыслу.
8. После редактирования проверяем страницу на ссылки, чтобы они вели на нужный курс.
Выявленные проблемы и способы решения
1. На одинаковых страницах возможна разница в одну фразу. Это оказалось для нас очень частым моментом. При дублировании информации были разные названия продукта, слова "контент-менеджер" или "сотрудник", и так далее. Решение простое - использовать синонимы или обобщающие слова. Названия продуктов мы, например, заменяли на слова "продукты компании 1С-Битрикс" или на "Bitrix Framework".
2. Возможны ситуации с одинаковым текстом и разными картинками. Если это разные продукты (КП и БУС), а показать надо с публички. При малом количестве картинок - пытались обойтись без них, если много картинок, то оставляли обе страницы.
3. Ситуация принципиального различия части текста при одинаковом остальном тексте и картинках. Достаточно частая ситуация, когда описывались различия в наших продуктах. Оставляли обе страницы и делали единые картинки. Либо переносили отличающуюся информацию в отдельную страницу.
4. Ссылки. Если страница содержится в нескольких курсах, то есть проблема ссылок.
Есть курс А и курс Б, в обоих используется страница 12, с которой ведёт ссылка на страницу 34. Чтобы пользователь не уходил с изучаемого им курса, страница 34 для него должна открываться с адресом используемого курса: А/12/34 - для курса А, и Б/12/34 в для курса Б. Но ссылка в текстах прописывается на данный момент "статичная", конкретная.
Решения на текущий момент в продукте нет. Разработчик создал вариант решения, когда ID курса в рамках ссылки можно заменить на {SELF}, а система сама распознает в каком курсе открыта страница 12 и в ссылку вместо {SELF} поставит нужный ID курса. Но это реализовано только в рамках привязки к модулю main 12. Потому пока не работает на нашем сайте и вы можете увидеть у нас "битые" ссылки с этим самым {SELF}. Думается, что в обновлениях, которые будут доступны вам, всё уже будет ОК, и у нас всё исправиться, как установим 12-ю версию.
То есть, резюме: если ссылка ведёт на уникальную страницу в курсе (не важно, в другом или этом же), то нужно будет оставлять цифровой ID. Если ссылка ведёт на страницу в этом же курсе, но страница не уникальная, то нужно будет ставить вместо COURSE_ID=41 - COURSE_ID={SELF}. Уникальная страница - это страница, которая используется только однажды, без привязок в другие курсы, не уникальная - используемая в разных курсах.
5. В УРЛ появится новая составляющая вида: &LESSON_PATH=3922.5009.3702. Это техническая составляющая для системы, что бы она могла определять откуда пришёл пользователь на эту страницу. Ссылки в курсах нужно вставлять без этой части.
6. Сортировка. Её указывать обязательно. Если в старом модуле можно было не указывать индекс сортировки, то теперь, без указания конкретного значения, страницы в меню курса могут "скакать" в рамках одной главы. Это баг, надеемся, что скоро исправят.
7. Сам порядок сортировки может быть разным в разных курсах. Есть "приклееная" глава в два разных курса. В одном курсе нужны не все уроки, а среди тех что есть нужен другой порядок. Это можно сделать, сортировка задаётся для каждого курса отдельно.
8. Вопросы в эту модернизацию курса разработчик не успел сделать "свободными". Они по прежнему привязаны к урокам. Кроме того, привязка теперь "жесткая", то есть вопрос нельзя перенести из урока в урок, только скопипастить. (Очень ждём решения этой проблемы от разработчика.)
Это создало для нашего отдела трудности, так как структура курса Админ Базовый не совпадала со структурой курса Админ. КП, и не получилось в полной мере использовать имеющиеся в уроках вопросы. Пришлось копипастить их в специально созданный урок, который был скрыт от пользователей с помощью той же функции "Не публиковать в рамках курса". Урок не отображается, но вопросы в тесте из него выводятся.
9. Настройка формы урока пока не работает. Точнее работает, но при её использовании пропадают пока закладки Связи и Права доступа. Это баг, надеемся, что скоро исправят.
Для разработчиков: будет много Событий. Надеемся, что информацию по ним мы дадим достаточно быстро.
Если есть вопросы, готов ответить.
Если я поставлю SELF, то страница из КМ откроется как страница Админа Базового. А это не так.
Вообще, всё окончательно станет понятно, когда это новое можно будет «пощупать».
То есть для пользователей права курса доминируют над правами глав и уроков.
Для авторов курсов, админов, всё по другому. Им доступ из админки даётся в соответствии с теми правами, которые обозначены в этом курсе.
Ок, понятно, спасибо.
После обновления могут ли возникнуть какие-то проблемы с уже имеющимися курсами, или прежний функционал "Главы-уроки" полностью сохраняется?
После конвертации все настройки сохраняться и все курсы остануться как есть. Если вам не надо, вы можете не использовать все описанные выше возможности, а работать как и раньше.
К сожалению LiveAPI не показывает эти события. В ближайщие дни дам здесь названия этих событий и классы. В доке появятся попозже.
CAllCertification::Add():
OnBeforeCertificateAdd
OnAfterCertificateAdd
CAllCertification::Update():
OnBeforeCertificateUpdate
OnAfterCertificateUpdate
CAllCertification:: Delete():
OnBeforeCertificateDelete
OnAfterCertificateDelete
CLearnLesson::Add():
OnBeforeLessonAdd
OnAfterLessonAdd
CLearnLesson::Update():
OnBeforeLessonUpdate
OnAfterLessonUpdate
CLearnLesson:: Delete():
OnBeforeLessonDelete
OnAfterLessonDelete
CStudent::Add():
OnBeforeStudentAdd
OnAfterStudentAdd
CStudent::Update():
OnBeforeStudentUpdate
OnAfterStudentUpdate
CStudent:: Delete():
OnBeforeStudentDelete
OnAfterStudentDelete
CTest::Add():
OnBeforeTestAdd
OnAfterTestAdd
CTest::Update():
OnBeforeTestUpdate
OnAfterTestUpdate
CTest:: Delete():
OnBeforeTestDelete
OnAfterTestDelete
Можно подробнее о тестировании. Помимо данных по каждому участнику о проценте верных ответов (это, насколько я поняла, есть), какую информацию я смогу получить? Например, я смогу сразу выгрузить массив по всем прошедшим тестирование, с указанием варианта ответа на каждый вопрос? Или необходимо смотреть каждого индивидуально? Возможность просмотра варианта ответа каждого есть?
Спасибо!
.../bitrix/modules/learning/classes/general/course.php
Line: 434
MySQL Query Error: SELECT L.*, CS.* FROM b_learn_course_site CS, b_lang L WHERE L.LID=CS.SITE_ID AND CS.COURSE_ID=1[Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (cp1251_ukrainian_ci,IMPLICIT) for operation '=']
Что нужно делать?