[Разработчикам] Информация и рекомендации

Модератор: immortal

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

Re: Разработка модулей (Рекомендации)

Сообщение nick7zmail » Чт окт 06, 2016 11:44 am

Ребят...помогите с написанием модуля немножко....
Короче...есть json-строка вот такого формата

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

{"deviceList":[{"name":"RM Pro 1","type":"RM2","mac":"a1:b1:c1:d1:e1:f1"}, 
{"name":"RM mini 3","type":"RMmini3","mac":"a2:b2:c2:d2:e2:f2"}, 
{"name":"SP mini 1","type":"SPmini","mac":"a3:b3:c3:d3:e3:f3"}]}
Через json_decode() строка превращается в массив, в котором 1 элемент deviceList, содержащий несколько подмассивов, в которых есть второй уровень подмассивов...

Задача - нужно выпадающее меню в админке (select) заполнить содержимым, например name....
из строки вида

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

[{"name":"RM Pro 1","type":"RM2","mac":"a1:b1:c1:d1:e1:f1"}, 
{"name":"RM mini 3","type":"RMmini3","mac":"a2:b2:c2:d2:e2:f2"}, 
{"name":"SP mini 1","type":"SPmini","mac":"a3:b3:c3:d3:e3:f3"}]
Это получается без проблем...а как из начальной строки это сделать? Весь мозг себе сломал...не запихивать же отдельно элемент массива в json, и потом опять декодировать его...это же бред....а по-другому - не придумывается как(( Помогите плс.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Dark_Veter
Сообщения: 295
Зарегистрирован: Вт апр 23, 2013 5:16 pm
Откуда: Брянск
Благодарил (а): 18 раз
Поблагодарили: 94 раза

Re: Разработка модулей (Рекомендации)

Сообщение Dark_Veter » Пт ноя 18, 2016 12:44 pm

Я возможно не совсем понял что не получается, но добраться до конечных элементов можно так:

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

$json = '{"deviceList":[{"name":"RM Pro 1","type":"RM2","mac":"a1:b1:c1:d1:e1:f1"}, 
{"name":"RM mini 3","type":"RMmini3","mac":"a2:b2:c2:d2:e2:f2"}, 
{"name":"SP mini 1","type":"SPmini","mac":"a3:b3:c3:d3:e3:f3"}]}';

$array = json_decode($json, TRUE);
$deviceList = $array['deviceList'];

foreach ($deviceList as $value) {
    var_dump($value['name']);
}
 
Код выводит имена всех элементов.
Debian GNU/Linux 7.9 (wheezy), версия 0.9.0b, Connect
Fav0rit
Сообщения: 60
Зарегистрирован: Чт мар 19, 2015 10:27 pm
Благодарил (а): 8 раз
Поблагодарили: 22 раза

Re: Разработка модулей (Рекомендации)

Сообщение Fav0rit » Пт дек 09, 2016 11:32 am

Не знаю насколько я по адресу, но предложение такое.
Есть много модулей для отправки уведомлений через телеграм, смс, твиттер, pushbullet и прочих способов, но нет решения, работающего из коробки по отправке обычной электронной почты. Есть сценарии со стандартными командами PHP, но это скорее уровень программиста, тем более не все почтовые серверы принимают такие сообщения, в идеале, нужно себе создать ящик на каком-то сервисе и дом должен отправлять письма через него, причем желательно командой типа say с парой аргументов, или как сделано в смс, отправлять адресатам все выше какого-то уровня сообщений, одним словом, реализовать что-то подобное нужно.
Я вот сейчас разбираюсь с решением PHP mailer (https://github.com/PHPMailer/PHPMailer), но не всякий пользователь будет это делать, нужно что-то проще в удобной обертке, иначе обидно, что с такой продвинутой платформы отправить обычное письмо затруднительно.
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Разработка модулей (Рекомендации)

Сообщение sergejey » Пт дек 09, 2016 2:16 pm

есть две функции:
SendMail($from, $to, $subj, $body, $attach = "")
SendMail_HTML($from, $to, $subj, $body, $attach = "")

но их работа зависит от работы встроенной функции mail в php и не во всякой системе она правильно настроена "из коробки"

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Fav0rit
Сообщения: 60
Зарегистрирован: Чт мар 19, 2015 10:27 pm
Благодарил (а): 8 раз
Поблагодарили: 22 раза

Re: Разработка модулей (Рекомендации)

Сообщение Fav0rit » Пт дек 09, 2016 5:14 pm

sergejey писал(а):есть две функции:
SendMail($from, $to, $subj, $body, $attach = "")
SendMail_HTML($from, $to, $subj, $body, $attach = "")

но их работа зависит от работы встроенной функции mail в php и не во всякой системе она правильно настроена "из коробки"
Ну вот именно это я и считаю проблемой, что оно не везде работает нормально, тем более, что отправка письма в таком случае происходит не с зарегистрированного ящика, а с самого устройства с подстановкой произвольных атрибутов $from, только такие письма принимают даже не все серверы, они элементарно могут лететь в спам, даже если корректно отправятся. Или я не прав?
Многие пишут, что используют PHPMailer, может стоит сделать для него какую-то обертку? Оформить в отдельный модуль? Я вот сегодня не разобрался как его прикрутить в систему, конечно, поковыряюсь и все заработает, но для масс это не так удобно...
Может я чего-то не понимаю...
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: Разработка модулей (Рекомендации)

Сообщение Gelezako » Ср янв 11, 2017 1:14 pm

Подскажите как свой модуль добавить в МД? Нажимаю кнопку "Добавить\Обновить" в самом низу на странице "Маркет дополнений" и белый лист.
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Разработка модулей (Рекомендации)

Сообщение nick7zmail » Ср янв 11, 2017 1:56 pm

В панели управления - модули - ищите папку со своим модулем, тыкаете на него, нажимаете инсталл/реинстал модуль. Модуль предварительно распаковать в htdocs
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: Разработка модулей (Рекомендации)

Сообщение Gelezako » Ср янв 11, 2017 5:56 pm

я проюовал подкладыватьть и в htdocs и в htdocs\modules , но в маркете дополнений он не появляется. Использовал http://majordomo.smartliving.ru/mbuilder/
что может быть не так?
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Разработка модулей (Рекомендации)

Сообщение sergejey » Ср янв 11, 2017 7:05 pm

В маркете модули сами по себе не появляются -- маркет это для опубликованных модулей. Если вы хотите получить в системе свой модуль, созданный в mbuilder-е, то просто распаковывайте его как есть в папку htdocs -- там уже будут подпапки modules и templates. Затем можете в панели управления в меню Система->Модули найти свой модуль, зайти в него и проинсталлировать. Либо просто перезапустите систему -- сейчас при старте автоматически устанавливаются имеющиеся, но не установленные модули.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: Разработка модулей (Рекомендации)

Сообщение Gelezako » Пт янв 13, 2017 12:35 pm

о, спасибо, разобрался
вот хотел бы ещё порекомендовать отличное вводное видео от форуичанина nick7zmail
https://www.youtube.com/watch?v=_NL3r_CzwzY
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Ответить