[Разработчикам] Конструктор модулей

Модератор: immortal

Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Помощник создания модулей для MajorDoMo

Сообщение sergejey » Пн авг 28, 2017 12:51 pm

nick7zmail писал(а):В остальном (в части php) всё так же остаётся? (не работал пока с post)
Да. Через global точно так же. Либо напрямую обращаться к $_POST['fieldname']
За это сообщение автора sergejey поблагодарил:
nick7zmail (Пн авг 28, 2017 12:51 pm)
Рейтинг: 1.16%

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Помощник создания модулей для MajorDoMo

Сообщение nick7zmail » Ср авг 30, 2017 10:06 pm

Спасибо, всё получилось...ещё вопросик...
Если нужно на страницы разбить вывод с БД - как я понял есть какая-то встроенная функция paging($res, 50, $out);? (в модуле GPS-track нашел)
Она вроде как работает...но при этом если выбирать связанные объект и свойство - теряется выбранная страница, хотя уже прописал в запросе

Код: Выделить всё

<input type="hidden" name="page" value="<#NUM#>"> 
Да и даже не важно, что перекидывает на непонятную страницу...допустим с этим смогу разобраться - дак не сохраняет объект.свойство...подскажи - как это правильно реализовать, при разбиении на страницы? Может есть примеры в модулях со связанными объектами?
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Помощник создания модулей для MajorDoMo

Сообщение sergejey » Чт авг 31, 2017 5:39 pm

nick7zmail писал(а):Спасибо, всё получилось...ещё вопросик...
Если нужно на страницы разбить вывод с БД - как я понял есть какая-то встроенная функция paging($res, 50, $out);? (в модуле GPS-track нашел)
Она вроде как работает...но при этом если выбирать связанные объект и свойство - теряется выбранная страница, хотя уже прописал в запросе

Код: Выделить всё

<input type="hidden" name="page" value="<#NUM#>">
Да и даже не важно, что перекидывает на непонятную страницу...допустим с этим смогу разобраться - дак не сохраняет объект.свойство...подскажи - как это правильно реализовать, при разбиении на страницы? Может есть примеры в модулях со связанными объектами?
Надо смотреть прописывается ли на самом деле этот <#NUM#> в код и для начала проверить сохранение для первой страницы, работает ли.

Я бы тут советывал вообще на отдельную страницу вынести привязку к свойству тогда. Дело в том, что контрол выбора объекта нагружает браузер и десятокиих на странице вообще с ума браузер свести могут. В том же модуле MegaD есть такая проблема и я думал её со временем зарешать.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Помощник создания модулей для MajorDoMo

Сообщение nick7zmail » Чт авг 31, 2017 5:53 pm

У меня в бродлинке такая же херня ща...там страница устройства ща, и для каждого устройства страница данных...вот там привязка к свойству, и к простым устройствам, как в модуле ноолайта примерно...дак вот...десяток с ума точно не сводят...50 у меня уже довольно значительно грузят...а больше 200 уже убивают)))а у людей больше 300 команд говорят...и это точно катамтрофа наверное)) по крайней мере стандартного таймаута не хватает...вот и попросили разбить...хотел разбить по 10-15...но для каждой команды отдельную форму выбора свойства запускать, как мне кажется, крайне неудобно будет...ну запомню этот вариант на крайний случай))...а пока попробую со страницами разрулить...

Отправлено с моего Xperia Z через Tapatalk
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Помощник создания модулей для MajorDoMo

Сообщение nick7zmail » Чт авг 31, 2017 6:55 pm

Пока не получается победить...
При сохранении - (стандартная кнопка submit)

Код: Выделить всё

 <button type="submit" name="subm" value="Submit" class="btn btn-primary"><#LANG_SUBMIT#></button>     
Перекидывает на страницу с пустыми записями

Код: Выделить всё

http://127.0.0.1/admin.php?pd=cGFuZWw6e2FjdGlvbj1kZXZfYnJvYWRsaW5rfQ%3D%3Dpz_&md=dev_broadlink&inst=adm&   
(параметров в гет-запросе вообще нет)
1.png
1.png (15.46 КБ) 7323 просмотра
(не выбрана активная страница....да в адресе вообще ничего не выбрано после submit)
Ни на первой странице, ни на любой другой - не сохраняются объекты/свойства...после того, как перенес
paging($properties, 20, $out);
перед
$out['PROPERTIES']=$properties;
(зря я это сделал)
- стало сохранятся на первой странице (но перекидывало так же на пустую)...но при этом на остальных страницах все записи затерлись)))
вернул после селекта из БД
$properties=SQLSelect("SELECT * FROM dev_broadlink_commands WHERE DEVICE_ID='".$rec['ID']."' ORDER BY TITLE");
Как только paging убираешь - всё работает...

Мучаю дальше...может подскажешь верное направление? Может вообще не туда вставляю? Или кнопку submit надо переписать ссылкой?
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Помощник создания модулей для MajorDoMo

Сообщение nick7zmail » Пт сен 01, 2017 7:43 pm

Сергей...можешь немного объяснить про функцию paging()?
Я так понял первый параметр исходный массив, второй кол-во элементов, третий - выходной массив.

Эта функция берет исходный массив, дробит на кол-во страниц, возвращает в out страницы, а исходный массив обрезает до нужного количества? Или исходный не трогает?
Почему-то после этой функции он не может прочитать

Код: Выделить всё

 $properties[$i]['LINKED_OBJECT']=trim(${'linked_object'.$properties[$i]['ID']}); 
Она случайно ID не переписывает? Если хоть каким нить образом пропустить $properties через функцию paging - в нем перестают сохраняться любые изменения (не только привязанные свойства, но даже имя поменять нельзя)...

Есть идеи почему?
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Помощник создания модулей для MajorDoMo

Сообщение sergejey » Вт сен 05, 2017 12:47 pm

paging обрезает исходный массив, т.е. оставляет в нём только определённое количество элементов, в зависимости от параметров и значения $page. Но сами элементы внутри он не переписывает. Я бы попробовал для начала посмотреть, что шлёт форма при нажатии на сохранение. просто print_r($_REQUEST);exit; на режим update
За это сообщение автора sergejey поблагодарил:
nick7zmail (Вт сен 05, 2017 9:55 pm)
Рейтинг: 1.16%

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Помощник создания модулей для MajorDoMo

Сообщение nick7zmail » Вт сен 05, 2017 9:55 pm

Ну ёёёперный...капец...оказывается просто 2 процедуры было в модуле с update-ом...
Самое обидное - не я эт писал)) с одним из реквестов прилетело...на тот момент проверил - работает...в подробности не вдавался...в общем стоило первую убрать - всё заработало =D...спасибо за помощь.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
yaakovu
Сообщения: 7
Зарегистрирован: Вс июл 02, 2017 5:24 pm
Благодарил (а): 1 раз
Поблагодарили: 0

Re: Помощник создания модулей для MajorDoMo

Сообщение yaakovu » Вс дек 24, 2017 12:21 pm

Привет Всем!
Помогите чайнику разобраться.
Сгенерировал свой модуль с помощью помощника.
Теперь хочу показать какой девайс в какой комнате.
Ну соответственно в usual:

$out['Locations'] = SQLSelect('SELECT distinct locations.* FROM locations inner join devices on devices.LOCATION_ID = locations.ID');
$out['Devices'] = SQLSelect('SELECT title, type, LINKED_OBJECT, LOCATION_ID FROM devices');

ну а в template:
<div data-role="navbar">
<ul>
[#begin Locations#]
<li>
<a href="#">[#TITLE#]</a>
</li>
[#end Locations#]
</ul>
</div>

[#begin Devices#]
<div class="device_container" id="[#LOCATION_ID#]">
??????
</div>
[#end Devices#]

a теперь вопрос: есть ли какой нибудь модуль для представления устройств - если это switch, то покажет лампочку и т.д. ?
как его подключить?

Заранее спасибо,
Яаков.
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Помощник создания модулей для MajorDoMo

Сообщение nick7zmail » Вс дек 24, 2017 12:42 pm

Есть модуль простых устройств...там в первом посте указано как его цеплять к другим модулям, и какой код прописать, чтоб при добавлении простого устройства выбирался тип (как раз выключатель, кнопка, датчик и тп)
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Ответить