Ввиду отсутствия в MajorDomo пультов для управления бытовой техникой, под свои цели создал четыре пульта в одном виджете. Здесь попробую немного объяснить для тех, кто сам решится на дальнейшую доработку под свои цели.
Началось все с одного простенького пульта Samsung. Весь код состоит из HTML + CSS + картинки. Так как, что то стало получаться, решил на каждое устройство создать свой пульт в плане дизайна. Все реальные кнопки решил не делать, только необходимые, часто используемые.
Очень помогла вот эта тема (не помню каким хорошим человеком подкинутая) https://ab-log.ru/forum/viewtopic.php?f=1&t=1328&s... много интересного еще там. За что ему огромное СПАСИБО!
Установочный пакет состоит из папок с файлами:
1) Папка "import > classes" в ней файл импорта классов, объектов и методов.
2) Папка "templates > classes > views" в ней html файл отображения, по этому же пути он портируется в MajorDomo.
3) Папка "templates_alt > TVRemotes " содержит паки с иконками картинок и файл стиля отображения CSS, также портируются по этому же пути.
4) В корне пакета лежит файл install.php, это установочный файл.
В папках "icons" дополнительно имеется файл "пустой" кнопки, на которую можно добавить своё изображение. Таким образом заменив иконки кнопок, получается другая функциональность кнопки. Сам эту задачу выполнял в Photoshop.
При установке файла портируется все в систему, Иконки, Файлы отображения, Классы, Объекты и Методы. Из файла install.php прописываются свойства объектов.
Свойство "RemoteTitle" - название пульта, используется для проговаривания в методах нажатия кнопок (для проверки и удобства), а также на пульте Ростелекома отображается вверху (у меня используется для двух одинаковых пультов, на одном "Спальня", на другом "Зал").
Свойство "RemoteVisible" 0 или 1 - отображать пульт или скрывать!
В файле отображения "TVRemotes_3in1.html" находятся три пульта в которых прописаны все кнопки с "привязаными" к ним методами.
Пример одной кнопки:
<div class="button1" tabindex="1" onClick='callMethod("TV_LG.Sound_+");'>
<img src="/templates_alt/TVRemotes/icons/samsung_volplus.png" style="height: 50px;"/>
</div>
В ней мы видим, что кнопка запускает код "callMethod("TVLG.Sound+");" ,у объекта "TVLG " метод "Sound+". Иконка этой кнопки "samsung_volplus.png" находящаяся в папке "icons".
Для того, чтобы не лазить и не искать методом тыка какой метод на какой кнопке висит, в методах уже прописан код проговаривания метода (хотя по названию метода можно тоже понять).
say($this->getProperty('RemoteTitle'). ' звук +', 1);
Соответственно нажав на кнопку, в сообщениях системы можно проследить какой метод нужен. Прописав в методах свой код, получаете безграничные возможности реализаций управления пультами.
Отдельно остановлюсь на реализации 3в1. Так как стандартные средства системы MajorDomo позволяют в сценах скрывать элементы, а в меню нет. И три пульта в меню занимают много места, или необходимо делать лишние манипуляции. Решил объединить в один файл все пульты. Скрытие этих пультов делает код:
<div style='display:%TV_LG.RemoteVisible|"none;block"%'>
кнопки кнопки кнопки
</div>
Если в свойстве объекта "TV_LG.RemoteVisible" - 0, то пульт марки LG не отобразится, будет как бы свернутым в тонкую невидимую полоску.
Как вы заметили для этого есть самый нижний ряд кнопок. По нажатию которых запускается Родительский метод с кодом и происходит переключение на соответствующий пульт. Только в меню обновление пультов немного подтормаживает, еще может тупить при проговаривании.
Теперь как менять задний фон? Вариант №:
1) Находите в файлах системы папку "/templates_alt/TVRemotes", в ней файл "styles3in1.css", в котором первые три контейнера это основной стиль каждого пульта.
Пример:
.containerLG {
background-image: url("/templates_alt/TVRemotes/icons3/main_bg.jpg");
background-color: rgba(0, 0, 0, 0.3);
border-radius: 15px;
border: 1px solid #444;
text-align: center;
width: 260px;
}
Закомментируйте // background-image: url("/templates_alt/TVRemotes/icons3/main_bg.jpg"); и будет у вас темный фон. Изменив цифры в background-color: rgba(0, 0, 0, 0.3); получите необходимый цвет фона.
2) Если однотонный фон вам не нравится, то можно переименовать "main_bg.jpg" в название вашего файла, который предварительно поместите в /templates_alt/TVRemotes/icons3.
Пакет для установки находится на форуме: https://majordomo.smartliving.ru/forum/viewtopic.p...
Пока все. Дополняться будет по мере возникновения вопросов.
Малоярославец, Россия
На форуме: ahelper