Настраиваемые поля курса. Применение в поиске курсов через Витрину курсов 3KL
Общая информация. Настраиваемые поля курса
1. Добавление настраиваемых полей курса
1.1. Общие рекомендации по синтаксису YAML
1.2. Структура кода для написания формы
1.3. Перечень основных элементов формы и их свойств
1.4. Пример кода формы
2. Применение настраиваемых полей курса
2.1. Заполнение настраиваемых полей в курсе
3. Пример использования настраиваемых полей для поиска курсов в Витрине курсов 3KL
4. Инструкция по настройке
4.1. Добавить настраиваемые поля для курсов и включить поиск в Витрине курсов 3KL
4.2. Заполнить настраиваемые поля в курсах
4.3. Включить фильтры по дополнительным полям в поиске
4.4. Настройка поиска в Витрине курсов 3KL
Общая информация
Настраиваемые поля курса — это специальные кастомные поля, значения которых могут нести дополнительную информацию о курсе, о его классификации, специализации, характеристиках. С помощью таких полей можно задавать дополнительные признаки для курсов. Эти дополнительные признаки используются:
- Как фильтры в форме расширенного поиска (фильтрации) курсов в Витрине курсов 3KL по заданным администратором сайта параметрам.
- Для сортировки курсов в Витрине курсов 3KL.
- Для отображения значений полей на странице описания курса, в списке курсов (на плитках) и в других местах Витрины курсов 3KL.
- Текстовый (строка или фрагмент).
- Выбор из списка.
- Чекбокс.
Поле «Форма обучения», значения: очная, очно-дистанционная, дистанционная.
Поле «Результат обучения» значения: сертификат, удостоверение, свидетельство.
Рис. 0.1. Пример использования фильтра по настраиваемым полям в поисковой форме.
1. Добавление настраиваемых полей курса Требуются права администратора
Добавить настраиваемые поля для курсов можно через общие настройки Витрины курсов в секции «Настраиваемые поля курса»: Администрирование—>Плагины—>Локальные плагины—>Витрина курсов 3KL—>Общие:
Чтобы добавить настраиваемые поля курса для данной формы, нужно составить код в yaml-разметке. Разметка должна соответствовать определенным правилам. Настраиваемые поля, добавленные в эту форму могут быть использованы на всем сайте (глобальная настройка).
1.1. Общие рекомендации по синтаксису YAML
- Потоки YAML используют печатные Unicode-символы, как UTF-8, так и UTF-16.
- Отступы из пробелов (символы табуляции не допускаются) используются для обозначения структуры.
- Комментарии начинаются с символа «решетка» ( # ), могут начинаться в любом месте строки и продолжаются до конца строки.
- Списки обозначаются начальным дефисом ( - ) с одним членом списка на строку, либо члены списка заключаются в квадратные скобки ( [] ) и разделяются запятой и пробелом ( , ).
- Ассоциативные массивы представлены двоеточием с пробелом ( : ) в виде ключ: значение, по одной паре ключ-значение на строку, либо в виде пар, заключенных в фигурные скобки и разделенных запятой и пробелом ( , ).
- Ключ в ассоциативном массиве может иметь в качестве префикса вопросительный знак ( ? ), что позволяет указать сложный ключ, например представленный в виде списка.
- Строки записываются без кавычек, однако могут быть заключены в одиночные или двойные кавычки.
- Внутри двойных кавычек могут быть использованы экранированные символы в C-стиле, начинающиеся с обратного слэша ( \ ).
- YAML позволяет задавать подстановки с помощью якорей & и алиасов (*).
- Пример:
aliases: #последовательность настроек - &myAlias1 datakey: dataval 1 moredata: morevals 1 - &myAlias2 datakey: dataval 2 moredata: morevals 2 config: - *myAlias1 # *myAlias1 после парсинга будет заменен на [{"datakey": "dataval 1", "moredata": "morevals 1"}]
- Явное задание типа оформляется путем '!![указание типа]'. Пример, !!str 100 после парсинга выдаст значение "100".
- Значения типа Дата/Время задаются в формате YYYY-MM-DD или YYYY-MM-DD HH:MM:SS. Если необходимо задать дату, как строку, нужно заключать ее в кавычки ("2012-12-21").
Перед составлением кода полезно представить общую структуру кода для написания формы.
1.2. Структура кода для написания формы:
# Весь текст после символа '#' является комментарием
# Комментарии даны для пояснения кода, система их никак не обрабатывает
# Копировать комментарии из примеров в описание формы не обязательно
class: # Корневой элемент для описания полей формы. Указывается всегда
# Внимание! Отступы очень важны:
# перед элементами одинакового уровня должно быть строго одинаковое количество пробелов.
# Например, перед всеми идентификаторами элементов - ровно по 3 пробела,
Идентификатор элемента 1:
# а перед всеми параметрами элемента - ровно по 6 пробелов.
type: 'тип элемента 1'
label: 'подпись для элемента 1'
# Ниже перечислены параметры элемента, которые зависят от выбранного типа элемента
параметр 1: 'значение параметра 1'
....
параметр N: 'значение параметра N'
Идентификатор элемента 2:
type: 'тип элемента 2'
label: 'подпись для элемента 2'
# Ниже перечислены параметры элемента, которые зависят от выбранного типа элемента
параметр 1: 'значение параметра 1'
....
параметр N: 'значение параметра N'
...
Идентификатор элемента N
type: 'тип элемента N'
label: 'подпись для элемента N'
# Ниже перечислены параметры элемента, которые зависят от выбранного типа элемента
параметр 1: 'значение параметра 1'
....
параметр N: 'значение параметра N'
Идентификатор кнопки "Сохранить":
type: 'submit'
label: 'подпись для кнопки'
Элемент начала описания полей формы
class: - специальный элемент, применяется в начале разметки для обозначения начала описания полей формы. Указывается всегда. Код:
class:
1.3. Перечень основных элементов формы и их свойств
1.3.1. Элементы полей формы
Код для каждого настраиваемого поля содержит группу элементов.
В общем виде структура кода поля выглядит так:
идентификатор:
type: 'тип поля' # определяет тип настраиваемого поля
label: 'подпись для элемента' # Текст, который отобразится для пользователя как название поля
параметр: 'значение параметра' # Название и значения параметра. Зависят от типа элемента
- textarea - текстовый фрагмент (многострочное поле)
- text - текстовая строка
- select - выбор из списка
- checkbox - чекбокс
- submit - кнопка отправки. Служебный элемент. Может быть только одна кнопка в каждой форме.
Текстовое многострочное поле
идентификатор:
type: 'textarea'
label: 'подпись для элемента'
«Идентификатор:». Уникальный код поля в пределах формы. Для каждого поля в пределах данной формы должен быть задан уникальный код. Может быть представлен сочетанием латинских букв, цифр и др.
«Подпись для элемента:». Произвольный текст, который будет отображен рядом с полем в качестве его названия для пользователя. Рекомендуем выбирать максимально краткие, но понятные подписи для элементов. Например: 'Рабочая программа'. Подпись в коде заключается в одинарные кавычки: label: 'Рабочая программа'.
Пример:
description: type: 'textarea' label: 'Рабочая программа'
Поле для текстовой строки
идентификатор:
type: 'text'
label: 'подпись для элемента'
«Идентификатор:». Уникальный код поля в пределах формы. Для каждого поля в пределах данной формы должен быть задан уникальный код. Может быть представлен сочетанием латинских букв, цифр и др.
«Подпись для элемента:». Произвольный текст, который будет отображен рядом с полем в качестве его названия для пользователя. Рекомендуем выбирать максимально краткие, но понятные подписи для элементов. Например: 'Перечень дисциплин'.
Пример:
stroka_k: type: 'text' label: 'Перечень дисциплин'
Поле для выбора из списка
идентификатор:
type: 'select'
label: 'подпись для элемента'
options: [значение1, значение2, значениеN]
«Идентификатор:». Уникальный код поля в пределах формы. Для каждого поля в пределах данной формы должен быть задан уникальный код. Может быть представлен сочетанием латинских букв, цифр и др.
«Подпись для элемента:». Произвольный текст, который будет отображен рядом с полем в качестве его названия для пользователя. Рекомендуем выбирать максимально краткие, но понятные подписи для элементов. Например: 'Форма обучения'.
[значение1, значение2, значениеN] . Значения для выбора из выпадающего списка. Параметр options: используется для задания перечня значений только для типа поля «Выбор из списка» ('select'). Сами значения прописываются в квадратных скобках, последовательно, разделяются запятыми с пробелом. Пример: options: [очная, очно-дистанционная, дистанционная]. Для других типов полей не используется.
speclevel_a: type: 'select' label: 'Форма обучения' options: [очная, очно-дистанционная, дистанционная]
Поле «Чекбокс»
идентификатор:
type: 'checkbox'
label: 'подпись для элемента'
filter: 'bool'
«Идентификатор:». Уникальный код поля в пределах формы. Для каждого поля в пределах данной формы должен быть задан уникальный код. Может быть представлен сочетанием латинских букв, цифр и др.
«Подпись для элемента:». Произвольный текст, который будет отображен рядом с полем в качестве его названия для пользователя. Рекомендуем выбирать максимально краткие, но понятные подписи для элементов. Например: 'Наличие видеолекций'.
filter: 'bool'. Параметр, использующийся для валидации значения поля по типу данных для типа поля «Чекбокс» ('checkbox'). Применяется только в этом типе поля. Для других типов полей не используется.
is_pack: type: 'checkbox' label: 'Наличие видеолекций' filter: 'bool'
Кнопка «Сохранить»
Специальный элемент, использующийся в конце разметки формы как кнопка для сохранения введенных в форму данных. Применение в разметке обязательно.
идентификатор:
type: 'submit'
label: 'подпись для кнопки'
«Идентификатор:». Уникальный код поля в пределах формы. Для каждого поля в пределах данной формы должен быть задан уникальный код. Может быть представлен сочетанием латинских букв, цифр и др.
«Подпись для кнопки:». Произвольный текст, который будет отображен на кнопке. Рекомендуем выбирать максимально краткий, но понятный текст. Например: 'Сохранить'.
submit: type: 'submit' label: 'Сохранить'
1.4. Пример кода формы
При написании кода поля формы отступы из пробелов используются для обозначения структуры. Комментарии написаны для наглядности, начинаются с символа # и могут использоваться в рабочем коде . Ниже приведен пример для формы из трех настраиваемых полей с разными типами — «Выбор из списка», «Текстовый фрагмент» и «Чекбокс». Каждый уникальный код поля отделяется в примере от начала строки тремя пробелами, а элементы, входящие в каждое поле — шестью.
class: # корневой элемент для описания полей формы. Указывается всегда. speclevel_a: # уникальный код поля в пределах формы type: 'select' # тип поля - выбор из списка label: 'Форма обучения' # название поля options: [очная, очно-дистанционная, дистанционная] # перечень значений списка description: # уникальный код поля в пределах формы type: 'textarea' # тип поля - текстовый фрагмент label: 'Рабочая программа' # название поля is_pack: # уникальный код поля в пределах формы type: 'checkbox' # тип поля - чекбокс (да/нет) label: 'Наличие видеолекций' # название поля filter: 'bool' # валидация значения поля по типу данных submit: # уникальный код поля в пределах формы type: 'submit' # тип: кнопка для сохранения формы label: 'Сохранить' # название поля
2. Применение настраиваемых полей курса
Настраиваемые поля курса нужны для хранения специфичных атрибутов курса и позволяют задать дополнительные признаки для курса. Это специальные кастомные поля, значения которых могут нести дополнительную информацию о курсе для его классификации, каталогизации, фильтрации.
Они могут быть использованы:
- Как фильтры в форме расширенного поиска (фильтрации) курсов в Витрине курсов 3KL по заданным администратором сайта параметрам.
- Для сортировки курсов в Витрине курсов 3KL.
- Для отображения значений полей на странице описания курса, в списке курсов (на плитках) и в других местах «Витрины курсов 3KL».
Например, можно добавить такие поля:
- Назначение поля: «Форма обучения». Тип поля: Выбор из списка. Значения: «очная», «очно-дистанционная», «дистанционная».
- Назначение поля: «Результат обучения». Тип поля: Выбор из списка. Значения: «сертификат», «удостоверение», «свидетельство».
- Назначение поля: «Наличие видеолекций». Тип поля: Чекбокс. Значения: «Да» / «Нет».
Настраиваемые поля отображаются и на странице описания курса в Витрине курсов 3KL. Для этого нужно перейти в:
блок «Настройки»—>Управление курсом—>Дополнительные поля курса
Опция «Шаблон оформления страницы описания курса» должна быть установлена в значение «Стандартный» (устанавливается по умолчанию после обновления версии СЭО от 3.5.10b):
В случае необходимости можно заказать разработку индивидуального шаблона отображения курса в Витрине курсов 3KL.
2.1. Заполнение настраиваемых полей в курсе
Чтобы добавить значения настраиваемых полей для конкретного курса, нужно в выбранном курсе перейти в:
Блок «Настройки»—>Управление курсом—>Редактирование настраиваемых полей курса и заполнить эти поля данными.
Таким же образом настраиваемые поля нужно заполнить в нескольких курсах, чтобы можно было фильтровать по ним курсы в поиске в Витрине курсов.
1. Добавить настраиваемые поля в настройки Витрины курсов 3KL с помощью кода в yaml-разметке.
2. Добавить значения полей в курсы.
3. Включить фильтры настраиваемых полей в настройках поиска в Витрине курсов 3KL.
4. Настроить форму поиска в Витрине курсов 3KL и другие опции поиска.
3. Пример использования настраиваемых полей для поиска курсов в Витрине курсов 3KL
Задача. Создать форму поиска по настраиваемым полям курсов со следующими данными:
- Форма обучения: очная, очно-дистанционная, дистанционная (выбор из списка).
- Продолжительность обучения (ак. часов): 16-48, 49-71, 72-107, 108-249, более 250 (выбор из списка).
- Результат обучения: сертификат, удостоверение, свидетельство (выбор из списка).
- Направление: психология и педагогика, ИКТ, юриспруденция, медицина, охрана труда (выбор из списка).
- Рабочая программа (Направление) (текстовый фрагмент).
- Наличие видеолекций (чекбокс).
Пример yaml-разметки для нескольких полей разного формата (для поставленной задачи): текстовый фрагмент, выбор из списка и чекбокс. Комментарии начинаются с #, в коде разметки важны пробелы в начале строк:
class: # корневой элемент для описания полей формы. Указывается всегда. speclevel_a: # уникальный код поля в пределах формы type: 'select' # тип поля - выбор из списка label: 'Форма обучения' # название поля options: [очная, очно-дистанционная, дистанционная] # перечень значений списка speclevel_b: # уникальный код поля в пределах формы type: 'select' # тип поля - выбор из списка label: 'Продолжительность обучения (ак. часов)' # название поля options: [16-48, 49-71, 72-107, 108-249, более 250] # перечень значений списка speclevel_c: # уникальный код поля в пределах формы type: 'select' # тип поля - выбор из списка label: 'Результат обучения' # название поля options: [сертификат, удостоверение, свидетельство] # перечень значений списка speclevel_d: # уникальный код поля в пределах формы type: 'select' # тип поля - выбор из списка label: 'Направление' # название поля options: [психология и педагогика, ИКТ, юриспруденция, медицина, охрана труда] # перечень значений списка description: # уникальный код поля в пределах формы type: 'textarea' # тип поля - текстовый фрагмент label: 'Рабочая программа' # название поля is_pack: # уникальный код поля в пределах формы type: 'checkbox' # тип поля - чекбокс (да/нет) label: 'Наличие видеолекций' # название поля filter: 'bool' # валидация значения поля по типу данных submit: # уникальный код поля в пределах формы type: 'submit' # тип: кнопка для сохранения формы label: 'Сохранить' # название поля
4. Инструкция по настройке
4.1. Добавить настраиваемые поля для курсов и включить поиск в Витрине курсов 3KL
1.1. Поля добавляются через общие настройки Витрины курсов в секции «Настраиваемые поля курса»: Администрирование—>Плагины—>Локальные плагины—>Витрина курсов 3KL—>Общие.
В поле «Настраиваемые поля курса» нужно ввести код yaml-разметки полей (код приведен выше).
1.2. В секции «Общие настройки» в одном из трех полей «Шапка Витрины курсов 3КL», «Верх Витрины курсов 3КL» или «Низ Витрины курсов 3КL» должно быть быть установлено значение «Поиск курсов», чтобы форма поиска отображалась в Витрине.
4.2. Заполнить настраиваемые поля в курсах
Для конкретного курса нужно войти в курс, перейти в:
Управление курсом—>Редактирование настраиваемых полей курса и заполнить эти поля (выставить нужные значения в списках и чекбоксах, добавить текстовую информацию в текстовые поля). Эти поля нужно заполнить в нескольких курсах, чтобы фильтровать по ним курсы в поиске.
4.3. Включить фильтры по дополнительным полям в поиске
Для включения фильтров по дополнительным полям нужно перейти в:
Администрирование—>Плагины—>Локальные плагины—>Витрина курсов 3KL—>Поиск курсов—>Настройки фильтров поиска
На этой странице нужно выбрать вкладку «Фильтры настраиваемых полей» и включить поля, которые будут использоваться в поиске.
4.4. Настройка поиска в Витрине курсов 3KL
Для настройки опций нужно перейти в:
Администрирование—>Плагины—>Локальные плагины—>Витрина курсов 3KL—>Поиск курсов—>Настройка поиска
Для примера решения задачи можно выбрать простой и лаконичный вид поиска курсов в Витрине курсов 3KL с использованием настраиваемых полей и выводом результатов без перезагрузки страницы.
Вариант отображения формы поиска — Минимализм.
Всегда отображать расширенный поиск — Да.
Скрыть кнопку очистки формы поиска — Да.
Выполнять поиск без перезагрузки страницы — Да.
Применять фильтрацию к витрине на текущей странице — Да.
Дополнительные настройки на уровне Категории
На уровне категории через «Дополнительные настройки категории курсов» можно дополнительно настроить состав и область видимости настраиваемых полей в Витрине курсов 3KL, данные настройки будут распространяться на вложенные категории и курсы, влиять на форму поиска и сортировки курсов в Витрине курсов 3KL, на состав полей на странице описания курса. Подробно эти настройки описаны в инструкции «Настройка Витрины курсов 3KL».
Индивидуальное отображение настраиваемых полей в шаблонах плашек (на плитках курсов, странице информации о курсе и в других местах витрины) можно заказать через заявку в личном кабинете.
Подробно о настройках Витрины: Настройка Витрины курсов 3KL