SmartLiving.ru
http://majordomo.smartliving.ru/forum/

Разработка модулей (Рекомендации)
http://majordomo.smartliving.ru/forum/viewtopic.php?f=5&t=2954
Страница 2 из 3

Автор:  nick7zmail [ Чт окт 06, 2016 11:44 am ]
Заголовок сообщения:  Re: Разработка модулей (Рекомендации)

Ребят...помогите с написанием модуля немножко....
Короче...есть 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, и потом опять декодировать его...это же бред....а по-другому - не придумывается как(( Помогите плс.

Автор:  Dark_Veter [ Пт ноя 18, 2016 12:44 pm ]
Заголовок сообщения:  Re: Разработка модулей (Рекомендации)

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

$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($jsonTRUE);
$deviceList $array['deviceList'];

foreach (
$deviceList as $value) {
    
var_dump($value['name']);
}
 

Код выводит имена всех элементов.

Автор:  Fav0rit [ Пт дек 09, 2016 11:32 am ]
Заголовок сообщения:  Re: Разработка модулей (Рекомендации)

Не знаю насколько я по адресу, но предложение такое.
Есть много модулей для отправки уведомлений через телеграм, смс, твиттер, pushbullet и прочих способов, но нет решения, работающего из коробки по отправке обычной электронной почты. Есть сценарии со стандартными командами PHP, но это скорее уровень программиста, тем более не все почтовые серверы принимают такие сообщения, в идеале, нужно себе создать ящик на каком-то сервисе и дом должен отправлять письма через него, причем желательно командой типа say с парой аргументов, или как сделано в смс, отправлять адресатам все выше какого-то уровня сообщений, одним словом, реализовать что-то подобное нужно.
Я вот сейчас разбираюсь с решением PHP mailer (https://github.com/PHPMailer/PHPMailer), но не всякий пользователь будет это делать, нужно что-то проще в удобной обертке, иначе обидно, что с такой продвинутой платформы отправить обычное письмо затруднительно.

Автор:  sergejey [ Пт дек 09, 2016 2:16 pm ]
Заголовок сообщения:  Re: Разработка модулей (Рекомендации)

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

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

Автор:  Fav0rit [ Пт дек 09, 2016 5:14 pm ]
Заголовок сообщения:  Re: Разработка модулей (Рекомендации)

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

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


Ну вот именно это я и считаю проблемой, что оно не везде работает нормально, тем более, что отправка письма в таком случае происходит не с зарегистрированного ящика, а с самого устройства с подстановкой произвольных атрибутов $from, только такие письма принимают даже не все серверы, они элементарно могут лететь в спам, даже если корректно отправятся. Или я не прав?
Многие пишут, что используют PHPMailer, может стоит сделать для него какую-то обертку? Оформить в отдельный модуль? Я вот сегодня не разобрался как его прикрутить в систему, конечно, поковыряюсь и все заработает, но для масс это не так удобно...
Может я чего-то не понимаю...

Автор:  Gelezako [ Ср янв 11, 2017 1:14 pm ]
Заголовок сообщения:  Re: Разработка модулей (Рекомендации)

Подскажите как свой модуль добавить в МД? Нажимаю кнопку "Добавить\Обновить" в самом низу на странице "Маркет дополнений" и белый лист.

Автор:  nick7zmail [ Ср янв 11, 2017 1:56 pm ]
Заголовок сообщения:  Re: Разработка модулей (Рекомендации)

В панели управления - модули - ищите папку со своим модулем, тыкаете на него, нажимаете инсталл/реинстал модуль. Модуль предварительно распаковать в htdocs

Автор:  Gelezako [ Ср янв 11, 2017 5:56 pm ]
Заголовок сообщения:  Re: Разработка модулей (Рекомендации)

я проюовал подкладыватьть и в htdocs и в htdocs\modules , но в маркете дополнений он не появляется. Использовал http://majordomo.smartliving.ru/mbuilder/
что может быть не так?

Автор:  sergejey [ Ср янв 11, 2017 7:05 pm ]
Заголовок сообщения:  Re: Разработка модулей (Рекомендации)

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

Автор:  Gelezako [ Пт янв 13, 2017 12:35 pm ]
Заголовок сообщения:  Re: Разработка модулей (Рекомендации)

о, спасибо, разобрался
вот хотел бы ещё порекомендовать отличное вводное видео от форуичанина nick7zmail
https://www.youtube.com/watch?v=_NL3r_CzwzY

Страница 2 из 3 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/