Smarty

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

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

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

Регистрация

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