<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://mdminfo.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9F%D0%BB%D0%B0%D0%BD%D1%8B_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C</id>
	<title>Планы модуль - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://mdminfo.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9F%D0%BB%D0%B0%D0%BD%D1%8B_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C"/>
	<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%9F%D0%BB%D0%B0%D0%BD%D1%8B_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C&amp;action=history"/>
	<updated>2026-06-02T09:46:39Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%9F%D0%BB%D0%B0%D0%BD%D1%8B_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C&amp;diff=771&amp;oldid=prev</id>
		<title>George2017: создание новой страницы</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%9F%D0%BB%D0%B0%D0%BD%D1%8B_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C&amp;diff=771&amp;oldid=prev"/>
		<updated>2020-01-20T19:38:59Z</updated>

		<summary type="html">&lt;p&gt;создание новой страницы&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Модули]]&lt;br /&gt;
&lt;br /&gt;
== Модуль планы==&lt;br /&gt;
&lt;br /&gt;
[https://connect.smartliving.ru/tasks/405.html Модуль планы]&lt;br /&gt;
&lt;br /&gt;
https://mjdm.ru/forum/viewtopic.php?f=7&amp;amp;t=6178&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Модуль планы''' - предназначен для создания динамических графических интерфейсов на базе векторных изображений в формате SVG. Изначально предполагалось, что в качестве базовых изображений будут использоваться планы домов/квартир, однако, вы можете работать с любыми изображениями для создания уникальных динамичных интерфейсов.&lt;br /&gt;
&lt;br /&gt;
Основые возможности модуля:&lt;br /&gt;
&lt;br /&gt;
Работа с исходным изображением в формате SVG&lt;br /&gt;
Установка стилей отображения отдельных элементов изображения по заданным условиям (показать/скрыть, прозначность, анимация и т.п.)&lt;br /&gt;
Установка реакции на нажатия на отдельные элементы изображения (запуск метода, кода, открытие меню, окна и т.п.)&lt;br /&gt;
Динамичные шаблоны текстовых элементов (авто-подстановка значений по данным из системы)&lt;br /&gt;
Использование готовых интерактивных компонентов&lt;br /&gt;
Обновление состояния всех элементов в реальном времени (технология websockets)&lt;br /&gt;
Интерфейс &amp;quot;зумирования&amp;quot; Плана (отключаемо)&lt;br /&gt;
Автоматическое изменение масштаба Плана под размер экрана (отключаемо)&lt;br /&gt;
Отдельная ссылка для просмотра Плана&lt;br /&gt;
Встраивание Плана в другие типы интерфейсов (сцены, меню и т.п.)&lt;br /&gt;
Неограниченное количество Планов&lt;br /&gt;
Работа с Планом строится вокруг файла в формате SVG, который вы можете создать в любом векторном редакторе. Мы рекомендуем открытый и бесплатный редактор InkScape (все примеры ниже приведены с использованием данного ПО). Дополнительно могут использоваться изображения, найденные в сети или любые другие редакторы для создания отдельных элементов (3D Max, SweetHome3D и т.д.)&lt;br /&gt;
&lt;br /&gt;
Разберём процесс создания интерфейса на примере данного изображения:&lt;br /&gt;
&lt;br /&gt;
[[Файл:403qot2.png|800px|мини|центр|Планы]]&lt;br /&gt;
&lt;br /&gt;
Текстовые элементы&lt;br /&gt;
&lt;br /&gt;
[[Файл:403qP2T.jpg|800px|мини|центр|Модуль планы]]&lt;br /&gt;
&lt;br /&gt;
Для установки динамических текстовых элементов достаточно в самом тексте использовать конструкцию авто-подстановки вида &amp;quot;%Объект.Свойство%&amp;quot;. При выводе данного элемента будет произведена авто-замена на данные из системы. Кроме того, при изменении данных в системе, текст на изображении так же будет меняться автоматически. Вы можете использовать данную конструкцию не только отдельно, но и как часть предложения, например: &amp;quot;Сейчас %ThisComputer.TimeNow%&amp;quot; будет автоматически заменено на &amp;quot;Сейчас 10:35&amp;quot;. В графическом редакторе вы можете производить любые манипуляции над самим элементов -- устанавливать шрифты, эффекты и т.п.&lt;br /&gt;
&lt;br /&gt;
==Графические элементы==&lt;br /&gt;
&lt;br /&gt;
[[Файл:403r9SJ.png|800px|мини|центр|Модуль планы]]&lt;br /&gt;
&lt;br /&gt;
SVG-изображение может состоять из множества графических элементов (объектов). Элементы можно рисовать самостоятельно, используя инструменты редактора, импортировать из каких-то библиотек в виде готовых векторных или растровых изображений. Кроме того, элементы можно объединять в группы, располагать на различных слоях и многое другое. Важной особенностью в нашем контексте является то, что в самом изображении все элементы хранятся как отдельные объекты с уникальным идентификатором (ID). Соответственно, чтобы мы могли в дальнейшем работать с отдельными элементами и легко их находить, необходимо выставить им понятные идентификаторы:&lt;br /&gt;
&lt;br /&gt;
[[Файл:403rjj3.png|800px|мини|центр|Модуль планы]]&lt;br /&gt;
&lt;br /&gt;
Редактор сам добавляет идентификаторы на все элементы, но созданные автоматически ID не несут смысловой нагрузки и будет неудобно в дальнейшем их искать для работы с ними в модуле MajorDoMo.&lt;br /&gt;
&lt;br /&gt;
Таким образом, создаваемое изображение должно содержать все возможные элементы интерфейса. Также обратите внимание, что для изображения необходимо задать его размер: Файл &amp;gt; Свойства документа:&lt;br /&gt;
&lt;br /&gt;
[[Файл:403rRoI.png|800px|мини|центр|Модуль планы]]&lt;br /&gt;
&lt;br /&gt;
По окончанию работы с изображением его необходимо сохранить в формате SVG.&lt;br /&gt;
&lt;br /&gt;
==Создание Плана==&lt;br /&gt;
&lt;br /&gt;
Для создания Плана необходимо перейти в Панель управления MajorDoMo, раздел Объекты &amp;gt; Планы.&lt;br /&gt;
&lt;br /&gt;
Основные данные плана:&lt;br /&gt;
&lt;br /&gt;
[[Файл:403s2hy.png|800px|мини|центр|Модуль планы]]&lt;br /&gt;
&lt;br /&gt;
Название -- название проекта&lt;br /&gt;
Изображение -- созданный в графическом редакторе SVG-файл&lt;br /&gt;
Управление масштабом -- признак необходимости элемента управления масштабом (кнопки увеличения/уменьшения)&lt;br /&gt;
Авто-масштабирование -- признак необходимости автоматического масштабирования под размер устройства (используется при выводе Плана по отдельной ссылке).&lt;br /&gt;
&lt;br /&gt;
Загруженное изображение может быть в любой момент заменено, так что вы можете спокойно продолжать работать с ним в графическом редакторе и загружать новый вариант в План по мере необходимости.&lt;br /&gt;
&lt;br /&gt;
После сохранения формы появляются дополнительные закладки для дополнительной настройки:&lt;br /&gt;
&lt;br /&gt;
[[Файл:405KMSa.png|800px|мини|центр|Модуль планы]]&lt;br /&gt;
&lt;br /&gt;
==Общее -- общие настройки Плана==&lt;br /&gt;
Состояния -- настройки динамического состояния элементов Плана&lt;br /&gt;
Компоненты -- вставка на план элементов из библиотеки компонентов&lt;br /&gt;
Дополнительный код CSS -- дополнительные стили отображения (не обязательно)&lt;br /&gt;
Дополнительный код Javasсript -- дополнительные сценарии для динамики (не обязательно)&lt;br /&gt;
Просмотр -- просмотр результата настройки и варианты использования Плана в системе (ссылка на План, код встраивания)&lt;br /&gt;
&lt;br /&gt;
==Работа с состояниями Плана==&lt;br /&gt;
&lt;br /&gt;
Переключившись на закладку Состояния мы можем настраивать динамику работы нашего Плана. Основной смысл в том, чтобы задать условное поведение отдельных элементов SVG-изображения путём установки того или иного стиля отображения в зависимости от данных системы. При добавлении нового состояния предлагается следующая форма:&lt;br /&gt;
&lt;br /&gt;
[[Файл:403sRMc.png|800px|мини|центр|Модуль планы]]&lt;br /&gt;
&lt;br /&gt;
Название -- произвольное название состояния&lt;br /&gt;
Элемент изображения -- ID элемента изображения (см. выше про установку ID в графическом редакторе)&lt;br /&gt;
Связанный объект.Свойство -- источник данных для проверки условий применения состояния&lt;br /&gt;
Условие -- тип условия&lt;br /&gt;
Значение -- сравнительное значение для условия&lt;br /&gt;
Применить стиль -- стиль отображения, который будет применён к элементу в случае успешного выполнения условия (не обязательно)&lt;br /&gt;
Применить стиль (&amp;quot;иначе&amp;quot;) -- стиль отображения, который будет применён к элементу в случае невыполнения условия (не обязательно)&lt;br /&gt;
Выполнить при клике -- реакция на нажатие на элемент (не обязательно). В качестве реакции может быть: выполнение сценария, запуск метода объекта, выполнение PHP-кода, отображение элемента Меню, отображение Домашней страницы, открытие произвольной ссылки.&lt;br /&gt;
&lt;br /&gt;
Приведённый выше пример устанавливает следующее поведение: графический элемент Motion1 (иконка человека) будет моргать при обнаружении движения (свойство Motion17.status=1) и скроется по окончанию движения.&lt;br /&gt;
&lt;br /&gt;
Таким образом, вы можете задать произвольное количество состояний, которые будут &amp;quot;накладываться&amp;quot; динамически на изображение, определяя поведение его отдельных элементов.&lt;br /&gt;
&lt;br /&gt;
==Работа с компонентами==&lt;br /&gt;
&lt;br /&gt;
Основная суть компонентов -- выборочная замена элементов изображения на настраиваемые объекты из библиотеки компонентов. Каждый компонент представляет собой графический объект с возможностью корректировки его отображения и работы с помощью настроек, производимых пользователем. Для вставки компонента на План, необходимо предварительно на изображение добавить графический элемент (например, обычный прямоугольник), а в настройках компонента выбрать название этого элемента, чтобы при формировании плана он был заменён соответствующим компонентом. Компонент в большинстве случаев использует базовые характеристики исходного элемента при размещении на Плане (координаты, размеры).&lt;br /&gt;
&lt;br /&gt;
Пример использования компонента:&lt;br /&gt;
&lt;br /&gt;
Создадим на нашем плане два прямоугольника tempBox и tempBox2&lt;br /&gt;
&lt;br /&gt;
[[Файл:40tErc8.png|800px|мини|центр|Модуль планы]]&lt;br /&gt;
&lt;br /&gt;
Загрузим новое изображение в наш План, перейдём в закладку компоненты и добавим новый компонент, задав название и выбрав в качестве типа компонента Gauge, а в качестве заменяемого элемента tempBox:&lt;br /&gt;
&lt;br /&gt;
[[Файл:40tECHG.png|800px|мини|центр|Модуль планы]]&lt;br /&gt;
&lt;br /&gt;
После добавления нам становятся доступны дополнительные настройки компонента (в данном случае это стрелочный индикатор):&lt;br /&gt;
&lt;br /&gt;
[[Файл:40tEM6n.png|800px|мини|центр|Модуль планы]]&lt;br /&gt;
&lt;br /&gt;
Мы можем указать источник данных и дополнительные параметры изображения (единицы измерения, мин/макс значение, цвета и т.п.).&lt;br /&gt;
&lt;br /&gt;
После сохранения мы можем продублировать настройки (кнопка Создать копию) и по аналогии настроить новый компонент, задав новые настройки и привязав его уже к элементу tempBox2:&lt;br /&gt;
&lt;br /&gt;
[[Файл:40tFhKq.png|800px|мини|центр|Модуль планы]]&lt;br /&gt;
&lt;br /&gt;
В итоге при просмотре нашего Плана, на месте созданных в графическом редакторе прямоугольников мы увидим наши настроенные компоненты:&lt;br /&gt;
&lt;br /&gt;
[[Файл:40tFuAl.jpg|800px|мини|центр|Модуль планы]]&lt;br /&gt;
&lt;br /&gt;
При этом компоненты работают динамически, отклоняя стрелку при изменении температуры в реальном времени.&lt;br /&gt;
&lt;br /&gt;
Кроме того, пользователь может настроить действие по нажатию на экземпляр компонента таким же образом, как это делалось при настройке состояний:&lt;br /&gt;
&lt;br /&gt;
[[Файл:40tFJTK.png|800px|мини|центр|Модуль планы]]&lt;br /&gt;
&lt;br /&gt;
Библиотека компонентов пополняется разработчиками (здесь будет ссылка на документацию).&lt;br /&gt;
&lt;br /&gt;
==Дополнительный код CSS==&lt;br /&gt;
&lt;br /&gt;
Данный раздел позволяет добавить свои настройки отображения отдельных элементов/состояний.&lt;br /&gt;
&lt;br /&gt;
Например, можно добавить следующий код для того, чтобы элемент с идентификатором #roof1 был всегда с зелёной заливкой:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#roof1 {&lt;br /&gt;
 fill:green !important;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дополнительный код Javascript&lt;br /&gt;
&lt;br /&gt;
Данный раздел позволяет добавить свой javascript-код для каких-то динамических событий.&lt;br /&gt;
&lt;br /&gt;
Например, данный код показывает/прячет элемент в зависимости от степени увеличения изображения:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;function checkZoomLevel() {&lt;br /&gt;
 var zoomLevel=panZoom.getZoom();&lt;br /&gt;
 if (zoomLevel&amp;gt;2) {&lt;br /&gt;
  $('#roof1').hide();&lt;br /&gt;
 } else {&lt;br /&gt;
  $('#roof1').show();&lt;br /&gt;
 }&lt;br /&gt;
 setTimeout('checkZoomLevel()',1000);&lt;br /&gt;
}&lt;br /&gt;
setTimeout('checkZoomLevel()',1000);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Просмотр и использование Плана==&lt;br /&gt;
&lt;br /&gt;
[[Файл:403tDoV.png|800px|мини|центр|Модуль планы]]&lt;br /&gt;
&lt;br /&gt;
На закладке Просмотр вы можете видеть результат настройки и варианты использования готового Плана. Если всё было сделано правильно, то все элементы изображения будут вести себя в соответствие с заданными условиями поведения.&lt;br /&gt;
&lt;br /&gt;
Приведённый выше пример изображения является очень базовым вариантом применения технологии, с помощью которой можно создавать действительно красивые и масштабные динамические интерфейсы.&lt;br /&gt;
&lt;br /&gt;
P.S. В качестве идей :&lt;br /&gt;
&lt;br /&gt;
[[Файл:403w54i.jpg|800px|мини|центр|Рис.1]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:403wcIo.jpg|800px|мини|центр|Рис.2]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:403who4.png|800px|мини|центр|Рис.3]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:403wkP0.jpg|800px|мини|центр|Рис.4]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:403woGa.jpg|800px|мини|центр|Рис.5]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:403wrDg.png|800px|мини|центр|Рис.6]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:403wwqc.jpg|800px|мини|центр|Рис.7]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:403wD58.jpg|800px|мини|центр|Рис.8]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:403wHlA.jpg|800px|мини|центр|Рис.9]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:403wLnK.jpg|800px|мини|центр|Рис.10]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:403wQ62.jpg|800px|мини|центр|Рис.11]]&lt;/div&gt;</summary>
		<author><name>George2017</name></author>
	</entry>
</feed>