diff --git a/api/index.php b/api/index.php
index ec32580..a136e35 100644
--- a/api/index.php
+++ b/api/index.php
@@ -1260,6 +1260,29 @@ switch($PARAM_1)
}
break;
+ case "vizitka":
+ {
+ //define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/vizitka/tmp/log.txt");
+ //AddMessage2Log("_REQUEST['guid'] => ".$_REQUEST['guid'], "my_module_id");
+
+ $c = curl_init();
+ curl_setopt($c, CURLOPT_URL, API_HOST."/site/GetUserBusinessCard/?guid=".$_REQUEST['guid']);
+ curl_setopt($c, CURLOPT_CONNECTTIMEOUT, 30);
+ curl_setopt($c, CURLOPT_TIMEOUT, 30);
+ curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
+ curl_setopt($c, CURLOPT_SSL_VERIFYPEER, 0);
+ curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 0);
+ curl_setopt($c, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
+
+ $response = curl_exec($c) or die(curl_error($c));
+
+ curl_close($c);
+ print $response;
+
+ die();
+ }
+ break;
+
default:
{
print json_encode([]);
diff --git a/cron/yasprav.log b/cron/yasprav.log
index 0811676..800a0a6 100644
--- a/cron/yasprav.log
+++ b/cron/yasprav.log
@@ -1 +1 @@
-
1 => MO1
2 => SP1
3 => BN1
4 => BG1
5 => VL1
6 => VR1
7 => EK1
8 => IR1
9 => KZ1
10 => KG1
11 => KL1
12 => KM1
13 => KR1
14 => KS2
15 => KS1
16 => LP1
17 => NC1
18 => NN1
19 => NV1
20 => NR1
21 => NS1
22 => OM1
23 => OR1
24 => PR1
25 => RD1
26 => RZ1
27 => SM1
28 => SR1
29 => SC1
30 => SK1
31 => ST1
32 => SG1
33 => TL1
34 => TM1
35 => UF1
36 => CB1
37 => CL1
38 => YR1
Ok! Сохранено по ссылке! 29.08.2022
\ No newline at end of file
+1 => MO1
2 => SP1
3 => BN1
4 => BG1
5 => VL1
6 => VR1
7 => EK1
8 => IR1
9 => KZ1
10 => KG1
11 => KL1
12 => KM1
13 => KR1
14 => KS2
15 => KS1
16 => LP1
17 => NC1
18 => NN1
19 => NV1
20 => NR1
21 => NS1
22 => OM1
23 => OR1
24 => PR1
25 => RD1
26 => RZ1
27 => SM1
28 => SR1
29 => SC1
30 => SK1
31 => ST1
32 => SG1
33 => TL1
34 => TU1
35 => TM1
36 => UF1
37 => CB1
38 => CL1
39 => YR1
Ok! Сохранено по ссылке! 08.09.2022
\ No newline at end of file
diff --git a/local/components/evolution/vizitka/component.php b/local/components/evolution/vizitka/component.php
new file mode 100644
index 0000000..afac3f4
--- /dev/null
+++ b/local/components/evolution/vizitka/component.php
@@ -0,0 +1,116 @@
+
+if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
+/** @var CBitrixComponent $this */
+/** @var array $arParams */
+/** @var array $arResult */
+/** @var string $componentPath */
+/** @var string $componentName */
+/** @var string $componentTemplate */
+/** @global CDatabase $DB */
+/** @global CUser $USER */
+/** @global CMain $APPLICATION */
+
+use Bitrix\Main\Context,
+ Bitrix\Main\Type\DateTime,
+ Bitrix\Main\Loader,
+ Bitrix\Iblock;
+
+require_once($_SERVER["DOCUMENT_ROOT"].'/bitrix/php_interface/phpqrcode/qrlib.php');
+
+
+$object = json_decode(file_get_contents("https://evoleasing.ru/api/vizitka/?guid=".$arParams['guid']));
+
+ //define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/vizitka/tmp/log2.txt");
+ //AddMessage2Log("object => ".print_r($object, true)."\narParams => ".print_r($arParams, true), "my_module_id");
+
+ //$ourData = file_get_contents($_SERVER["DOCUMENT_ROOT"]."/vizitka/data.json");
+ //$object = json_decode($ourData);
+
+ //Очищаем временную директорию от файлоы старше 2 дней
+ $tmpfolders = $_SERVER["DOCUMENT_ROOT"].'/vizitka/tmp/';
+ $fileSystemIterator = new FilesystemIterator($tmpfolders);
+ $now = time();
+ foreach ($fileSystemIterator as $file) {
+ if ($now - $file->getCTime() >= 60 * 60 * 24 * 2) // 2 days
+ unlink($tmpfolders.$file->getFilename());
+ }
+
+ //Разбираем данные из json
+ //if ($arParams["guid"] & $object->firstName) {
+ if ($object->firstName) {
+ $arParams["name"] = $object->firstName;
+ $arParams["family"] = $object->secondName;
+ $arParams["post"] = $object->post;
+ $arParams["dept"] = $object->department;
+ $arParams["company"] = "Эволюция Автолизинга";
+ $arParams["mob"] = $object->mobilePhone;
+ $arParams["mobcl"] = preg_replace('/[^0-9]/', '', $arParams["mob"]);
+ $arParams["tel"] = $object->workPhone;
+ $arParams["telcl"] = preg_replace('/[^0-9]/', '', $arParams["tel"]);
+ $arParams["teladd"] = $object->workPhoneCode;
+ $arParams["mail"] = $object->email;
+ $arParams["address"] = $object->address;
+ $arParams["whatsapp"] = $object->whatsAppOn;
+ $arParams["telegram"] = $object->telegram;
+ $arParams["www"] = "https://www.evoleasing.ru";
+ $arParams["image"] = $object->image;
+
+//VCF для QR кода
+$qrtext = 'BEGIN:VCARD
+VERSION:4.0
+N;CHARSET=UTF-8:'.$arParams["family"].';'.$arParams["name"].';;;
+FN;CHARSET=UTF-8:'.$arParams["name"].' '.$arParams["family"].'
+TITLE;CHARSET=UTF-8:'.$arParams["post"].'
+EMAIL:'.$arParams["mail"].'
+ORG;CHARSET=UTF-8:'.$arParams["company"].';'.$arParams["dept"].'
+TEL;type=CELL:'.$arParams["mob"].'
+URL;type=PREF:'.$arParams["www"].'
+LANG:ru-RU
+END:VCARD';
+
+$qrimg = QRcode::png($qrtext, $_SERVER["DOCUMENT_ROOT"].'/vizitka/tmp/'.$arParams["guid"].'.png', 'L', 3, 2);
+//$im = imagecreatefrompng($_SERVER["DOCUMENT_ROOT"].'/vizitka/tmp/'.$arParams["guid"].'.png');
+
+//Формируем vcf файл визитки для телефонов
+$arParams["vcarddata"] = 'BEGIN:VCARD
+VERSION:4.0
+N;CHARSET=UTF-8:'.$arParams["family"].';'.$arParams["name"].';;;
+FN;CHARSET=UTF-8:'.$arParams["name"].' '.$arParams["family"].'
+TITLE;CHARSET=UTF-8:'.$arParams["post"].'
+EMAIL:'.$arParams["mail"].'
+ORG;CHARSET=UTF-8:'.$arParams["company"].';'.$arParams["dept"].'
+TEL;type=CELL:'.$arParams["mob"].'
+URL;type=PREF:'.$arParams["www"].'
+PHOTO;ENCODING=BASE64;TYPE=JPEG:'.$arParams["image"].'
+LANG:ru-RU
+END:VCARD';
+$arParams["vcarddata"] = mb_convert_encoding($arParams["vcarddata"], "UTF-8");
+
+ $arParams["vcffile"] = './tmp/'.$arParams["guid"].'.vcf';
+ $fp = fopen($arParams["vcffile"], "w");
+ fwrite($fp, $arParams["vcarddata"]);
+ fclose($fp);
+
+//Формируем vcf файл визитки для компьютера
+$arParams["vcarddatawin"] = 'BEGIN:VCARD
+VERSION:4.0
+N;CHARSET=windows-1252:'.$arParams["family"].';'.$arParams["name"].';;;
+FN;CHARSET=windows-1252:'.$arParams["name"].' '.$arParams["family"].'
+TITLE;CHARSET=windows-1252:'.$arParams["post"].'
+EMAIL:'.$arParams["mail"].'
+ORG;CHARSET=windows-1252:'.$arParams["company"].';'.$arParams["dept"].'
+TEL;type=CELL:'.$arParams["mob"].'
+URL;type=PREF:'.$arParams["www"].'
+PHOTO;ENCODING=BASE64;TYPE=JPEG:'.$arParams["image"] .'
+LANG:ru-RU
+END:VCARD';
+
+$arParams["vcarddatawin"] = iconv("utf-8", "windows-1251", $arParams["vcarddatawin"]);
+
+ $arParams["vcffilewin"] = './tmp/'.$arParams["guid"].'-win.vcf';
+ $fp = fopen($arParams["vcffilewin"], "w");
+ fwrite($fp, $arParams["vcarddatawin"]);
+ fclose($fp);
+
+}
+$this->IncludeComponentTemplate();
\ No newline at end of file
diff --git a/local/components/evolution/vizitka/templates/.default/script.js b/local/components/evolution/vizitka/templates/.default/script.js
new file mode 100644
index 0000000..4f9d9d4
--- /dev/null
+++ b/local/components/evolution/vizitka/templates/.default/script.js
@@ -0,0 +1,186 @@
+var calculation = { car_price: 0, CAR_PRICE_MIN: 0, CAR_PRICE_MAX:0, initial_payment: 0, lease_period: 0, monthly_payment: 0, redemption_payment: 0, tax_savings: 0, vat_reimbursement: 0 };
+
+function calculator(props)
+{
+ for(let i in calculation)
+ {
+ calculation[i] = parseInt(props[i], 10);
+ }
+
+ $("#FORM_FIELD_PRICE").val(calculation.car_price);
+ $("#FORM_FIELD_PREPAID").val(calculation.initial_payment);
+ $("#FORM_FIELD_TERM").val(calculation.lease_period);
+ $("#FORM_FIELD_REDEMPTION").val(calculation.redemption_payment);
+}
+
+function calculate(param, value)
+{
+ if(param !== undefined)
+ {
+ calculation[param] = value;
+ }
+
+ $("#FORM_FIELD_PRICE").val(calculation.car_price);
+ $("#FORM_FIELD_PREPAID").val(calculation.initial_payment);
+ $("#FORM_FIELD_TERM").val(calculation.lease_period);
+ $("#FORM_FIELD_REDEMPTION").val(calculation.redemption_payment);
+
+ $.post("/api/calculation/",
+ {
+ car_price: calculation.car_price,
+ initial_payment: calculation.initial_payment,
+ lease_period: calculation.lease_period,
+ redemption_payment: calculation.redemption_payment,
+ }, function(response)
+ {
+ for(let i in response)
+ { calculation[i] = parseInt(response[i], 10); }
+
+ $("#calculator_monthly_payment_value").text(calculation['monthly_payment'].toLocaleString());
+ $("#calculator_tax_savings_value").text((calculation['tax_savings'] + calculation['vat_reimbursement']).toLocaleString());
+ $("#calculator_tax_savings_percent").text(Math.round((calculation['tax_savings']+calculation['vat_reimbursement']) / (calculation['car_price'] / 100)));
+ }, "json");
+}
+
+function calculator_car_price_save()
+{
+ var v = parseInt($("#calculator_car_price_input").val(), 10);
+ console.log(v, calculation['CAR_PRICE_MIN'], calculation['CAR_PRICE_MAX']);
+ if(v >= calculation['CAR_PRICE_MIN'] && v <= calculation['CAR_PRICE_MAX'])
+ {
+ var $input_range_car_price = $(`#calculation_car_price`);
+ $input_range_car_price.val(v).change();
+ calculate('car_price', v);
+
+ $("#calculator_car_price_text").show();
+ $("#calculator_car_price_editor").hide();
+ }
+ else
+ {
+ $("#calculator_car_price_text").show();
+ $("#calculator_car_price_editor").hide();
+ }
+}
+
+$(function()
+{
+ var $document = $(document);
+ var selector = '[data-rangeslider]';
+ var $element = $(selector);
+
+ // For ie8 support
+ var textContent = ('textContent' in document) ? 'textContent' : 'innerText';
+
+ // Example functionality to demonstrate a value feedback
+ function valueOutput(element)
+ {
+ var value = element.value;
+ var output = element.parentNode.getElementsByTagName('output')[0] || element.parentNode.parentNode.getElementsByTagName('output')[0];
+ if($(element).data('slider-name') === "car_price")
+ {
+ output[textContent] = parseInt(value, 10).toLocaleString();
+ }
+ else
+ {
+ output[textContent] = value;
+ }
+ }
+
+ $document.on('input', 'input[type="range"], ' + selector, function(e)
+ {
+ valueOutput(e.target);
+ });
+
+ // Example functionality to demonstrate disabled functionality
+ $document.on('click', '#js-example-disabled button[data-behaviour="toggle"]', function(e)
+ {
+ var $inputRange = $(selector, e.target.parentNode);
+
+ if ($inputRange[0].disabled) {
+ $inputRange.prop("disabled", false);
+ }
+ else {
+ $inputRange.prop("disabled", true);
+ }
+ $inputRange.rangeslider('update');
+ });
+
+ // Example functionality to demonstrate programmatic value changes
+ $document.on('click', '#js-example-change-value button', function(e) {
+ var $inputRange = $(selector, e.target.parentNode);
+ var value = $('input[type="number"]', e.target.parentNode)[0].value;
+
+ $inputRange.val(value).change();
+ });
+
+ // Example functionality to demonstrate programmatic attribute changes
+ $document.on('click', '#js-example-change-attributes button', function(e)
+ {
+ var $inputRange = $(selector, e.target.parentNode);
+ var attributes = {
+ min: $('input[name="min"]', e.target.parentNode)[0].value,
+ max: $('input[name="max"]', e.target.parentNode)[0].value,
+ step: $('input[name="step"]', e.target.parentNode)[0].value
+ };
+
+ $inputRange.attr(attributes);
+ $inputRange.rangeslider('update', true);
+ });
+
+ // Example functionality to demonstrate destroy functionality
+ $document
+ .on('click', '#js-example-destroy button[data-behaviour="destroy"]', function(e) {
+ $(selector, e.target.parentNode).rangeslider('destroy');
+ })
+ .on('click', '#js-example-destroy button[data-behaviour="initialize"]', function(e) {
+ $(selector, e.target.parentNode).rangeslider({ polyfill: false });
+ });
+
+ // Example functionality to test initialisation on hidden elements
+ $document.on('click', '#js-example-hidden button[data-behaviour="toggle"]', function(e) {
+ var $container = $(e.target.previousElementSibling);
+ $container.toggle();
+ });
+
+ // Basic rangeslider initialization
+ $element.rangeslider({
+ // Deactivate the feature detection
+ polyfill: false,
+ // Callback function
+ onInit: function() {
+ valueOutput(this.$element[0]);
+ },
+ // Callback function
+ onSlide: function(position, value) {
+ //console.log('onSlide');
+ //console.log('position: ' + position, 'value: ' + value);
+ },
+ // Callback function
+ onSlideEnd: function(position, value)
+ {
+ calculate(this.$element.attr('data-slider-name'), value);
+ //console.log('position: ' + position, 'value: ' + value);
+ }
+ });
+
+ $("#calculator_car_price_text").on("click", function()
+ {
+ $("#calculator_car_price_input").val(parseInt(calculation.car_price, 10));
+ $("#calculator_car_price_text").hide();
+ $("#calculator_car_price_editor").show();
+ });
+
+ $("#calculator_car_price_save").on("click", function()
+ {
+ calculator_car_price_save();
+ });
+
+ $("#calculator_car_price_input").on("keydown", function(event)
+ {
+ if(event.keyCode === 13)
+ {
+ event.preventDefault();
+ calculator_car_price_save();
+ }
+ });
+});
\ No newline at end of file
diff --git a/local/components/evolution/vizitka/templates/.default/style.css b/local/components/evolution/vizitka/templates/.default/style.css
new file mode 100644
index 0000000..fc32ba4
--- /dev/null
+++ b/local/components/evolution/vizitka/templates/.default/style.css
@@ -0,0 +1,37 @@
+.offer_item_boston {
+ width: auto !important;
+ padding-bottom: 30px;
+ position: relative;
+}
+.offer_item_boston img{
+ border-radius: 50%;
+}
+.offer_item {
+ width: auto !important;
+ padding-left: 0 !important;
+ padding-right: 20px;
+}
+.leasing_offers_list {
+ margin-top: 30px !important;
+}
+.offer_item .qrimage {
+ position: relative !important;
+ width: auto !important;
+ height: auto !important;
+}
+.offer_item .vcfbutton {
+ background-color: #1c01a9;
+ color: #fff;
+ padding: 5px 15px;
+ width: fit-content;
+ font-weight: bold;
+}
+.messenger {
+ position: relative !important;
+ width: 30px;
+ height: 30px;
+ vertical-align: bottom;
+}
+.withoutform {
+ margin-top: 40px;
+}
\ No newline at end of file
diff --git a/local/components/evolution/vizitka/templates/.default/template.php b/local/components/evolution/vizitka/templates/.default/template.php
new file mode 100644
index 0000000..ecb2383
--- /dev/null
+++ b/local/components/evolution/vizitka/templates/.default/template.php
@@ -0,0 +1,84 @@
+setFrameMode(true);
+?>
+//print_r($arResult);?>
+//print_r($arParams);?>
+
+
+
+
=$arParams["name"]?> =$arParams["family"]?>
+
=$arParams["post"]?>
+
=$arParams["dept"]?>
+
+
+
+

" alt="" />
+ }else{?>
+

+ }?>
+
+
+
+
+ Сохраните контакт на телефон
+
+

.png" />
+
+
+
+ } else {?>
+
+
+
+
+
+ Упс! Такой
визитки
не существует
+
+
+
+
+
+ или отправьте
заявку на лизинг
из формы ниже
+
+
+
+
+
+
+ }?>
\ No newline at end of file
diff --git a/local/users_to_clients.php b/local/users_to_clients.php
new file mode 100644
index 0000000..e3be2ce
--- /dev/null
+++ b/local/users_to_clients.php
@@ -0,0 +1,113 @@
+
+//$_SERVER["DOCUMENT_ROOT"] = __DIR__;
+define('STOP_STATISTICS', true);
+define('NO_KEEP_STATISTIC', 'Y');
+define('NO_AGENT_STATISTIC', 'Y');
+define('DisableEventsCheck', true);
+define('BX_SECURITY_SHOW_MESSAGE', true);
+define('NOT_CHECK_PERMISSIONS', true);
+
+$_SERVER['DOCUMENT_ROOT'] = dirname(__DIR__, 1);
+require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');
+CModule::IncludeModule('iblock');
+
+$users_res = CUser::GetList([ 'sort' => 'asc' ], 'desc', [], [ "SELECT" => [ "UF_*" ] ]);
+while($user = $users_res->Fetch())
+{
+ print "user_id = ".$user['ID']."\n";
+
+ if($user['ID'] != 1)
+ {
+ $user_properties = [
+ 'COMPANY' => $user['UF_ORG_TITLE'],
+ 'INN' => $user['UF_INN'],
+ 'KPP' => $user['UF_KPP'],
+ 'OGRN' => $user['UF_UF_OGRN'],
+ 'ADMINS' => [ $user['ID'] ],
+ 'USERS' => [ $user['ID'] ],
+ ];
+
+ $ar_new_client = [
+ 'IBLOCK_ID' => IBLOCK_ID_CLIENTS,
+ 'NAME' => $user['UF_ORG_TITLE'],
+ 'CODE' => $user['XML_ID'],
+ 'PROPERTY_VALUES' => $user_properties,
+ 'ACTIVE' => 'Y', // активен
+ ];
+
+ $new_client = new CIBlockElement;
+ if($new_client_id = $new_client->Add($ar_new_client))
+ {
+ print "New ID: ".$new_client_id."\n\n";
+ }
+ else
+ {
+ print "Error: ".$new_client->LAST_ERROR."\n\n";
+ print "EXISTED USER: \n\n";
+
+ $existed_client_res = CIBlockElement::GetList([ 'id' => 'desc' ], [ 'IBLOCK_ID' => IBLOCK_ID_CLIENTS, 'CODE' => $user['XML_ID'] ], false, []);
+ while ($existed_client_element = $existed_client_res->GetNextElement())
+ {
+ $existed_client_record = $existed_client_element->GetFields();
+ $existed_client_record['PROPERTIES'] = $existed_client_element->GetProperties();
+
+ $admins = $existed_client_record['PROPERTIES']['ADMINS']['VALUE'];
+ $users = $existed_client_record['PROPERTIES']['USERS']['VALUE'];
+
+ array_push($admins, $user['ID']);
+ array_push($users, $user['ID']);
+
+ $admins = array_unique($admins);
+ $users = array_unique($users);
+
+ $updated_fields = [
+ 'PROPERTY_VALUES' => [
+ 'ADMINS' => $admins,
+ 'USERS' => $users,
+ ]
+ ];
+
+ CIBlockElement::SetPropertyValuesEx($existed_client_record['ID'], IBLOCK_ID_CLIENTS, [ 'ADMINS' => $admins, 'USERS' => $users, ]);
+ print $existed_client_record['CODE']." UPDATED\n\n";
+
+ /*
+ if($ai = array_search(20, $admins))
+ {
+ array_splice($admins, $ai, 1);
+ }
+
+ if($ai = array_search(20, $users))
+ {
+ array_splice($users, $ai, 1);
+ }
+ */
+ /*
+ $updated_client = new CIBlockElement;
+ if($updated_client_result = $updated_client->Update($existed_client_record['ID'], $updated_fields))
+ {
+ print "UPDATED\n\n";
+ }
+ else
+ {
+ print "UPDATE ERROR: ".$updated_client->LAST_ERROR."\n\n";
+ }
+ */
+
+ //print_r($existed_client_record);
+ }
+ }
+
+ /*
+ $rules_res = CIBlockElement::GetList([ 'id' => 'desc' ], [ 'PROPERTY_USER.' => '' ], false, $options);
+ while ($rules_ob_element = $rules_res->GetNextElement())
+ {
+ $rules_ar_res = $rules_ob_element->GetFields();
+ $rules_ar_res['PROPERTIES'] = $rules_ob_element->GetProperties();
+ }
+ */
+ }
+}
+
+die();
+
+?>
\ No newline at end of file
diff --git a/mailru-domain4Ghb7ZTpPY5uXUCS.html b/mailru-domain4Ghb7ZTpPY5uXUCS.html
new file mode 100644
index 0000000..d42c10b
--- /dev/null
+++ b/mailru-domain4Ghb7ZTpPY5uXUCS.html
@@ -0,0 +1 @@
+mailru-domain: 4Ghb7ZTpPY5uXUCS
\ No newline at end of file
diff --git a/vizitka/aepifanov_200.jpg b/vizitka/aepifanov_200.jpg
deleted file mode 100644
index ee51753..0000000
Binary files a/vizitka/aepifanov_200.jpg and /dev/null differ
diff --git a/vizitka/boston.jpg b/vizitka/boston.jpg
deleted file mode 100644
index 63229a5..0000000
Binary files a/vizitka/boston.jpg and /dev/null differ
diff --git a/vizitka/data.json b/vizitka/data.json
deleted file mode 100644
index f092007..0000000
--- a/vizitka/data.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "fullName": "Анатолий Епифанов",
- "post": "Начальник отдела технической поддержки",
- "department": "Управление информационных технологий",
- "image": "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",
- "mobilePhone": "+7 926 566-0330",
- "workPhone": "+7 495 146-6767",
- "workPhoneCode": "доб. 11902",
- "email": "aepifanov@evoleasing.ru",
- "address": "115201, г. Москва, ул. Котляковская, д. 8",
- "whatsAppOn": true,
- "telegram": "verytolik"
-}
\ No newline at end of file
diff --git a/vizitka/index.php b/vizitka/index.php
index 55219c3..e14f7a8 100644
--- a/vizitka/index.php
+++ b/vizitka/index.php
@@ -1,224 +1,30 @@
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("Эволюция автолизинга: Приятно познакомиться");
-require_once($_SERVER["DOCUMENT_ROOT"].'/bitrix/php_interface/phpqrcode/qrlib.php');
?>
-
+
+
$request = \Bitrix\Main\Context::getCurrent()->getRequest();
$request->getQueryList()->toArray();
-$guid = $request->get("userid");
+$guid = $request->get("user");
-$ourData = file_get_contents("data.json");
-$object = json_decode($ourData);
+$APPLICATION->IncludeComponent(
+ "evolution:vizitka",
+ "",
+ Array(
+ "guid" => $guid,
+ )
+); ?>
-//Очищаем временную директорию от файлоы старше 2 дней
-$tmpfolders = $_SERVER["DOCUMENT_ROOT"].'/vizitka/tmp/';
-$fileSystemIterator = new FilesystemIterator($tmpfolders);
-$now = time();
-foreach ($fileSystemIterator as $file) {
- if ($now - $file->getCTime() >= 60 * 60 * 24 * 2) // 2 days
- unlink($tmpfolders.$file->getFilename());
-}
-?>
-
-
-
-
-
-//Разбираем данные из json
-if ($guid & $object->fullName) {
- $name = $object->fullName;
- $post = $object->post;
- $dept = $object->department;
- $company = "Эволюция Автолизинга";
- $mob = $object->mobilePhone;
- $mobcl = preg_replace('/[^0-9]/', '', $mob);
- $tel = $object->workPhone;
- $telcl = preg_replace('/[^0-9]/', '', $tel);
- $teladd = $object->workPhoneCode;
- $mail = $object->email;
- $address = $object->address;
- $whatsapp = $object->whatsAppOn;
- $telegram = $object->telegram;
- $www = "https://www.evoleasing.ru";
-
-//VCF для QR кода
-$qrtext = 'BEGIN:VCARD
-VERSION:4.0
-N;CHARSET=UTF-8:;'.$name.';;;
-FN;CHARSET=UTF-8:'.$name.'
-TITLE;CHARSET=UTF-8:'.$post.'
-EMAIL:'.$mail.'
-ORG;CHARSET=UTF-8:'.$company.'
-TEL:'.$mob.'
-URL;type=PREF:'.$www.'
-LANG:ru-RU
-END:VCARD';
-
-$qrimg = QRcode::png($qrtext, $_SERVER["DOCUMENT_ROOT"].'/vizitka/tmp/'.$guid.'.png', 'L', 4, 2);
-$im = imagecreatefrompng($_SERVER["DOCUMENT_ROOT"].'/vizitka/tmp/'.$guid.'.png');
-
-
-//Формируем vcf файл визитки для телефонов
-$vcarddata = 'BEGIN:VCARD
-VERSION:4.0
-N;CHARSET=UTF-8:;'.$name.';;;
-FN;CHARSET=UTF-8:'.$name.'
-TITLE;CHARSET=UTF-8:'.$post.'
-EMAIL:'.$mail.'
-ORG;CHARSET=UTF-8:'.$company.'
-TEL:'.$mob.'
-URL;type=PREF:'.$www.'
-PHOTO;ENCODING=BASE64;TYPE=JPEG:'.$object->image.'
-LANG:ru-RU
-END:VCARD';
-$vcarddata = mb_convert_encoding($vcarddata, "UTF-8");
-
-$vcffile = './tmp/'.$guid.'.vcf';
-$fp = fopen($vcffile, "w");
-fwrite($fp, $vcarddata);
-fclose($fp);
-
-//Формируем vcf файл визитки для компьютера
-$vcarddatawin = 'BEGIN:VCARD
-VERSION:4.0
-N;CHARSET=windows-1252:;'.$name.';;;
-FN;CHARSET=windows-1252:'.$name.'
-TITLE;CHARSET=windows-1252:'.$post.'
-EMAIL:'.$mail.'
-ORG;CHARSET=windows-1252:'.$company.'
-TEL:'.$mob.'
-URL;type=PREF:'.$www.'
-PHOTO;ENCODING=BASE64;TYPE=JPEG:'.$object->image.'
-LANG:ru-RU
-END:VCARD';
-
-$vcarddatawin = iconv("utf-8", "windows-1251", $vcarddatawin);
-
-$vcffilewin = './tmp/'.$guid.'-win.vcf';
-$fp = fopen($vcffilewin, "w");
-fwrite($fp, $vcarddatawin);
-fclose($fp);
-
-//Дальше вёрстка
-?>
-
-
-
=$name?>
-
=$post?>
-
=$dept?>
-
-
- image){?>
-

- }else{?>
-

- }?>
-
-
-
-
- Сохраните контакт на телефон
-
-

-
-
-
-
-
-
-} else {?>
-
-
-
-
-
-
- Такой
визитки
не существует
-
-
-
-
-
- или отправьте
заявку на лизинг
из формы ниже
-
-
-
-
-
-
-}?>
+
+