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'])){ [...]

composer autoload

В Composer 2 основные директивы: autoload для загрузки кастомных классов, require — для сторонних библиотек. Рассмотрю автозагрузку файлов. Создаем пустой класс  Api в Api.php . Заметьте, название класса должно совпадать с именованием [...]

Cron

Добавляем запись в крон. crontab -e // для centos crontab /etc/crontab Сама команда задается в таком формате минута час день_месяца месяц день_недели команда Напишу пример на ночной крон без сохранения [...]

php REST api

Первое знакомство с rest api для новичка может оказаться затруднительным, т.к. просто и с толком нигде не объяснено. Люди пытаются показать на примерах микрофреймворков, тем самым усугубляя ситуацию. На самом деле все просто [...]

Amocrm создание виджета

Для начала создадим структуру виджета. Структура виджета очень проста. Обязательные файлы script.js, manifest.json, папки images и  локализации i18n. Добавим виджет в Настройки — Api — Добавить виджет. Статус поставить надо private для [...]