Smarty

  1. Домой
  2. Документы
  3. Smarty
  4. Настройки порталов и приложений
  5. Опции интерфейса redmax

Опции интерфейса redmax

Дополнительные опции позволяют изменить внешний вид и поведение приложения, и задаются в файле конфигурации /etc/microimpuls/portal/client.js.

Для интерфейса redmax доступны следующие опции.

Содержание показать

Логика работы

Режим авторизации

Название опции: auth_mode, тип данных: string.

Возможные значения:

  • password — по логину и паролю (по умолчанию).
  • device_uid — по уникальному идентификатору устройства (обычно MAC-адресу) или по IP-адресу. В случае неуспешной авторизации абоненту будет предложена авторизация по логину и паролю.
  • device_uid_wo_fallback — то же самое, что device_uid, но без обработки некоторых ситуаций неуспешной авторизации и перехода на авторизацию по логину и паролю.
  • phone_number — вход осуществляется как по связке логин/пароль (как у значения password) так и по номер телефона абонента/пароль.

Пример:

var CLIENT_SETTINGS = {
  // …
  'auth_mode': 'password'
};

Пропуск служебных ошибок авторизации

Название опции: omit_unsuccessful_login, тип данных: bool.

Возможные значения:

  • true — при возникновении ошибок с кодами 3, 4, 7, 10, 11, 12 (коды error метода TVMW API Login) экран с информацией об ошибке будет пропущен и будет сразу открыта форма ввода логина и пароля (кроме режима auth_mode *_wo_fallback).
  • false — при возникновении любых ошибок будет показан экран с информацией об ошибке (по умолчанию).

Пример:

var CLIENT_SETTINGS = {
  // …
  'omit_unsuccessful_login': false
};

Проверка дополнительного статуса аккаунта

Название опции: check_account_status_reason, тип данных: bool.

Возможные значения:

  • true — дополнительный статус аккаунта будет проверяться даже в случае успешной авторизации (по умолчанию). Например, если аккаунт активен, но в дополнительном статусе установлено «Заблокирован по задолженности», то в портале будет выдана соответствующая ошибка авторизации.
  • false — дополнительный статус проверяться не будет.

Пример:

var CLIENT_SETTINGS = {
  // …
  'check_account_status_reason': true
};

Возможность регистрации через SMS

Название опции: registration_available, тип данных: bool.

Возможные значения:

  • true — кнопка регистрации через SMS отображается.
  • false — не отображается (по умолчанию).

Для возможности регистрации через SMS требуется корректная настройка интеграции с SMS-шлюзом на стороне сервера Smarty.

Пример:

var CLIENT_SETTINGS = {
  // …
  'registration_available': false
};
Экран регистрации через SMS

Маска номера мобильного телефона в экране регистрации

Название опции: registration_phone_mask, тип данных: string.

По умолчанию +7 ??? ??? ?? ??.

В маске используется специальный символ ?, вместо которого будет подставляться вводимое значение, остальные символы будут отображены как есть.

Пример:

var CLIENT_SETTINGS = {
  // …
  'registration_phone_mask': "+7 ??? ??? ?? ??"
};

Сохранение логина и пароля в полях ввода на экране авторизации при перезапуске приложения

Название опции: restore_login_form_inputs_from_settings, тип данных: bool.

Возможные значения:

  • true — при перезапуске приложения и в случае логаута в полях ввода на экране авторизации будут заполнены логин и пароль с предыдущей сессии.
  • false — данные заполнены не будут (по умолчанию).

Рекомендуется использовать эту опцию при методе авторизации password для избежания потери пароля абонентами после логаута.

Пример:

var CLIENT_SETTINGS = {
  // …
  'restore_login_form_inputs_from_settings': false
};

Перезагрузка устройства после первой активации

Название опции: reboot_device_after_login_with_password, тип данных: bool.

Возможные значения:

  • true — после авторизации абонента логином и паролем через форму авторизации произойдет перезагрузка устройства.
  • false — перезагрузка производиться не будет, приложение будет загружено как обычно (по умолчанию).

Может быть использовано для выполнения системных операций биллинга при первичной «активации» приставки абонентом.

Пример:

var CLIENT_SETTINGS = {
  // …
  'reboot_device_after_login_with_password': false
};

Задержка загрузки приложения при старте

Название опции: loading_timeout, тип данных: int.

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

По умолчанию 1000, что соответствует одной секунде. Если указать нулевое или слишком маленькое значение, то может быть нарушена работа некоторых функций приложения на некоторых устройствах из-за асинхронной реализации API некоторых устройств. Например, небольшая задержка обязательна для возможности определения устройства не только по типу, но и по модели (если в Smarty настроены соответствующие типы устройств с указанием модели) для Android-приставок.

Пример:

var CLIENT_SETTINGS = {
  // …
  'loading_timeout': 1000
};

Выбор используемого интерфейса приложения через настройки аккаунта в Smarty

Название опции: check_account_template, тип данных: bool.

Возможные значения:

  • true — после авторизации аккаунта будет осуществляться проверка шаблона, установленного в настройках аккаунта в Smarty, и, если он отличается от используемого, приложение будет перезагружено в нужном шаблоне (по умолчанию).
  • false — установленный шаблон в настройках аккаунта в Smarty будет игнорироваться.

Пример:

var CLIENT_SETTINGS = {
  // …
  'check_account_template': true
};

Управление показом пункта «Выбор плеера» в экране «Настройки»

Название опции: show_change_player_settings, тип данных: bool.

Возможные значения:

  • true — на странице «Настройки» внутри приложения будет отображен пункт «Выбор плеера» для тех устройств, которые это поддерживают (на текущий момент — это устройства под Android в рамках сборки версии выше 2.0).
  • false — пункт «Выбор плеера» на странице настроек будет скрыт (по умолчанию).

Пример:

var CLIENT_SETTINGS = {
  // …
  'show_change_player_settings': true
};

Приостановка запросов к серверу в режиме Stand-By

Название опции: block_requests_in_standby, тип данных: bool.

Возможные значения:

  • true — включает блокировку запросов к серверу, если устройство находится в режиме Stand-By. После выхода из Stand-By отправка запросов к серверу восстанавливается, однако данные в интерфейсе могут быть устаревшими в течение некоторого времени.
  • false — запросы не прекращаются даже в Stand-By, отображаемые в интерфейсе данные не устаревают (по умолчанию).

Опция позволяет сэкономить ресурсы сервера в моменты простоя пользовательских устройств.

Пример:

var CLIENT_SETTINGS = {
  // …
  'block_requests_in_standby': false
};

Отказоустойчивость

Интервал проверки доступности сервера

Название опции: health_check_interval, тип данных: int.

Устанавливает временной интервал в миллисекундах, через который будут осуществляться запросы на проверку состояния сервера.

По умолчанию: 300000 (5 минут).

Пример:

var CLIENT_SETTINGS = {
  // …
  'health_check_interval': 300000
};

Логика управления

Переключение каналов внутри выбранной категории

Название опции: switching_channels_inside_category, тип данных: bool.

Возможные значения:

  • true — переключение каналов кнопками Ch+/- будет происходить внутри выбранной категории каналов.
  • false — переключение будет происходить внутри категории «Все», даже если выбрана другая категория (по умолчанию).

Пример:

var CLIENT_SETTINGS = {
  // …
  'switching_channels_inside_category': false
};

Показ предварительной инструкции при первом запуске приложения

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

Выбор языка
Ограничение доступа
Создание ПИН-кода
Информационная картинка

После экрана генерации ПИН-кода можно расположить любые изображения на вкус оператора, а также можно запросить у своего менеджера специальный Figma-файл для создания картинок-инструкций по использованию приложения по аналогии с представленными выше.

var CLIENT_SETTINGS = {
  // …
  // включение показа первичной настройки
  'show_setup_intro': true, 

// картинки для показа после выбора пульта без цветных кнопок
  'setup_limited_remote_instructions': ['/custom/img-1.png', '/custom/img-2.png'],
};

Воспроизведение контента

Шаг перемотки плеера

Название опции: player_rewind_step, тип данных: int.

Позволяет установить шаг перемотки плеера в режиме архива и видеотеки за одно нажатие кнопки перемотки. Шаг задается в секундах, по умолчанию 30.

Пример:

var CLIENT_SETTINGS = {
  // …
  'player_rewind_step': 30
};

Шаг увеличения/уменьшения громкости

Название опции: volume_control_step, тип данных: int.

По умолчанию 5 (процентных пунктов из 100, где 100 — максимальная громкость, 0 — минимальная).

Пример:

var CLIENT_SETTINGS = {
  // …
  'volume_control_step': 5
};

Сохранение выбранного соотношения сторон для каждого канала отдельно

Название опции: save_aspect_ratio_per_channel, тип данных: bool.

Возможные значения:

  • true — в настройках приложения на устройстве выбранное пользователем соотношение сторон будет сохраняться отдельно для каждого канала.
  • false — будет сохраняться последнее выбранное соотношение сторон общее для всех каналов (по умолчанию).

Пример:

var CLIENT_SETTINGS = {
  // …
  'save_aspect_ratio_per_channel': false
};

Игнорирование значения соотношения сторон, приходящего со стороны Smarty

Название опции: ignore_server_aspect, тип данных: bool.

Возможные значения:

  • true — установка значения «Соотношение сторон» на странице редактирования канала в Smarty не будет влиять на соотношение сторон канала (по умолчанию).
  • false — значение «Соотношение сторон» на странице редактирования канала в Smarty будет браться по умолчанию для каналов.

Пример:

var CLIENT_SETTINGS = {
  // …
  'ignore_server_aspect': false
};

Сохранение выбранного языка аудио-дорожки для каждого канала отдельно

Название опции: save_audio_track_lang_per_channel, тип данных: bool.

Возможные значения:

  • true — в настройках приложения на устройстве выбранный пользователем язык аудио-дорожки будет сохраняться отдельно для каждого канала.
  • false — будет сохраняться последний выбранный язык общий для всех каналов (по умолчанию).

Пример:

var CLIENT_SETTINGS = {
  // …
  'save_audio_track_lang_per_channel': false
};

Автоматическое скрытие меню при воспроизведении контента

Название опции: autohide_timer, тип данных: int.

Позволяет задать тайм-аут (в минутах), по истечении которого будет скрыт текущий экран и открыт полноэкранный плеер, если в настоящий момент есть воспроизведение какого-либо контента.

По умолчанию 0 (скрытие отключено).

Пример:

var CLIENT_SETTINGS = {
  // …
  'autohide_timer': 2
};

Воспроизведение потоков-заглушек для каналов с замочками

Название опции: request_url_for_locked_channels, тип данных: bool.

Возможные значения:

  • true — при запуске канала с замочком происходит попытка запустить поток-заглушку и отобразить баннер-заглушку, если поток-заглушка для канала не заданы, показывается информационный попап.
  • false — при запуске канала с замочками показывается информационный попап со списком тарифов для подключения (по умолчанию).

Пример:

var CLIENT_SETTINGS = {
  // …
  'request_url_for_locked_channels': false
};

Установка особого соотношения сторон экрана при воспроизведении фильмов

Название опции: set_default_aspect_ratio_for_vod, тип данных: bool.

Возможные значения:

  • true — после включения воспроизведения фильма из видеотеки будет принудительно установлено соотношение сторон 16×9.
  • false — будет сохранено соотношение сторон, выбранное ранее абонентом (по умолчанию).

Пример:

var CLIENT_SETTINGS = {
  // …
  'set_default_aspect_ratio_for_vod': false
};

Вариант отображения времени начала и конца передачи в инфобаре

Название опции: infobar_time_display_mode, тип данных: string.

Позволяет изменить вариант отображения времени начала и конца передачи в инфобаре в режиме архива или остановленного на паузу Live TV.

Возможные значения:

  • by_epg — время в инфобаре отображается согласно программе передач (по умолчанию).
  • by_duration — время начала передачи устанавливается 00:00, а время конца устанавливается равным длительности передачи.

Пример:

var CLIENT_SETTINGS = {
  // …
  'infobar_time_display_mode': "by_epg"
};

Сохранение позиции выбранной дорожки субтитров

Название опции: save_subtitle_track_lang_per_channel, тип данных: bool.

Возможные значения:

  • true — для каждого канала сохраняется язык выбранных субтитров и при следующем запуске канала этот язык будет первым в списке после пункта отключения.
  • false — поведение по умолчанию (по умолчанию).

Пример:

var CLIENT_SETTINGS = {
  // …
  'save_subtitle_track_lang_per_channel': false
};

Регулирование запроса потока flussonic в режиме Pause Live TV

Название опции: time_offset_from_now_for_tv_pause_parameter, тип данных: int.

Регулирует количество секунд от live, при котором запрос потока от flussonic происходит в режиме Pause Live TV. По умолчанию: 15.

Пример:

var CLIENT_SETTINGS = {
  // …
  'time_offset_from_now_for_tv_pause_parameter': 15
};

Внешний вид — общие

Дополнительный CSS класс для тела интерфейса

Название опции: custom_body_class, тип данных: string.

Позволяет подключить дополнительный класс к тегу body портала. Может быть использовано для кастомизации интерфейса через дополнительный CSS-файл. По умолчанию не задано.

Пример:

var CLIENT_SETTINGS = {
  // …
  'custom_body_class': "custom"
};

Пункты главного меню

Название опции: custom_main_menu_items, тип данных: array.

В опцию устанавливаются пункты главного меню, которые требуется отобразить, возможные пункты:

  • tv — Телеканалы
  • vod — Кинозал
  • apps — Приложения (быстрая кнопка для выхода в список приложений на Android-устройствах)
  • favorites — Избранное (показывается категория избранных фильмов)
  • search — Поиск
  • settings — Настройки

По умолчанию не задано.

Пример:

var CLIENT_SETTINGS = {
  // …
  'custom_main_menu_items': ['tv', 'vod', 'search', 'settings', 'apps', 'favorites'],
};

Управление шаблоном разными пультами

Название опции: remote_control_mode, тип данных: string.

Возможные значения:

  • all_buttons — шаблон подстраивается под управление пультами с полным набором кнопок (по умолчанию).
  • limited_buttons — шаблон подстраивается под управление пультами с ограниченным набором кнопок, как правило, такие пульты идут в наборе с современными Smart TV и STB.

Пример:

var CLIENT_SETTINGS = {
  // …
  'remote_control_mode': 'all_buttons'
};

Внешний вид — ТВ

Глубина отображения телепрограммы

Название опции: max_epg_depth, тип данных: int.

Определяет глубину EPG в днях для экрана «Телепрограмма». Если значение опции больше 0, то глубина будет равна этому значению. Если опция не задана (или равна 0), то для канала с архивом будет использована глубина архива (поле max_archive_duration канала), а если у канала нет архива — программа передач будет отображаться только за текущий день.

По умолчанию 0.

Пример:

var CLIENT_SETTINGS = {
  // …
  'max_epg_depth': 0
};

Интервал рандомизации запроса для обновления EPG

Название опции: expired_programs_update_interval_randomization, тип данных: int.

По умолчанию: 55000 (55 секунд).

Опция позволяет установить интервал для рандомизации запроса EPG. Нагрузка на сервер «размазывается» по времени в рамках данного интервала, что гарантирует, что после окончания передачи все активные устройства не отправят запрос на обновление в одно и тоже время. Обратной стороной данной оптимизации является то, что после устаревания программа будет обновлена не мгновенно, а с возможной задержкой от 5 до 55 секунд, поэтому, если эта задержка критична — есть возможность уменьшить данный интервал или убрать его совсем (при этом повысив нагрузку на сервер).

Пример:

var CLIENT_SETTINGS = {
  // …
  'expired_programs_update_interval_randomization': 55000,
};

Внешний вид — видеотека

Группировка фильмов по категориям или по жанрам

Название опции: filter_videos_by_genres, тип данных: bool.

Возможные значения:

  • true — фильмы будут группироваться по жанрам (по умолчанию).
  • false — фильмы будут группироваться по категориям (жанры в Smarty с включенной опцией «Является категорией»).

Пример:

var CLIENT_SETTINGS = {
  // …
  'filter_videos_by_genres': true
};

Способ сортировки фильмов по умолчанию

Название опции: default_vod_sort_order, тип данных: string.

Возможные значения:

  • -created_at — по дате добавления (сначала самые новые) (по умолчанию).
  • -kinopoisk_rating — по рейтингу Кинопоиска (сначала самые популярные).
  • -imdb_rating — по рейтингу IMDB (сначала самые популярные).
  • -year — по году выхода фильма (сначала самые новые).
  • -premiere_date — по дате выхода премьеры фильма (сначала самые новые).
  • name — по названию (в алфавитном порядке).
  • -updated_at — по дате изменения фильма, сначала самые новые (сортировка обновляется после сброса кэша).

Пример:

var CLIENT_SETTINGS = {
  // …
  'default_vod_sort_order': "-created_at"
};

Сортировка списка актеров на странице фильма

Название опции: actors_order, тип данных string.

Возможные значения:

  • birthdate — сортировка по дате рождения, от более старых к более молодым.
  • -birthdate — сортировка по дате рождения, от более молодых к более старым.
  • name — сортировка по имени, в алфавитном порядке (по умолчанию).
  • -name — сортировка по имени, в обратном алфавитном порядке.
  • cyrillic-first — сортировка по имени, сначала идут актеры с кириллицей.
  • film_count — сортировка актеров, по количеству фильмов с их участием, в порядке возрастания (от актера с наименьшим количеством фильмов, до актера с наибольшим количеством фильмов).
  • -film_count — сортировка актеров, по количеству фильмов с их участием, в порядке убывания.

Пример:

var CLIENT_SETTINGS = {
  // …
  'actors_order': 'name'
};

Ограничение количества актеров на странице фильма

Название опции: actors_request_limit, тип данных int. Значение по умолчанию: 16.

Пример:

var CLIENT_SETTINGS = {
  // …
  'actors_request_limit': 16
};

Внешний вид — архив

Группировка записей по категориям или по жанрам

Название опции: filter_archive_by, тип данных: string.

Возможные значения:

  • categories — записи будут группироваться по категориям программ (объекты Program categories в Django-панели Smarty), значение по умолчанию.
  • genres — фильмы будут группироваться по жанрам программ (объекты Program genres в Django-панели Smarty).

Пример:

var CLIENT_SETTINGS = {
  // …
  'filter_archive_by': 'categories'
};

Внешний вид — настройки

Отображение пункта меню «Управление тарифами»

Название опции: show_packages, тип данных: bool.

Возможные значения:

  • true — в экране «Настройки» будет отображаться пункт меню «Управление тарифами» для возможности подключения/отключения тарифных пакетов.
  • false — меню «Управление тарифами» будет скрыто (по умолчанию).

Пример:

var CLIENT_SETTINGS = {
  // …
  'show_packages': false
};

Отображение политики конфиденциальности

Название опции: legal-document-policy-id, тип данных: int. По умолчанию: -1.

Данная опция используется для отображения политики конфиденциальности. В ней нужно указать ID правового документа, который будет доступен пользователю. ID документа можно узнать, если запросить список всех документов. Также, если в админке открыть вкладку с конкретным документом, то в адресной строке будет содержаться его ID.

Пример:

var CLIENT_SETTINGS = {
  // …
  'legal-document-policy-id': -1
};

Отображение пользовательского соглашения

Название опции: legal-document-user-terms-id, тип данных: int. По умолчанию: -1.

Данная опция используется для отображения пользовательского соглашения. В ней нужно указать ID правового документа, который будет доступен пользователю. ID документа можно узнать, если запросить список всех документов. Также, если в админке открыть вкладку с конкретным документом, то в адресной строке будет содержаться его ID.

Пример:

var CLIENT_SETTINGS = {
  // …
  'legal-document-user-terms-id': -1
};

Отображение пункта меню «Промокод»

Название опции: enable_promo_activation, тип данных: bool.

Показывает пункт меню «Настройки» -> «Промокод». По умолчанию false.

Значение false
Значение true

Пример:

var CLIENT_SETTINGS = {
  // …
  'enable_promo_activation': true
};