Настраиваемые поля курса. Применение в поиске курсов через Витрину курсов

Алексей Городков, Нелли Никитина
2022-01-26 08:21

Общая информация

Настраиваемые поля курса — это специальные кастомные поля, значения которых могут нести дополнительную информацию о курсе, о его классификации, специализации, характеристиках. С помощью таких полей можно задавать дополнительные признаки для курсов. Эти дополнительные признаки используются:

  • Как фильтры в форме расширенного поиска (фильтрации) курсов в Витрине по заданным администратором сайта параметрам.
  • Для сортировки курсов в Витрине.
  • Для отображения значений полей на странице описания курса, в списке курсов (на плитках) и в других местах Витрины.
Создаваемые поля могут иметь различные форматы для данных:
  • Текстовый (строка или фрагмент).
  • Выбор из списка.
  • Чекбокс.
Через Витрину курсов пользователь может осуществить быстрый поиск курсов по этим дополнительным полям и сортировать по ним результаты поиска или список курсов в категориях. Для этого нужно распределить курсы по каким-либо признакам и присвоить значения полям, например, сделать фиксированный список значений для выбора из списка по способу обучения или задать выбор наличия или отсутствия в курсе записанных видеолекций.
Пример. Можно создать несколько полей и заполнить их значениями для курсов:
Поле «Форма обучения», значения: очная, очно-дистанционная, дистанционная.
Поле «Результат обучения» значения: сертификат, удостоверение, свидетельство.

Рис. 0.1. Пример использования фильтра по настраиваемым полям в поисковой форме.

1. Добавление настраиваемых полей курса Требуются права администратора

Важно! Действия в данной инструкции с меткой требуются права администратора можно выполнить только при наличии доступа «Полный Администратор». По умолчанию мы предоставляем доступ «Диспетчер-Администратор». Для изменения глобальных конфигураций мы рекомендуем выбрать набор требуемых опций по данной инструкции и обратиться в техническую поддержку с заявкой на конфигурирование системы. Подробнее в статье Полный административный доступ.

Добавить настраиваемые поля для курсов можно через общие настройки Витрины курсов в секции «Настраиваемые поля курса»: Администрирование—>Плагины—>Локальные плагины—>Витрина курсов—>Общие:

Рис. 1. Настраиваемые поля курса.

Чтобы добавить настраиваемые поля курса для данной формы, нужно составить код в 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. Применение настраиваемых полей курса

Настраиваемые поля курса нужны для хранения специфичных атрибутов курса и позволяют задать дополнительные признаки для курса. Это специальные кастомные поля, значения которых могут нести дополнительную информацию о курсе для его классификации, каталогизации, фильтрации.
Они могут быть использованы:

  • Как фильтры в форме расширенного поиска (фильтрации) курсов в Витрине по заданным администратором сайта параметрам.
  • Для сортировки курсов в Витрине.
  • Для отображения значений полей на странице описания курса, в списке курсов (на плитках) и в других местах «Витрины».

Например, можно добавить такие поля:

  • Назначение поля: «Форма обучения». Тип поля: Выбор из списка. Значения: «очная», «очно-дистанционная», «дистанционная».
  • Назначение поля: «Результат обучения». Тип поля: Выбор из списка. Значения: «сертификат», «удостоверение», «свидетельство».
  • Назначение поля: «Наличие видеолекций». Тип поля: Чекбокс. Значения: «Да» / «Нет». 

Настраиваемые поля отображаются и на странице описания курса в Витрине курсов. Для этого нужно перейти в:
блок «Настройки»—>Управление курсом—>Дополнительные поля курса

Опция «Шаблон оформления страницы описания курса» должна быть установлена в значение «Стандартный» (устанавливается по умолчанию после обновления версии СЭО от 3.5.10b):

Рис. 2. Шаблонное оформление страницы описания курса.

В случае необходимости можно заказать разработку индивидуального шаблона отображения курса в Витрине.

На уровне категории через «Дополнительные настройки категории курсов» можно настроить состав и область видимости настраиваемых полей в Витрине курсов, данные настройки будут распространяться на вложенные категории и курсы, влиять на форму поиска и сортировки курсов в «Витрине», на состав полей на странице описания курса. Подробно эти настройки описаны в инструкции Настройка «Витрины курсов.

2.1. Заполнение настраиваемых полей в курсе

Чтобы добавить значения настраиваемых полей для конкретного курса, нужно в выбранном курсе перейти в:

Блок «Настройки»—>Управление курсом—>Редактирование настраиваемых полей курса и заполнить эти поля данными.

Рис. 2.1. Пример заполнения настраиваемых полей курса.

Таким же образом настраиваемые поля нужно заполнить в нескольких курсах, чтобы можно было фильтровать по ним курсы в поиске в Витрине курсов.

Чтобы использовать настраиваемые поля в поиске курсов через Витрину нужно:
1. Добавить настраиваемые поля в настройки Витрины курсов с помощью кода в yaml-разметке. 
2. Добавить значения полей в курсы.
3. Включить фильтры настраиваемых полей в настройках поиска в Витрине курсов.
4. Настроить форму поиска в Витрине и другие опции поиска.
Инструкция по настройке поиска Витрине курсов:  Поиск курсов в «Витрине курсов

-Вернуться к содержанию-

3. Пример использования настраиваемых полей для поиска курсов в Витрине курсов

Задача. Создать форму поиска по настраиваемым полям курсов со следующими данными:

  • Форма обучения: очная, очно-дистанционная, дистанционная (выбор из списка).
  • Продолжительность обучения (ак. часов): 16-48, 49-71, 72-107, 108-249, более 250 (выбор из списка).
  • Результат обучения: сертификат, удостоверение, свидетельство (выбор из списка).
  • Направление: психология и педагогика, ИКТ, юриспруденция, медицина, охрана труда (выбор из списка).
  • Рабочая программа (Направление) (текстовый фрагмент).
  • Наличие видеолекций (чекбокс).

Рис. 3.1. Пример. Редактирование настраиваемых полей курса.

Рис. 3.2. Пример. Форма поиска с настраиваемыми полями в Витрине курсов. Режим «Стандарт».

Рис. 3.3. Пример. Форма поиска с настраиваемыми полями в Витрине курсов. Режим «Минимализм».
Разметка настраиваемых полей курсов.
Пример 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. Добавить настраиваемые поля для курсов и включить поиск в Витрине курсов

1.1. Поля добавляются через общие настройки Витрины курсов в секции «Настраиваемые поля курса»: Администрирование—>Плагины—>Локальные плагины—>Витрина курсов—>Общие.
В поле «Настраиваемые поля курса» нужно ввести код yaml-разметки полей (код приведен выше).
1.2. В секции «Общие настройки» в одном из трех полей «Шапка витрины», «Верх витрины» или «Низ витрины» должно быть быть установлено значение «Поиск курсов», чтобы форма поиска отображалась в Витрине.

4.2. Заполнить настраиваемые поля в курсах

Для конкретного курса нужно войти в курс, перейти в:
Управление курсом—>Редактирование настраиваемых полей курса и заполнить эти поля (выставить нужные значения в списках и чекбоксах, добавить текстовую информацию в текстовые поля). Эти поля нужно заполнить в нескольких курсах, чтобы фильтровать по ним курсы в поиске.

Внимание! По умолчанию на странице «Редактирование настраиваемых полей курса» будут отображаться первые значения в полях типа список и значение «Да» из чекбокса.
4.3. Включить фильтры по дополнительным полям в поиске

Для включения фильтров по дополнительным полям нужно перейти в:
Администрирование—>Плагины—>Локальные плагины—>Витрина курсов—>Поиск курсов—>Настройки фильтров поиска
На этой странице нужно выбрать вкладку «Фильтры настраиваемых полей» и включить поля, которые будут использоваться в поиске.

4.4. Настройка поиска в Витрине курсов

Для настройки опций нужно перейти в:
Администрирование—>Плагины—>Локальные плагины—>Витрина курсов—>Поиск курсов—>Настройка поиска
Для примера решения задачи можно выбрать простой и лаконичный вид поиска курсов в Витрине с использованием настраиваемых полей и выводом результатов без перезагрузки страницы.

Рекомендуемые настройки:
Вариант отображения формы поиска — Минимализм.
Всегда отображать расширенный поиск — Да.
Скрыть кнопку очистки формы поиска — Да.
Выполнять поиск без перезагрузки страницы — Да.
Применять фильтрацию к витрине на текущей странице — Да.
Дополнительные настройки на уровне Категории

На уровне категории через «Дополнительные настройки категории курсов» можно дополнительно настроить состав и область видимости настраиваемых полей в Витрине курсов, данные настройки будут распространяться на вложенные категории и курсы, влиять на форму поиска и сортировки курсов в Витрине, на состав полей на странице описания курса. Подробно эти настройки описаны в инструкции «Настройка Витрины курсов».

Дополнительные возможности:
Индивидуальное отображение настраиваемых полей в шаблонах плашек (на плитках курсов, странице информации о курсе и в других местах витрины) можно заказать через заявку в личном кабинете.
Подробно о настройке поиска в Витрине: Поиск курсов в Витрине курсов
Подробно о настройках Витрины: Настройка Витрины курсов

-Вернуться к содержанию-

Теги: внешний вид
Рейтинг ответа: 0 (0 оценок)

Комментарии запрещены