Дополнительные опции позволяют изменить внешний вид и поведение приложения, и задаются в файле конфигурации /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
Регистрация
Для сценария регистрации по номеру телефона пользователя через приложение, предусмотрена опция registration_available.

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

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

Передачи
Лента с передачами: прошедшими или будущими. При клике на прошедшую передачу открывается полноэкранный плеер с её записью при наличии, в противном случае показывается информационное попап-окно.
Главное меню
Пункты главного меню регулируются опцией 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 \times 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
};
Поиск
В экране поиска до ввода поисковой строки отображается экранная клавиатура, а также опционально можно отображать рекомендуемую подборку для абонента с помощью опции search_recommended_selection_id, в которую указывается идентификатор подборки фильмов из Smarty.

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


Личный кабинет
Тарифы
Пункт «Тарифы» включается опцией портала 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_logout_option, пример:
var CLIENT_SETTINGS = {
// …
'show_logout_option': true,
};
По умолчанию пункт скрыт — данное поведение актуально для режима авторизации по IP-адресу/идентификатору устройства — в этом случае абонент не может самостоятельно разлогиниться на текущем устройстве.