google goal, yandex цели

Добавим цели с типом «событие» на кнопки для гугл и яндекс.

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



вешаем событие на кнопку


<input type="submit" onclick="ga('send', 'event', 'php', 'click');">

Читать далее «google goal, yandex цели»

symfony form

Создадим форму симфони.
Понадобятся всего 4 зависимости.


      "require": {
        "symfony/form": "^3.3",
		"symfony/twig-bridge": "^3.3",
		"symfony/translation": "^3.3",
		"symfony/security-csrf": "^3.3"
      }

Далее подключаем классы формы, твига, переводчика и защиту от Csrf атак.
Читать далее «symfony form»

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/
Воспользуемся этим кодом для валидации наших форм от роботов.
Вынесем верификацию в recaptchalib.php


    public function verifyCaptcha()
    {
        if ($_POST["g-recaptcha-response"]) {
            $resp = $this->verifyResponse(
                $_SERVER["REMOTE_ADDR"],
                $_POST["g-recaptcha-response"]
            );
            return $resp;
        }
    }

Читать далее «Bitrix google recaptcha для компонентов»

wordpress google invisible recaptcha

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

[recaptcha]

Как получить ключи и подключить рекапчу писал в статье http://phpjs.ru/2017/07/18/google-captcha-v2/.
Но невидимую капчу тегом не вставить. Немного пошаманим) В той же статье читаем как подключать невидимку. Нужна кнопка сабмита, гугл рекапча привязана как раз к ней. Меняемм ее в форме


<button class="g-recaptcha" data-sitekey="6Lc3likUAAAAANxk2iL3pOE4EvMwIZHadasfasdfsdfa" data-callback="onSubmit">Отправить</button>

Далее на странице с формой подключаем скрипт рекапчи, добавляем обработчик, id формы.
Читать далее «wordpress google invisible recaptcha»

google captcha v2

Гугл капча сейчас везде. Поставим ее к себе на сайт.

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


<div class="g-recaptcha" data-sitekey="<?php echo $siteKey;?>"></div>

Подключаем javascript


<script src='https://www.google.com/recaptcha/api.js'></script>

И непосредственно обработка отправленной капчи
Читать далее «google captcha v2»

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

Поработаем с протоколом SOAP на примере DPD api. Напишем запрос и получим результат.


// создаем объект клиента
$soap = new SoapClient( 'http://ws.dpd.ru/services/geography2?wsdl' );
// вызовем метод getCitiesCashPay
$obj = $soap->getCitiesCashPay($arData);
// в параметрах можно передать только ключи. Внимание, здесь нерабочие ключи
$arData['request']['auth'] = array(
			'clientNumber' => 1230000123,
			'clientKey' => '023E2F77487F5BF05B663ACBB95F42079D961111');

Читать далее «php SOAP api на примере DPD»

Bitrix Paymaster

битрикс paymaster
битрикс paymaster

Магазин — Платежные системы — Добавить платежную систему


Выбираем обработчик. Есть системные, а есть свои. Кастомные распологаем в php_interface/include/sale_payment/какая-то платеж. система (или local/php_interface/..)
Можно скопировать системный и дальше доработать его. Лежат они в bitrix/modules/sale/payment/paymaster/payment.php
Читать далее «Bitrix Paymaster»

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

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

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

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


	
	// add new element
	$sAction = "ADD";

Там у нас входной массив с данными формы, ошибки, если есть, при проверке этих данных, а также массив вложенных файлов.
Для интереса можем все это логировать.


	

				// file_put_contents($_SERVER['DOCUMENT_ROOT'].'/upload/form.txt', var_export($arUpdateValues, true), FILE_APPEND);
				// file_put_contents($_SERVER['DOCUMENT_ROOT'].'/upload/form.txt', var_export($arResult["ERRORS"], true), FILE_APPEND);
				// file_put_contents($_SERVER['DOCUMENT_ROOT'].'/upload/form.txt', var_export($_FILES, true), FILE_APPEND);

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