Дополнительные опции позволяют изменить внешний вид и поведение приложения, и задаются в файле конфигурации /etc/microimpuls/portal/client.js.
Для интерфейса titanium доступны следующие опции.
Авторизация
При первом запуске приложения абоненту по умолчанию показывается экран авторизации в сервисе по логину и паролю. Опционально авторизоваться также можно другими способами:
- по номеру телефона;
- по идентификатору устройства/IP-адресу.
Управление выбором способа авторизация происходит в нескольких местах, в порядке повышения приоритета:
- в файле
client.jsзадаётся опциейauth_mode; - в админке на странице «Настройки приложений и устройств», в поле «Способ авторизации».
Авторизация по идентификатору устройства/IP-адресу
Включается опцией "auth_mode": "device_uid". С точки зрения пользователя данная авторизация происходит в фоновом режиме при запуске приложения:
- сначала происходит поиск нужного аккаунта по IP-адресу пользователя (на основании поля «Подсети» у аккаунта);
- если по IP не найдено ни одного аккаунта, происходит попытка найти аккаунт по идентификатору устройства (на основании привязанных к аккаунту устройств);
- после успешного поиска происходит проверка на доступность авторизации из сети пользователя, на соблюдение лимита привязанных устройств, статус и прочие правила, заданные для аккаунта (см. страницу аккаунта).
Доступные лимиты устройств для аккаунта регламентируются подключенными тарифами, а именно свойствами «Настройки мультиабонемента» у подключенных тарифов. Для удобства вычисления доступных устройств и сессий для аккаунта на его странице в блоке «Информация об аккаунте» выводятся его лимиты и количество текущих занятых слотов.
В качестве идентификатора для разных типов устройств могут использоваться разные поля: серийные номера, MAC-адреса, псевдо-случайные сгенерированые UID и т.д. В связи с разношёрстностью парка android-устройств существует опция
android_uid_generation_method, позволяющая выбрать, какое из полей использовать в качестве идентификатора.
При превышении количества привязанных устройств пользователю показывается их список с возможностью отвязать ненужное и попробовать авторизоваться ещё раз.
Полезные опции Smarty по теме авторизации:
TVWM_MULTILOGIN_CREATE_DEVICETVMW_REMOVE_DUPLICATE_UID_ON_LOGINTVWM_REBIND_DEVICE_ON_LOGINTVMW_UPDATE_IP_IN_REALTIMETVMW_CHECK_STATUS_REASON_ON_LOGINTVMW_LOGIN_REQUEST_MAX_COUNT
Отображение кнопки выбора способа авторизации (по логину и паролю или номеру телефона)
Название опции: show_alter_auth_button, тип данных: bool.
Возможные значения:
- true — на экране авторизации будет отображаться кнопка выбора способа логина.
- false — кнопка выбора способа логина отображаться не будет (по умолчанию).
Пример:
var CLIENT_SETTINGS = {
// …
'show_alter_auth_button': true
};


Отображение правового документа на экране авторизации
Название опции: show_auth_legal_documents, тип данных: bool.
Возможные значения:
- true — в нижней части экрана авторизации будет отображаться правовой документ, на который можно перевести фокус и затем открыть.
- false — правовой документ отображаться не будет (по умолчанию).
Пример:
var CLIENT_SETTINGS = {
// …
'show_auth_legal_documents': false
};

Отображение вводимого пароля на экране авторизации
Название опции: show_see_password_button, тип данных: bool.
Возможные значения:
- true — на экране ввода пароля будет отображаться кнопка показа пароля (иконка глаза).
- false — кнопка показа пароля будет скрыта (по умолчанию).
Пример:
var CLIENT_SETTINGS = {
// …
'show_see_password_button': false
};

Длина кода подтверждения из SMS-сообщения
Название опции: sms_code_length, тип данных: int.
Определяет количество окошек при вводе кода подтверждения из SMS. По умолчанию 6.
Пример:
var CLIENT_SETTINGS = {
// …
'sms_code_length': 4
};

Длина кода подтверждения по номеру телефона
Название опции: phone_code_length, тип данных: int.
Определяет количество окошек при вводе кода подтверждения из номера телефона. По умолчанию 4.
Пример:
var CLIENT_SETTINGS = {
// …
'phone_code_length': 4
};

Маска номера мобильного телефона в экране авторизации
Название опции: 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
};
Возможность ввода символов в пароле
Название опции: is_letters_in_password, тип данных: bool.
Возможные значения:
- true — в пароле можно вводить цифры и буквы.
- false — в пароле можно вводить только цифры (по умолчанию).
Пример:
var CLIENT_SETTINGS = {
// …
'is_letters_in_password': false
};

Перезагрузка устройства после первой активации
Название опции: reboot_device_after_login_with_password, тип данных: bool.
Возможные значения:
- true — после авторизации абонента логином и паролем через форму авторизации произойдет перезагрузка устройства.
- false — перезагрузка производиться не будет, приложение будет загружено как обычно (по умолчанию).
Может быть использовано для выполнения системных операций биллинга при первичной «активации» приставки абонентом.
Пример:
var CLIENT_SETTINGS = {
// …
'reboot_device_after_login_with_password': false
};
Регистрация
Для сценария регистрации по номеру телефона пользователя через приложение, предусмотрена опция registration_available.

Пример:
var CLIENT_SETTINGS = {
// …
'registration_available': true,
};
Главный экран
В интерфейсе доступны следующие типы лент дашборда:
Телеканалы
Отображаются в сеткой из двух строк по 9 элементов.

Фильмы и Подборка фильмов
Для ленты с фильмами можно задать используемый постер в поле «Тип отображения»:
normal_ad_banner— использовать в качестве обложки горизонтальный рекламный баннер- пустая строка — значение по умолчанию, используется стандартный вертикальный постер
Недавно просмотренные фильмы
Отображается лента «Продолжить просмотр» с фильмами и сериалами, которые начали смотреть, но не досмотрели до конца. Сериал считается досмотренным, если просмотрели все серии всех сезонов.
Виджеты
Лента работает в двух режимах:
- отображение приложений, заведенных в Smarty — данный режим включается по опции
"show_installed_apps": false. Приложения появятся в ленте в том случае, если у них выставлен чекбокс «Показывать приложение в главном меню» и тип соответствует одному из перечисленных: Web-приложение во внешнем окне, Web-приложение во внутреннем окне, запуск приложения Android по ID, запуск системного приложения по ID. - отображение установленных на приставку приложений (только для Android-устройств).

Передачи
Лента с передачами: прошедшими или будущими. При клике на прошедшую передачу открывается полноэкранный плеер с её записью при наличии, в противном случае показывается информационное попап-окно.
Ограничение порции загружаемых лент
Название опции: dashboard_load_portion, тип данных: int.
По умолчанию 4, это означает, что после успешной загрузки 4 первых лент будет осуществлена их отрисовка, а остальные ленты продолжат свою загрузку по мере навигации на экране. Минимальное значение для данной опции — 2.
Пример:
var CLIENT_SETTINGS = {
// …
'dashboard_load_portion': 4
};
Главное меню
Пункты главного меню регулируются опцией custom_main_menu_items, доступные значения:
- main — пункт «Главная»
- tv — пункт «Телеканалы»
- vod — пункт «Кинозал»
- archive — пункт «Архив»
- search — пункт «Поиск»
- settings — пункт «Настройки»
Пример:
var CLIENT_SETTINGS = {
// …
'custom_main_menu_items': ['main', 'tv', 'vod', 'search', 'settings'],
};
Телеканалы и EPG
Ограничение максимальной длины номера канала
Название опции: channel_number_max_length, тип данных: int. По умолчанию 3.
Устанавливает максимальную длину номера канала:
- на экране «Телеканалы»;
- при прямом вводе номера канала с цифровых кнопок пульта.
Пример:
var CLIENT_SETTINGS = {
// …
'channel_number_max_length': 3
};
Ограничение максимальной длины номера канала
Название опции: channel_number_max_length, тип данных: int. По умолчанию 3.
Устанавливает максимальную длину номера канала:
- на экране «Телеканалы»;
- при прямом вводе номера канала с цифровых кнопок пульта.
Пример:
var CLIENT_SETTINGS = {
// …
'channel_number_max_length': 3
};
Глубина отображения телепрограммы
Название опции: max_epg_depth, тип данных: int.
Определяет глубину EPG в днях для экрана телепрограммы:
- если значение опции больше 0, то глубина будет равна этому значению;
- если опция не задана (или равна 0), то:
- для канала с архивом будет использована глубина архива (ограничение со стороны сервера),
- если у канала нет архива — телепрограмма будет отображаться только за текущий день.
По умолчанию 0.
Пример:
var CLIENT_SETTINGS = {
// …
'max_epg_depth': 0
};
Оптимизация загрузки списка каналов
Название опции: channel_info_request_depth, тип данных: int.
Определяет размер порции каналов, для которых нужно получить более детальную информацию, по умолчанию 24. Объем загрузки рассчитывается по формуле: channel_info_request_depth * 2 + 1, то есть загружается информация о канале, на котором находится фокус и channel_info_request_depth каналов, которые находятся до и после него. Предупреждение: для корректной работы опции необходима версия Smarty не ниже 2.4.
Пример:
var CLIENT_SETTINGS = {
// …
'channel_info_request_depth': 24
};
Скрытие нулевого рейтинга телепрограмм
Название опции: epg_hide_zero_plus_rating, тип данных: bool.
Возможные значения:
- true — рейтинг 0+ будет скрыт (касается только визуального отображения рейтинга, а не контента).
- false — рейтинг 0+ будет отображаться (по умолчанию).
Пример:
var CLIENT_SETTINGS = {
// …
'epg_hide_zero_plus_rating': false
};
Переключение каналов внутри выбранной категории
Название опции: switching_channels_inside_category, тип данных: bool.
Возможные значения:
- true — переключение каналов кнопками Ch+/- будет происходить внутри выбранной категории каналов.
- false — переключение будет происходить внутри категории «Все», даже если выбрана другая категория (по умолчанию).
Пример:
var CLIENT_SETTINGS = {
// …
'switching_channels_inside_category': false
};
Автоматическое воспроизведение последнего просматриваемого канала при запуске
Название опции: auto_launch_last_viewed_channel, тип данных: bool.
Возможные значения:
- true — воспроизводить последний канал автоматически при старте приложения.
- false — отобразить главный экран (по умолчанию).
Пример:
var CLIENT_SETTINGS = {
// …
'auto_launch_last_viewed_channel': false
};
Отключение автозапуска канала в превью-окне при навигации по списку
Название опции: autoplay_tv_preview_channels, тип данных: bool.
Возможные значения:
- true — при навигации в списке каналов (актуально для режима list) плеер в превью-окне автоматически начинает проигрываться спустя небольшой таймаут (по умолчанию).
- false — при навигации в списке каналов превью-плеер не запускается. Данное значение рекомендовано для низкопроизводительных устройств, для которых операция запуска потока в превью-окне слишком тяжёлая, чтобы вызывать её так часто.
Пример:
var CLIENT_SETTINGS = {
// …
'autoplay_tv_preview_channels': true
};
Воспроизведение потоков-заглушек для каналов с замочками
Название опции: request_url_for_locked_channels, тип данных: bool.
Возможные значения:
- true — при запуске канала с замочком происходит попытка запустить поток-заглушку (если он задан) и отобразить баннер-заглушку; если поток-заглушка для канала не задан — показывается информационный попап.
- false — при запуске канала с замочком показывается информационный попап со списком тарифов для подключения (по умолчанию).
Пример:
var CLIENT_SETTINGS = {
// …
'request_url_for_locked_channels': false
};
Запоминание последней ТВ-категории
Название опции: save_last_tvcategory, тип данных: bool.
Возможные значения:
- true — приложение запоминает последнюю выбранную категорию каналов и восстанавливает её при следующем входе в «Телеканалы».
- false — категория не запоминается (поведение по умолчанию интерфейса).
Пример:
var CLIENT_SETTINGS = {
// …
'save_last_tvcategory': true
};
Рандомизация интервала обновления EPG для прошедших передач
Название опции: expired_programs_update_interval_randomization, тип данных: int.
Опция добавляет случайное смещение к периодическому обновлению данных EPG (в том числе для прошедших/завершившихся передач), чтобы снизить вероятность одновременных запросов с большого количества устройств.
Пример:
var CLIENT_SETTINGS = {
// …
'expired_programs_update_interval_randomization': 30
};
Показ попапа с выбором тарифа при запуске канала с замочком
Название опции: show_locked_tariff_popup, тип данных: bool.
Возможные значения:
- true — при запуске канала с замочком или нажатии кнопки «Купить» у фильма отображается попап выбора тарифа.
- false — при запуске канала с замочком показывается информационный попап о том, что контент недоступен в рамках подписки (по умолчанию). Поведение кнопки «Купить» у фильма более подробно описано ниже.
Пример:
var CLIENT_SETTINGS = {
// …
'show_locked_tariff_popup': false
};


Отображение иконок каналов
Название опции: use_cover_for_channel_icons, тип данных: bool.
Возможные значения:
- true — иконка канала прямоугольная и занимает всю область, отведенную ей в интерфейсе (в списке каналов, в плеере, на экране передач и в элементах программ — в Smarty должен быть размер иконок 376 на 224 пикселя).
- false — иконка канала квадратная и вписана в прямоугольник с белым фоном (по умолчанию, в таком формате иконки заливаются из EPG-источника).
Пример:
var CLIENT_SETTINGS = {
// …
'use_cover_for_channel_icons': true
};


Плеер
Перемотка архива методом перезапроса позиции
Название опции: server_rewind_mode, тип данных: bool.
Возможные значения:
- true — для перемотки будет использоваться позиционирование с помощью указания временной метки. URL на поток будет перезапрашиваться с сервера при каждой перемотке (по умолчанию).
- false — перемотка по потоку методом seek средствами плеера (работает не всегда корректно из-за различной реализации на плеерах, однако быстрее).
Пример:
var CLIENT_SETTINGS = {
// …
'server_rewind_mode': true
};
Шаг перемотки плеера
Название опции: player_rewind_step, тип данных: int.
Позволяет установить шаг перемотки плеера в режиме архива и видеотеки за одно нажатие кнопки перемотки. Шаг задается в секундах, по умолчанию 60 в titanium (в других шаблонах может быть 30).
Пример:
var CLIENT_SETTINGS = {
// …
'player_rewind_step': 60
};
Вариант отображения времени начала и конца передачи в инфобаре
Название опции: infobar_time_display_mode, тип данных: string.
Позволяет изменить вариант отображения времени начала и конца передачи в инфобаре в режиме архива или остановленного на паузу Live TV.
Возможные значения:
- by_epg — время в инфобаре отображается согласно программе передач (по умолчанию).
- by_duration — время начала передачи устанавливается 00:00, а время конца устанавливается равным длительности передачи.
Пример:
var CLIENT_SETTINGS = {
// …
'infobar_time_display_mode': "by_epg"
};
Автоматическое скрытие меню при воспроизведении контента
Название опции: autohide_timer, тип данных: int.
Позволяет задать тайм-аут (в минутах), по истечении которого текущий экран будет скрыт и открыт полноэкранный плеер, если в настоящий момент есть воспроизведение какого-то контента.
По умолчанию 0 (скрытие отключено).
Пример:
var CLIENT_SETTINGS = {
// …
'autohide_timer': 2
};
Сохранение выбранного языка аудио-дорожки для каждого канала отдельно
Название опции: save_audio_track_lang_per_channel, тип данных: bool.
Возможные значения:
- true — в настройках приложения на устройстве выбранный пользователем язык аудио-дорожки будет сохраняться отдельно для каждого канала.
- false — будет сохраняться последний выбранный язык общий для всех каналов (по умолчанию).
Пример:
var CLIENT_SETTINGS = {
// …
'save_audio_track_lang_per_channel': false
};
Сохранение выбранного языка субтитров для каждого канала отдельно
Название опции: save_subtitle_track_lang_per_channel, тип данных: bool.
Возможные значения:
- true — выбранный язык субтитров сохраняется отдельно для каждого канала.
- false — сохраняется последний выбранный язык субтитров общий для всех каналов (по умолчанию).
Пример:
var CLIENT_SETTINGS = {
// …
'save_subtitle_track_lang_per_channel': false
};
Сохранение выбранного соотношения сторон для каждого канала отдельно
Название опции: 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
};
Установка особого соотношения сторон экрана при воспроизведении фильмов
Название опции: set_default_aspect_ratio_for_vod, тип данных: bool.
Возможные значения:
- true — после включения воспроизведения фильма из видеотеки будет принудительно установлено соотношение сторон 16×9.
- false — будет сохранено соотношение сторон, выбранное ранее абонентом (по умолчанию).
Пример:
var CLIENT_SETTINGS = {
// …
'set_default_aspect_ratio_for_vod': false
};
Режим управления звуком на Samsung Smart TV Orsay
Название опции: samsung_smart_tv_volume_control_off, тип данных: bool.
Возможные значения:
- true — управление звуком осуществляется на уровне операционной системы устройства (стандартное управление внутри телевизора).
- false — управление звуком осуществляется на уровне приложения (по умолчанию).
Пример:
var CLIENT_SETTINGS = {
// …
'samsung_smart_tv_volume_control_off': false
};
Шаг увеличения/уменьшения громкости
Название опции: volume_control_step, тип данных: int.
По умолчанию 5 (процентных пунктов из 100, где 100 — максимальная громкость, 0 — минимальная).
Пример:
var CLIENT_SETTINGS = {
// …
'volume_control_step': 5
};
Смещение для паузы Live TV относительно текущего времени
Название опции: time_offset_from_now_for_tv_pause_parameter, тип данных: int.
Используется при определении доступности паузы прямого эфира: сравнивается время передачи с текущим временем сервера с учётом заданного смещения (в секундах).
Пример:
var CLIENT_SETTINGS = {
// …
'time_offset_from_now_for_tv_pause_parameter': 300
};
Сдвиг паузы Live TV по умолчанию
Название опции: default_pause_live_tv_shift, тип данных: int.
Смещение в секундах при работе с паузой прямого эфира (используется для уменьшения нагрузки на стример при возобновлении воспроизведения).
Пример:
var CLIENT_SETTINGS = {
// …
'default_pause_live_tv_shift': 0
};
Задержка при операциях с live-потоком на паузе
Название опции: pause_live_stream_delay, тип данных: int.
Задержка в миллисекундах перед выполнением операций с live-потоком в режиме паузы.
Пример:
var CLIENT_SETTINGS = {
// …
'pause_live_stream_delay': 1000
};
Интервал отправки позиции просмотра
Название опции: content_position_set_interval, тип данных: int.
Интервал в миллисекундах периодической отправки позиции просмотра на сервер во время воспроизведения.
Пример:
var CLIENT_SETTINGS = {
// …
'content_position_set_interval': 30000
};
Интервал отправки статистики просмотра
Название опции: push_stat_interval, тип данных: int.
Интервал в миллисекундах отправки статистики просмотра. Если не задано, используется значение по умолчанию 300000 (5 минут).
Пример:
var CLIENT_SETTINGS = {
// …
'push_stat_interval': 300000
};
Видеотека
Группировка фильмов по категориям или по жанрам
Название опции: filter_videos_by_genres, тип данных: bool.
Возможные значения:
- true — фильмы будут группироваться по жанрам (по умолчанию).
- false — фильмы будут группироваться по категориям (жанры в Smarty с включенной опцией «Является категорией»).
Пример:
var CLIENT_SETTINGS = {
// …
'filter_videos_by_genres': true
};
Отображение категории «Премьеры» в видеотеке
Название опции: show_vod_premieres, тип данных: bool.
Возможные значения:
- true — в списке категорий видеотеки будет отображаться категория «Премьеры» (фильмы, дата премьеры которых не ранее количества дней, заданного константой TVMIDDLEWARE_VIDEO_PREMIERE_DAYS в настройках Smarty, или, если указан TVMIDDLEWARE_VIDEO_PREMIERE_YEARS в настройках Smarty, то в выборку попадут только те фильмы, год выпуска которых не ранее TVMIDDLEWARE_VIDEO_PREMIERE_YEARS от текущего.).
- false — категория «Премьеры» будет скрыта (по умолчанию).
Пример:
var CLIENT_SETTINGS = {
// …
'show_vod_premieres': false
};
Отображение в видеотеке фильмов, источником которых являются архивные записи
Название опции: show_archive_in_vod_screen, тип данных: bool.
Чтобы заполнить видеотеку архивными записями, необходимо воспользоваться инструкцией по настройке видеотеки из архивных записей. Для корректной работы потребуются постеры 2:3 к архивным фильмам.
Возможные значения:
- true — при запросе списка видео будут передаваться фильмы из архивных записей.
- false — при запросе списка видео не будут передаваться фильмы из архивных записей (по умолчанию).
Пример:
var CLIENT_SETTINGS = {
// …
'show_archive_in_vod_screen': false
};
Способ сортировки фильмов по умолчанию
Название опции: default_vod_sort_order, тип данных: string.
Возможные значения:
- name — по названию, в алфавитном порядке (по умолчанию).
- -name — по названию, в обратном алфавитном порядке.
- id — по дате добавления в каталог, сначала самые старые.
- -id — по дате добавления в каталог, сначала самые новые.
- created_at — по дате обновления, сначала самые старые.
- -created_at — по дате обновления, сначала самые новые.
-updated_at— по дате добавления фильма/эпизода, сначала самые новые;updated_at— по дате добавления фильма/эпизода, сначала самые старые;- premiere_date — по дате премьеры, сначала самые старые.
- -premiere_date — по дате премьеры, сначала самые новые.
- year — по дате выхода фильма, сначала самые старые.
- -year — по дате выхода фильма, сначала самые новые.
- average_customers_rating — по рейтингу абонентов, сначала самые непопулярные.
- -average_customers_rating — по рейтингу абонентов, сначала самые популярные.
- kinopoisk_rating — по рейтингу Кинопоиска, сначала самые непопулярные.
- -kinopoisk_rating — по рейтингу Кинопоиска, сначала самые популярные.
- imdb_rating — по рейтингу IMDB, сначала самые непопулярные.
- -imdb_rating — по рейтингу IMDB, сначала самые популярные.
- number_of_ratings — по количеству оценок, сначала менее оцениваемые.
- -number_of_ratings — по количеству оценок, сначала самые оцениваемые.
Пример:
var CLIENT_SETTINGS = {
// …
'default_vod_sort_order': "-created_at"
};
Отключение показа пустых жанров
Название опции: vod_without_empty_genres, тип данных: bool.
Возможные значения:
- true — в экранах «Видеотека» не будут отображаться жанры, которым не соответствует ни один фильм. Исключение составляют категории «Избранное», «Новинки» и «Просмотренное» — они будут отображаться, если включены соответствующие опции и даже если они пусты.
- false — будут отображаться все жанры, созданные в административной панели Smarty (по умолчанию).
Пример:
var CLIENT_SETTINGS = {
// …
'vod_without_empty_genres': true
};
Сортировка списка актеров на странице фильма
Название опции: actors_order, тип данных: string.
Возможные значения:
- birthdate — сортировка по дате рождения, от более старых к более молодым.
- -birthdate — сортировка по дате рождения, от более молодых к более старым.
- name — сортировка по имени, в алфавитном порядке (по умолчанию).
- -name — сортировка по имени, в обратном алфавитном порядке.
- cyrillic-first — сортировка по имени, сначала идут актеры с кириллицей.
- film_count — сортировка актеров по количеству фильмов с их участием, в порядке возрастания.
- -film_count — сортировка актеров по количеству фильмов с их участием в порядке убывания.
Пример:
var CLIENT_SETTINGS = {
// …
'actors_order': 'name'
};
Сортировка списка фильмов на экране описания актера
Название опции: actor_vod_sort_order, тип данных: string.
Возможные значения:
- name — по названию, в алфавитном порядке (по умолчанию).
- -name — по названию, в обратном алфавитном порядке.
- id — по дате добавления в каталог, сначала самые старые.
- -id — по дате добавления в каталог, сначала самые новые.
- created_at — по дате обновления, сначала самые старые.
- -created_at — по дате обновления, сначала самые новые.
-updated_at— по дате добавления фильма/эпизода, сначала самые новые;updated_at— по дате добавления фильма/эпизода, сначала самые старые;- premiere_date — по дате премьеры, сначала самые старые.
- -premiere_date — по дате премьеры, сначала самые новые.
- year — по дате выхода фильма, сначала самые старые.
- -year — по дате выхода фильма, сначала самые новые.
- average_customers_rating — по рейтингу абонентов, сначала самые непопулярные.
- -average_customers_rating — по рейтингу абонентов, сначала самые популярные.
- kinopoisk_rating — по рейтингу Кинопоиска, сначала самые непопулярные.
- -kinopoisk_rating — по рейтингу Кинопоиска, сначала самые популярные.
- imdb_rating — по рейтингу IMDB, сначала самые непопулярные.
- -imdb_rating — по рейтингу IMDB, сначала самые популярные.
- number_of_ratings — по количеству оценок, сначала менее оцениваемые.
- -number_of_ratings — по количеству оценок, сначала самые оцениваемые.
Пример:
var CLIENT_SETTINGS = {
// …
'actor_vod_sort_order': '-kinopoisk_rating'
};
Ограничение количества актеров на странице фильма
Название опции: actors_request_limit, тип данных: int. По умолчанию 16.
Пример:
var CLIENT_SETTINGS = {
// …
'actors_request_limit': 16
};
Механика генерации ленты «Похожие фильмы»
Название опции: similar_video_genre_limit, тип данных: int. По умолчанию 3.
В данной опции указывается количество жанров, которые нужно использовать для поиска похожих фильмов — например, по умолчанию фильмы считаются похожими, если у них совпадает 3 жанра.
Пример:
var CLIENT_SETTINGS = {
// …
'similar_video_genre_limit': 3
};
Отображение дисклеймера о вреде наркотических средств
Название опции: show_drugs_disclaimer, тип данных: bool.
Возможные значения:
- true — будет показываться дисклеймер в карточке контента, если возрастной рейтинг фильма не ниже порога (в шаблоне titanium порог задан константой 12).
- false — дисклеймер в карточке контента показываться не будет (по умолчанию).
Пример:
var CLIENT_SETTINGS = {
// …
'show_drugs_disclaimer': true
};

Показ QR-кода с номером поддержки при покупке фильма
Название опции: use_video_purchase_via_sale_qr, тип данных: bool.
Возможные значения:
- true — при нажатии кнопки «Купить» на странице фильма будет показано попап-окно с QR-кодом, в который зашит номер телефона технической поддержки/отдела продаж. Опция актуальна для случая, если отсутствует интеграция с внешним биллингом для покупки фильмов — в этом случае специалист включает доступ к фильму вручную по звонку.
- false — покупка фильма работает на внутреннем механизме Smarty (по умолчанию).
Пример:
var CLIENT_SETTINGS = {
// …
'use_video_purchase_via_sale_qr': false
};

При этом на покупку фильмов ещё оказывает влияние опция show_locked_tariff_popup, ниже таблица соответствий взаимодействия данных опций между собой:
show_locked_tariff_popup | use_video_purchase_via_sale_qr | Результат |
| true | true | Будет показан попап с тарифами |
| true | false | Будет показан попап с тарифами |
| false | false | Кнопка «Купить» вызовет внутренний механизм покупки фильма в Smarty (VideoAction) |
| false | true | Будет показан попап с QR-кодом |
Поиск
В экране поиска до ввода поисковой строки отображается экранная клавиатура, а также опционально можно отображать рекомендуемую подборку для абонента с помощью опции search_recommended_selection_id, в которую указывается идентификатор подборки фильмов из Smarty.

Пример:
var CLIENT_SETTINGS = {
// …
'search_recommended_selection_id': 123,
};
Автоматическая отправка запроса на поиск начинается с ввода 3 символа, поиск происходит по каналам, передачам, фильмам и актёрам.


Задержка при поиске
Название опции: search_request_delay, тип данных: int. Задается в миллисекундах, значение по умолчанию: 3000.
Позволяет задать время задержки перед началом поисковых запросов (после ввода 3 символов в экранной клавиатуре). Предназначена для снижения количества поисковых запросов к Smarty.
Пример:
var CLIENT_SETTINGS = {
// …
'search_request_delay': 3000
};
Личный кабинет
Тарифы
Пункт «Тарифы» включается опцией портала show_packages, пример:
var CLIENT_SETTINGS = {
// …
'show_packages': true,
};
Карточка тарифа кастомизируется следующими средствами на странице тарифа в админке Smarty:
- поле «Иконка для STB и Smart TV» используется в качестве лейблов
- поля
bg_first_colorиbg_second_colorиспользуются для установки цветов для градиента на фоне, пример:

- также в карточке используются поля «Название», «Описание», «Стоимость» и «Стоимость активации».


Уведомления
Пункт «Тарифы» включается опцией портала show_messages_menu, пример:
var CLIENT_SETTINGS = {
// …
'show_messages_menu': true,
};
В этот экран попадают сообщения, отправленные абоненту с помощью инструмента «Сообщения и команды» в админке Smarty (также отправку сообщений можно автоматизировать через Billing API-методы). Сообщения с флагом «Срочное» также показываются в данном разделе, с той разницей, что предварительно они будут показаны в попап-окне поверх интерфейса.


Устройства
Название опции: show_device_list_management, тип данных: bool.
Возможные значения:
- true — в экране «Мой профиль» будет отображаться пункт «Мои устройства», где можно просмотреть список привязанных к аккаунту устройств и отвязать ненужное.
- false — пункт «Мои устройства» будет скрыт (по умолчанию).
Список устройств также может отображаться при неудачной авторизации по причине превышения количества привязанных устройств.
Пример:
var CLIENT_SETTINGS = {
// …
'show_device_list_management': true
};

Выход из аккаунта
Пункт «Выйти из аккаунта» можно показать с помощью опции show_logout_option, пример:
var CLIENT_SETTINGS = {
// …
'show_logout_option': true,
};
По умолчанию пункт скрыт — данное поведение актуально для режима авторизации по IP-адресу/идентификатору устройства — в этом случае абонент не может самостоятельно разлогиниться на текущем устройстве.
Настройки
Выбор используемого интерфейса на странице «Настройки»
Название опции: show_change_template_settings, тип данных: bool.
Возможные значения:
- true — на странице «Настройки» в приложении будет отображен пункт «Выбор шаблона». Список шаблонов для выбора будет сформирован из массива, прописанного в опции
available_templates. - false — пункт «Выбор шаблона» на странице настроек будет скрыт (по умолчанию).
Пример:
var CLIENT_SETTINGS = {
// …
'show_change_template_settings': true,
'available_templates': ['titanium', 'sibseti']
};
Список доступных шаблонов для выбора
Название опции: available_templates, тип данных: array.
Массив системных имён шаблонов, доступных для выбора в настройках (используется вместе с show_change_template_settings).
Пример:
var CLIENT_SETTINGS = {
// …
'available_templates': ['titanium', 'sibseti']
};
Возможность смены языка интерфейса
Название опции: show_change_lang_settings, тип данных: bool.
Возможные значения:
- true — на странице «Настройки» в приложении будет отображен пункт «Язык/Language» (по умолчанию).
- false — пункт «Язык/Language» на экране настроек будет скрыт.
Пример:
var CLIENT_SETTINGS = {
// …
'show_change_lang_settings': true
};
Управление показом пункта «Выбор плеера» в экране «Настройки»
Название опции: show_change_player_settings, тип данных: bool.
Возможные значения:
- true — на странице «Настройки» внутри приложения будет отображен пункт «Выбор плеера» для тех устройств, которые это поддерживают (на текущий момент это Android-устройства в рамках сборки версии выше 2.0).
- false — пункт «Выбор плеера» на странице настроек будет скрыт (по умолчанию).
Пример:
var CLIENT_SETTINGS = {
// …
'show_change_player_settings': true
};
Управление показом пункта «Опции плеера» в экране «Настройки»
Название опции: show_player_options, тип данных: bool.
Примечание: опция show_change_player_settings приоритетнее, чем show_player_options. То есть, если show_change_player_settings в значении false, то show_player_options также устанавливается в значении false.
Возможные значения:
- true — на странице «Настройки» внутри приложения будет отображен пункт «Опции плеера» для тех устройств, которые это поддерживают (на текущий момент это Android-устройства в рамках сборки версии выше 2.0). Список опций зависит от выбранного плеера.
- false — пункт «Опции плеера» на странице настроек будет скрыт (по умолчанию).
Пример:
var CLIENT_SETTINGS = {
// …
'show_player_options': true
};
Возможность выбора дата-центра в меню настроек
Название опции: allow_to_change_data_center, тип данных: bool.
Возможные значения:
- true — в меню настроек пользователь сможет самостоятельно выбрать сервер вещания (соответствует настроенным дата-центрам в Smarty).
- false — пользователь не сможет выбрать сервер вещания (по умолчанию).
Пример:
var CLIENT_SETTINGS = {
// …
'allow_to_change_data_center': false
};
Логика работы
Задержка загрузки приложения при старте
Название опции: loading_timeout, тип данных: int. Задается в миллисекундах, значение по умолчанию: 1000.
Опция позволяет задать количество миллисекунд, на которое будет задержана первоначальная загрузка портала. Может быть использовано, например, для кастомизации портала, чтобы перед запуском отобразить приветственную картинку.
По умолчанию 1000, что соответствует одной секунде. Если указать нулевое или слишком маленькое значение, то может быть нарушена работа некоторых функций приложения на некоторых устройствах из-за асинхронной реализации API некоторых устройств. Например, небольшая задержка обязательна для возможности определения устройства не только по типу, но и по модели (если в Smarty настроены соответствующие типы устройств с указанием модели) для Android-приставок.
Пример:
var CLIENT_SETTINGS = {
// …
'loading_timeout': 1000
};
Проверка дополнительного статуса аккаунта
Название опции: check_account_status_reason, тип данных: bool.
Возможные значения:
- true — дополнительный статус аккаунта будет проверяться даже в случае успешной авторизации (по умолчанию). Например, если аккаунт активен, но в дополнительном статусе установлено «Заблокирован по задолженности», то в портале будет выдана соответствующая ошибка авторизации.
- false — дополнительный статус проверяться не будет.
Пример:
var CLIENT_SETTINGS = {
// …
'check_account_status_reason': true
};
Выбор используемого интерфейса приложения через настройки аккаунта в Smarty
Название опции: check_account_template, тип данных: bool.
Возможные значения:
- true — после авторизации аккаунта будет осуществляться проверка шаблона, установленного в настройках аккаунта в Smarty, и если он отличается от используемого, приложение будет перезагружено в нужном шаблоне (по умолчанию).
- false — установленный шаблон в настройках аккаунта в Smarty будет игнорироваться.
Пример:
var CLIENT_SETTINGS = {
// …
'check_account_template': true
};
Приостановка запросов к серверу в режиме Stand-By
Название опции: block_requests_in_standby, тип данных: bool.
Возможные значения:
- true — включает блокировку запросов к серверу, если устройство находится в режиме Stand-By. После выхода из Stand-By отправка запросов к серверу восстанавливается, однако данные в интерфейсе могут быть устаревшими в течение некоторого времени.
- false — запросы не прекращаются даже в Stand-By, отображаемые в интерфейсе данные не устаревают (по умолчанию).
Опция позволяет сэкономить ресурсы сервера в моменты простоя пользовательских устройств.
Пример:
var CLIENT_SETTINGS = {
// …
'block_requests_in_standby': false
};
Периодический HealthCheck
Название опции: enable_health_check, тип данных: bool.
В шаблоне titanium при значении true после успешного входа планируется периодический вызов requestHealthCheck с интервалом, заданным опцией health_check_interval (к интервалу добавляется случайная составляющая до 60000 мс).
Возможные значения:
- true — периодический HealthCheck включён.
- false — периодический HealthCheck не планируется (по умолчанию).
Пример:
var CLIENT_SETTINGS = {
// …
'enable_health_check': false,
'health_check_interval': 300000
};
Интервал HealthCheck
Название опции: health_check_interval, тип данных: int.
Интервал в миллисекундах между периодическими запросами HealthCheck. Используется вместе с enable_health_check. В коде к значению интервала добавляется случайная добавка до 60000мс.
Пример:
var CLIENT_SETTINGS = {
// …
'health_check_interval': 300000
};
Обновление сборки приложения на Android STB/TV
Название опции: app_package_updating_url, тип данных: string.
При указании url-адреса на скачивание apk в данной опции приложение совершит попытку её скачивания и самообновления на неё. При обновлении происходит проверка текущей версии приложения — механизм скачивания и установки запускается только если версия, указанная в url, больше текущей версии установленной apk (в примере ниже версия — это подстрока 1.0.0).
Опция доступна только для сборок под Android STB/TV версий больше 2.3.
Пример:
var CLIENT_SETTINGS = {
// …
'app_package_updating_url': "http://your-website.com/example-app-1.0.0_100100.apk"
};
Обновление сборки лаунчера на Android STB/TV
Название опции: launcher_package_updating_url, тип данных: string.
При указании url-адреса на скачивание apk в данной опции приложение совершит попытку её скачивания и самообновления на неё. При обновлении происходит проверка текущей версии приложения-лаунчера — механизм скачивания и установки запускается только если версия, указанная в url, больше текущей версии установленного лаунчера (в примере ниже версия — это подстрока 1.0.0).
Опция доступна только для сборок-лаунчеров под Android STB/TV версий больше 2.3.
Пример:
var CLIENT_SETTINGS = {
// …
'launcher_package_updating_url': "http://your-website.com/example-launcher-1.0.0_100100.apk"
};
Включение консоли системной отладки на устройстве с определенным User-Agent
Название опции: enable_system_debug_for_user_agent, тип данных: string.
Если User-Agent устройства совпадает с указанным значением опции, включается системная отладка на устройстве.
Пример:
var CLIENT_SETTINGS = {
// …
"enable_system_debug_for_user_agent": "Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36"
};
Добавление названия маркета к типу устройства
Название опции: use_store_flag_from_device_meta, тип данных: bool.
К типу девайса добавляется название маркета через нижнее подчеркивание (например, android_stb_googleplay). Название маркета берется из сборки, то есть оно должно быть в неё зашито. Данная опция доступна только для Android-маркетов и для её работы потребуется отдельная сборка для каждого из них. Перечень доступных маркетов: googleplay, sberbox, yandextv, rustore.
Возможные значения:
- true — будет передаваться маркет, указанный в метаданных устройства.
- false — будет передаваться строка по умолчанию (по умолчанию).
Пример:
var CLIENT_SETTINGS = {
// …
'use_store_flag_from_device_meta': true
};
Отключение кнопки SET на приставках MAG
Название опции: disable_set_button_on_mag, тип данных: bool.
Возможные значения:
- true — кнопка SET (Setup) на пульте приставки MAG будет заблокирована.
- false — кнопка будет работать согласно настройкам в прошивке (по умолчанию).
Пример:
var CLIENT_SETTINGS = {
// …
'disable_set_button_on_mag': false
};
Дополнительный CSS класс для тела интерфейса
Название опции: custom_body_class, тип данных: string.
Позволяет подключить дополнительный класс к тегу body портала. Может быть использовано для кастомизации интерфейса через дополнительный CSS-файл.
По умолчанию не задано.
Пример:
var CLIENT_SETTINGS = {
// …
'custom_body_class': "custom"
};