Страница 1 из 43
Шаблон класса / Class Template
Добавлено: Пт ноя 18, 2016 6:41 pm
sergejey
Ещё одна очень экспериментальная и, как по мне, весьма интересная штука для разработчиков --
шаблон класса.
В настройках класса объектов появилась дополнительная закладка Template (Шаблон) -- туда можно вводить HTML/javascript код, который будет отвечать за визуальное представление и поведение всех объектов данного класса, если они будут добавлены в сцену.
Код шаблона:
Код: Выделить всё
<div style='display:%.status|"none;block"%' onClick='callMethod("%.turnOff");'>Включено</div>
<div style='display:%.status|"block;none"%' onClick='callMethod("%.turnOn");'>Выключено</div>
Как видно из примера, в шаблоне можно использовать HTML для отображения, а так же Javascript для поведения. В шаблоне не указывается конкретное имя объекта, а только свойства и методы, т.к. шаблон применяется ко всем объектам данного класса.
Соответственно, теперь в сцену можно добавить такой тип элемента, как Объект:
И он будет выведен и вести себя на сцене в соответствии с шаблоном:
Для чего эта возможность вводилась -- для того, чтобы можно было создавать модель взаимодействия с объектом и многократно её использовать в интерфейсе. Если не понятно, то, скорее всего, оно вам и не нужно
Re: Шаблон класса / Class Template
Добавлено: Пт ноя 18, 2016 8:07 pm
Rad81
невозможно редактировать Template
Re: Шаблон класса / Class Template
Добавлено: Пт ноя 18, 2016 10:00 pm
sergejey
Сорри, торопился загрузить и пропусти один файл. Теперь должно быть ок.
Re: Шаблон класса / Class Template
Добавлено: Пт ноя 18, 2016 11:06 pm
Rad81
Был бы хорош если можно было сделать так что бы Привязка была с Меню управления.
Сцена тоже хорош
Re: Шаблон класса / Class Template
Добавлено: Вс ноя 20, 2016 11:58 pm
sergejey
Rad81 писал(а):Был бы хорош если можно было сделать так что бы Привязка была с Меню управления.
Сцена тоже хорош
Да, я думал об этом. Пожалуй, следующим шагом будет добавление объектов в меню и чтобы оно работало одинаково и там и там.
Re: Шаблон класса / Class Template
Добавлено: Пн ноя 21, 2016 5:41 pm
sergejey
Теперь есть возможность добавления объектов в меню управления. Используется тот же механизм, что и в сценах. Теоретически, с помощью единого шаблона класса теперь можно вставлять элементы и в меню и на сцены. Дальше дело за рецептами красивых шаблонов для различных объектов. К примеру, вот так может выглядеть шаблон для термостата:
Re: Шаблон класса / Class Template
Добавлено: Сб дек 03, 2016 4:38 pm
ivannag
Спасибо, Сергей за новую ооочеееньььь полезную фичу)
Теперь я так понимаю можно наделать готовых шаблончиков на подобие дизайна фибаро или вера для разных классов объектов и несколькими кликами вставлять их на сцены.
Помогите пожалуйста разобраться (гугление только запутало еще больше), если у меня свойство status принимает 4 значения (0,1,2,3) то как в коде организовать выбор варианта отображения?
Re: Шаблон класса / Class Template
Добавлено: Вс дек 04, 2016 5:18 pm
sergejey
ivannag писал(а):Спасибо, Сергей за новую ооочеееньььь полезную фичу)
Теперь я так понимаю можно наделать готовых шаблончиков на подобие дизайна фибаро или вера для разных классов объектов и несколькими кликами вставлять их на сцены.
Помогите пожалуйста разобраться (гугление только запутало еще больше), если у меня свойство status принимает 4 значения (0,1,2,3) то как в коде организовать выбор варианта отображения?
Такая конструкция заменит числовое значение на текст:
%.status|"zero;one;two;three"%
если хотите сделать так, что б определённый блок отображался только при каком-то значении, то можно сделать так:
Код: Выделить всё
<div style='display:%.status|"none;none;none;block"%'>...</div>
и данный блок покажется только когда статус будет равен 3
Re: Шаблон класса / Class Template
Добавлено: Пн дек 05, 2016 12:23 am
ivannag
Спасибо. Теперь в несколько кликов удается привязать к объекту элемент управления с 4-ма состояниями, соответствующими им действиями и с СSS стилями в придачу))
Теперь возникают следующие вопросы)):
1. как при вызове метода передать ему параметры? делаю шаблон для LMS плееров и хочу слайдером устанавливать громкость.
Код: Выделить всё
<input type="range" value="%.Volume%" oninput='callMethod("%.Volume", ????????);' min="0" max="100" step="5">
пробовал что-то вроде array("value"=>$value) (и в методе работать с переменной $value) но ничего не вышло... метод вызывается только если вообще не посылать параметры... очевидно что-то не так делаю... но ума не приложу что именно...(
Сражу скажу, что слайдеры через Menu Item пробовал... но на сценах они очень долго подгружаются и кривовато работают... да и геморно очень каждый раз все настраивать для новых объектов... а тут открываются совсем новые возможности))
2. реально ли для style='display:%.status обрабатывать логические выражения? чтобы можно было в шаблоны интегрировать что-то вроде информеров со сменой оформления для разных диапазонов значений?
п.с. прошу сильно не пинать, если хочу слишком многого... просто я только учусь и пока моя фантазия опережает мои умения))
Re: Шаблон класса / Class Template
Добавлено: Пн дек 05, 2016 10:33 am
nick7zmail
ivannag писал(а):
пробовал что-то вроде array("value"=>$value) (и в методе работать с переменной $value) но ничего не вышло... метод вызывается только если вообще не посылать параметры... очевидно что-то не так делаю... но ума не приложу что именно...(
Сражу скажу, что слайдеры через Menu Item пробовал... но на сценах они очень долго подгружаются и кривовато работают... да и геморно очень каждый раз все настраивать для новых объектов... а тут открываются совсем новые возможности))
Передали параметр правильно, забираете неправильно)) Забирать надо то что переменной value в методе из $params['value'].
PS: Ещё один шаг к плиточному интерфейсу)) надо будет потыкать на досуге...вроде неплохая штука
Для модулей предусмотрен функционал в виде внешних функций, которыми можно создать тэмплэйт?