@ -1,3 +1,6 @@
|
||||
## 2023-08-22 v.6.4.0
|
||||
- Добавлена функция подписки на рекламно-информационные рассылки
|
||||
|
||||
## 2023-07-25 v.6.3.20
|
||||
- Исправлена ошибка некорректного вывода информации о программе лояльности в личном кабинете клиента
|
||||
|
||||
|
@ -200,6 +200,15 @@ class CustomerBuilder extends AbstractBuilder implements RetailcrmBuilderInterfa
|
||||
if (isset($this->dataCrm['address'])) {
|
||||
$this->buildAddress();
|
||||
}
|
||||
|
||||
// клиент считается подписанным при значении равном null
|
||||
if (array_key_exists('emailMarketingUnsubscribedAt', $this->dataCrm)) {
|
||||
if (empty($this->dataCrm['emailMarketingUnsubscribedAt'])) {
|
||||
$this->customer->setSubscribe('Y');
|
||||
} else {
|
||||
$this->customer->setSubscribe('N');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function buildPassword()
|
||||
|
@ -47,6 +47,9 @@ class Customer extends BaseModel
|
||||
/**@var string $PERSONAL_GENDER */
|
||||
protected $PERSONAL_GENDER;
|
||||
|
||||
/**@var string $UF_SUBSCRIBE_USER_EMAIL */
|
||||
protected $UF_SUBSCRIBE_USER_EMAIL;
|
||||
|
||||
/**
|
||||
* @param string $EMAIL
|
||||
* @return $this
|
||||
@ -200,4 +203,15 @@ class Customer extends BaseModel
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $UF_SUBSCRIBE_USER_EMAIL
|
||||
* @return $this
|
||||
*/
|
||||
public function setSubscribe($UF_SUBSCRIBE_USER_EMAIL)
|
||||
{
|
||||
$this->UF_SUBSCRIBE_USER_EMAIL = $UF_SUBSCRIBE_USER_EMAIL;
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
|
@ -237,12 +237,12 @@ class RCrmActions
|
||||
RetailCrmHistory::orderHistory();
|
||||
self::uploadOrdersAgent();
|
||||
} catch (\Throwable $exception) {
|
||||
RCrmActions::eventLog(
|
||||
'RCrmActions',
|
||||
'orderAgent',
|
||||
Logger::getInstance()->write(
|
||||
'Fail orderAgent:' . PHP_EOL .
|
||||
$exception->getMessage() . PHP_EOL .
|
||||
'File: ' . $exception->getFile() . PHP_EOL .
|
||||
'Line: ' . $exception->getLine() . PHP_EOL
|
||||
'Line: ' . $exception->getLine() . PHP_EOL,
|
||||
'orderAgent'
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -15,6 +15,7 @@
|
||||
<field id="cumulative_discount" group="customer">cumulativeDiscount</field>
|
||||
<field id="personal_discount" group="customer">personalDiscount</field>
|
||||
<field id="discount_card_number" group="customer">discountCardNumber</field>
|
||||
<field id="email_marketing_unsubscribed_at" group="customer">emailMarketingUnsubscribedAt</field>
|
||||
|
||||
<field id="address.index" group="customerAddress">index</field>
|
||||
<field id="address.country" group="customerAddress">countryIso</field>
|
||||
|
@ -81,12 +81,7 @@
|
||||
"default": false
|
||||
},
|
||||
"subscribed": {
|
||||
"type": "bool",
|
||||
"default": false
|
||||
},
|
||||
"subscribed": {
|
||||
"type": "bool",
|
||||
"default": false
|
||||
"type": "string"
|
||||
},
|
||||
"commentary": {
|
||||
"type": "string"
|
||||
|
@ -1,6 +1,10 @@
|
||||
<?php
|
||||
|
||||
use Bitrix\Main\Context\Culture;
|
||||
use Intaro\RetailCrm\Component\ServiceLocator;
|
||||
use Intaro\RetailCrm\Repository\UserRepository;
|
||||
use Intaro\RetailCrm\Service\CustomerService;
|
||||
use Intaro\RetailCrm\Service\LoyaltyAccountService;
|
||||
use Intaro\RetailCrm\Service\ManagerService;
|
||||
use Bitrix\Sale\Payment;
|
||||
use Bitrix\Catalog\Model\Event;
|
||||
@ -42,6 +46,8 @@ class RetailCrmEvent
|
||||
*/
|
||||
public static function OnAfterUserUpdate($arFields)
|
||||
{
|
||||
RetailCrmService::writeLogsSubscribe($arFields);
|
||||
|
||||
if (isset($GLOBALS['RETAIL_CRM_HISTORY']) && $GLOBALS['RETAIL_CRM_HISTORY']) {
|
||||
return false;
|
||||
}
|
||||
@ -632,6 +638,66 @@ class RetailCrmEvent
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Регистрирует пользователя в CRM системе после регистрации на сайте
|
||||
*
|
||||
* @param array $arFields
|
||||
* @return mixed
|
||||
* @throws \ReflectionException
|
||||
*/
|
||||
public static function OnAfterUserRegister(array $arFields): void
|
||||
{
|
||||
if (isset($arFields['USER_ID']) && $arFields['USER_ID'] > 0) {
|
||||
$user = UserRepository::getById($arFields['USER_ID']);
|
||||
|
||||
if (isset($_POST['REGISTER']['PERSONAL_PHONE'])) {
|
||||
$phone = htmlspecialchars($_POST['REGISTER']['PERSONAL_PHONE']);
|
||||
|
||||
if ($user !== null) {
|
||||
$user->setPersonalPhone($phone);
|
||||
$user->save();
|
||||
}
|
||||
|
||||
$arFields['PERSONAL_PHONE'] = $phone;
|
||||
}
|
||||
|
||||
/* @var CustomerService $customerService */
|
||||
$customerService = ServiceLocator::get(CustomerService::class);
|
||||
$customer = $customerService->createModel($arFields['USER_ID']);
|
||||
|
||||
$customerService->createOrUpdateCustomer($customer);
|
||||
|
||||
RetailCrmService::writeLogsSubscribe($arFields);
|
||||
|
||||
//Если пользователь выразил желание зарегистрироваться в ПЛ и согласился со всеми правилами
|
||||
if ((int) $arFields['UF_REG_IN_PL_INTARO'] === 1
|
||||
&& (int) $arFields['UF_AGREE_PL_INTARO'] === 1
|
||||
&& (int) $arFields['UF_PD_PROC_PL_INTARO'] === 1
|
||||
) {
|
||||
$phone = $arFields['PERSONAL_PHONE'] ?? '';
|
||||
$card = $arFields['UF_CARD_NUM_INTARO'] ?? '';
|
||||
$customerId = (string) $arFields['USER_ID'];
|
||||
|
||||
/** @var LoyaltyAccountService $service */
|
||||
$service = ServiceLocator::get(LoyaltyAccountService::class);
|
||||
$createResponse = $service->createLoyaltyAccount($phone, $card, $customerId);
|
||||
|
||||
$service->activateLpUserInBitrix($createResponse, $arFields['USER_ID']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $arFields
|
||||
*
|
||||
* @return void
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
public static function OnAfterUserAdd($arFields)
|
||||
{
|
||||
RetailCrmService::writeLogsSubscribe($arFields);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
|
@ -155,9 +155,8 @@ class RetailCrmHistory
|
||||
|
||||
if ($registerNewUser === true) {
|
||||
$customerBuilder->buildPassword();
|
||||
$registeredUserID = $newUser->Add(
|
||||
$customerBuilder->getCustomer()->getObjectToArray()
|
||||
);
|
||||
|
||||
$registeredUserID = $newUser->Add(self::getDataUser($customerBuilder));
|
||||
|
||||
if ($registeredUserID === false) {
|
||||
RCrmActions::eventLog(
|
||||
@ -198,7 +197,9 @@ class RetailCrmHistory
|
||||
);
|
||||
}
|
||||
|
||||
$u = $newUser->Update($customer['externalId'], $customerBuilder->getCustomer()->getObjectToArray());
|
||||
$customerArray = $customerBuilder->getCustomer()->getObjectToArray();
|
||||
$u = $newUser->Update($customer['externalId'], self::convertBooleanFields($customerArray));
|
||||
|
||||
if (!$u) {
|
||||
RCrmActions::eventLog(
|
||||
'RetailCrmHistory::customerHistory',
|
||||
@ -457,9 +458,13 @@ class RetailCrmHistory
|
||||
$corporateCustomerBuilder->setCorporateContact($userData);
|
||||
|
||||
$newUser = new CUser();
|
||||
$registeredUserID = $newUser->Add(
|
||||
$corporateCustomerBuilder->getCustomer()->getObjectToArray()
|
||||
);
|
||||
$customerArray = $corporateCustomerBuilder->getCustomer()->getObjectToArray();
|
||||
|
||||
if (!array_key_exists('UF_SUBSCRIBE_USER_EMAIL', $customerArray)) {
|
||||
$customerArray['UF_SUBSCRIBE_USER_EMAIL'] = 'Y';
|
||||
}
|
||||
|
||||
$registeredUserID = $newUser->Add(self::convertBooleanFields($customerArray));
|
||||
|
||||
if ($registeredUserID === false) {
|
||||
RCrmActions::eventLog(
|
||||
@ -921,9 +926,8 @@ class RetailCrmHistory
|
||||
}
|
||||
|
||||
if ($registerNewUser === true) {
|
||||
$registeredUserID = $newUser->Add(
|
||||
$customerBuilder->getCustomer()->getObjectToArray()
|
||||
);
|
||||
$registeredUserID = $newUser->Add(self::getDataUser($customerBuilder));
|
||||
|
||||
if ($registeredUserID === false) {
|
||||
RCrmActions::eventLog(
|
||||
'RetailCrmHistory::orderHistory',
|
||||
@ -2088,4 +2092,34 @@ class RetailCrmHistory
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $array
|
||||
* @return array
|
||||
*/
|
||||
public static function convertBooleanFields($array)
|
||||
{
|
||||
foreach ($array as $key => $value) {
|
||||
if ($value === 'N') {
|
||||
$array[$key] = false;
|
||||
}
|
||||
}
|
||||
|
||||
return $array;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $customerBuilder
|
||||
* @return array
|
||||
*/
|
||||
private static function getDataUser($customerBuilder)
|
||||
{
|
||||
$customerArray = $customerBuilder->getCustomer()->getObjectToArray();
|
||||
|
||||
if (!array_key_exists('UF_SUBSCRIBE_USER_EMAIL', $customerArray)) {
|
||||
$customerArray['UF_SUBSCRIBE_USER_EMAIL'] = 'Y';
|
||||
}
|
||||
|
||||
return self::convertBooleanFields($customerArray);
|
||||
}
|
||||
}
|
||||
|
@ -154,4 +154,28 @@ class RetailCrmService
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $arFields
|
||||
* @return void
|
||||
*/
|
||||
public static function writeLogsSubscribe(array $arFields): void
|
||||
{
|
||||
if (array_key_exists('UF_SUBSCRIBE_USER_EMAIL', $arFields)) {
|
||||
$actionSub = GetMessage('SUBSCRIBED_USER');
|
||||
$fileSub = 'subscribe';
|
||||
|
||||
if (empty($arFields['UF_SUBSCRIBE_USER_EMAIL'])) {
|
||||
$actionSub = GetMessage('UNSUBSCRIBED_USER');
|
||||
$fileSub = 'unSubscribe';
|
||||
}
|
||||
|
||||
$id = $arFields['ID'] ?? $arFields['USER_ID'];
|
||||
|
||||
Logger::getInstance()->write(
|
||||
$actionSub . ' (' . $id . ')',
|
||||
$fileSub
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -27,7 +27,6 @@ class RetailCrmUser
|
||||
|
||||
$customer = self::getSimpleCustomer($arFields);
|
||||
$customer['createdAt'] = new \DateTime($arFields['DATE_REGISTER']);
|
||||
$customer['subscribed'] = false;
|
||||
$customer['contragent'] = ['contragentType' => $contragentType];
|
||||
|
||||
if ($send && isset($_COOKIE['_rc']) && $_COOKIE['_rc'] != '') {
|
||||
@ -49,6 +48,10 @@ class RetailCrmUser
|
||||
$normalizer = new RestNormalizer();
|
||||
$customer = $normalizer->normalize($customer, 'customers');
|
||||
|
||||
if (empty($arFields['UF_SUBSCRIBE_USER_EMAIL'])) {
|
||||
$customer['subscribed'] = false;
|
||||
}
|
||||
|
||||
Logger::getInstance()->write($customer, 'customerSend');
|
||||
|
||||
if (
|
||||
@ -90,6 +93,7 @@ class RetailCrmUser
|
||||
if ($found) {
|
||||
$normalizer = new RestNormalizer();
|
||||
$customer = $normalizer->normalize($customer, 'customers');
|
||||
$customer = self::getBooleanFields($customer, $arFields);
|
||||
|
||||
if (function_exists('retailCrmBeforeCustomerSend')) {
|
||||
$newResCustomer = retailCrmBeforeCustomerSend($customer);
|
||||
@ -133,4 +137,17 @@ class RetailCrmUser
|
||||
|
||||
return $customer;
|
||||
}
|
||||
|
||||
private static function getBooleanFields($customer, $arFields)
|
||||
{
|
||||
if (isset($arFields['UF_SUBSCRIBE_USER_EMAIL'])) {
|
||||
if ($arFields['UF_SUBSCRIBE_USER_EMAIL'] === "1") {
|
||||
$customer['subscribed'] = true;
|
||||
} else {
|
||||
$customer['subscribed'] = false;
|
||||
}
|
||||
}
|
||||
|
||||
return $customer;
|
||||
}
|
||||
}
|
||||
|
@ -1 +1 @@
|
||||
- Исправлена ошибка некорректного вывода информации о программе лояльности в личном кабинете клиента
|
||||
- Добавлена функция подписки на рекламно-информационные рассылки
|
||||
|
@ -81,3 +81,4 @@ $MESS["SEC"] = "сек.";
|
||||
$MESS["RESEND_SMS"] = "Отправить смс повторно";
|
||||
$MESS["RESEND_POSSIBLE"] = "Повторная отправка смс возможна через";
|
||||
$MESS["LOYALTY_CONNECTION_ERROR"] = "Возникли проблемы с подключением к удаленному серверу. Попробуйте перезагрузить страницу.";
|
||||
$MESS["SUBSCRIBE_EMAIL"] = "Согласен на рекламно-информационные рассылки";
|
||||
|
@ -540,6 +540,19 @@ if ($arResult["LOYALTY_CONNECTION_ERROR"] === true) {
|
||||
<td><?=GetMessage("REGISTER_CAPTCHA_PROMT")?>:<span class="starrequired">*</span></td>
|
||||
<td><input type="text" name="captcha_word" maxlength="50" value="" autocomplete="off"/></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
<div class="fields boolean">
|
||||
<div class="fields boolean">
|
||||
<label>
|
||||
<input type="checkbox" name="UF_SUBSCRIBE_USER_EMAIL" id="checkbox_UF_SUBSCRIBE_USER_EMAIL"> <?=GetMessage("SUBSCRIBE_EMAIL")?>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<?
|
||||
}
|
||||
/* !CAPTCHA */
|
||||
|
@ -0,0 +1,10 @@
|
||||
<?
|
||||
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
|
||||
$arTemplateParameters = array(
|
||||
"USER_PROPERTY_NAME"=>array(
|
||||
"NAME" => GetMessage("USER_PROPERTY_NAME"),
|
||||
"TYPE" => "STRING",
|
||||
"DEFAULT" => "",
|
||||
),
|
||||
);
|
||||
?>
|
After Width: | Height: | Size: 574 B |
After Width: | Height: | Size: 566 B |
@ -0,0 +1,3 @@
|
||||
<?
|
||||
$MESS ['USER_PROPERTY_NAME'] = "User properties section title";
|
||||
?>
|
@ -0,0 +1,64 @@
|
||||
<?
|
||||
$MESS['AUTH_NONSECURE_NOTE'] = "The password will be sent in open form. Enable JavaScript in your web browser to enable password encryption.";
|
||||
$MESS['AUTH_REGISTER'] = "Registration";
|
||||
$MESS['AUTH_REQ'] = "Required fields.";
|
||||
$MESS['AUTH_SECURE_NOTE'] = "The password will be encrypted before it is sent. This will prevent the password from appearing in open form over data transmission channels.";
|
||||
$MESS['MAIN_REGISTER_AUTH'] = "You have been registered and authorized successfully.";
|
||||
$MESS['REGISTER_CAPTCHA_PROMT'] = "CAPTCHA image characters";
|
||||
$MESS['REGISTER_CAPTCHA_TITLE'] = "Spam bot protection (CAPTCHA)";
|
||||
$MESS['REGISTER_EMAIL_WILL_BE_SENT'] = "A registration confirmation request will be sent to the specified e-mail address.";
|
||||
$MESS['REGISTER_FIELD_AUTO_TIME_ZONE'] = "Time Zone";
|
||||
$MESS['REGISTER_FIELD_CONFIRM_PASSWORD'] = "Password confirmation";
|
||||
$MESS['REGISTER_FIELD_EMAIL'] = "E-mail";
|
||||
$MESS['REGISTER_FIELD_LAST_NAME'] = "Last Name";
|
||||
$MESS['REGISTER_FIELD_LOGIN'] = "Login (min. 3 characters)";
|
||||
$MESS['REGISTER_FIELD_NAME'] = "Name";
|
||||
$MESS['REGISTER_FIELD_PASSWORD'] = "Password";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_BIRTHDAY'] = "Birthday";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_CITY'] = "City";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_COUNTRY'] = "Country";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_FAX'] = "Fax";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_GENDER'] = "Gender";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_ICQ'] = "ICQ";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_MAILBOX'] = "Mailbox";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_MOBILE'] = "Mobile";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_NOTES'] = "Notes";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_PAGER'] = "Pager";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_PHONE'] = "Phone";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_PHOTO'] = "Photo";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_PROFESSION'] = "Job Title";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_STATE'] = "State";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_STREET'] = "Address";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_WWW'] = "Web page";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_ZIP'] = "Zip code";
|
||||
$MESS['REGISTER_FIELD_PHONE_NUMBER'] = "Phone number";
|
||||
$MESS['REGISTER_FIELD_SECOND_NAME'] = "Middle Name";
|
||||
$MESS['REGISTER_FIELD_TITLE'] = "Salutation";
|
||||
$MESS['REGISTER_FIELD_WORK_CITY'] = "City";
|
||||
$MESS['REGISTER_FIELD_WORK_COMPANY'] = "Company";
|
||||
$MESS['REGISTER_FIELD_WORK_COUNTRY'] = "Country";
|
||||
$MESS['REGISTER_FIELD_WORK_DEPARTMENT'] = "Department";
|
||||
$MESS['REGISTER_FIELD_WORK_FAX'] = "Fax";
|
||||
$MESS['REGISTER_FIELD_WORK_LOGO'] = "Company logo";
|
||||
$MESS['REGISTER_FIELD_WORK_MAILBOX'] = "Mailbox";
|
||||
$MESS['REGISTER_FIELD_WORK_NOTES'] = "Notes";
|
||||
$MESS['REGISTER_FIELD_WORK_PAGER'] = "Pager";
|
||||
$MESS['REGISTER_FIELD_WORK_PHONE'] = "Phone";
|
||||
$MESS['REGISTER_FIELD_WORK_POSITION'] = "Position";
|
||||
$MESS['REGISTER_FIELD_WORK_PROFILE'] = "Profile";
|
||||
$MESS['REGISTER_FIELD_WORK_STATE'] = "State";
|
||||
$MESS['REGISTER_FIELD_WORK_STREET'] = "Address";
|
||||
$MESS['REGISTER_FIELD_WORK_WWW'] = "Web page";
|
||||
$MESS['REGISTER_FIELD_WORK_ZIP'] = "Zip code";
|
||||
$MESS['USER_DONT_KNOW'] = "(unknown)";
|
||||
$MESS['USER_FEMALE'] = "Female";
|
||||
$MESS['USER_MALE'] = "Male";
|
||||
$MESS['main_profile_time_zones_auto'] = "Auto Time Zone:";
|
||||
$MESS['main_profile_time_zones_auto_def'] = "(default)";
|
||||
$MESS['main_profile_time_zones_auto_no'] = "No, select from list";
|
||||
$MESS['main_profile_time_zones_auto_yes'] = "Yes, use browser settings";
|
||||
$MESS['main_profile_time_zones_zones'] = "Time Zone:";
|
||||
$MESS['main_register_sms'] = "SMS confirmation code:";
|
||||
$MESS['main_register_sms_send'] = "Submit";
|
||||
$MESS["SUBSCRIBE_EMAIL"] = "I agree to receive promotional newsletters";
|
||||
?>
|
@ -0,0 +1,3 @@
|
||||
<?
|
||||
$MESS ['USER_PROPERTY_NAME'] = "Название блока пользовательских свойств";
|
||||
?>
|
@ -0,0 +1,64 @@
|
||||
<?
|
||||
$MESS["AUTH_REGISTER"] = "Регистрация";
|
||||
$MESS["REGISTER_CAPTCHA_TITLE"] = "Защита от автоматической регистрации";
|
||||
$MESS["REGISTER_CAPTCHA_PROMT"] = "Введите слово на картинке";
|
||||
$MESS["AUTH_REQ"] = "Поля, обязательные для заполнения.";
|
||||
$MESS["USER_DONT_KNOW"] = "(неизвестно)";
|
||||
$MESS["USER_MALE"] = "Мужской";
|
||||
$MESS["USER_FEMALE"] = "Женский";
|
||||
$MESS["REGISTER_FIELD_LOGIN"] = "Логин (мин. 3 символа)";
|
||||
$MESS["REGISTER_FIELD_EMAIL"] = "Email";
|
||||
$MESS["REGISTER_FIELD_PASSWORD"] = "Пароль";
|
||||
$MESS["REGISTER_FIELD_CONFIRM_PASSWORD"] = "Подтверждение пароля";
|
||||
$MESS["REGISTER_FIELD_TITLE"] = "Обращение";
|
||||
$MESS["REGISTER_FIELD_NAME"] = "Имя";
|
||||
$MESS["REGISTER_FIELD_SECOND_NAME"] = "Отчество";
|
||||
$MESS["REGISTER_FIELD_LAST_NAME"] = "Фамилия";
|
||||
$MESS["REGISTER_FIELD_AUTO_TIME_ZONE"] = "Часовой пояс";
|
||||
$MESS["REGISTER_FIELD_PERSONAL_PROFESSION"] = "Профессия";
|
||||
$MESS["REGISTER_FIELD_PERSONAL_WWW"] = "WWW-страница";
|
||||
$MESS["REGISTER_FIELD_PERSONAL_ICQ"] = "ICQ";
|
||||
$MESS["REGISTER_FIELD_PERSONAL_GENDER"] = "Пол";
|
||||
$MESS["REGISTER_FIELD_PERSONAL_BIRTHDAY"] = "Дата рождения";
|
||||
$MESS["REGISTER_FIELD_PERSONAL_PHOTO"] = "Фотография";
|
||||
$MESS["REGISTER_FIELD_PERSONAL_PHONE"] = "Телефон";
|
||||
$MESS["REGISTER_FIELD_PERSONAL_FAX"] = "Факс";
|
||||
$MESS["REGISTER_FIELD_PERSONAL_MOBILE"] = "Мобильный";
|
||||
$MESS["REGISTER_FIELD_PERSONAL_PAGER"] = "Пейджер";
|
||||
$MESS["REGISTER_FIELD_PERSONAL_STREET"] = "Улица, дом";
|
||||
$MESS["REGISTER_FIELD_PERSONAL_MAILBOX"] = "Почтовый ящик";
|
||||
$MESS["REGISTER_FIELD_PERSONAL_CITY"] = "Город";
|
||||
$MESS["REGISTER_FIELD_PERSONAL_STATE"] = "Область / край";
|
||||
$MESS["REGISTER_FIELD_PERSONAL_ZIP"] = "Почтовый индекс";
|
||||
$MESS["REGISTER_FIELD_PERSONAL_COUNTRY"] = "Страна";
|
||||
$MESS["REGISTER_FIELD_PERSONAL_NOTES"] = "Дополнительные заметки";
|
||||
$MESS["REGISTER_FIELD_WORK_COMPANY"] = "Наименование компании";
|
||||
$MESS["REGISTER_FIELD_WORK_DEPARTMENT"] = "Департамент / Отдел";
|
||||
$MESS["REGISTER_FIELD_WORK_POSITION"] = "Должность";
|
||||
$MESS["REGISTER_FIELD_WORK_WWW"] = "WWW-страница (работа)";
|
||||
$MESS["REGISTER_FIELD_WORK_PHONE"] = "Телефон (работа)";
|
||||
$MESS["REGISTER_FIELD_WORK_FAX"] = "Факс (работа)";
|
||||
$MESS["REGISTER_FIELD_WORK_PAGER"] = "Пейджер (работа)";
|
||||
$MESS["REGISTER_FIELD_WORK_STREET"] = "Улица, дом (работа)";
|
||||
$MESS["REGISTER_FIELD_WORK_MAILBOX"] = "Почтовый ящик (работа)";
|
||||
$MESS["REGISTER_FIELD_WORK_CITY"] = "Город (работа)";
|
||||
$MESS["REGISTER_FIELD_WORK_STATE"] = "Область / край (работа)";
|
||||
$MESS["REGISTER_FIELD_WORK_ZIP"] = "Почтовый индекс (работа)";
|
||||
$MESS["REGISTER_FIELD_WORK_COUNTRY"] = "Страна (работа)";
|
||||
$MESS["REGISTER_FIELD_WORK_PROFILE"] = "Направления деятельности";
|
||||
$MESS["REGISTER_FIELD_WORK_LOGO"] = "Логотип компании";
|
||||
$MESS["REGISTER_FIELD_WORK_NOTES"] = "Дополнительные заметки (работа)";
|
||||
$MESS["REGISTER_FIELD_PHONE_NUMBER"] = "Номер телефона";
|
||||
$MESS["REGISTER_EMAIL_WILL_BE_SENT"] = "На указанный в форме email придет запрос на подтверждение регистрации.";
|
||||
$MESS["MAIN_REGISTER_AUTH"] = "Вы зарегистрированы на сервере и успешно авторизованы.";
|
||||
$MESS["main_profile_time_zones_auto"] = "Автоматически определять часовой пояс:";
|
||||
$MESS["main_profile_time_zones_auto_def"] = "(по умолчанию)";
|
||||
$MESS["main_profile_time_zones_auto_yes"] = "Да, определить по браузеру";
|
||||
$MESS["main_profile_time_zones_auto_no"] = "Нет, выбрать из списка";
|
||||
$MESS["main_profile_time_zones_zones"] = "Часовой пояс:";
|
||||
$MESS["AUTH_SECURE_NOTE"] = "Перед отправкой формы пароль будет зашифрован в браузере. Это позволит избежать передачи пароля в открытом виде.";
|
||||
$MESS["AUTH_NONSECURE_NOTE"] = "Пароль будет отправлен в открытом виде. Включите JavaScript в браузере, чтобы зашифровать пароль перед отправкой.";
|
||||
$MESS["main_register_sms"] = "Код подтверждения из СМС:";
|
||||
$MESS["main_register_sms_send"] = "Отправить";
|
||||
$MESS["SUBSCRIBE_EMAIL"] = "Согласен на рекламно-информационные рассылки";
|
||||
?>
|
@ -0,0 +1,5 @@
|
||||
div.bx-auth-reg input.bx-auth-input {vertical-align:middle;}
|
||||
div.bx-auth-reg span.bx-auth-secure {background-color:#FFFAE3; border:1px solid #DEDBC8; padding:2px; display:inline-block; vertical-align:middle;}
|
||||
div.bx-auth-reg div.bx-auth-secure-icon {background-image:url(images/sec.png); background-repeat:no-repeat; background-position:center; width:19px; height:18px;}
|
||||
div.bx-auth-reg div.bx-auth-secure-unlock {background-image:url(images/sec-unlocked.png);}
|
||||
|
@ -0,0 +1 @@
|
||||
div.bx-auth-reg input.bx-auth-input{vertical-align:middle}div.bx-auth-reg span.bx-auth-secure{background-color:#fffae3;border:1px solid #dedbc8;padding:2px;display:inline-block;vertical-align:middle}div.bx-auth-reg div.bx-auth-secure-icon{background-image:url(images/sec.png);background-repeat:no-repeat;background-position:center;width:19px;height:18px}div.bx-auth-reg div.bx-auth-secure-unlock{background-image:url(images/sec-unlocked.png)}
|
@ -0,0 +1,279 @@
|
||||
<?
|
||||
/**
|
||||
* Bitrix Framework
|
||||
* @package bitrix
|
||||
* @subpackage main
|
||||
* @copyright 2001-2014 Bitrix
|
||||
*/
|
||||
|
||||
/**
|
||||
* Bitrix vars
|
||||
* @global CMain $APPLICATION
|
||||
* @global CUser $USER
|
||||
* @param array $arParams
|
||||
* @param array $arResult
|
||||
* @param CBitrixComponentTemplate $this
|
||||
*/
|
||||
|
||||
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)
|
||||
die();
|
||||
|
||||
if($arResult["SHOW_SMS_FIELD"] == true)
|
||||
{
|
||||
CJSCore::Init('phone_auth');
|
||||
}
|
||||
?>
|
||||
<div class="bx-auth-reg">
|
||||
|
||||
<?if($USER->IsAuthorized()):?>
|
||||
|
||||
<p><?echo GetMessage("MAIN_REGISTER_AUTH")?></p>
|
||||
|
||||
<?else:?>
|
||||
<?
|
||||
if (!empty($arResult["ERRORS"])):
|
||||
foreach ($arResult["ERRORS"] as $key => $error)
|
||||
if (intval($key) == 0 && $key !== 0)
|
||||
$arResult["ERRORS"][$key] = str_replace("#FIELD_NAME#", """.GetMessage("REGISTER_FIELD_".$key).""", $error);
|
||||
|
||||
ShowError(implode("<br />", $arResult["ERRORS"]));
|
||||
|
||||
elseif($arResult["USE_EMAIL_CONFIRMATION"] === "Y"):
|
||||
?>
|
||||
<p><?echo GetMessage("REGISTER_EMAIL_WILL_BE_SENT")?></p>
|
||||
<?endif?>
|
||||
|
||||
<?if($arResult["SHOW_SMS_FIELD"] == true):?>
|
||||
|
||||
<form method="post" action="<?=POST_FORM_ACTION_URI?>" name="regform">
|
||||
<?
|
||||
if($arResult["BACKURL"] <> ''):
|
||||
?>
|
||||
<input type="hidden" name="backurl" value="<?=$arResult["BACKURL"]?>" />
|
||||
<?
|
||||
endif;
|
||||
?>
|
||||
<input type="hidden" name="SIGNED_DATA" value="<?=htmlspecialcharsbx($arResult["SIGNED_DATA"])?>" />
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><?echo GetMessage("main_register_sms")?><span class="starrequired">*</span></td>
|
||||
<td><input size="30" type="text" name="SMS_CODE" value="<?=htmlspecialcharsbx($arResult["SMS_CODE"])?>" autocomplete="off" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td><input type="submit" name="code_submit_button" value="<?echo GetMessage("main_register_sms_send")?>" /></td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</form>
|
||||
|
||||
<script>
|
||||
new BX.PhoneAuth({
|
||||
containerId: 'bx_register_resend',
|
||||
errorContainerId: 'bx_register_error',
|
||||
interval: <?=$arResult["PHONE_CODE_RESEND_INTERVAL"]?>,
|
||||
data:
|
||||
<?=CUtil::PhpToJSObject([
|
||||
'signedData' => $arResult["SIGNED_DATA"],
|
||||
])?>,
|
||||
onError:
|
||||
function(response)
|
||||
{
|
||||
var errorDiv = BX('bx_register_error');
|
||||
var errorNode = BX.findChildByClassName(errorDiv, 'errortext');
|
||||
errorNode.innerHTML = '';
|
||||
for(var i = 0; i < response.errors.length; i++)
|
||||
{
|
||||
errorNode.innerHTML = errorNode.innerHTML + BX.util.htmlspecialchars(response.errors[i].message) + '<br>';
|
||||
}
|
||||
errorDiv.style.display = '';
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<div id="bx_register_error" style="display:none"><?ShowError("error")?></div>
|
||||
|
||||
<div id="bx_register_resend"></div>
|
||||
|
||||
<?else:?>
|
||||
|
||||
<form method="post" action="<?=POST_FORM_ACTION_URI?>" name="regform" enctype="multipart/form-data">
|
||||
<?
|
||||
if($arResult["BACKURL"] <> ''):
|
||||
?>
|
||||
<input type="hidden" name="backurl" value="<?=$arResult["BACKURL"]?>" />
|
||||
<?
|
||||
endif;
|
||||
?>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<td colspan="2"><b><?=GetMessage("AUTH_REGISTER")?></b></td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?foreach ($arResult["SHOW_FIELDS"] as $FIELD):?>
|
||||
<?if($FIELD == "AUTO_TIME_ZONE" && $arResult["TIME_ZONE_ENABLED"] == true):?>
|
||||
<tr>
|
||||
<td><?echo GetMessage("main_profile_time_zones_auto")?><?if ($arResult["REQUIRED_FIELDS_FLAGS"][$FIELD] == "Y"):?><span class="starrequired">*</span><?endif?></td>
|
||||
<td>
|
||||
<select name="REGISTER[AUTO_TIME_ZONE]" onchange="this.form.elements['REGISTER[TIME_ZONE]'].disabled=(this.value != 'N')">
|
||||
<option value=""><?echo GetMessage("main_profile_time_zones_auto_def")?></option>
|
||||
<option value="Y"<?=$arResult["VALUES"][$FIELD] == "Y" ? " selected=\"selected\"" : ""?>><?echo GetMessage("main_profile_time_zones_auto_yes")?></option>
|
||||
<option value="N"<?=$arResult["VALUES"][$FIELD] == "N" ? " selected=\"selected\"" : ""?>><?echo GetMessage("main_profile_time_zones_auto_no")?></option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?echo GetMessage("main_profile_time_zones_zones")?></td>
|
||||
<td>
|
||||
<select name="REGISTER[TIME_ZONE]"<?if(!isset($_REQUEST["REGISTER"]["TIME_ZONE"])) echo 'disabled="disabled"'?>>
|
||||
<?foreach($arResult["TIME_ZONE_LIST"] as $tz=>$tz_name):?>
|
||||
<option value="<?=htmlspecialcharsbx($tz)?>"<?=$arResult["VALUES"]["TIME_ZONE"] == $tz ? " selected=\"selected\"" : ""?>><?=htmlspecialcharsbx($tz_name)?></option>
|
||||
<?endforeach?>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<?else:?>
|
||||
<tr>
|
||||
<td><?=GetMessage("REGISTER_FIELD_".$FIELD)?>:<?if ($arResult["REQUIRED_FIELDS_FLAGS"][$FIELD] == "Y"):?><span class="starrequired">*</span><?endif?></td>
|
||||
<td><?
|
||||
switch ($FIELD)
|
||||
{
|
||||
case "PASSWORD":
|
||||
?><input size="30" type="password" name="REGISTER[<?=$FIELD?>]" value="<?=$arResult["VALUES"][$FIELD]?>" autocomplete="off" class="bx-auth-input" />
|
||||
<?if($arResult["SECURE_AUTH"]):?>
|
||||
<span class="bx-auth-secure" id="bx_auth_secure" title="<?echo GetMessage("AUTH_SECURE_NOTE")?>" style="display:none">
|
||||
<div class="bx-auth-secure-icon"></div>
|
||||
</span>
|
||||
<noscript>
|
||||
<span class="bx-auth-secure" title="<?echo GetMessage("AUTH_NONSECURE_NOTE")?>">
|
||||
<div class="bx-auth-secure-icon bx-auth-secure-unlock"></div>
|
||||
</span>
|
||||
</noscript>
|
||||
<script type="text/javascript">
|
||||
document.getElementById('bx_auth_secure').style.display = 'inline-block';
|
||||
</script>
|
||||
<?endif?>
|
||||
<?
|
||||
break;
|
||||
case "CONFIRM_PASSWORD":
|
||||
?><input size="30" type="password" name="REGISTER[<?=$FIELD?>]" value="<?=$arResult["VALUES"][$FIELD]?>" autocomplete="off" /><?
|
||||
break;
|
||||
|
||||
case "PERSONAL_GENDER":
|
||||
?><select name="REGISTER[<?=$FIELD?>]">
|
||||
<option value=""><?=GetMessage("USER_DONT_KNOW")?></option>
|
||||
<option value="M"<?=$arResult["VALUES"][$FIELD] == "M" ? " selected=\"selected\"" : ""?>><?=GetMessage("USER_MALE")?></option>
|
||||
<option value="F"<?=$arResult["VALUES"][$FIELD] == "F" ? " selected=\"selected\"" : ""?>><?=GetMessage("USER_FEMALE")?></option>
|
||||
</select><?
|
||||
break;
|
||||
|
||||
case "PERSONAL_COUNTRY":
|
||||
case "WORK_COUNTRY":
|
||||
?><select name="REGISTER[<?=$FIELD?>]"><?
|
||||
foreach ($arResult["COUNTRIES"]["reference_id"] as $key => $value)
|
||||
{
|
||||
?><option value="<?=$value?>"<?if ($value == $arResult["VALUES"][$FIELD]):?> selected="selected"<?endif?>><?=$arResult["COUNTRIES"]["reference"][$key]?></option>
|
||||
<?
|
||||
}
|
||||
?></select><?
|
||||
break;
|
||||
|
||||
case "PERSONAL_PHOTO":
|
||||
case "WORK_LOGO":
|
||||
?><input size="30" type="file" name="REGISTER_FILES_<?=$FIELD?>" /><?
|
||||
break;
|
||||
|
||||
case "PERSONAL_NOTES":
|
||||
case "WORK_NOTES":
|
||||
?><textarea cols="30" rows="5" name="REGISTER[<?=$FIELD?>]"><?=$arResult["VALUES"][$FIELD]?></textarea><?
|
||||
break;
|
||||
default:
|
||||
if ($FIELD == "PERSONAL_BIRTHDAY"):?><small><?=$arResult["DATE_FORMAT"]?></small><br /><?endif;
|
||||
?><input size="30" type="text" name="REGISTER[<?=$FIELD?>]" value="<?=$arResult["VALUES"][$FIELD]?>" /><?
|
||||
if ($FIELD == "PERSONAL_BIRTHDAY")
|
||||
$APPLICATION->IncludeComponent(
|
||||
'bitrix:main.calendar',
|
||||
'',
|
||||
array(
|
||||
'SHOW_INPUT' => 'N',
|
||||
'FORM_NAME' => 'regform',
|
||||
'INPUT_NAME' => 'REGISTER[PERSONAL_BIRTHDAY]',
|
||||
'SHOW_TIME' => 'N'
|
||||
),
|
||||
null,
|
||||
array("HIDE_ICONS"=>"Y")
|
||||
);
|
||||
?><?
|
||||
}?></td>
|
||||
</tr>
|
||||
<?endif?>
|
||||
<?endforeach?>
|
||||
<?// ********************* User properties ***************************************************?>
|
||||
<?if($arResult["USER_PROPERTIES"]["SHOW"] == "Y"):?>
|
||||
<tr><td colspan="2"><?=trim($arParams["USER_PROPERTY_NAME"]) <> '' ? $arParams["USER_PROPERTY_NAME"] : GetMessage("USER_TYPE_EDIT_TAB")?></td></tr>
|
||||
<?foreach ($arResult["USER_PROPERTIES"]["DATA"] as $FIELD_NAME => $arUserField):?>
|
||||
<tr><td><?=$arUserField["EDIT_FORM_LABEL"]?>:<?if ($arUserField["MANDATORY"]=="Y"):?><span class="starrequired">*</span><?endif;?></td><td>
|
||||
<?$APPLICATION->IncludeComponent(
|
||||
"bitrix:system.field.edit",
|
||||
$arUserField["USER_TYPE"]["USER_TYPE_ID"],
|
||||
array("bVarsFromForm" => $arResult["bVarsFromForm"], "arUserField" => $arUserField, "form_name" => "regform"), null, array("HIDE_ICONS"=>"Y"));?></td></tr>
|
||||
<?endforeach;?>
|
||||
<?endif;?>
|
||||
<?// ******************** /User properties ***************************************************?>
|
||||
<?
|
||||
/* CAPTCHA */
|
||||
if ($arResult["USE_CAPTCHA"] == "Y")
|
||||
{
|
||||
?>
|
||||
<tr>
|
||||
<td colspan="2"><b><?=GetMessage("REGISTER_CAPTCHA_TITLE")?></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
<input type="hidden" name="captcha_sid" value="<?=$arResult["CAPTCHA_CODE"]?>" />
|
||||
<img src="/bitrix/tools/captcha.php?captcha_sid=<?=$arResult["CAPTCHA_CODE"]?>" width="180" height="40" alt="CAPTCHA" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?=GetMessage("REGISTER_CAPTCHA_PROMT")?>:<span class="starrequired">*</span></td>
|
||||
<td><input type="text" name="captcha_word" maxlength="50" value="" autocomplete="off" /></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
<label>
|
||||
<input type="checkbox" name="UF_SUBSCRIBE_USER_EMAIL" id="checkbox_UF_SUBSCRIBE_USER_EMAIL"> <?=GetMessage("SUBSCRIBE_EMAIL")?>
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<?
|
||||
}
|
||||
/* !CAPTCHA */
|
||||
?>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td><input type="submit" name="register_submit_button" value="<?=GetMessage("AUTH_REGISTER")?>" /></td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</form>
|
||||
|
||||
<p><?echo $arResult["GROUP_POLICY"]["PASSWORD_REQUIREMENTS"];?></p>
|
||||
|
||||
<?endif //$arResult["SHOW_SMS_FIELD"] == true ?>
|
||||
|
||||
<p><span class="starrequired">*</span><?=GetMessage("AUTH_REQ")?></p>
|
||||
|
||||
<?endif?>
|
||||
</div>
|
@ -0,0 +1,90 @@
|
||||
<?php
|
||||
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)
|
||||
{
|
||||
die();
|
||||
}
|
||||
|
||||
/** @global CMain $APPLICATION */
|
||||
/** @global CUser $USER */
|
||||
/** @var PersonalOrderSection $component */
|
||||
/** @var array $arParams */
|
||||
/** @var array $arResult */
|
||||
|
||||
use Bitrix\Main\Localization\Loc;
|
||||
|
||||
global $USER;
|
||||
|
||||
if ($arParams['SHOW_ACCOUNT_PAGE'] !== 'Y')
|
||||
{
|
||||
LocalRedirect($arParams['SEF_FOLDER']);
|
||||
}
|
||||
|
||||
if ($arParams['USE_PRIVATE_PAGE_TO_AUTH'] === 'Y' && !$USER->IsAuthorized())
|
||||
{
|
||||
LocalRedirect($arResult['PATH_TO_AUTH_PAGE']);
|
||||
}
|
||||
|
||||
if ($arParams['SET_TITLE'] === 'Y')
|
||||
{
|
||||
$APPLICATION->SetTitle(Loc::getMessage("SPS_TITLE_ACCOUNT"));
|
||||
}
|
||||
|
||||
if ($arParams["MAIN_CHAIN_NAME"] !== '')
|
||||
{
|
||||
$APPLICATION->AddChainItem(htmlspecialcharsbx($arParams["MAIN_CHAIN_NAME"]), $arResult['SEF_FOLDER']);
|
||||
}
|
||||
$APPLICATION->AddChainItem(Loc::getMessage("SPS_CHAIN_ACCOUNT"));
|
||||
|
||||
if ($arParams['SHOW_ACCOUNT_COMPONENT'] !== 'N')
|
||||
{
|
||||
$APPLICATION->IncludeComponent(
|
||||
"bitrix:sale.personal.account",
|
||||
"bootstrap_v4",
|
||||
[
|
||||
"SET_TITLE" => "N",
|
||||
"AUTH_FORM_IN_TEMPLATE" => 'Y',
|
||||
],
|
||||
$component
|
||||
);
|
||||
}
|
||||
if ($arParams['SHOW_ACCOUNT_PAY_COMPONENT'] !== 'N' && $USER->IsAuthorized())
|
||||
{
|
||||
?>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h2 class="sale-personal-section-account-sub-header"><?=Loc::getMessage("SPS_BUY_MONEY")?></h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<?
|
||||
$APPLICATION->IncludeComponent(
|
||||
"bitrix:sale.account.pay",
|
||||
"bootstrap_v4",
|
||||
Array(
|
||||
"COMPONENT_TEMPLATE" => "bootstrap_v4",
|
||||
"REFRESHED_COMPONENT_MODE" => "Y",
|
||||
"ELIMINATED_PAY_SYSTEMS" => $arParams['ACCOUNT_PAYMENT_ELIMINATED_PAY_SYSTEMS'],
|
||||
"PATH_TO_BASKET" => $arParams['PATH_TO_BASKET'],
|
||||
"PATH_TO_PAYMENT" => $arParams['PATH_TO_PAYMENT'],
|
||||
"PERSON_TYPE" => $arParams['ACCOUNT_PAYMENT_PERSON_TYPE'],
|
||||
"REDIRECT_TO_CURRENT_PAGE" => "N",
|
||||
"SELL_AMOUNT" => $arParams['ACCOUNT_PAYMENT_SELL_TOTAL'],
|
||||
"SELL_CURRENCY" => $arParams['ACCOUNT_PAYMENT_SELL_CURRENCY'],
|
||||
"SELL_SHOW_FIXED_VALUES" => $arParams['ACCOUNT_PAYMENT_SELL_SHOW_FIXED_VALUES'],
|
||||
"SELL_SHOW_RESULT_SUM" => $arParams['ACCOUNT_PAYMENT_SELL_SHOW_RESULT_SUM'],
|
||||
"SELL_TOTAL" => $arParams['ACCOUNT_PAYMENT_SELL_TOTAL'],
|
||||
"SELL_USER_INPUT" => $arParams['ACCOUNT_PAYMENT_SELL_USER_INPUT'],
|
||||
"SELL_VALUES_FROM_VAR" => "N",
|
||||
"SELL_VAR_PRICE_VALUE" => "",
|
||||
"SET_TITLE" => "N",
|
||||
"CONTEXT_SITE_ID" => $arParams["CONTEXT_SITE_ID"],
|
||||
"AUTH_FORM_IN_TEMPLATE" => 'Y',
|
||||
),
|
||||
$component
|
||||
);
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
After Width: | Height: | Size: 574 B |
After Width: | Height: | Size: 566 B |
@ -0,0 +1,18 @@
|
||||
<?php
|
||||
$MESS["ACTIVE"] = "Active:";
|
||||
$MESS["EMAIL"] = "E-mail:";
|
||||
$MESS["LAST_LOGIN"] = "Last authorized:";
|
||||
$MESS["LAST_NAME"] = "Last name:";
|
||||
$MESS["LAST_UPDATE"] = "Last update:";
|
||||
$MESS["LOGIN"] = "Login (min. 3 characters):";
|
||||
$MESS["MAIN_PROFILE_TITLE"] = "Salutation:";
|
||||
$MESS["MAIN_RESET"] = "Cancel";
|
||||
$MESS["NAME"] = "Name:";
|
||||
$MESS["NEW_PASSWORD"] = "New password (min. 6 characters):";
|
||||
$MESS["NEW_PASSWORD_CONFIRM"] = "Confirm new password:";
|
||||
$MESS["NEW_PASSWORD_REQ"] = "New Password:";
|
||||
$MESS["PROFILE_DATA_SAVED"] = "All changes saved";
|
||||
$MESS["RESET"] = "Reset";
|
||||
$MESS["SAVE"] = "Save changes";
|
||||
$MESS["SECOND_NAME"] = "Middle name:";
|
||||
$MESS['SUBSCRIBE_EMAIL'] = 'I agree to receive promotional newsletters';
|
@ -0,0 +1,18 @@
|
||||
<?php
|
||||
$MESS['PROFILE_DATA_SAVED'] = "Изменения сохранены";
|
||||
$MESS['LAST_UPDATE'] = "Дата обновления:";
|
||||
$MESS['ACTIVE'] = "Активен:";
|
||||
$MESS['NAME'] = "Имя:";
|
||||
$MESS['LAST_NAME'] = "Фамилия:";
|
||||
$MESS['SECOND_NAME'] = "Отчество:";
|
||||
$MESS['EMAIL'] = "E-Mail:";
|
||||
$MESS['MAIN_RESET'] = "Отмена";
|
||||
$MESS['LOGIN'] = "Логин (мин. 3 символа):";
|
||||
$MESS['NEW_PASSWORD'] = "Новый пароль (мин. 6 символов):";
|
||||
$MESS['NEW_PASSWORD_CONFIRM'] = "Подтверждение нового пароля:";
|
||||
$MESS['SAVE'] = "Сохранить изменения";
|
||||
$MESS['RESET'] = "Сбросить";
|
||||
$MESS['LAST_LOGIN'] = "Последняя авторизация:";
|
||||
$MESS['NEW_PASSWORD_REQ'] = "Новый пароль:";
|
||||
$MESS['MAIN_PROFILE_TITLE'] = "Обращение:";
|
||||
$MESS['SUBSCRIBE_EMAIL'] = 'Согласен на рекламно-информационные рассылки';
|
@ -0,0 +1,33 @@
|
||||
BX.namespace('BX.Sale.PersonalProfileComponent');
|
||||
|
||||
(function() {
|
||||
BX.Sale.PrivateProfileComponent = {
|
||||
init: function ()
|
||||
{
|
||||
var passwordNode = BX('main-profile-password');
|
||||
var confirmNode = BX('main-profile-password-confirm');
|
||||
BX.ready(function(){
|
||||
BX.bind(confirmNode, 'input', function(){
|
||||
if (!BX.type.isNotEmptyString(confirmNode.value))
|
||||
{
|
||||
BX.removeClass(passwordNode.parentNode, 'has-error');
|
||||
}
|
||||
else if (!BX.type.isNotEmptyString(passwordNode.value))
|
||||
{
|
||||
BX.addClass(passwordNode.parentNode, 'has-error');
|
||||
}
|
||||
});
|
||||
BX.bind(passwordNode, 'input', function(){
|
||||
if (BX.type.isNotEmptyString(passwordNode.value))
|
||||
{
|
||||
BX.removeClass(passwordNode.parentNode, 'has-error');
|
||||
}
|
||||
else if (BX.type.isNotEmptyString(confirmNode.value))
|
||||
{
|
||||
BX.addClass(passwordNode.parentNode, 'has-error');
|
||||
}
|
||||
})
|
||||
});
|
||||
},
|
||||
}
|
||||
})();
|
@ -0,0 +1 @@
|
||||
{"version":3,"sources":["script.js"],"names":["BX","namespace","Sale","PrivateProfileComponent","init","passwordNode","confirmNode","ready","bind","type","isNotEmptyString","value","removeClass","parentNode","addClass"],"mappings":"AAAAA,GAAGC,UAAU,qCAEb,WACCD,GAAGE,KAAKC,yBACPC,KAAM,WAEL,IAAIC,EAAeL,GAAG,yBACtB,IAAIM,EAAcN,GAAG,iCACrBA,GAAGO,MAAM,WACRP,GAAGQ,KAAKF,EAAa,QAAS,WAC7B,IAAKN,GAAGS,KAAKC,iBAAiBJ,EAAYK,OAC1C,CACCX,GAAGY,YAAYP,EAAaQ,WAAY,kBAEpC,IAAKb,GAAGS,KAAKC,iBAAiBL,EAAaM,OAChD,CACCX,GAAGc,SAAST,EAAaQ,WAAY,gBAGvCb,GAAGQ,KAAKH,EAAc,QAAS,WAC9B,GAAIL,GAAGS,KAAKC,iBAAiBL,EAAaM,OAC1C,CACCX,GAAGY,YAAYP,EAAaQ,WAAY,kBAEpC,GAAIb,GAAGS,KAAKC,iBAAiBJ,EAAYK,OAC9C,CACCX,GAAGc,SAAST,EAAaQ,WAAY,qBAxB3C","file":"script.map.js"}
|
@ -0,0 +1,2 @@
|
||||
BX.namespace("BX.Sale.PersonalProfileComponent");(function(){BX.Sale.PrivateProfileComponent={init:function(){var e=BX("main-profile-password");var r=BX("main-profile-password-confirm");BX.ready(function(){BX.bind(r,"input",function(){if(!BX.type.isNotEmptyString(r.value)){BX.removeClass(e.parentNode,"has-error")}else if(!BX.type.isNotEmptyString(e.value)){BX.addClass(e.parentNode,"has-error")}});BX.bind(e,"input",function(){if(BX.type.isNotEmptyString(e.value)){BX.removeClass(e.parentNode,"has-error")}else if(BX.type.isNotEmptyString(r.value)){BX.addClass(e.parentNode,"has-error")}})})}}})();
|
||||
//# sourceMappingURL=script.map.js
|
@ -0,0 +1,14 @@
|
||||
.bx_profile .main-profile-block-date-info { margin-bottom: 15px; }
|
||||
|
||||
.bx_profile .main-profile-form-password-annotation {
|
||||
margin-top: 15px;
|
||||
margin-bottom: 0;
|
||||
color: grey;
|
||||
font-weight: lighter;
|
||||
font-size: 12px;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
.bx_profile .main-profile-social-block { margin-top: 40px; }
|
||||
|
||||
|
@ -0,0 +1 @@
|
||||
.bx_profile .main-profile-block-date-info{margin-bottom:15px}.bx_profile .main-profile-form-password-annotation{margin-top:15px;margin-bottom:0;color:grey;font-weight:lighter;font-size:12px;font-family:Arial,Helvetica,sans-serif}.bx_profile .main-profile-social-block{margin-top:40px}
|
@ -0,0 +1,163 @@
|
||||
<?
|
||||
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true)
|
||||
die();
|
||||
|
||||
use Bitrix\Main\Localization\Loc;
|
||||
|
||||
?>
|
||||
|
||||
<div class="bx_profile">
|
||||
<?
|
||||
ShowError($arResult["strProfileError"]);
|
||||
|
||||
if (($arResult['DATA_SAVED'] ?? 'N') === 'Y')
|
||||
{
|
||||
ShowNote(Loc::getMessage('PROFILE_DATA_SAVED'));
|
||||
}
|
||||
|
||||
?>
|
||||
<form method="post" name="form1" action="<?=POST_FORM_ACTION_URI?>" enctype="multipart/form-data" role="form">
|
||||
<?=$arResult["BX_SESSION_CHECK"]?>
|
||||
<input type="hidden" name="lang" value="<?=LANG?>" />
|
||||
<input type="hidden" name="ID" value="<?=$arResult["ID"]?>" />
|
||||
<input type="hidden" name="LOGIN" value="<?=$arResult["arUser"]["LOGIN"]?>" />
|
||||
<div class="main-profile-block-shown" id="user_div_reg">
|
||||
<div class="row main-profile-block-date-info">
|
||||
<?
|
||||
if($arResult["ID"]>0)
|
||||
{
|
||||
if ($arResult["arUser"]["TIMESTAMP_X"] <> '')
|
||||
{
|
||||
?>
|
||||
<div class="col-12">
|
||||
<strong><?=Loc::getMessage('LAST_UPDATE')?></strong>
|
||||
<strong><?=$arResult["arUser"]["TIMESTAMP_X"]?></strong>
|
||||
</div>
|
||||
<?
|
||||
}
|
||||
|
||||
if ($arResult["arUser"]["LAST_LOGIN"] <> '')
|
||||
{
|
||||
?>
|
||||
<div class="col-12">
|
||||
<strong><?=Loc::getMessage('LAST_LOGIN')?></strong>
|
||||
<strong><?=$arResult["arUser"]["LAST_LOGIN"]?></strong>
|
||||
</div>
|
||||
<?
|
||||
}
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<?
|
||||
if (!in_array(LANGUAGE_ID,array('ru', 'ua')))
|
||||
{
|
||||
?>
|
||||
<div class="row">
|
||||
<div class="col align-items-center">
|
||||
<div class="form-group">
|
||||
<label class="main-profile-form-label" for="main-profile-title"><?=Loc::getMessage('MAIN_PROFILE_TITLE')?></label>
|
||||
<input class="form-control" type="text" name="TITLE" maxlength="50" id="main-profile-title" value="<?=$arResult["arUser"]["TITLE"]?>" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?
|
||||
}
|
||||
?>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-4 col-md-3 col-form-label main-profile-form-label" for="main-profile-name"><?=Loc::getMessage('NAME')?></label>
|
||||
<div class="col-sm-8 col-md-9">
|
||||
<input class="form-control" type="text" name="NAME" maxlength="50" id="main-profile-name" value="<?=$arResult["arUser"]["NAME"]?>" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-4 col-md-3 col-form-label main-profile-form-label" for="main-profile-last-name"><?=Loc::getMessage('LAST_NAME')?></label>
|
||||
<div class="col-sm-8 col-md-9">
|
||||
<input class="form-control" type="text" name="LAST_NAME" maxlength="50" id="main-profile-last-name" value="<?=$arResult["arUser"]["LAST_NAME"]?>" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-4 col-md-3 col-form-label main-profile-form-label" for="main-profile-second-name"><?=Loc::getMessage('SECOND_NAME')?></label>
|
||||
<div class="col-sm-8 col-md-9">
|
||||
<input class="form-control" type="text" name="SECOND_NAME" maxlength="50" id="main-profile-second-name" value="<?=$arResult["arUser"]["SECOND_NAME"]?>" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-4 col-md-3 col-form-label main-profile-form-label" for="main-profile-email"><?=Loc::getMessage('EMAIL')?></label>
|
||||
<div class="col-sm-8 col-md-9">
|
||||
<input class="form-control" type="text" name="EMAIL" maxlength="50" id="main-profile-email" value="<?=$arResult["arUser"]["EMAIL"]?>" />
|
||||
</div>
|
||||
</div>
|
||||
<?
|
||||
if ($arResult['CAN_EDIT_PASSWORD'])
|
||||
{
|
||||
?>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-4 col-md-3 col-form-label main-profile-form-label" for="main-profile-password"><?=Loc::getMessage('NEW_PASSWORD_REQ')?></label>
|
||||
<div class="col-sm-8 col-md-9">
|
||||
<input class=" form-control bx-auth-input main-profile-password" type="password" name="NEW_PASSWORD" maxlength="50" id="main-profile-password" value="" autocomplete="off"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-4 col-md-3 col-form-label main-profile-form-label main-profile-password" for="main-profile-password-confirm">
|
||||
<?=Loc::getMessage('NEW_PASSWORD_CONFIRM')?>
|
||||
</label>
|
||||
<div class="col-sm-8 col-md-9">
|
||||
<input class="form-control" type="password" name="NEW_PASSWORD_CONFIRM" maxlength="50" value="" id="main-profile-password-confirm" autocomplete="off" />
|
||||
<small id="emailHelp" class="form-text text-muted"><?echo $arResult["GROUP_POLICY"]["PASSWORD_REQUIREMENTS"];?></small>
|
||||
</div>
|
||||
</div>
|
||||
<?
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-check row">
|
||||
<div class="col-sm-8 col-md-9">
|
||||
<input type="hidden" name="UF_SUBSCRIBE_USER_EMAIL" value="0">
|
||||
<input class="form-check-input" type="checkbox" name="UF_SUBSCRIBE_USER_EMAIL" value="1" id="main-profile-subscribe" <?if($arResult["arUser"]["UF_SUBSCRIBE_USER_EMAIL"] == true) echo "checked";?>/>
|
||||
<label class="form-check-label" for="main-profile-subscribe"><?=Loc::getMessage('SUBSCRIBE_EMAIL')?></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<input type="submit" class="btn btn-themes btn-primary btn-md main-profile-submit" name="save" value="<?=(($arResult["ID"]>0) ? Loc::getMessage("MAIN_SAVE") : Loc::getMessage("MAIN_ADD"))?>">
|
||||
<input type="submit" class="btn btn-themes btn-link btn-md" name="reset" value="<?echo GetMessage("MAIN_RESET")?>">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
<?
|
||||
$disabledSocServices = isset($arParams['DISABLE_SOCSERV_AUTH']) && $arParams['DISABLE_SOCSERV_AUTH'] === 'Y';
|
||||
|
||||
if (!$disabledSocServices)
|
||||
{
|
||||
?>
|
||||
<div class="col-sm-12 main-profile-social-block">
|
||||
<?
|
||||
if ($arResult["SOCSERV_ENABLED"])
|
||||
{
|
||||
$APPLICATION->IncludeComponent(
|
||||
"bitrix:socserv.auth.split",
|
||||
".default",
|
||||
[
|
||||
"SHOW_PROFILES" => "Y",
|
||||
"ALLOW_DELETE" => "Y",
|
||||
],
|
||||
false
|
||||
);
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<?
|
||||
}
|
||||
?>
|
||||
<div class="clearfix"></div>
|
||||
<script>
|
||||
BX.Sale.PrivateProfileComponent.init();
|
||||
</script>
|
||||
</div>
|
After Width: | Height: | Size: 8.7 KiB |
After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 42 KiB |
After Width: | Height: | Size: 33 KiB |
@ -0,0 +1,133 @@
|
||||
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
|
||||
|
||||
use Bitrix\Main\Localization\Loc;
|
||||
|
||||
|
||||
if ($arParams["MAIN_CHAIN_NAME"] <> '')
|
||||
{
|
||||
$APPLICATION->AddChainItem(htmlspecialcharsbx($arParams["MAIN_CHAIN_NAME"]), $arResult['SEF_FOLDER']);
|
||||
}
|
||||
|
||||
$this->addExternalCss("/bitrix/css/main/font-awesome.css");
|
||||
$theme = Bitrix\Main\Config\Option::get("main", "wizard_eshop_bootstrap_theme_id", "blue", SITE_ID);
|
||||
|
||||
$availablePages = array();
|
||||
|
||||
if ($arParams['SHOW_ORDER_PAGE'] === 'Y')
|
||||
{
|
||||
$availablePages[] = array(
|
||||
"path" => $arResult['PATH_TO_ORDERS'],
|
||||
"name" => Loc::getMessage("SPS_ORDER_PAGE_NAME"),
|
||||
"icon" => '<i class="fa fa-calculator"></i>'
|
||||
);
|
||||
}
|
||||
|
||||
if ($arParams['SHOW_ACCOUNT_PAGE'] === 'Y')
|
||||
{
|
||||
$availablePages[] = array(
|
||||
"path" => $arResult['PATH_TO_ACCOUNT'],
|
||||
"name" => Loc::getMessage("SPS_ACCOUNT_PAGE_NAME"),
|
||||
"icon" => '<i class="fa fa-credit-card"></i>'
|
||||
);
|
||||
}
|
||||
|
||||
if ($arParams['SHOW_PRIVATE_PAGE'] === 'Y')
|
||||
{
|
||||
$availablePages[] = array(
|
||||
"path" => $arResult['PATH_TO_PRIVATE'],
|
||||
"name" => Loc::getMessage("SPS_PERSONAL_PAGE_NAME"),
|
||||
"icon" => '<i class="fa fa-user-secret"></i>'
|
||||
);
|
||||
}
|
||||
|
||||
if ($arParams['SHOW_ORDER_PAGE'] === 'Y')
|
||||
{
|
||||
|
||||
$delimeter = ($arParams['SEF_MODE'] === 'Y') ? "?" : "&";
|
||||
$availablePages[] = array(
|
||||
"path" => $arResult['PATH_TO_ORDERS'].$delimeter."filter_history=Y",
|
||||
"name" => Loc::getMessage("SPS_ORDER_PAGE_HISTORY"),
|
||||
"icon" => '<i class="fa fa-list-alt"></i>'
|
||||
);
|
||||
}
|
||||
|
||||
if ($arParams['SHOW_PROFILE_PAGE'] === 'Y')
|
||||
{
|
||||
$availablePages[] = array(
|
||||
"path" => $arResult['PATH_TO_PROFILE'],
|
||||
"name" => Loc::getMessage("SPS_PROFILE_PAGE_NAME"),
|
||||
"icon" => '<i class="fa fa-list-ol"></i>'
|
||||
);
|
||||
}
|
||||
|
||||
if ($arParams['SHOW_BASKET_PAGE'] === 'Y')
|
||||
{
|
||||
$availablePages[] = array(
|
||||
"path" => $arParams['PATH_TO_BASKET'],
|
||||
"name" => Loc::getMessage("SPS_BASKET_PAGE_NAME"),
|
||||
"icon" => '<i class="fa fa-shopping-cart"></i>'
|
||||
);
|
||||
}
|
||||
|
||||
if ($arParams['SHOW_SUBSCRIBE_PAGE'] === 'Y')
|
||||
{
|
||||
$availablePages[] = array(
|
||||
"path" => $arResult['PATH_TO_SUBSCRIBE'],
|
||||
"name" => Loc::getMessage("SPS_SUBSCRIBE_PAGE_NAME"),
|
||||
"icon" => '<i class="fa fa-envelope"></i>'
|
||||
);
|
||||
}
|
||||
|
||||
if ($arParams['SHOW_CONTACT_PAGE'] === 'Y')
|
||||
{
|
||||
$availablePages[] = array(
|
||||
"path" => $arParams['PATH_TO_CONTACT'],
|
||||
"name" => Loc::getMessage("SPS_CONTACT_PAGE_NAME"),
|
||||
"icon" => '<i class="fa fa-info-circle"></i>'
|
||||
);
|
||||
}
|
||||
|
||||
$customPagesList = CUtil::JsObjectToPhp($arParams['~CUSTOM_PAGES']);
|
||||
if ($customPagesList)
|
||||
{
|
||||
foreach ($customPagesList as $page)
|
||||
{
|
||||
$availablePages[] = array(
|
||||
"path" => $page[0],
|
||||
"name" => $page[1],
|
||||
"icon" => (mb_strlen($page[2])) ? '<i class="fa '.htmlspecialcharsbx($page[2]).'"></i>' : ""
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($availablePages))
|
||||
{
|
||||
ShowError(Loc::getMessage("SPS_ERROR_NOT_CHOSEN_ELEMENT"));
|
||||
}
|
||||
else
|
||||
{
|
||||
?>
|
||||
<div class="row">
|
||||
<?
|
||||
foreach ($availablePages as $blockElement)
|
||||
{
|
||||
?>
|
||||
<div class="col-lg-3 col-md-6 col-sm-6 col">
|
||||
<div class="sale-personal-section-index-block bx-theme-<?=$theme?>">
|
||||
<a class="sale-personal-section-index-block-link" href="<?=htmlspecialcharsbx($blockElement['path'])?>">
|
||||
<span class="sale-personal-section-index-block-ico">
|
||||
<?=$blockElement['icon']?>
|
||||
</span>
|
||||
<h2 class="sale-personal-section-index-block-name">
|
||||
<?=htmlspecialcharsbx($blockElement['name'])?>
|
||||
</h2>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<?
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<?
|
||||
}
|
||||
?>
|
@ -0,0 +1,6 @@
|
||||
<?
|
||||
$MESS["SPS_TITLE_ACCOUNT"] = "My Account";
|
||||
$MESS["SPS_CHAIN_ACCOUNT"] = "Internal account";
|
||||
$MESS["SPS_CHAIN_MAIN"] = "My account";
|
||||
$MESS["SPS_BUY_MONEY"] = "Top up account";
|
||||
?>
|
@ -0,0 +1,13 @@
|
||||
<?
|
||||
$MESS["SPS_ACCOUNT_PAGE_NAME"] = "Personal account";
|
||||
$MESS["SPS_PERSONAL_PAGE_NAME"] = "Personal information";
|
||||
$MESS["SPS_PROFILE_PAGE_NAME"] = "Order profiles";
|
||||
$MESS["SPS_ORDER_PAGE_NAME"] = "Current orders";
|
||||
$MESS["SPS_ORDER_PAGE_HISTORY"] = "Order history";
|
||||
$MESS["SPS_SUBSCRIBE_PAGE_NAME"] = "Subscriptions";
|
||||
$MESS["SPS_BASKET_PAGE_NAME"] = "Shopping cart";
|
||||
$MESS["SPS_CONTACT_PAGE_NAME"] = "Contacts";
|
||||
$MESS["SPS_ERROR_NOT_CHOSEN_ELEMENT"] = "No items selected";
|
||||
$MESS["SPS_CHAIN_MAIN"] = "My account";
|
||||
$MESS["SPS_TITLE_MAIN"] = "Personal area";
|
||||
?>
|
@ -0,0 +1,5 @@
|
||||
<?
|
||||
$MESS["SPS_CHAIN_MAIN"] = "My account";
|
||||
$MESS["SPS_CHAIN_ORDERS"] = "My orders";
|
||||
$MESS["SPS_CHAIN_ORDER_DETAIL"] = "Cancel order ##ID#";
|
||||
?>
|
@ -0,0 +1,5 @@
|
||||
<?
|
||||
$MESS["SPS_CHAIN_MAIN"] = "My account";
|
||||
$MESS["SPS_CHAIN_ORDERS"] = "My orders";
|
||||
$MESS["SPS_CHAIN_ORDER_DETAIL"] = "Order information ##ID#";
|
||||
?>
|
@ -0,0 +1,4 @@
|
||||
<?
|
||||
$MESS["SPS_CHAIN_MAIN"] = "My account";
|
||||
$MESS["SPS_CHAIN_ORDERS"] = "My orders";
|
||||
?>
|
@ -0,0 +1,4 @@
|
||||
<?
|
||||
$MESS["SPS_CHAIN_MAIN"] = "My account";
|
||||
$MESS["SPS_CHAIN_ORDERS"] = "My orders";
|
||||
?>
|
@ -0,0 +1,5 @@
|
||||
<?
|
||||
$MESS["SPS_CHAIN_MAIN"] = "My account";
|
||||
$MESS["SPS_CHAIN_PRIVATE"] = "Personal information";
|
||||
$MESS["SPS_TITLE_PRIVATE"] = "Personal information";
|
||||
?>
|
@ -0,0 +1,5 @@
|
||||
<?
|
||||
$MESS["SPS_CHAIN_MAIN"] = "My account";
|
||||
$MESS["SPS_CHAIN_PROFILE"] = "User profiles";
|
||||
$MESS["SPS_TITLE_PROFILE"] = "User profile";
|
||||
?>
|
@ -0,0 +1,5 @@
|
||||
<?
|
||||
$MESS["SPS_CHAIN_MAIN"] = "My account";
|
||||
$MESS["SPS_CHAIN_PROFILE"] = "User profiles";
|
||||
$MESS["SPS_TITLE_PROFILE"] = "User profile";
|
||||
?>
|
@ -0,0 +1,5 @@
|
||||
<?
|
||||
$MESS["SPS_CHAIN_MAIN"] = "My account";
|
||||
$MESS["SPS_CHAIN_PROFILE"] = "User profiles";
|
||||
$MESS["SPS_TITLE_PROFILE"] = "User profile";
|
||||
?>
|
@ -0,0 +1,6 @@
|
||||
<?
|
||||
$MESS["SPS_CHAIN_MAIN"] = "My account";
|
||||
$MESS["SPS_CHAIN_SUBSCRIBE"] = "User subscriptions";
|
||||
$MESS["SPS_TITLE_SUBSCRIBE"] = "My subscriptions";
|
||||
$MESS["SPS_CHAIN_SUBSCRIBE_NEW"] = "Your subscriptions";
|
||||
?>
|
@ -0,0 +1,13 @@
|
||||
<?
|
||||
$MESS["SPS_ACCOUNT_PAGE_NAME"] = "Personal account";
|
||||
$MESS["SPS_PERSONAL_PAGE_NAME"] = "Personal information";
|
||||
$MESS["SPS_PROFILE_PAGE_NAME"] = "Order profiles";
|
||||
$MESS["SPS_ORDER_PAGE_NAME"] = "Current orders";
|
||||
$MESS["SPS_ORDER_PAGE_HISTORY"] = "Order history";
|
||||
$MESS["SPS_SUBSCRIBE_PAGE_NAME"] = "Subscriptions";
|
||||
$MESS["SPS_BASKET_PAGE_NAME"] = "Shopping cart";
|
||||
$MESS["SPS_CONTACT_PAGE_NAME"] = "Contacts";
|
||||
$MESS["SPS_ERROR_NOT_CHOSEN_ELEMENT"] = "No items selected";
|
||||
$MESS["SPS_CHAIN_MAIN"] = "My account";
|
||||
$MESS["SPS_TITLE_MAIN"] = "Personal area";
|
||||
?>
|
@ -0,0 +1,5 @@
|
||||
<?php
|
||||
$MESS["SPS_TITLE_ACCOUNT"] = "Мои пользовательский счет";
|
||||
$MESS["SPS_CHAIN_ACCOUNT"] = "Внутренний счет";
|
||||
$MESS["SPS_CHAIN_MAIN"] = "Мой кабинет";
|
||||
$MESS["SPS_BUY_MONEY"] = "Пополнение счета";
|
@ -0,0 +1,14 @@
|
||||
<?php
|
||||
$MESS["SPS_ACCOUNT_PAGE_NAME"] = "Личный счет";
|
||||
$MESS["SPS_PERSONAL_PAGE_NAME"] = "Личные данные";
|
||||
$MESS["SPS_PROFILE_PAGE_NAME"] = "Профили заказов";
|
||||
$MESS["SPS_ORDER_PAGE_NAME"] = "Текущие заказы";
|
||||
$MESS["SPS_ORDER_PAGE_HISTORY"] = "История заказов";
|
||||
$MESS["SPS_SUBSCRIBE_PAGE_NAME"] = "Подписки";
|
||||
$MESS["SPS_BASKET_PAGE_NAME"] = "Корзина";
|
||||
$MESS["SPS_CONTACT_PAGE_NAME"] = "Контакты";
|
||||
$MESS["SPS_ERROR_NOT_CHOSEN_ELEMENT"] = "Отсутвуют выбранные элементы";
|
||||
$MESS["SPS_CHAIN_MAIN"] = "Мой кабинет";
|
||||
$MESS["SPS_TITLE_MAIN"] = "Персональный раздел";
|
||||
|
||||
|
@ -0,0 +1,4 @@
|
||||
<?php
|
||||
$MESS["SPS_CHAIN_MAIN"] = "Мой кабинет";
|
||||
$MESS["SPS_CHAIN_ORDERS"] = "Мои заказы";
|
||||
$MESS["SPS_CHAIN_ORDER_DETAIL"] = "Отмена заказа №#ID#";
|
@ -0,0 +1,4 @@
|
||||
<?php
|
||||
$MESS["SPS_CHAIN_MAIN"] = "Мой кабинет";
|
||||
$MESS["SPS_CHAIN_ORDERS"] = "Мои заказы";
|
||||
$MESS["SPS_CHAIN_ORDER_DETAIL"] = "Информация о заказе №#ID#";
|
@ -0,0 +1,3 @@
|
||||
<?php
|
||||
$MESS["SPS_CHAIN_MAIN"] = "Мой кабинет";
|
||||
$MESS["SPS_CHAIN_ORDERS"] = "Мои заказы";
|
@ -0,0 +1,3 @@
|
||||
<?php
|
||||
$MESS["SPS_CHAIN_MAIN"] = "Мой кабинет";
|
||||
$MESS["SPS_CHAIN_ORDERS"] = "Мои заказы";
|
@ -0,0 +1,5 @@
|
||||
<?php
|
||||
$MESS["SPS_CHAIN_MAIN"] = "Мой кабинет";
|
||||
$MESS["SPS_CHAIN_PRIVATE"] = "Персональные данные";
|
||||
$MESS["SPS_TITLE_PRIVATE"] = "Персональные данные";
|
||||
$MESS["SPS_ACCESS_DENIED"] = "Для просмотра личных данных необходимо авторизоваться.";
|
@ -0,0 +1,4 @@
|
||||
<?php
|
||||
$MESS["SPS_CHAIN_MAIN"] = "Мой кабинет";
|
||||
$MESS["SPS_CHAIN_PROFILE"] = "Список профилей пользователя";
|
||||
$MESS["SPS_TITLE_PROFILE"] = "Профиль пользователя";
|
@ -0,0 +1,4 @@
|
||||
<?php
|
||||
$MESS["SPS_CHAIN_MAIN"] = "Мой кабинет";
|
||||
$MESS["SPS_CHAIN_PROFILE"] = "Список профилей пользователя";
|
||||
$MESS["SPS_TITLE_PROFILE"] = "Профиль пользователя";
|
@ -0,0 +1,4 @@
|
||||
<?php
|
||||
$MESS["SPS_CHAIN_MAIN"] = "Мой кабинет";
|
||||
$MESS["SPS_CHAIN_PROFILE"] = "Список профилей пользователя";
|
||||
$MESS["SPS_TITLE_PROFILE"] = "Профиль пользователя";
|
@ -0,0 +1,5 @@
|
||||
<?php
|
||||
$MESS["SPS_CHAIN_MAIN"] = "Мой кабинет";
|
||||
$MESS["SPS_CHAIN_SUBSCRIBE"] = "Список подписок пользователя";
|
||||
$MESS["SPS_TITLE_SUBSCRIBE"] = "Мои подписки";
|
||||
$MESS["SPS_CHAIN_SUBSCRIBE_NEW"] = "Ваши подписки";
|
@ -0,0 +1,14 @@
|
||||
<?php
|
||||
$MESS["SPS_ACCOUNT_PAGE_NAME"] = "Личный счет";
|
||||
$MESS["SPS_PERSONAL_PAGE_NAME"] = "Личные данные";
|
||||
$MESS["SPS_PROFILE_PAGE_NAME"] = "Профили заказов";
|
||||
$MESS["SPS_ORDER_PAGE_NAME"] = "Текущие заказы";
|
||||
$MESS["SPS_ORDER_PAGE_HISTORY"] = "История заказов";
|
||||
$MESS["SPS_SUBSCRIBE_PAGE_NAME"] = "Подписки";
|
||||
$MESS["SPS_BASKET_PAGE_NAME"] = "Корзина";
|
||||
$MESS["SPS_CONTACT_PAGE_NAME"] = "Контакты";
|
||||
$MESS["SPS_ERROR_NOT_CHOSEN_ELEMENT"] = "Отсутвуют выбранные элементы";
|
||||
$MESS["SPS_CHAIN_MAIN"] = "Мой кабинет";
|
||||
$MESS["SPS_TITLE_MAIN"] = "Персональный раздел";
|
||||
|
||||
|
@ -0,0 +1,40 @@
|
||||
<?
|
||||
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
|
||||
|
||||
use Bitrix\Main\Localization\Loc;
|
||||
|
||||
if ($arParams['SHOW_ORDER_PAGE'] !== 'Y')
|
||||
{
|
||||
LocalRedirect($arParams['SEF_FOLDER']);
|
||||
}
|
||||
elseif ($arParams['ORDER_DISALLOW_CANCEL'] === 'Y')
|
||||
{
|
||||
LocalRedirect($arResult['PATH_TO_ORDERS']);
|
||||
}
|
||||
|
||||
global $USER;
|
||||
if ($arParams['USE_PRIVATE_PAGE_TO_AUTH'] === 'Y' && !$USER->IsAuthorized())
|
||||
{
|
||||
LocalRedirect($arResult['PATH_TO_AUTH_PAGE']);
|
||||
}
|
||||
|
||||
if ($arParams["MAIN_CHAIN_NAME"] <> '')
|
||||
{
|
||||
$APPLICATION->AddChainItem(htmlspecialcharsbx($arParams["MAIN_CHAIN_NAME"]), $arResult['SEF_FOLDER']);
|
||||
}
|
||||
$APPLICATION->AddChainItem(Loc::getMessage("SPS_CHAIN_ORDERS"), $arResult['PATH_TO_ORDERS']);
|
||||
$APPLICATION->AddChainItem(Loc::getMessage("SPS_CHAIN_ORDER_DETAIL", array("#ID#" => $arResult["VARIABLES"]["ID"])));
|
||||
$APPLICATION->IncludeComponent(
|
||||
"bitrix:sale.personal.order.cancel",
|
||||
"bootstrap_v4",
|
||||
array(
|
||||
"PATH_TO_LIST" => $arResult["PATH_TO_ORDERS"],
|
||||
"PATH_TO_DETAIL" => $arResult["PATH_TO_ORDER_DETAIL"],
|
||||
"AUTH_FORM_IN_TEMPLATE" => 'Y',
|
||||
"SET_TITLE" =>$arParams["SET_TITLE"],
|
||||
"ID" => $arResult["VARIABLES"]["ID"],
|
||||
"CONTEXT_SITE_ID" => $arParams["CONTEXT_SITE_ID"],
|
||||
),
|
||||
$component
|
||||
);
|
||||
?>
|
@ -0,0 +1,56 @@
|
||||
<?
|
||||
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
|
||||
|
||||
use Bitrix\Main\Localization\Loc;
|
||||
|
||||
if ($arParams['SHOW_ORDER_PAGE'] !== 'Y')
|
||||
{
|
||||
LocalRedirect($arParams['SEF_FOLDER']);
|
||||
}
|
||||
|
||||
global $USER;
|
||||
if ($arParams['USE_PRIVATE_PAGE_TO_AUTH'] === 'Y' && !$USER->IsAuthorized())
|
||||
{
|
||||
LocalRedirect($arResult['PATH_TO_AUTH_PAGE']);
|
||||
}
|
||||
|
||||
if ($arParams["MAIN_CHAIN_NAME"] <> '')
|
||||
{
|
||||
$APPLICATION->AddChainItem(htmlspecialcharsbx($arParams["MAIN_CHAIN_NAME"]), $arResult['SEF_FOLDER']);
|
||||
}
|
||||
$APPLICATION->AddChainItem(Loc::getMessage("SPS_CHAIN_ORDERS"), $arResult['PATH_TO_ORDERS']);
|
||||
$APPLICATION->AddChainItem(Loc::getMessage("SPS_CHAIN_ORDER_DETAIL", array("#ID#" => urldecode($arResult["VARIABLES"]["ID"]))));
|
||||
$arDetParams = array(
|
||||
"PATH_TO_LIST" => $arResult["PATH_TO_ORDERS"],
|
||||
"PATH_TO_CANCEL" => $arResult["PATH_TO_ORDER_CANCEL"],
|
||||
"PATH_TO_COPY" => $arResult["PATH_TO_ORDER_COPY"],
|
||||
"PATH_TO_PAYMENT" => $arParams["PATH_TO_PAYMENT"],
|
||||
"SET_TITLE" =>$arParams["SET_TITLE"],
|
||||
"ID" => $arResult["VARIABLES"]["ID"],
|
||||
"ACTIVE_DATE_FORMAT" => $arParams["ACTIVE_DATE_FORMAT"],
|
||||
"ALLOW_INNER" => $arParams["ALLOW_INNER"],
|
||||
"ONLY_INNER_FULL" => $arParams["ONLY_INNER_FULL"],
|
||||
"CACHE_TYPE" => $arParams["CACHE_TYPE"],
|
||||
"CACHE_TIME" => $arParams["CACHE_TIME"],
|
||||
"CACHE_GROUPS" => $arParams["CACHE_GROUPS"],
|
||||
"RESTRICT_CHANGE_PAYSYSTEM" => $arParams["ORDER_RESTRICT_CHANGE_PAYSYSTEM"],
|
||||
"REFRESH_PRICES" => $arParams["ORDER_REFRESH_PRICES"],
|
||||
"DISALLOW_CANCEL" => $arParams["ORDER_DISALLOW_CANCEL"],
|
||||
"HIDE_USER_INFO" => $arParams["ORDER_HIDE_USER_INFO"],
|
||||
"AUTH_FORM_IN_TEMPLATE" => 'Y',
|
||||
"CONTEXT_SITE_ID" => $arParams["CONTEXT_SITE_ID"],
|
||||
"CUSTOM_SELECT_PROPS" => $arParams["CUSTOM_SELECT_PROPS"]
|
||||
);
|
||||
foreach($arParams as $key => $val)
|
||||
{
|
||||
if(mb_strpos($key, "PROP_") !== false)
|
||||
$arDetParams[$key] = $val;
|
||||
}
|
||||
|
||||
$APPLICATION->IncludeComponent(
|
||||
"bitrix:sale.personal.order.detail",
|
||||
"bootstrap_v4",
|
||||
$arDetParams,
|
||||
$component
|
||||
);
|
||||
?>
|
@ -0,0 +1,62 @@
|
||||
<?php
|
||||
|
||||
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)
|
||||
{
|
||||
die();
|
||||
}
|
||||
|
||||
/** @var array $arParams */
|
||||
/** @var array $arResult */
|
||||
/** @var CBitrixComponent $component */
|
||||
/** @global CMain $APPLICATION */
|
||||
|
||||
use Bitrix\Main\Localization\Loc;
|
||||
|
||||
if ($arParams['SHOW_ORDER_PAGE'] !== 'Y')
|
||||
{
|
||||
LocalRedirect($arParams['SEF_FOLDER']);
|
||||
}
|
||||
|
||||
global $USER;
|
||||
if ($arParams['USE_PRIVATE_PAGE_TO_AUTH'] === 'Y' && !$USER->IsAuthorized())
|
||||
{
|
||||
LocalRedirect($arResult['PATH_TO_AUTH_PAGE']);
|
||||
}
|
||||
|
||||
if ($arParams["MAIN_CHAIN_NAME"] !== '')
|
||||
{
|
||||
$APPLICATION->AddChainItem(htmlspecialcharsbx($arParams["MAIN_CHAIN_NAME"]), $arResult['SEF_FOLDER']);
|
||||
}
|
||||
|
||||
$APPLICATION->AddChainItem(Loc::getMessage("SPS_CHAIN_ORDERS"), $arResult['PATH_TO_ORDERS']);
|
||||
$APPLICATION->IncludeComponent(
|
||||
"bitrix:sale.personal.order.list",
|
||||
"bootstrap_v4",
|
||||
array(
|
||||
"PATH_TO_DETAIL" => $arResult["PATH_TO_ORDER_DETAIL"],
|
||||
"PATH_TO_CANCEL" => $arResult["PATH_TO_ORDER_CANCEL"],
|
||||
"PATH_TO_CATALOG" => $arParams["PATH_TO_CATALOG"],
|
||||
"PATH_TO_COPY" => $arResult["PATH_TO_ORDER_COPY"],
|
||||
"PATH_TO_BASKET" => $arParams["PATH_TO_BASKET"],
|
||||
"PATH_TO_PAYMENT" => $arParams["PATH_TO_PAYMENT"],
|
||||
"SAVE_IN_SESSION" => $arParams["SAVE_IN_SESSION"],
|
||||
"ORDERS_PER_PAGE" => $arParams["ORDERS_PER_PAGE"],
|
||||
"SET_TITLE" =>$arParams["SET_TITLE"],
|
||||
"ID" => $arResult["VARIABLES"]["ID"],
|
||||
"NAV_TEMPLATE" => $arParams["NAV_TEMPLATE"],
|
||||
"ACTIVE_DATE_FORMAT" => $arParams["ACTIVE_DATE_FORMAT"],
|
||||
"HISTORIC_STATUSES" => $arParams["ORDER_HISTORIC_STATUSES"],
|
||||
"ALLOW_INNER" => $arParams["ALLOW_INNER"],
|
||||
"ONLY_INNER_FULL" => $arParams["ONLY_INNER_FULL"],
|
||||
"CACHE_TYPE" => $arParams["CACHE_TYPE"],
|
||||
"CACHE_TIME" => $arParams["CACHE_TIME"],
|
||||
"CACHE_GROUPS" => $arParams["CACHE_GROUPS"],
|
||||
"DEFAULT_SORT" => $arParams["ORDER_DEFAULT_SORT"],
|
||||
"DISALLOW_CANCEL" => $arParams["ORDER_DISALLOW_CANCEL"],
|
||||
"RESTRICT_CHANGE_PAYSYSTEM" => $arParams["ORDER_RESTRICT_CHANGE_PAYSYSTEM"],
|
||||
"REFRESH_PRICES" => $arParams["ORDER_REFRESH_PRICES"],
|
||||
"CONTEXT_SITE_ID" => $arParams["CONTEXT_SITE_ID"],
|
||||
"AUTH_FORM_IN_TEMPLATE" => 'Y',
|
||||
),
|
||||
$component
|
||||
);
|
@ -0,0 +1,119 @@
|
||||
<?php
|
||||
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)
|
||||
{
|
||||
die();
|
||||
}
|
||||
|
||||
/** @global CMain $APPLICATION */
|
||||
/** @global CUser $USER */
|
||||
/** @var PersonalOrderSection $component */
|
||||
/** @var array $arParams */
|
||||
/** @var array $arResult */
|
||||
|
||||
use Bitrix\Main\Localization\Loc;
|
||||
|
||||
if ($arParams['SHOW_PRIVATE_PAGE'] !== 'Y' && $arParams['USE_PRIVATE_PAGE_TO_AUTH'] !== 'Y')
|
||||
{
|
||||
LocalRedirect($arParams['SEF_FOLDER']);
|
||||
}
|
||||
|
||||
if ($arParams["MAIN_CHAIN_NAME"] !== '')
|
||||
{
|
||||
$APPLICATION->AddChainItem(htmlspecialcharsbx($arParams["MAIN_CHAIN_NAME"]), $arResult['SEF_FOLDER']);
|
||||
}
|
||||
$APPLICATION->AddChainItem(Loc::getMessage("SPS_CHAIN_PRIVATE"));
|
||||
if ($arParams['SET_TITLE'] == 'Y')
|
||||
{
|
||||
$APPLICATION->SetTitle(Loc::getMessage("SPS_TITLE_PRIVATE"));
|
||||
}
|
||||
|
||||
if (!$USER->IsAuthorized() || $arResult['SHOW_LOGIN_FORM'] === 'Y')
|
||||
{
|
||||
if ($arParams['USE_PRIVATE_PAGE_TO_AUTH'] !== 'Y')
|
||||
{
|
||||
ob_start();
|
||||
$APPLICATION->AuthForm('', false, false, 'N', false);
|
||||
$authForm = ob_get_clean();
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($arResult['SHOW_FORGOT_PASSWORD_FORM'] === 'Y')
|
||||
{
|
||||
ob_start();
|
||||
$APPLICATION->IncludeComponent(
|
||||
'bitrix:main.auth.forgotpasswd',
|
||||
'.default',
|
||||
array(
|
||||
'AUTH_AUTH_URL' => $arResult['PATH_TO_PRIVATE'],
|
||||
// 'AUTH_REGISTER_URL' => 'register.php',
|
||||
),
|
||||
false
|
||||
);
|
||||
$authForm = ob_get_clean();
|
||||
}
|
||||
elseif($arResult['SHOW_CHANGE_PASSWORD_FORM'] === 'Y')
|
||||
{
|
||||
ob_start();
|
||||
$APPLICATION->IncludeComponent(
|
||||
'bitrix:main.auth.changepasswd',
|
||||
'.default',
|
||||
array(
|
||||
'AUTH_AUTH_URL' => $arResult['PATH_TO_PRIVATE'],
|
||||
// 'AUTH_REGISTER_URL' => 'register.php',
|
||||
),
|
||||
false
|
||||
);
|
||||
$authForm = ob_get_clean();
|
||||
}
|
||||
else
|
||||
{
|
||||
ob_start();
|
||||
$APPLICATION->IncludeComponent(
|
||||
'bitrix:main.auth.form',
|
||||
'.default',
|
||||
array(
|
||||
'AUTH_FORGOT_PASSWORD_URL' => $arResult['PATH_TO_PASSWORD_RESTORE'],
|
||||
// 'AUTH_REGISTER_URL' => 'register.php',
|
||||
'AUTH_SUCCESS_URL' => $arResult['AUTH_SUCCESS_URL'],
|
||||
'DISABLE_SOCSERV_AUTH' => $arParams['DISABLE_SOCSERV_AUTH'],
|
||||
),
|
||||
false
|
||||
);
|
||||
$authForm = ob_get_clean();
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
<div class="row">
|
||||
<?
|
||||
if ($arParams['USE_PRIVATE_PAGE_TO_AUTH'] !== 'Y')
|
||||
{
|
||||
?>
|
||||
<div class="col-md-8 offset-md-2 col-lg-6 offset-lg-3">
|
||||
<div class="alert alert-danger"><?=GetMessage("SPS_ACCESS_DENIED")?></div>
|
||||
</div>
|
||||
<?
|
||||
}
|
||||
?>
|
||||
<div class="col-md-8 offset-md-2 col-lg-6 offset-lg-3">
|
||||
<?=$authForm?>
|
||||
</div>
|
||||
</div>
|
||||
<?
|
||||
}
|
||||
else
|
||||
{
|
||||
$APPLICATION->IncludeComponent(
|
||||
"bitrix:main.profile",
|
||||
"",
|
||||
Array(
|
||||
"SET_TITLE" =>$arParams["SET_TITLE"],
|
||||
"AJAX_MODE" => $arParams['AJAX_MODE_PRIVATE'],
|
||||
"SEND_INFO" => $arParams["SEND_INFO_PRIVATE"],
|
||||
"CHECK_RIGHTS" => $arParams['CHECK_RIGHTS_PRIVATE'],
|
||||
"EDITABLE_EXTERNAL_AUTH_ID" => $arParams['EDITABLE_EXTERNAL_AUTH_ID'],
|
||||
"DISABLE_SOCSERV_AUTH" => $arParams['DISABLE_SOCSERV_AUTH']
|
||||
),
|
||||
$component
|
||||
);
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
<?php
|
||||
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)
|
||||
{
|
||||
die();
|
||||
}
|
||||
|
||||
/** @global CMain $APPLICATION */
|
||||
/** @global CUser $USER */
|
||||
/** @var PersonalOrderSection $component */
|
||||
/** @var array $arParams */
|
||||
/** @var array $arResult */
|
||||
|
||||
use Bitrix\Main\Localization\Loc;
|
||||
|
||||
if ($arParams['SHOW_PROFILE_PAGE'] !== 'Y')
|
||||
{
|
||||
LocalRedirect($arParams['SEF_FOLDER']);
|
||||
}
|
||||
|
||||
global $USER;
|
||||
if ($arParams['USE_PRIVATE_PAGE_TO_AUTH'] === 'Y' && !$USER->IsAuthorized())
|
||||
{
|
||||
LocalRedirect($arResult['PATH_TO_AUTH_PAGE']);
|
||||
}
|
||||
|
||||
if ($arParams["MAIN_CHAIN_NAME"] !== '')
|
||||
{
|
||||
$APPLICATION->AddChainItem(htmlspecialcharsbx($arParams["MAIN_CHAIN_NAME"]), $arResult['SEF_FOLDER']);
|
||||
}
|
||||
$APPLICATION->AddChainItem(Loc::getMessage("SPS_CHAIN_PROFILE"));
|
||||
$APPLICATION->IncludeComponent(
|
||||
"bitrix:sale.personal.profile.list",
|
||||
"bootstrap_v4",
|
||||
[
|
||||
"PATH_TO_DETAIL" => $arResult['PATH_TO_PROFILE_DETAIL'],
|
||||
"PATH_TO_DELETE" => $arResult['PATH_TO_PROFILE_DELETE'],
|
||||
"PER_PAGE" => $arParams["PROFILES_PER_PAGE"],
|
||||
"SET_TITLE" =>$arParams["SET_TITLE"],
|
||||
"AUTH_FORM_IN_TEMPLATE" => 'Y',
|
||||
],
|
||||
$component
|
||||
);
|
@ -0,0 +1,35 @@
|
||||
<?
|
||||
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
|
||||
use Bitrix\Main\Localization\Loc;
|
||||
|
||||
if ($arParams['SHOW_PROFILE_PAGE'] !== 'Y')
|
||||
{
|
||||
LocalRedirect($arParams['SEF_FOLDER']);
|
||||
}
|
||||
|
||||
global $USER;
|
||||
if ($arParams['USE_PRIVATE_PAGE_TO_AUTH'] === 'Y' && !$USER->IsAuthorized())
|
||||
{
|
||||
LocalRedirect($arResult['PATH_TO_AUTH_PAGE']);
|
||||
}
|
||||
|
||||
if ($arParams["MAIN_CHAIN_NAME"] <> '')
|
||||
{
|
||||
$APPLICATION->AddChainItem(htmlspecialcharsbx($arParams["MAIN_CHAIN_NAME"]), $arResult['SEF_FOLDER']);
|
||||
}
|
||||
$APPLICATION->AddChainItem(Loc::getMessage("SPS_CHAIN_PROFILE"));
|
||||
$APPLICATION->IncludeComponent(
|
||||
"bitrix:sale.personal.profile.detail",
|
||||
"bootstrap_v4",
|
||||
array(
|
||||
"PATH_TO_LIST" => $arResult["PATH_TO_PROFILE"],
|
||||
"PATH_TO_DETAIL" => $arResult["PATH_TO_PROFILE_DETAIL"],
|
||||
"SET_TITLE" =>$arParams["SET_TITLE"],
|
||||
"USE_AJAX_LOCATIONS" => $arParams['USE_AJAX_LOCATIONS_PROFILE'],
|
||||
"COMPATIBLE_LOCATION_MODE" => $arParams['COMPATIBLE_LOCATION_MODE_PROFILE'],
|
||||
"ID" => $arResult["VARIABLES"]["ID"],
|
||||
"AUTH_FORM_IN_TEMPLATE" => 'Y',
|
||||
),
|
||||
$component
|
||||
);
|
||||
?>
|
@ -0,0 +1,49 @@
|
||||
.sale-personal-section-index-block {
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
margin: 15px 0;
|
||||
padding: 0;
|
||||
height: 87%;
|
||||
border-radius: 3px;
|
||||
background-size: cover;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
text-transform: uppercase;
|
||||
opacity: .8;
|
||||
transition: all 0.3s;
|
||||
justify-content: space-around;
|
||||
background-color: var(--theme-color-primary, #51cbce);
|
||||
}
|
||||
|
||||
@media (max-width: 992px) {
|
||||
.sale-personal-section-index-block {
|
||||
margin: 8px 0;
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.sale-personal-section-index-block:hover { opacity: 1; }
|
||||
|
||||
.sale-personal-section-index-block-link,
|
||||
.sale-personal-section-index-block-link:hover,
|
||||
.sale-personal-section-index-block-link:active,
|
||||
.sale-personal-section-index-block-link:focus,
|
||||
.sale-personal-section-index-block-link:visited {
|
||||
display: block;
|
||||
padding: 25px 5px;
|
||||
width: 100%;
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.sale-personal-section-index-block-link { color: #fff; }
|
||||
|
||||
.sale-personal-section-index-block-ico { font-size: 64px; }
|
||||
|
||||
.sale-personal-section-index-block-name {
|
||||
color: #fff;
|
||||
font-size: 15px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
@ -0,0 +1 @@
|
||||
.sale-personal-section-index-block{display:-webkit-box;display:-ms-flexbox;display:flex;margin:15px 0;padding:0;height:87%;border-radius:3px;background-size:cover;color:#fff;text-align:center;text-transform:uppercase;opacity:.8;transition:all .3s;justify-content:space-around;background-color:var(--theme-color-primary,#51cbce)}@media(max-width:992px){.sale-personal-section-index-block{margin:8px 0;height:auto}}.sale-personal-section-index-block:hover{opacity:1}.sale-personal-section-index-block-link,.sale-personal-section-index-block-link:hover,.sale-personal-section-index-block-link:active,.sale-personal-section-index-block-link:focus,.sale-personal-section-index-block-link:visited{display:block;padding:25px 5px;width:100%;color:#fff;text-decoration:none}.sale-personal-section-index-block-link{color:#fff}.sale-personal-section-index-block-ico{font-size:64px}.sale-personal-section-index-block-name{color:#fff;font-size:15px;margin:0;padding:0}
|
@ -0,0 +1,31 @@
|
||||
<?
|
||||
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
|
||||
|
||||
use Bitrix\Main\Localization\Loc;
|
||||
|
||||
if ($arParams['SHOW_SUBSCRIBE_PAGE'] !== 'Y')
|
||||
{
|
||||
LocalRedirect($arParams['SEF_FOLDER']);
|
||||
}
|
||||
|
||||
global $USER;
|
||||
if ($arParams['USE_PRIVATE_PAGE_TO_AUTH'] === 'Y' && !$USER->IsAuthorized())
|
||||
{
|
||||
LocalRedirect($arResult['PATH_TO_AUTH_PAGE']);
|
||||
}
|
||||
|
||||
if ($arParams["MAIN_CHAIN_NAME"] <> '')
|
||||
{
|
||||
$APPLICATION->AddChainItem(htmlspecialcharsbx($arParams["MAIN_CHAIN_NAME"]), $arResult['SEF_FOLDER']);
|
||||
}
|
||||
$APPLICATION->AddChainItem(Loc::getMessage("SPS_CHAIN_SUBSCRIBE_NEW"));
|
||||
$APPLICATION->IncludeComponent(
|
||||
'bitrix:catalog.product.subscribe.list',
|
||||
"bootstrap_v4",
|
||||
array(
|
||||
'SET_TITLE' => $arParams['SET_TITLE'],
|
||||
'DETAIL_URL' => $arParams['SUBSCRIBE_DETAIL_URL']
|
||||
),
|
||||
$component
|
||||
);
|
||||
|
@ -0,0 +1,132 @@
|
||||
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
|
||||
|
||||
use Bitrix\Main\Localization\Loc;
|
||||
|
||||
|
||||
if ($arParams["MAIN_CHAIN_NAME"] <> '')
|
||||
{
|
||||
$APPLICATION->AddChainItem(htmlspecialcharsbx($arParams["MAIN_CHAIN_NAME"]), $arResult['SEF_FOLDER']);
|
||||
}
|
||||
|
||||
$this->addExternalCss("/bitrix/css/main/font-awesome.css");
|
||||
$theme = Bitrix\Main\Config\Option::get("main", "wizard_eshop_bootstrap_theme_id", "blue", SITE_ID);
|
||||
|
||||
$availablePages = array();
|
||||
|
||||
if ($arParams['SHOW_ORDER_PAGE'] === 'Y')
|
||||
{
|
||||
$availablePages[] = array(
|
||||
"path" => $arResult['PATH_TO_ORDERS'],
|
||||
"name" => Loc::getMessage("SPS_ORDER_PAGE_NAME"),
|
||||
"icon" => '<i class="fa fa-calculator"></i>'
|
||||
);
|
||||
}
|
||||
|
||||
if ($arParams['SHOW_ACCOUNT_PAGE'] === 'Y')
|
||||
{
|
||||
$availablePages[] = array(
|
||||
"path" => $arResult['PATH_TO_ACCOUNT'],
|
||||
"name" => Loc::getMessage("SPS_ACCOUNT_PAGE_NAME"),
|
||||
"icon" => '<i class="fa fa-credit-card"></i>'
|
||||
);
|
||||
}
|
||||
|
||||
if ($arParams['SHOW_PRIVATE_PAGE'] === 'Y')
|
||||
{
|
||||
$availablePages[] = array(
|
||||
"path" => $arResult['PATH_TO_PRIVATE'],
|
||||
"name" => Loc::getMessage("SPS_PERSONAL_PAGE_NAME"),
|
||||
"icon" => '<i class="fa fa-user-secret"></i>'
|
||||
);
|
||||
}
|
||||
|
||||
if ($arParams['SHOW_ORDER_PAGE'] === 'Y')
|
||||
{
|
||||
|
||||
$delimeter = ($arParams['SEF_MODE'] === 'Y') ? "?" : "&";
|
||||
$availablePages[] = array(
|
||||
"path" => $arResult['PATH_TO_ORDERS'].$delimeter."filter_history=Y",
|
||||
"name" => Loc::getMessage("SPS_ORDER_PAGE_HISTORY"),
|
||||
"icon" => '<i class="fa fa-list-alt"></i>'
|
||||
);
|
||||
}
|
||||
|
||||
if ($arParams['SHOW_PROFILE_PAGE'] === 'Y')
|
||||
{
|
||||
$availablePages[] = array(
|
||||
"path" => $arResult['PATH_TO_PROFILE'],
|
||||
"name" => Loc::getMessage("SPS_PROFILE_PAGE_NAME"),
|
||||
"icon" => '<i class="fa fa-list-ol"></i>'
|
||||
);
|
||||
}
|
||||
|
||||
if ($arParams['SHOW_BASKET_PAGE'] === 'Y')
|
||||
{
|
||||
$availablePages[] = array(
|
||||
"path" => $arParams['PATH_TO_BASKET'],
|
||||
"name" => Loc::getMessage("SPS_BASKET_PAGE_NAME"),
|
||||
"icon" => '<i class="fa fa-shopping-cart"></i>'
|
||||
);
|
||||
}
|
||||
|
||||
if ($arParams['SHOW_SUBSCRIBE_PAGE'] === 'Y')
|
||||
{
|
||||
$availablePages[] = array(
|
||||
"path" => $arResult['PATH_TO_SUBSCRIBE'],
|
||||
"name" => Loc::getMessage("SPS_SUBSCRIBE_PAGE_NAME"),
|
||||
"icon" => '<i class="fa fa-envelope"></i>'
|
||||
);
|
||||
}
|
||||
|
||||
if ($arParams['SHOW_CONTACT_PAGE'] === 'Y')
|
||||
{
|
||||
$availablePages[] = array(
|
||||
"path" => $arParams['PATH_TO_CONTACT'],
|
||||
"name" => Loc::getMessage("SPS_CONTACT_PAGE_NAME"),
|
||||
"icon" => '<i class="fa fa-info-circle"></i>'
|
||||
);
|
||||
}
|
||||
|
||||
$customPagesList = CUtil::JsObjectToPhp($arParams['~CUSTOM_PAGES']);
|
||||
if ($customPagesList)
|
||||
{
|
||||
foreach ($customPagesList as $page)
|
||||
{
|
||||
$availablePages[] = array(
|
||||
"path" => $page[0],
|
||||
"name" => $page[1],
|
||||
"icon" => (mb_strlen($page[2])) ? '<i class="fa '.htmlspecialcharsbx($page[2]).'"></i>' : ""
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($availablePages))
|
||||
{
|
||||
ShowError(Loc::getMessage("SPS_ERROR_NOT_CHOSEN_ELEMENT"));
|
||||
}
|
||||
else
|
||||
{
|
||||
?>
|
||||
<div class="row">
|
||||
<? foreach ($availablePages as $blockElement)
|
||||
{
|
||||
?>
|
||||
<div class="col-lg-3 col-md-4 col-6">
|
||||
<div class="sale-personal-section-index-block bx-<?=$theme?>">
|
||||
<a class="sale-personal-section-index-block-link" href="<?=htmlspecialcharsbx($blockElement['path'])?>">
|
||||
<span class="sale-personal-section-index-block-ico">
|
||||
<?=$blockElement['icon']?>
|
||||
</span>
|
||||
<h2 class="sale-personal-section-index-block-name">
|
||||
<?=htmlspecialcharsbx($blockElement['name'])?>
|
||||
</h2>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<?
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<?
|
||||
}
|
||||
?>
|
21
intaro.retailcrm/install/export/sub-register/index.php
Normal file
@ -0,0 +1,21 @@
|
||||
<?php
|
||||
require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/header.php');
|
||||
$APPLICATION->SetTitle('Регистрация');
|
||||
?>
|
||||
|
||||
<?php $APPLICATION->IncludeComponent(
|
||||
'bitrix:main.register',
|
||||
'default_subscribe',
|
||||
[
|
||||
'AUTH' => 'Y',
|
||||
'REQUIRED_FIELDS' => [],
|
||||
'SET_TITLE' => 'Y',
|
||||
'SHOW_FIELDS' => ['NAME'],
|
||||
'SUCCESS_PAGE' => '',
|
||||
'USER_PROPERTY' => [],
|
||||
'USER_PROPERTY_NAME' => '',
|
||||
'USE_BACKURL' => 'Y',
|
||||
]
|
||||
); ?>
|
||||
|
||||
<?php require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/footer.php'); ?>
|
@ -14,7 +14,7 @@ use Bitrix\Sale\Delivery\Services\Manager;
|
||||
use Bitrix\Sale\EventActions;
|
||||
use Bitrix\Sale\Internals\OrderTable;
|
||||
use Intaro\RetailCrm\Component\ConfigProvider;
|
||||
use Intaro\RetailCrm\Component\Installer\LoyaltyInstallerTrait;
|
||||
use Intaro\RetailCrm\Component\Installer\InstallerTrait;
|
||||
use Intaro\RetailCrm\Service\OrderLoyaltyDataService;
|
||||
use Intaro\RetailCrm\Vendor\Symfony\Component\Process\PhpExecutableFinder;
|
||||
use RetailCrm\ApiClient;
|
||||
@ -29,11 +29,11 @@ if (class_exists('intaro_retailcrm')) {
|
||||
return false;
|
||||
}
|
||||
|
||||
include(__DIR__ . '/../lib/component/installer/loyaltyinstallertrait.php');
|
||||
include (__DIR__ . '/../lib/component/installer/installertrait.php');
|
||||
|
||||
class intaro_retailcrm extends CModule
|
||||
{
|
||||
use LoyaltyInstallerTrait;
|
||||
use InstallerTrait;
|
||||
|
||||
public const V5 = 'v5';
|
||||
public $MODULE_ID = 'intaro.retailcrm';
|
||||
@ -247,9 +247,9 @@ class intaro_retailcrm extends CModule
|
||||
include($this->INSTALL_PATH . '/../lib/component/apiclient/clientadapter.php');
|
||||
|
||||
$this->CopyFiles();
|
||||
$this->addLPUserFields();
|
||||
$this->addLPEvents();
|
||||
$this->addEvents();
|
||||
$this->addAgreement();
|
||||
$this->addUserFields();
|
||||
|
||||
OrderLoyaltyDataService::createLoyaltyHlBlock();
|
||||
|
||||
@ -1069,6 +1069,9 @@ class intaro_retailcrm extends CModule
|
||||
RegisterModuleDependences('sale', 'OnSaleOrderDeleted', $this->MODULE_ID, 'RetailCrmEvent', 'orderDelete');
|
||||
RegisterModuleDependences('sale', 'OnSalePaymentEntitySaved', $this->MODULE_ID, 'RetailCrmEvent', 'paymentSave');
|
||||
RegisterModuleDependences('sale', 'OnSalePaymentEntityDeleted', $this->MODULE_ID, 'RetailCrmEvent', 'paymentDelete');
|
||||
RegisterModuleDependences('main', 'OnAfterUserRegister', $this->MODULE_ID, 'RetailCrmEvent', 'OnAfterUserRegister');
|
||||
RegisterModuleDependences('main', 'OnAfterUserAdd', $this->MODULE_ID, 'RetailCrmEvent', 'OnAfterUserAdd');
|
||||
|
||||
|
||||
COption::SetOptionString($this->MODULE_ID, $this->CRM_CATALOG_BASE_PRICE, htmlspecialchars(trim($_POST['price-types'])));
|
||||
COption::SetOptionString($this->MODULE_ID, $this->CRM_INVENTORIES_UPLOAD, 'N');
|
||||
@ -1266,6 +1269,8 @@ class intaro_retailcrm extends CModule
|
||||
UnRegisterModuleDependences('main', 'OnBeforeProlog', $this->MODULE_ID, 'RetailCrmUa', 'add');
|
||||
UnRegisterModuleDependences('sale', 'OnSalePaymentEntitySaved', $this->MODULE_ID, 'RetailCrmEvent', 'paymentSave');
|
||||
UnRegisterModuleDependences('sale', 'OnSalePaymentEntityDeleted', $this->MODULE_ID, 'RetailCrmEvent', 'paymentDelete');
|
||||
UnRegisterModuleDependences('main', 'OnAfterUserRegister', $this->MODULE_ID, 'RetailCrmEvent', 'OnAfterUserRegister');
|
||||
UnRegisterModuleDependences('main', 'OnAfterUserAdd', $this->MODULE_ID, 'RetailCrmEvent', 'OnAfterUserAdd');
|
||||
|
||||
if (
|
||||
CModule::IncludeModule('catalog')
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
$arModuleVersion = [
|
||||
'VERSION' => '6.3.20',
|
||||
'VERSION_DATE' => '2023-07-25 13:00:00'
|
||||
'VERSION' => '6.4.0',
|
||||
'VERSION_DATE' => '2023-08-22 13:00:00'
|
||||
];
|
||||
|
@ -0,0 +1,4 @@
|
||||
<?php
|
||||
|
||||
$MESS['SUBSCRIBED_USER'] = 'User subscribed to mailing lists';
|
||||
$MESS['UNSUBSCRIBED_USER'] = 'User unsubscribed from mailing lists';
|
@ -16,3 +16,4 @@ $MESS ['RETAILCRM_CURL_ERR'] = 'RetailCRM integration module requires PHP CURL e
|
||||
$MESS ['ERR_ARTICLE_IBLOCK'] = 'Articles are not set';
|
||||
$MESS ['DATE_TIMEZONE_ERR'] = 'Timezone is not specified in php settings.';
|
||||
$MESS ['SALE_VERSION_ERR'] = '\'Online-store\' module version must be higher than 16.';
|
||||
$MESS['UF_SUBSCRIBE_USER_EMAIL_TITLE'] = 'Agree to receive promotional newsletters';
|
||||
|
@ -0,0 +1,4 @@
|
||||
<?php
|
||||
|
||||
$MESS['SUBSCRIBED_USER'] = 'Пользователь подписался на рассылки';
|
||||
$MESS['UNSUBSCRIBED_USER'] = 'Пользователь отписался от рассылок';
|
@ -54,4 +54,5 @@ $MESS ['UF_CARD_NUMBER_INTARO_TITLE'] = 'Номер карты программ
|
||||
$MESS ['UF_LP_ID_INTARO_TITLE'] = 'Номер аккаунта в программе лояльности';
|
||||
$MESS['IBLOCK_NOT_SELECTED'] = 'Не выбрано ни одного инфоблока для экспорта';
|
||||
$MESS['TARGET_DIR_DOESNT_EXIST'] = 'Целевая директория не существует';
|
||||
$MESS['UF_SUBSCRIBE_USER_EMAIL_TITLE'] = 'Согласен на рекламно-информационные рассылки';
|
||||
|
||||
|
@ -99,6 +99,7 @@ trait CustomersTrait
|
||||
public function customersCreate(CustomersCreateRequest $request): ?CustomerChangeResponse
|
||||
{
|
||||
$serialized = Serializer::serializeArray($request);
|
||||
$serialized = $this->setBooleanParameters($serialized);
|
||||
$response = $this->client->customersCreate($serialized['customer'] ?? [], $request->site);
|
||||
|
||||
return Deserializer::deserializeArray($response->getResponseBody(), CustomerChangeResponse::class);
|
||||
@ -182,4 +183,18 @@ trait CustomersTrait
|
||||
|
||||
return Deserializer::deserializeArray($response->getResponseBody(), HistoryResponse::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $serializedRequest
|
||||
* @return array
|
||||
*/
|
||||
private function setBooleanParameters($serializedRequest)
|
||||
{
|
||||
if (empty($serializedRequest['customer']['subscribed']))
|
||||
{
|
||||
$serializedRequest['customer']['subscribed'] = false;
|
||||
}
|
||||
|
||||
return $serializedRequest;
|
||||
}
|
||||
}
|
||||
|
@ -162,7 +162,7 @@ class CustomerBuilder implements BuilderInterface
|
||||
$this->customer->externalId = $this->user->getId();
|
||||
$this->customer->email = $this->user->getEmail();
|
||||
$this->customer->createdAt = $this->user->getDateRegister();
|
||||
$this->customer->subscribed = false;
|
||||
$this->customer->subscribed = !empty($this->user->getSubscribe());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -101,7 +101,6 @@ class Constants
|
||||
public const LP_EVENTS = [
|
||||
['EVENT_NAME' => 'OnSaleOrderSaved', 'FROM_MODULE' => 'sale'],
|
||||
['EVENT_NAME' => 'OnSaleComponentOrderResultPrepared', 'FROM_MODULE' => 'sale'],
|
||||
['EVENT_NAME' => 'OnAfterUserRegister', 'FROM_MODULE' => 'main'],
|
||||
];
|
||||
public const SITES_AVAILABLE = 'sites_available';
|
||||
}
|
||||
|
@ -214,51 +214,4 @@ class EventsHandlers
|
||||
Logger::getInstance()->write(GetMessage('CAN_NOT_SAVE_ORDER') . $exception->getMessage(), 'uploadApiErrors');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Регистрирует пользователя в CRM системе после регистрации на сайте
|
||||
*
|
||||
* @param array $arFields
|
||||
* @return mixed
|
||||
* @throws \ReflectionException
|
||||
*/
|
||||
public static function OnAfterUserRegisterHandler(array $arFields): void
|
||||
{
|
||||
if (isset($arFields['USER_ID']) && $arFields['USER_ID'] > 0) {
|
||||
$user = UserRepository::getById($arFields['USER_ID']);
|
||||
|
||||
if (isset($_POST['REGISTER']['PERSONAL_PHONE'])) {
|
||||
$phone = htmlspecialchars($_POST['REGISTER']['PERSONAL_PHONE']);
|
||||
|
||||
if ($user !== null) {
|
||||
$user->setPersonalPhone($phone);
|
||||
$user->save();
|
||||
}
|
||||
|
||||
$arFields['PERSONAL_PHONE'] = $phone;
|
||||
}
|
||||
|
||||
/* @var CustomerService $customerService */
|
||||
$customerService = ServiceLocator::get(CustomerService::class);
|
||||
$customer = $customerService->createModel($arFields['USER_ID']);
|
||||
|
||||
$customerService->createOrUpdateCustomer($customer);
|
||||
|
||||
//Если пользователь выразил желание зарегистрироваться в ПЛ и согласился со всеми правилами
|
||||
if ((int) $arFields['UF_REG_IN_PL_INTARO'] === 1
|
||||
&& (int) $arFields['UF_AGREE_PL_INTARO'] === 1
|
||||
&& (int) $arFields['UF_PD_PROC_PL_INTARO'] === 1
|
||||
) {
|
||||
$phone = $arFields['PERSONAL_PHONE'] ?? '';
|
||||
$card = $arFields['UF_CARD_NUM_INTARO'] ?? '';
|
||||
$customerId = (string) $arFields['USER_ID'];
|
||||
|
||||
/** @var LoyaltyAccountService $service */
|
||||
$service = ServiceLocator::get(LoyaltyAccountService::class);
|
||||
$createResponse = $service->createLoyaltyAccount($phone, $card, $customerId);
|
||||
|
||||
$service->activateLpUserInBitrix($createResponse, $arFields['USER_ID']);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,16 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* PHP version 7.1
|
||||
*
|
||||
* @category Integration
|
||||
* @package Intaro\RetailCrm\Component\Update
|
||||
* @author RetailCRM <integration@retailcrm.ru>
|
||||
* @license MIT
|
||||
* @link http://retailcrm.ru
|
||||
* @see http://retailcrm.ru/docs
|
||||
*/
|
||||
|
||||
namespace Intaro\RetailCrm\Component\Installer;
|
||||
|
||||
use Bitrix\Main\ArgumentException;
|
||||
@ -28,12 +17,12 @@ use RCrmActions;
|
||||
|
||||
IncludeModuleLangFile(__FILE__);
|
||||
|
||||
trait LoyaltyInstallerTrait
|
||||
trait InstallerTrait
|
||||
{
|
||||
/**
|
||||
* create loyalty program events handlers
|
||||
* Создание событий для программы лояльности
|
||||
*/
|
||||
public function addLPEvents(): void
|
||||
public function addEvents(): void
|
||||
{
|
||||
$eventManager = EventManager::getInstance();
|
||||
|
||||
@ -69,7 +58,7 @@ trait LoyaltyInstallerTrait
|
||||
}
|
||||
|
||||
/**
|
||||
* CamelCase в имени является требованием Bitrix. Изменить на lowerCamelCase нельзя
|
||||
* Перемещение модульных шаблонов в CMS
|
||||
*/
|
||||
public function CopyFiles(): void
|
||||
{
|
||||
@ -83,37 +72,45 @@ trait LoyaltyInstallerTrait
|
||||
false
|
||||
);
|
||||
|
||||
$lpTemplateNames = [
|
||||
'sale.order.ajax',
|
||||
'sale.basket.basket',
|
||||
'main.register',
|
||||
$templateNames = [
|
||||
'default_loyalty' => [
|
||||
0 => [
|
||||
'name' => 'sale.order.ajax',
|
||||
'templateDirectory' => '.default'
|
||||
],
|
||||
1 => [
|
||||
'name' => 'sale.basket.basket',
|
||||
'templateDirectory' => '.default'
|
||||
],
|
||||
2 => [
|
||||
'name' => 'main.register',
|
||||
'templateDirectory' => '.default'
|
||||
],
|
||||
],
|
||||
|
||||
'default_subscribe' => [
|
||||
0 => [
|
||||
'name' => 'sale.personal.section',
|
||||
'templateDirectory' => '.default'
|
||||
],
|
||||
1 => [
|
||||
'name' => 'main.register',
|
||||
'templateDirectory' => '.default_subscribe'
|
||||
]
|
||||
]
|
||||
];
|
||||
|
||||
foreach ($lpTemplateNames as $lpTemplateName){
|
||||
$lpTemplatePath = $_SERVER['DOCUMENT_ROOT']
|
||||
. '/local/templates/.default/components/bitrix/' . $lpTemplateName . '/default_loyalty';
|
||||
|
||||
if (!file_exists($lpTemplatePath)) {
|
||||
$pathFrom = $_SERVER['DOCUMENT_ROOT']
|
||||
. '/bitrix/modules/intaro.retailcrm/install/export/local/components/intaro/'
|
||||
. $lpTemplateName
|
||||
. '/templates/.default';
|
||||
|
||||
CopyDirFiles(
|
||||
$pathFrom,
|
||||
$lpTemplatePath,
|
||||
true,
|
||||
true,
|
||||
false
|
||||
);
|
||||
foreach ($templateNames as $directory => $templates) {
|
||||
foreach ($templates as $template) {
|
||||
$this->copy($directory, $template);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add USER fields for LP
|
||||
* Добавление полей пользователя для ПЛ и подписки
|
||||
*/
|
||||
public function addLPUserFields(): void
|
||||
public function addUserFields(): void
|
||||
{
|
||||
$this->addCustomUserFields(
|
||||
[
|
||||
@ -154,6 +151,10 @@ trait LoyaltyInstallerTrait
|
||||
'name' => 'UF_EXT_REG_PL_INTARO',
|
||||
'title' => GetMessage('UF_EXT_REG_PL_INTARO_TITLE'),
|
||||
],
|
||||
[
|
||||
'name' => 'UF_SUBSCRIBE_USER_EMAIL',
|
||||
'title' => GetMessage('UF_SUBSCRIBE_USER_EMAIL_TITLE')
|
||||
]
|
||||
]
|
||||
);
|
||||
}
|
||||
@ -248,4 +249,27 @@ trait LoyaltyInstallerTrait
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private function copy($directory, $template): void
|
||||
{
|
||||
$templatePath = $_SERVER['DOCUMENT_ROOT']
|
||||
. '/local/templates/.default/components/bitrix/' . $template['name'] . '/'. $directory
|
||||
;
|
||||
|
||||
if (!file_exists($templatePath)) {
|
||||
$pathFrom = $_SERVER['DOCUMENT_ROOT']
|
||||
. '/bitrix/modules/intaro.retailcrm/install/export/local/components/intaro/'
|
||||
. $template['name']
|
||||
. '/templates/' . $template['templateDirectory']
|
||||
;
|
||||
|
||||
CopyDirFiles(
|
||||
$pathFrom,
|
||||
$templatePath,
|
||||
true,
|
||||
true,
|
||||
false
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
@ -524,6 +524,14 @@ class User extends AbstractSerializableModel
|
||||
*/
|
||||
private $loyalty;
|
||||
|
||||
/**
|
||||
* @var bool
|
||||
*
|
||||
* @Mapping\Type("boolean")
|
||||
* @Mapping\SerializedName("UF_SUBSCRIBE_USER_EMAIL")
|
||||
*/
|
||||
private $subscribe;
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
@ -1730,4 +1738,24 @@ class User extends AbstractSerializableModel
|
||||
{
|
||||
$this->loyalty = $loyalty;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function getSubscribe()
|
||||
{
|
||||
return $this->subscribe;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param bool $subscribe
|
||||
* @return $this
|
||||
*/
|
||||
public function setSubscribe($subscribe)
|
||||
{
|
||||
$this->subscribe = $subscribe;
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
|
@ -1074,6 +1074,102 @@ class LoyaltyProgramUpdater
|
||||
}
|
||||
}
|
||||
|
||||
class UpdateSubscribe
|
||||
{
|
||||
public function CopyFiles(): self
|
||||
{
|
||||
$pathFrom = $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/intaro.retailcrm/install';
|
||||
|
||||
CopyDirFiles(
|
||||
$pathFrom . '/export',
|
||||
$_SERVER['DOCUMENT_ROOT'],
|
||||
true,
|
||||
true,
|
||||
false
|
||||
);
|
||||
|
||||
$templateNames = [
|
||||
'default_subscribe' => [
|
||||
0 => [
|
||||
'name' => 'sale.personal.section',
|
||||
'templateDirectory' => '.default'
|
||||
],
|
||||
1 => [
|
||||
'name' => 'main.register',
|
||||
'templateDirectory' => '.default_subscribe'
|
||||
]
|
||||
]
|
||||
];
|
||||
|
||||
foreach ($templateNames as $directory => $templates) {
|
||||
foreach ($templates as $template) {
|
||||
$templatePath = $_SERVER['DOCUMENT_ROOT']
|
||||
. '/local/templates/.default/components/bitrix/' . $template['name'] . '/' . $directory
|
||||
;
|
||||
|
||||
if (!file_exists($templatePath)) {
|
||||
$pathFrom = $_SERVER['DOCUMENT_ROOT']
|
||||
. '/bitrix/modules/intaro.retailcrm/install/export/local/components/intaro/'
|
||||
. $template['name']
|
||||
. '/templates/' . $template['templateDirectory']
|
||||
;
|
||||
|
||||
CopyDirFiles(
|
||||
$pathFrom,
|
||||
$templatePath,
|
||||
true,
|
||||
true,
|
||||
false
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function addEvent(): self
|
||||
{
|
||||
$eventManager = EventManager::getInstance();
|
||||
|
||||
$eventManager->unRegisterEventHandler(
|
||||
'main',
|
||||
'OnAfterUserRegister',
|
||||
'intaro.retailcrm',
|
||||
'Intaro\RetailCrm\Component\Handlers\EventsHandlers',
|
||||
'OnAfterUserRegisterHandler'
|
||||
);
|
||||
|
||||
RegisterModuleDependences('main', 'OnAfterUserRegister', 'intaro.retailcrm', 'RetailCrmEvent', 'OnAfterUserRegister');
|
||||
RegisterModuleDependences('main', 'OnAfterUserAdd', 'intaro.retailcrm', 'RetailCrmEvent', 'OnAfterUserAdd');
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function addCustomUserField(): self
|
||||
{
|
||||
$arProps = [
|
||||
'ENTITY_ID' => 'USER',
|
||||
'FIELD_NAME' => 'UF_SUBSCRIBE_USER_EMAIL',
|
||||
'USER_TYPE_ID' => 'boolean',
|
||||
'MULTIPLE' => 'N',
|
||||
'MANDATORY' => 'N',
|
||||
'EDIT_FORM_LABEL' => ['ru' => 'Подписка на события'],
|
||||
|
||||
];
|
||||
|
||||
$props = array_merge($arProps, []);
|
||||
$obUserField = new CUserTypeEntity();
|
||||
$dbRes = CUserTypeEntity::GetList([], ['FIELD_NAME' => 'UF_SUBSCRIBE_USER_EMAIL'])->fetch();
|
||||
|
||||
if (!$dbRes['ID']) {
|
||||
$obUserField->Add($props);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws \Bitrix\Main\ArgumentException
|
||||
* @throws \Bitrix\Main\ObjectPropertyException
|
||||
@ -1093,6 +1189,11 @@ function update()
|
||||
UnRegisterModuleDependences("main", "OnBeforeProlog", 'intaro.retailcrm', "RetailCrmPricePrchase", "add");
|
||||
UnRegisterModuleDependences("main", "OnBeforeProlog", 'intaro.retailcrm', "RetailCrmDc", "add");
|
||||
UnRegisterModuleDependences("main", "OnBeforeProlog", 'intaro.retailcrm', "RetailCrmCc", "add");
|
||||
|
||||
(new UpdateSubscribe())
|
||||
->CopyFiles()
|
||||
->addEvent()
|
||||
->addCustomUserField();
|
||||
}
|
||||
|
||||
try {
|
||||
|