Пробуем ReactJS

Если честно, пока не представляю, что можно сделать с ReactJS, что нельзя сделать удобно и понятно при помощи Jquery+PHP. Но решил таки попробовать. Итак, что такое ReactJS — фактически это надстройка над JavaScript написанная на языке JavaScript. Т.е. всё что написано на ReactJS — компилируется или «на лету» при помощи babel в javascript или при выкладывании в «продакт» и далее подключается вызовом обычного JavaScript.

Чтобы не разделять «продакт» «девелоп» и не возиться с бабелом, я у себя настроил один из вариантов, а именно в косоли висит запущеный скрипт-компилятор, который мониторит изменения файлов в папке src и при изменении чего-либо, компилирует файл в папку js. Соответственно всегда имеем «продакт».

Что нужно сделать чтоб начать пользоваться ReactJS:

1) Поставить NodeJS и ReactJS на компьютере где разрабатываем (компиляция кода ReactJS в JavaScript происходит при помощи его):

2) Ставим npx — утилита которая позволяет запускать npm пакеты

3) Зпаускаем в консоли что-типа:

В моем случае все скрипты из папки src компилируются в папку js

В итоге html страница может выглядеть так:

а файл src/test.js так:

В браузере выведет:

jqgrid-free экспорт в эксель

В «свободном» форке jqgrid, к сожалению нет «встроенного» способа сформировать на основании таблицы файл Excel. Однако можно использовать сторонний способ https://github.com/SheetJS/sheetjs

Тогда код может получиться примерно следующий:

Загрузка и исполнение внешнего скрипта javascript на своем сайте

Прилетела давече задача: подключить платежную систему на сайте. «Дело простое» подумал я сначала. Обычно платежные системы сами предоставляют виджет, который остается только вставить на сайт. Но! дьявол как всегда оказался в деталях — а именно сайт сделан на «тильде» — значит никакого PHP. Только javascript+html. Плюс крайне желательно обойтись без «переходов» со страницу на страницу. А именно: пользователь ввел договор, сумму, ФИО, прошла проверка и только после на этой-же странице показалась форма платежной системы.

В принципе всё реализуемо и не сложно. Но! после вставки:

браузер стал выдавать ошибку:

Вызов document.write() из асинхронно-загруженного внешнего сценария был проигнорирован.

, и выполнять скрипт откзывался. Как оказалось, создатели виджета вставили в тело скрипта команды вида document.write, что категорически запрещается без перезагрузки страницы. Если бы этот скрипт я просто статически разместил на странице, то всё бы было хорошо. Но нам это не нужно..

Долго думал… Долго Гуглил…

Решение: перед загрузкой скрипта подменить функцию вызова document.write своей «безобидной». В итоге скрипт получился такой:

Работа с API Zabbix из PHP

Поискал, поискал, ничего толкового не нашел. Пришлось написать самому. Выложил на GitHub. Описание актуального API Zabbix тут.

Пример использования:

3 способа получения координат по адресу

1) Яндекс

https://geocode-maps.yandex.ru/1.x/?geocode=$address&format=json&results=1

Минусы: Быстро банит, при превышении какого-то количества запросов

2) Гугл

https://maps.googleapis.com/maps/api/geocode/json?address=Вологда&key=YOUR_API_KEY

Минусы: нужно получать ключ

3) Спутник

http://search.maps.sputnik.ru/search/addr?q=$address

Минусы: для части адресов, с которыми Яндекс справляется отлично, тут безбожно врёт.

1 22 23 24 25 26 54