Страница 2 из 8

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

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

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

Добавлено: Пт ноя 18, 2016 12:44 pm
Dark_Veter
Я возможно не совсем понял что не получается, но добраться до конечных элементов можно так:

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

$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']);
}
 
Код выводит имена всех элементов.

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

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

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

Добавлено: Пт дек 09, 2016 2:16 pm
sergejey
есть две функции:
SendMail($from, $to, $subj, $body, $attach = "")
SendMail_HTML($from, $to, $subj, $body, $attach = "")

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

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

Добавлено: Пт дек 09, 2016 5:14 pm
Fav0rit
sergejey писал(а):есть две функции:
SendMail($from, $to, $subj, $body, $attach = "")
SendMail_HTML($from, $to, $subj, $body, $attach = "")

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

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

Добавлено: Ср янв 11, 2017 1:14 pm
Gelezako
Подскажите как свой модуль добавить в МД? Нажимаю кнопку "Добавить\Обновить" в самом низу на странице "Маркет дополнений" и белый лист.

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

Добавлено: Ср янв 11, 2017 1:56 pm
nick7zmail
В панели управления - модули - ищите папку со своим модулем, тыкаете на него, нажимаете инсталл/реинстал модуль. Модуль предварительно распаковать в htdocs

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

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

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

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

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

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