arduino прошивка attiny13

Прошьем микросхему attiny13 на линуксе. C гитхаба качнем фреймворк Core13 https://github.com/orlv/at13/archive/master.zip Папку core13 переносим в /usr/share/arduino/hardware/arduino/cores sudo cp core13 /usr/share/arduino/hardware/arduino/cores Фреймворк предоставляет следующее апи map() random() [...]

проверка сервера на bash

Мониторить сервер можно так: создадим bash-скрипт, который будет проверять ответ заголовков с помощью curl. Ответ сохраню в temp файле. При ошибке отправлю письмо. #!/bin/bash tmp_file=$(mktemp) # параметр -L делает переход по редиректам curl -I -L [...]

nginx + php-fpm на vps centos 7, ubuntu

Развернем сервачок на vps под centos 7 или убунту. Покупаем любой за 150 рублей. После активации поставим последнюю версию php , nginx. Об установке писать не буду, вкратце опишу конфиги. Обратите внимание на наличие свопа, без него mysql [...]

ПЭК публичный апи для расчета стоимости доставки

Публичное апи для расчета стоимости перевозки достаточно простое. Делаем GET запрос на адрес http://calc.pecom.ru/bitrix/components/pecom/calc/ajax.php. В параметрах передаем габариты груза, город отправки и доставки. Обратите внимание, минусы для [...]

google goal, yandex цели

Добавим цели с типом «событие» на кнопки для гугл и яндекс. Материал здесь https://yandex.ru/support/metrika/objects/reachgoal.xml и здесь https://developers.google.com/analytics/devguides/collection/analyticsjs/events?hl=ru. Надеюсь, GA и YM у вас подключены. Место размещения футер или [...]

symfony form

Создадим форму симфони. Понадобятся всего 4 зависимости. "require": { "symfony/form": "^3.3", "symfony/twig-bridge": "^3.3", "symfony/translation": "^3.3", "symfony/security-csrf": "^3.3" } Далее подключаем классы формы, твига, переводчика и защиту от Csrf [...]

Bitrix google recaptcha для компонентов

Добавим рекапчу от гугл в компоненты 1. blog.post.comment // комментарии в блоге 2. forum.topic.reviews // комментарии к статическим страницам 3. iblock.element.add.form // форма Как подключать рекапчу писал в статье http://phpjs.ru/2017/07/18/google-captcha-v2/. А также, если [...]

wordpress google invisible recaptcha

Плагин Contact Form 7 уже имеет встроенную поддержку google recaptcha. Достаточно прописать ключи в Contact Form 7 — Интеграция. А в самой форме вставить шорткод [recaptcha] Как получить ключи и подключить рекапчу писал в [...]

google captcha v2

Гугл капча сейчас везде. Плюс ее в том что она заменяет CSRF-токен. Регистрируем свой домен по ссылке https://www.google.com/recaptcha/admin#list . Получаем ключи. Гугл предоставляет свое мини-апи для запросов на проверку.   Скачать его можно [...]

php SOAP api на примере DPD

Поработаем с протоколом SOAP на примере DPD api. Напишем запрос и получим результат. // создаем объект клиента $soap = new SoapClient( 'http://ws.dpd.ru/services/geography2?wsdl' ); // вызовем метод getCitiesCashPay $obj = $soap->getCitiesCashPay($arData); // в параметрах можно передать [...]

Chrome js profiler

Js профайлер хрома удобен тем что оказывает очередность исполнения функций. В скрине подробно отметил как запустить, использовать поиск по методу. Нажимаем запись — Start , далее можем просто обновить страницу F5, покликать [...]

Битрикс замена путей файлов на постоянные

При импорте, а также просто загрузке файлов битрикс создает каждый раз новый путь до файла. Выглядит он примерно так: /upload/iblock/0a1/image.png . Я же заменю на /upload/files/1234/image.png где 1234 id элемента. Я пройдусь по всем файлам и перемещю их в [...]

Битрикс отправка письма с вложением с формы.

Находим форму. Если сделан инфоблоками — это компонент iblock.element.add.form. Кастомизируем. Для этого добавляем пространство имен, копируем компонент и подключаем его уже как namespace:iblock.element.add.form. Или просто копируем в папку [...]

Битрикс метатеги для торговых предложений

Заменим метатеги для тороговых предложений, а также просто для любых элементов каталога. Перед вызовом компонента элемент каталога («bitrix:catalog.element») сделаю проверку на offer, то бишь торг. предложение. if(!empty($_GET['offer'])){ [...]