5 заметок с тегом

битрикс

Водяной знак 1С-Битрикс

Задача: добавить watermark на товары импортируемые из 1С.
Откроем result_modifier.php в catalog.element, catalog.sections и добавим функцию:

$arWatermark = Array(
	array(
		"name" => "watermark", 
		"position" => "center", 
		"size" => "real", 
		"type" => "image", 
		"alpha_level" => 50,
		"file" => $_SERVER['DOCUMENT_ROOT']."/img/watermark.png"
	)
);

Теперь при вызове функции ResizeImageGet нужно добавить наш водяной знак:

if ($arResult['DETAIL_PICTURE']['SRC']) {
$big_file = CFile::ResizeImageGet($arResult['DETAIL_PICTURE']['ID'], array('width' => 2000, 'height' => 2000), BX_RESIZE_IMAGE_PROPORTIONAL, true, $arWatermark);
$arResult['DETAIL_PICTURE']['SRC'] = $big_file['src'];
 Нет комментариев    235   2020   php   битрикс
 Нет комментариев    97   2019   битрикс

Битрикс: красивый вывод массива $arResult

В целом решение подойдет для любой переменной, но именно этот массив содержит большое количество информации, которое сложно прочитать без форматирования.

<? if ($USER->IsAdmin()) {
 echo "<pre>Template arResult: "; print_r($arResult); echo "</pre>";
}  ?>
 259   2019   битрикс

Выгрузка данных формы в Битрикс-24 (JSON)

Делаем выгрузку лидов из формы прямо в Битрикс-24.

  1. Регистрируем входящий Вебхук в Битрикс-24.
  2. Записываем код авторизации (AUTH CODE)
  3. Добавим форму и обработчик.
<? 
$defaults = array('first_name' => '', 'last_name' => '', 'phone' => '', 'email' => ''); 
if (array_key_exists('saved', $_REQUEST)) { 
$defaults = $_REQUEST; 
$queryUrl = 'https://restapi.bitrix24.ru/rest/1/AUTH_CODE/crm.lead.add.json'; 
$queryData = http_build_query(array( 'fields' => 
	array( 
		"TITLE" => $_REQUEST['first_name'].' '.$_REQUEST['last_name'], 
		"NAME" => $_REQUEST['first_name'], 
		"LAST_NAME" => $_REQUEST['last_name'], 
		"STATUS_ID" => "NEW", "OPENED" => "Y", 
		"ASSIGNED_BY_ID" => 1, 
		"PHONE" => array(
			array(
				"VALUE" => $_REQUEST['phone'], 
				"VALUE_TYPE" => "WORK" 
			)
		), 
		"EMAIL" => array(
			array(
				"VALUE" => $_REQUEST['email'], 
				"VALUE_TYPE" => "WORK" 
			)
		), 
	), 
	'params' => array("REGISTER_SONET_EVENT" => "Y") ));

$curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_POST => 1, CURLOPT_HEADER => 0, CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => $queryUrl, CURLOPT_POSTFIELDS => $queryData, ));
$result = curl_exec($curl); 
curl_close($curl); 

$result = json_decode($result, 1); 
if (array_key_exists('error', $result)) echo "Ошибка при сохранении лида: ".$result['error_description'].""; 
} ?> 

<form method="post" action=""> 
	Имя: <input type="text" name="first_name" size="15" value="<?=$defaults['first_name']?>"><br/> 
	Фамилия: <input type="text" name="last_name" size="15" value="<?=$defaults['last_name']?>"><br/> 
	Телефон: <input type="phone" name="phone" value="<?=$defaults['phone']?>">
	E-mail: <input type="email" name="email" value="<?=$defaults['email']?>"><br/> 

	<input type="hidden" name="saved" value="yes"> <input type="submit" value="Отправить"> 
</form>
  1. Проверим поступление данных в Битрикс-24.
 502   2018   json   битрикс

Универсальная форма обратной связи для Битрикса

Сегодня на одном битриксе внедрял форму обратной связи. Загвоздка была в том, что на каждой странице нужна своя форма. Решение:

<form method="post" enctype="multipart/form-data">

            <input name="name" placeholder="Ваше имя">
            <input name="email" placeholder="Email">
            <input name="phone" placeholder="Телефон">
            <input type="submit" value="Отправить">

    <?if (($_POST['name'])and($_POST['phone'])):?>
        <?
                $thm = "Заполнена заявка на сайте";
                $msg = "<b>Имя:</b> ".htmlspecialchars(stripslashes($_POST['name']))."<br>
                <b>Email:</b> ".htmlspecialchars(stripslashes($_POST['email']))."<br> 
                <b>Телефон:</b> ".htmlspecialchars(stripslashes($_POST['phone'])).";
                $mail_to = 'YOUR@POST.COM'; 
                $EOL = "\r\n";
                $boundary   = "--".md5(uniqid(time())); 
                $headers    = "MIME-Version: 1.0$EOL";
                $headers   .= "Content-Type: multipart/mixed; boundary=\"$boundary\"$EOL";
                $headers   .= "From: YOUR@POST.COM"; 
                $multipart  = "--$boundary$EOL";
                $multipart .= "Content-Type: text/html; charset=UTF-8$EOL";
                $multipart .= "Content-Transfer-Encoding: base64$EOL";
                $multipart .= $EOL;
                $multipart .= chunk_split(base64_encode($msg));
                $multipart .= "$EOL--$boundary--$EOL";
            ?>
            <p>Спасибо! Мы свяжемся с Вами в ближайшее время!</p>
            <?endif;?>
</form>
 30   2018   битрикс