Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b304c89698 | |||
| 3d851a2087 | |||
| e6c0c57b1f |
@@ -195,73 +195,55 @@ final class index extends core
|
|||||||
'site' => 'Сайт',
|
'site' => 'Сайт',
|
||||||
'chat_robot' => 'Чат-робот',
|
'chat_robot' => 'Чат-робот',
|
||||||
'program' => 'Программа',
|
'program' => 'Программа',
|
||||||
'module' => 'Модуль',
|
|
||||||
'parser' => 'Парсер',
|
|
||||||
'script' => 'Скрипт',
|
|
||||||
'game' => 'Видеоигра',
|
'game' => 'Видеоигра',
|
||||||
/* 'site' => 'Сайты и браузерные расширения',
|
'script' => 'Скрипт, парсер, макрос',
|
||||||
'chat_robot' => 'Чат-роботы (любой мессенджер)',
|
'module' => 'Модуль, плагин, расширение',
|
||||||
'program' => 'Программа (Android, iOS, Windows)',
|
|
||||||
'module' => 'Модуль для любой программы',
|
|
||||||
'parser' => 'Парсер данных API, HTTP и эмуляция',
|
|
||||||
'script' => 'Скрипт (автоматизация процессов)',
|
|
||||||
'game' => 'Видеоигра (Android, iOS, Windows)' */
|
|
||||||
],
|
],
|
||||||
'purposes' => [
|
'purposes' => [
|
||||||
'funnel' => 'Воронка',
|
'funnel' => 'Воронка (обработка пользователя)',
|
||||||
'contacts' => 'Контакты',
|
'contacts' => 'Контакты (сбор данных)',
|
||||||
'neural_network' => 'Нейросети',
|
'ai' => 'Внедрение ИИ',
|
||||||
'gallery' => 'Галерея',
|
'archive' => 'Архив (галерея, библиотека, реестр)',
|
||||||
'crm' => 'CRM',
|
'crm' => 'Индивидуальная CRM',
|
||||||
'landing' => 'Лендинг',
|
'landing' => 'Лендинг (посадочная страница)',
|
||||||
'marketplace' => 'Маркетплейс',
|
'marketplace' => 'Маркетплейс, магазин, витрина',
|
||||||
'search' => 'Поиск',
|
'saas' => 'SaaS проект',
|
||||||
'calculate' => 'Расчёты',
|
'search' => 'Поиск и анализ',
|
||||||
'logic' => 'Логика',
|
'calculate' => 'Вычисления (калькулятор)',
|
||||||
'game' => 'Игра',
|
'individual' => 'Индивидуальная разработка',
|
||||||
'special' => 'Особенный',
|
|
||||||
],
|
],
|
||||||
'integrations' => [
|
'integrations' => [
|
||||||
'one_c' => '1C',
|
'one_c' => '1C',
|
||||||
'bitrix24' => 'Битрикс24',
|
'bitrix24' => 'Битрикс24',
|
||||||
'moy_sklad' => 'Мой Склад',
|
'moy_sklad' => 'Мой Склад',
|
||||||
'telegram' => 'Телеграм',
|
|
||||||
'mail' => 'Почта',
|
'mail' => 'Почта',
|
||||||
'excel' => 'Excel'
|
'excel' => 'Excel',
|
||||||
]
|
'ozon' => 'OZON',
|
||||||
];
|
'wildberries' => 'Wildberries',
|
||||||
|
'yandex_market' => 'Яндекс Маркет',
|
||||||
// Initializing contacts data
|
'avito' => 'Авито',
|
||||||
$this->view->contacts = [
|
'vk' => 'ВКонтакте',
|
||||||
'sim' => [
|
'max' => 'МАКС',
|
||||||
'requests' => [
|
'telegram' => 'Телеграм',
|
||||||
'full' => PROJECT_CONTACTS_SIM_REQUESTS ?? 'Ошибка',
|
'neural_networks' => 'Нейросети'
|
||||||
'country' => PROJECT_CONTACTS_SIM_REQUESTS_COUNTRY ?? 'Ошибка',
|
|
||||||
'operator' => PROJECT_CONTACTS_SIM_REQUESTS_OPERATOR ?? 'Ошибка',
|
|
||||||
'number' => [
|
|
||||||
PROJECT_CONTACTS_SIM_REQUESTS_NUMBER_1 ?? 'Ошибка',
|
|
||||||
PROJECT_CONTACTS_SIM_REQUESTS_NUMBER_2 ?? 'Ошибка',
|
|
||||||
PROJECT_CONTACTS_SIM_REQUESTS_NUMBER_3 ?? 'Ошибка'
|
|
||||||
]
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
|
||||||
// Initializing contacts data
|
// Initializing contacts data
|
||||||
$this->view->integrations = [
|
$this->view->integrations = [
|
||||||
|
'Вайлдберриз' => 'wildberries',
|
||||||
|
'ОЗОН' => 'ozon',
|
||||||
'Мой Склад' => 'moy_sklad',
|
'Мой Склад' => 'moy_sklad',
|
||||||
'1С Предприятие' => '1c',
|
'1С Предприятие' => '1c',
|
||||||
'Битрикс 24' => 'bitrix24',
|
'Битрикс 24' => 'bitrix24',
|
||||||
'ВКонтакте' => 'vk',
|
'ВКонтакте' => 'vk',
|
||||||
'МАКС' => 'max',
|
'МАКС' => 'max',
|
||||||
/* 'yandex_direct', */
|
|
||||||
'Яндекс Директ' => 'yandex_market',
|
|
||||||
'ОЗОН' => 'ozon',
|
|
||||||
'Вайлдберриз' => 'wildberries',
|
|
||||||
'Авито' => 'avito',
|
'Авито' => 'avito',
|
||||||
'YClients' => 'yclients',
|
'YClients' => 'yclients',
|
||||||
'ЮКасса' => 'yookassa',
|
'ЮКасса' => 'yookassa',
|
||||||
'OpenAI' => 'openai'
|
'OpenAI' => 'openai',
|
||||||
|
/* 'yandex_direct', */
|
||||||
|
'Яндекс Директ' => 'yandex_market',
|
||||||
];
|
];
|
||||||
|
|
||||||
// Render page
|
// Render page
|
||||||
|
|||||||
@@ -44,22 +44,6 @@ final class offer extends core
|
|||||||
if (str_contains($this->request->headers['accept'] ?? '', content::html->value)) {
|
if (str_contains($this->request->headers['accept'] ?? '', content::html->value)) {
|
||||||
// Request for HTML response
|
// Request for HTML response
|
||||||
|
|
||||||
// Initializing contacts data
|
|
||||||
$this->view->contacts = [
|
|
||||||
'sim' => [
|
|
||||||
'requests' => [
|
|
||||||
'full' => PROJECT_CONTACTS_SIM_REQUESTS ?? 'Ошибка',
|
|
||||||
'country' => PROJECT_CONTACTS_SIM_REQUESTS_COUNTRY ?? 'Ошибка',
|
|
||||||
'operator' => PROJECT_CONTACTS_SIM_REQUESTS_OPERATOR ?? 'Ошибка',
|
|
||||||
'number' => [
|
|
||||||
PROJECT_CONTACTS_SIM_REQUESTS_NUMBER_1 ?? 'Ошибка',
|
|
||||||
PROJECT_CONTACTS_SIM_REQUESTS_NUMBER_2 ?? 'Ошибка',
|
|
||||||
PROJECT_CONTACTS_SIM_REQUESTS_NUMBER_3 ?? 'Ошибка'
|
|
||||||
]
|
|
||||||
]
|
|
||||||
]
|
|
||||||
];
|
|
||||||
|
|
||||||
// Render page
|
// Render page
|
||||||
$page = $this->view->render(
|
$page = $this->view->render(
|
||||||
'main/offer.html',
|
'main/offer.html',
|
||||||
|
|||||||
@@ -83,20 +83,20 @@ final class project extends core
|
|||||||
$mail->setLanguage('ru');
|
$mail->setLanguage('ru');
|
||||||
$mail->CharSet = mail::CHARSET_UTF8;
|
$mail->CharSet = mail::CHARSET_UTF8;
|
||||||
$mail->isSMTP();
|
$mail->isSMTP();
|
||||||
$mail->Host = 'smtp.mail.ru';
|
$mail->Host = MAIL['host'];
|
||||||
$mail->SMTPAuth = true;
|
$mail->SMTPAuth = true;
|
||||||
$mail->Username = 'system@kodorvan.tech';
|
$mail->Username = MAIL['sender']['mail'];
|
||||||
$mail->Password = 'c6oQF2nY0javI312eDS0';
|
$mail->Password = MAIL['sender']['password'];
|
||||||
$mail->SMTPSecure = mail::ENCRYPTION_SMTPS;
|
$mail->SMTPSecure = mail::ENCRYPTION_SMTPS;
|
||||||
$mail->Port = 465;
|
$mail->Port = 465;
|
||||||
$mail->setFrom('system@kodorvan.tech', 'Система');
|
$mail->setFrom(MAIL['sender']['mail'], MAIL['sender']['name']);
|
||||||
$mail->addAddress('request@kodorvan.tech', 'Заявки');
|
$mail->addAddress(MAIL['receiver']['mail'], MAIL['receiver']['name']);
|
||||||
|
|
||||||
// The message
|
// The message
|
||||||
$mail->isHTML(true);
|
$mail->isHTML(true);
|
||||||
$mail->Subject = empty($request['project']['name']) ? 'Заказ' : 'Заказ: ' . $request['project']['name'];
|
$mail->Subject = empty($request['project']['name']) ? 'Заказ' : 'Заказ: ' . $request['project']['name'];
|
||||||
$mail->Body = $this->view->render('messages/request.html', $request);
|
$mail->Body = $this->view->render('messages/request.html', $request);
|
||||||
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
|
/* $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; */
|
||||||
|
|
||||||
// Attachments
|
// Attachments
|
||||||
foreach ($files as $name => $file) {
|
foreach ($files as $name => $file) {
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 893 B After Width: | Height: | Size: 542 B |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 5.9 KiB |
|
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 934 B |
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 7.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 364 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -1,71 +1 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="489.618" height="472.806" viewBox="0 0 129.545 125.097"><defs><radialGradient xlink:href="#a" id="c" cx="69.685" cy="90.596" r="49.385" fx="69.685" fy="90.596" gradientTransform="matrix(1.46578 -.63256 .71685 1.6611 -96.021 -9.471)" gradientUnits="userSpaceOnUse"/><radialGradient xlink:href="#b" id="d" cx="133.001" cy="106.398" r="64.772" fx="133.001" fy="106.398" gradientTransform="matrix(-2.5562 .5368 -.45438 -2.16374 446.938 196.267)" gradientUnits="userSpaceOnUse"/><linearGradient id="a"><stop offset=".206" style="stop-color:#0060c6;stop-opacity:1"/><stop offset=".999" style="stop-color:#000356;stop-opacity:1"/></linearGradient><linearGradient id="b"><stop offset=".171" style="stop-color:#6fc4ff;stop-opacity:1"/><stop offset="1" style="stop-color:#0adf70;stop-opacity:.63586265"/></linearGradient></defs><path d="M114.15 66.01a49.385 49.385 0 0 1-48.988 49.384 49.385 49.385 0 0 1-49.776-48.588A49.385 49.385 0 0 1 63.57 16.64a49.385 49.385 0 0 1 50.554 47.779" style="display:inline;fill:url(#c);fill-opacity:.983988;fill-rule:nonzero;stroke-width:2.22122;paint-order:stroke fill markers"/><path d="M129.545 60.324c0 35.57-28.682 64.484-64.25 64.77S.582 96.933.009 61.368c-.287-17.782 6.623-34.016 18.049-45.912L32.79 50.834l31.962 13.812-.97 41.644L99.85 58.627 73.743 35 88.406 0a64.9 64.9 0 0 1 20.857 13.25 64.9 64.9 0 0 1 14.405 20.076 64.6 64.6 0 0 1 5.843 24.91" style="display:inline;fill:url(#d);stroke-width:2.64583;paint-order:stroke fill markers"/></svg>
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
width="129.54482mm"
|
|
||||||
height="125.09652mm"
|
|
||||||
viewBox="0 0 129.54482 125.09652"
|
|
||||||
version="1.1"
|
|
||||||
id="svg1"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg">
|
|
||||||
<defs
|
|
||||||
id="defs1">
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient3">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#0060c6;stop-opacity:1;"
|
|
||||||
offset="0.20645721"
|
|
||||||
id="stop3" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#000356;stop-opacity:1;"
|
|
||||||
offset="0.9989059"
|
|
||||||
id="stop4" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient1">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#6fc4ff;stop-opacity:1;"
|
|
||||||
offset="0.17076893"
|
|
||||||
id="stop1" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#0adf70;stop-opacity:0.63586265;"
|
|
||||||
offset="1"
|
|
||||||
id="stop2" />
|
|
||||||
</linearGradient>
|
|
||||||
<radialGradient
|
|
||||||
xlink:href="#linearGradient3"
|
|
||||||
id="radialGradient4"
|
|
||||||
cx="69.684677"
|
|
||||||
cy="90.595695"
|
|
||||||
fx="69.684677"
|
|
||||||
fy="90.595695"
|
|
||||||
r="49.385239"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
gradientTransform="matrix(1.4657787,-0.63256258,0.71685408,1.6610996,-96.020968,-9.4714476)" />
|
|
||||||
<radialGradient
|
|
||||||
xlink:href="#linearGradient1"
|
|
||||||
id="radialGradient8"
|
|
||||||
cx="133.0006"
|
|
||||||
cy="106.39822"
|
|
||||||
fx="133.0006"
|
|
||||||
fy="106.39822"
|
|
||||||
r="64.772408"
|
|
||||||
gradientTransform="matrix(-2.5562072,0.53679846,-0.45438206,-2.1637443,446.93777,196.26702)"
|
|
||||||
gradientUnits="userSpaceOnUse" />
|
|
||||||
</defs>
|
|
||||||
<path
|
|
||||||
style="display:inline;fill:url(#radialGradient4);fill-opacity:0.983988;fill-rule:nonzero;stroke-width:2.22122;paint-order:stroke fill markers"
|
|
||||||
id="path2"
|
|
||||||
d="M 114.14959,66.009985 A 49.385239,49.385239 0 0 1 65.162476,115.39362 49.385239,49.385239 0 0 1 15.38553,66.806211 49.385239,49.385239 0 0 1 63.570075,16.639189 49.385239,49.385239 0 0 1 114.12391,64.41774" />
|
|
||||||
<path
|
|
||||||
id="path1"
|
|
||||||
style="display:inline;fill:url(#radialGradient8);stroke-width:2.64583;paint-order:stroke fill markers"
|
|
||||||
d="m 129.54482,60.324142 c 0,35.56901 -28.68229,64.483468 -64.250152,64.770218 C 29.72681,125.38111 0.58206084,96.932842 0.00858984,61.368452 -0.27814616,43.586256 6.6315828,27.351873 18.057823,15.455519 L 32.789578,50.834474 64.751888,64.645522 63.781478,106.2899 99.850468,58.627162 73.743498,34.999493 88.406328,0 c 7.79332,3.057143 14.862732,7.58429 20.856772,13.249271 5.99404,5.664982 10.91271,12.467797 14.40455,20.076274 3.49183,7.608477 5.55683,16.022617 5.84353,24.910247" />
|
|
||||||
<path
|
|
||||||
id="path5"
|
|
||||||
style="display:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
|
|
||||||
d="m 156.03189,48.675988 c 0,0 -0.48124,1.149734 -0.48124,1.149734 7.47158,3.127366 13.76035,8.757556 18.60133,15.033917 3.47372,4.503708 5.77328,8.679785 8.08747,12.343411 1.02716,1.626109 1.99256,3.317001 2.88786,5.073729 5.57385,10.936769 8.27496,24.254811 6.33597,38.307871 -1.81681,13.16752 -7.63944,25.96117 -17.4307,35.65948 -5.03375,4.98596 -10.97996,9.0142 -17.69827,11.85196 -7.22782,3.05296 -15.1235,4.63388 -23.42167,4.73245 -0.85262,0.0108 -1.69223,0.004 -2.51863,-0.0189 -14.1633,-0.39672 -25.57791,-5.05285 -34.17105,-11.0133 C 85.038155,154.03818 77.884734,143.64417 73.765338,134.02513 68.088136,120.76851 67.595266,108.31489 69.031333,98.509565 70.913466,85.658549 76.262275,76.52398 79.737684,71.524371 c 3.696594,-5.317797 5.945701,-7.392864 5.945701,-7.392864 0,0 -2.33932,1.972559 -6.214586,7.199789 -3.636021,4.904518 -9.303495,13.993979 -11.461258,27.018426 -1.64637,9.937638 -1.344521,22.656968 4.328486,36.278968 4.114552,9.87985 11.373099,20.61326 22.855995,28.64738 8.830228,6.17816 20.582878,10.99648 35.149578,11.4045 0.84878,0.0238 1.71085,0.0347 2.58621,0.0316 8.48799,-0.0368 16.67375,-1.34049 24.38977,-4.07858 7.17719,-2.54687 13.78867,-6.28188 19.64994,-11.14174 11.39583,-9.44885 19.35723,-22.68375 22.78331,-37.34635 3.64637,-15.60541 1.86385,-31.494338 -4.58101,-44.839852 -1.02738,-2.127422 -2.16303,-4.170709 -3.39713,-6.124429 -2.75251,-4.35753 -6.99513,-8.511352 -12.19307,-12.129511 -7.56806,-5.267932 -15.28231,-8.267232 -23.06649,-11.525444 0,0 -0.48124,1.149734 -0.48124,1.149734 z"
|
|
||||||
transform="translate(-67.625562,-48.675988)" />
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 1.5 KiB |
@@ -340,18 +340,46 @@ export default class project {
|
|||||||
symbol: Symbol("moy_sklad"),
|
symbol: Symbol("moy_sklad"),
|
||||||
coefficient: 3
|
coefficient: 3
|
||||||
},
|
},
|
||||||
telegram: {
|
|
||||||
symbol: Symbol("telegram"),
|
|
||||||
coefficient: 2
|
|
||||||
},
|
|
||||||
mail: {
|
mail: {
|
||||||
symbol: Symbol("mail"),
|
symbol: Symbol("mail"),
|
||||||
coefficient: 1.4
|
coefficient: 1.4
|
||||||
},
|
},
|
||||||
excel: {
|
excel: {
|
||||||
symbol: Symbol("excel"),
|
symbol: Symbol("excel"),
|
||||||
coefficient: 1.6
|
coefficient: 1.8
|
||||||
}
|
},
|
||||||
|
ozon: {
|
||||||
|
symbol: Symbol("ozon"),
|
||||||
|
coefficient: 2.8
|
||||||
|
},
|
||||||
|
wildberries: {
|
||||||
|
symbol: Symbol("wildberries"),
|
||||||
|
coefficient: 2.9
|
||||||
|
},
|
||||||
|
yandex_market: {
|
||||||
|
symbol: Symbol("yandex_market"),
|
||||||
|
coefficient: 2.6
|
||||||
|
},
|
||||||
|
avito: {
|
||||||
|
symbol: Symbol("avito"),
|
||||||
|
coefficient: 2.4
|
||||||
|
},
|
||||||
|
vk: {
|
||||||
|
symbol: Symbol("vk"),
|
||||||
|
coefficient: 2
|
||||||
|
},
|
||||||
|
max: {
|
||||||
|
symbol: Symbol("max"),
|
||||||
|
coefficient: 2
|
||||||
|
},
|
||||||
|
telegram: {
|
||||||
|
symbol: Symbol("telegram"),
|
||||||
|
coefficient: 2
|
||||||
|
},
|
||||||
|
neural_networks: {
|
||||||
|
symbol: Symbol("neural_networks"),
|
||||||
|
coefficient: 2.6
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -399,33 +427,49 @@ export default class project {
|
|||||||
* @protected
|
* @protected
|
||||||
*/
|
*/
|
||||||
#purposes = Object.freeze({
|
#purposes = Object.freeze({
|
||||||
project: {
|
funnel: {
|
||||||
symbol: Symbol("project"),
|
symbol: Symbol("funnel"),
|
||||||
integrations: new Set([
|
integrations: new Set([
|
||||||
this.services.telegram,
|
this.services.telegram,
|
||||||
|
this.services.max,
|
||||||
|
this.services.vk,
|
||||||
this.services.mail,
|
this.services.mail,
|
||||||
this.services.bitrix24
|
this.services.bitrix24,
|
||||||
|
this.services.neural_networks,
|
||||||
]),
|
]),
|
||||||
coefficient: 2.1
|
coefficient: 1.2
|
||||||
},
|
},
|
||||||
contact: {
|
contacts: {
|
||||||
symbol: Symbol("contact"),
|
symbol: Symbol("contacts"),
|
||||||
integrations: new Set([
|
integrations: new Set([
|
||||||
this.services.telegram,
|
this.services.telegram,
|
||||||
|
this.services.max,
|
||||||
|
this.services.vk,
|
||||||
this.services.mail,
|
this.services.mail,
|
||||||
this.services.bitrix24
|
this.services.bitrix24,
|
||||||
|
this.services.neural_networks,
|
||||||
]),
|
]),
|
||||||
coefficient: 1.1
|
coefficient: 1.1
|
||||||
},
|
},
|
||||||
neural_network: {
|
ai: {
|
||||||
symbol: Symbol("neural_network"),
|
symbol: Symbol("ai"),
|
||||||
integrations: new Set([
|
integrations: new Set([
|
||||||
this.services.telegram
|
this.services.telegram,
|
||||||
|
this.services.max,
|
||||||
|
this.services.vk,
|
||||||
|
this.services.one_c,
|
||||||
|
this.services.bitrix24,
|
||||||
|
this.services.excel,
|
||||||
|
this.services.mail,
|
||||||
|
this.services.ozon,
|
||||||
|
this.services.wildberries,
|
||||||
|
this.services.avito,
|
||||||
|
this.services.yandex_market,
|
||||||
]),
|
]),
|
||||||
coefficient: 4
|
coefficient: 3
|
||||||
},
|
},
|
||||||
gallery: {
|
archive: {
|
||||||
symbol: Symbol("gallery"),
|
symbol: Symbol("archive"),
|
||||||
integrations: new Set([
|
integrations: new Set([
|
||||||
]),
|
]),
|
||||||
coefficient: 1
|
coefficient: 1
|
||||||
@@ -433,9 +477,16 @@ export default class project {
|
|||||||
crm: {
|
crm: {
|
||||||
symbol: Symbol("crm"),
|
symbol: Symbol("crm"),
|
||||||
integrations: new Set([
|
integrations: new Set([
|
||||||
|
this.services.telegram,
|
||||||
|
this.services.max,
|
||||||
|
this.services.vk,
|
||||||
this.services.one_c,
|
this.services.one_c,
|
||||||
this.services.moy_sklad,
|
this.services.moy_sklad,
|
||||||
this.services.excel
|
this.services.excel,
|
||||||
|
this.services.ozon,
|
||||||
|
this.services.wildberries,
|
||||||
|
this.services.avito,
|
||||||
|
this.services.yandex_market,
|
||||||
]),
|
]),
|
||||||
coefficient: 6
|
coefficient: 6
|
||||||
},
|
},
|
||||||
@@ -443,8 +494,10 @@ export default class project {
|
|||||||
symbol: Symbol("landing"),
|
symbol: Symbol("landing"),
|
||||||
integrations: new Set([
|
integrations: new Set([
|
||||||
this.services.telegram,
|
this.services.telegram,
|
||||||
|
this.services.max,
|
||||||
|
this.services.vk,
|
||||||
this.services.mail,
|
this.services.mail,
|
||||||
this.services.bitrix24
|
this.services.bitrix24,
|
||||||
]),
|
]),
|
||||||
coefficient: 1.5
|
coefficient: 1.5
|
||||||
},
|
},
|
||||||
@@ -453,13 +506,40 @@ export default class project {
|
|||||||
integrations: new Set([
|
integrations: new Set([
|
||||||
this.services.one_c,
|
this.services.one_c,
|
||||||
this.services.moy_sklad,
|
this.services.moy_sklad,
|
||||||
this.services.excel
|
this.services.excel,
|
||||||
|
this.services.ozon,
|
||||||
|
this.services.wildberries,
|
||||||
|
this.services.avito,
|
||||||
|
this.services.yandex_market,
|
||||||
|
]),
|
||||||
|
coefficient: 8
|
||||||
|
},
|
||||||
|
saas: {
|
||||||
|
symbol: Symbol("saas"),
|
||||||
|
integrations: new Set([
|
||||||
|
this.services.telegram,
|
||||||
|
this.services.max,
|
||||||
|
this.services.vk,
|
||||||
|
this.services.one_c,
|
||||||
|
this.services.moy_sklad,
|
||||||
|
this.services.excel,
|
||||||
|
this.services.ozon,
|
||||||
|
this.services.wildberries,
|
||||||
|
this.services.avito,
|
||||||
|
this.services.yandex_market,
|
||||||
]),
|
]),
|
||||||
coefficient: 8
|
coefficient: 8
|
||||||
},
|
},
|
||||||
search: {
|
search: {
|
||||||
symbol: Symbol("search"),
|
symbol: Symbol("search"),
|
||||||
integrations: new Set([
|
integrations: new Set([
|
||||||
|
this.services.telegram,
|
||||||
|
this.services.max,
|
||||||
|
this.services.vk,
|
||||||
|
this.services.ozon,
|
||||||
|
this.services.wildberries,
|
||||||
|
this.services.avito,
|
||||||
|
this.services.yandex_market,
|
||||||
]),
|
]),
|
||||||
coefficient: 1
|
coefficient: 1
|
||||||
},
|
},
|
||||||
@@ -468,19 +548,25 @@ export default class project {
|
|||||||
integrations: new Set([
|
integrations: new Set([
|
||||||
this.services.one_c,
|
this.services.one_c,
|
||||||
this.services.moy_sklad,
|
this.services.moy_sklad,
|
||||||
this.services.excel
|
this.services.excel,
|
||||||
|
this.services.ozon,
|
||||||
|
this.services.wildberries,
|
||||||
|
this.services.avito,
|
||||||
|
this.services.yandex_market,
|
||||||
]),
|
]),
|
||||||
coefficient: 2
|
coefficient: 2
|
||||||
},
|
},
|
||||||
logic: {
|
game: {
|
||||||
symbol: Symbol("logic"),
|
symbol: Symbol("game"),
|
||||||
integrations: new Set([
|
integrations: new Set([
|
||||||
]),
|
]),
|
||||||
coefficient: 1
|
coefficient: 4
|
||||||
},
|
},
|
||||||
special: {
|
individual: {
|
||||||
symbol: Symbol("special"),
|
symbol: Symbol("individual"),
|
||||||
integrations: this.services,
|
// integrations: this.services,
|
||||||
|
integrations: new Set([
|
||||||
|
]),
|
||||||
coefficient: 3
|
coefficient: 3
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -510,19 +596,22 @@ export default class project {
|
|||||||
site: {
|
site: {
|
||||||
symbol: Symbol("site"),
|
symbol: Symbol("site"),
|
||||||
purposes: new Set([
|
purposes: new Set([
|
||||||
this.purposes.project,
|
this.purposes.funnel,
|
||||||
this.purposes.contact,
|
this.purposes.landing,
|
||||||
this.purposes.neural_network,
|
this.purposes.contacts,
|
||||||
this.purposes.gallery,
|
this.purposes.archive,
|
||||||
|
this.purposes.ai,
|
||||||
this.purposes.crm,
|
this.purposes.crm,
|
||||||
this.purposes.calculate,
|
this.purposes.calculate,
|
||||||
this.purposes.landing,
|
this.purposes.saas,
|
||||||
this.purposes.marketplace
|
this.purposes.marketplace,
|
||||||
|
this.purposes.search,
|
||||||
|
this.purposes.individual,
|
||||||
]),
|
]),
|
||||||
coefficient: 3,
|
coefficient: 3,
|
||||||
cost: {
|
cost: {
|
||||||
usd: 80,
|
usd: 120,
|
||||||
rub: 8000
|
rub: 12000
|
||||||
},
|
},
|
||||||
team: new Map([
|
team: new Map([
|
||||||
[this.#workers.programmer, 1],
|
[this.#workers.programmer, 1],
|
||||||
@@ -533,15 +622,16 @@ export default class project {
|
|||||||
chat_robot: {
|
chat_robot: {
|
||||||
symbol: Symbol("chat_robot"),
|
symbol: Symbol("chat_robot"),
|
||||||
purposes: new Set([
|
purposes: new Set([
|
||||||
this.purposes.project,
|
this.purposes.funnel,
|
||||||
this.purposes.contact,
|
this.purposes.landing,
|
||||||
this.purposes.neural_network,
|
this.purposes.contacts,
|
||||||
this.purposes.game,
|
this.purposes.archive,
|
||||||
this.purposes.gallery,
|
this.purposes.ai,
|
||||||
this.purposes.crm,
|
this.purposes.crm,
|
||||||
this.purposes.calculate,
|
this.purposes.calculate,
|
||||||
this.purposes.landing,
|
this.purposes.saas,
|
||||||
this.purposes.marketplace
|
this.purposes.marketplace,
|
||||||
|
this.purposes.individual,
|
||||||
]),
|
]),
|
||||||
coefficient: 3,
|
coefficient: 3,
|
||||||
cost: {
|
cost: {
|
||||||
@@ -551,21 +641,23 @@ export default class project {
|
|||||||
team: new Map([
|
team: new Map([
|
||||||
[this.#workers.programmer, 1],
|
[this.#workers.programmer, 1],
|
||||||
[this.#workers.designer, 0],
|
[this.#workers.designer, 0],
|
||||||
[this.#workers.booster, 1]
|
[this.#workers.booster, 0]
|
||||||
])
|
])
|
||||||
},
|
},
|
||||||
program: {
|
program: {
|
||||||
symbol: Symbol("program"),
|
symbol: Symbol("program"),
|
||||||
purposes: new Set([
|
purposes: new Set([
|
||||||
this.purposes.neural_network,
|
this.purposes.neural_network,
|
||||||
|
this.purposes.ai,
|
||||||
this.purposes.crm,
|
this.purposes.crm,
|
||||||
this.purposes.calculate,
|
this.purposes.calculate,
|
||||||
this.purposes.marketplace
|
this.purposes.marketplace,
|
||||||
|
this.purposes.individual,
|
||||||
]),
|
]),
|
||||||
coefficient: 4,
|
coefficient: 4,
|
||||||
cost: {
|
cost: {
|
||||||
usd: 100,
|
usd: 180,
|
||||||
rub: 10000
|
rub: 18000
|
||||||
},
|
},
|
||||||
team: new Map([
|
team: new Map([
|
||||||
[this.#workers.programmer, 1],
|
[this.#workers.programmer, 1],
|
||||||
@@ -573,38 +665,7 @@ export default class project {
|
|||||||
[this.#workers.booster, 0]
|
[this.#workers.booster, 0]
|
||||||
])
|
])
|
||||||
},
|
},
|
||||||
parser: {
|
|
||||||
symbol: Symbol("parser"),
|
|
||||||
purposes: new Set([
|
|
||||||
this.purposes.search
|
|
||||||
]),
|
|
||||||
coefficient: 2,
|
|
||||||
cost: {
|
|
||||||
usd: 35,
|
|
||||||
rub: 3500
|
|
||||||
},
|
|
||||||
team: new Map([
|
|
||||||
[this.#workers.programmer, 1],
|
|
||||||
[this.#workers.designer, 0],
|
|
||||||
[this.#workers.booster, 0]
|
|
||||||
])
|
|
||||||
},
|
|
||||||
script: {
|
|
||||||
symbol: Symbol("script"),
|
|
||||||
purposes: new Set([
|
|
||||||
this.purposes.logic
|
|
||||||
]),
|
|
||||||
coefficient: 1,
|
|
||||||
cost: {
|
|
||||||
usd: 20,
|
|
||||||
rub: 2000
|
|
||||||
},
|
|
||||||
team: new Map([
|
|
||||||
[this.#workers.programmer, 1],
|
|
||||||
[this.#workers.designer, 0],
|
|
||||||
[this.#workers.booster, 0]
|
|
||||||
])
|
|
||||||
},
|
|
||||||
game: {
|
game: {
|
||||||
symbol: Symbol("game"),
|
symbol: Symbol("game"),
|
||||||
purposes: new Set([
|
purposes: new Set([
|
||||||
@@ -619,6 +680,39 @@ export default class project {
|
|||||||
[this.#workers.programmer, 1],
|
[this.#workers.programmer, 1],
|
||||||
[this.#workers.designer, 1],
|
[this.#workers.designer, 1],
|
||||||
[this.#workers.booster, 1]
|
[this.#workers.booster, 1]
|
||||||
|
])
|
||||||
|
},
|
||||||
|
script: {
|
||||||
|
symbol: Symbol("script"),
|
||||||
|
purposes: new Set([
|
||||||
|
this.purposes.search,
|
||||||
|
this.purposes.individual,
|
||||||
|
]),
|
||||||
|
coefficient: 1,
|
||||||
|
cost: {
|
||||||
|
usd: 20,
|
||||||
|
rub: 2000
|
||||||
|
},
|
||||||
|
team: new Map([
|
||||||
|
[this.#workers.programmer, 1],
|
||||||
|
[this.#workers.designer, 0],
|
||||||
|
[this.#workers.booster, 0]
|
||||||
|
])
|
||||||
|
},
|
||||||
|
module: {
|
||||||
|
symbol: Symbol("module"),
|
||||||
|
purposes: new Set([
|
||||||
|
this.purposes.individual,
|
||||||
|
]),
|
||||||
|
coefficient: 1,
|
||||||
|
cost: {
|
||||||
|
usd: 60,
|
||||||
|
rub: 6000
|
||||||
|
},
|
||||||
|
team: new Map([
|
||||||
|
[this.#workers.programmer, 1],
|
||||||
|
[this.#workers.designer, 0],
|
||||||
|
[this.#workers.booster, 0]
|
||||||
])
|
])
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -1759,6 +1853,15 @@ export default class project {
|
|||||||
// Reloading the page @todo make something smarter
|
// Reloading the page @todo make something smarter
|
||||||
alert("Запрос доставлен, ожидайте обратной связи");
|
alert("Запрос доставлен, ожидайте обратной связи");
|
||||||
|
|
||||||
|
// Initializing the rofls HTML-element
|
||||||
|
const rofls = document.getElementById('rofls');
|
||||||
|
|
||||||
|
// Showing rofls
|
||||||
|
rofls.style.removeProperty('display');
|
||||||
|
|
||||||
|
// Starting the rofls hotline.mjs instance
|
||||||
|
rofls.instance.start();
|
||||||
|
|
||||||
// Exit (success)
|
// Exit (success)
|
||||||
resolve();
|
resolve();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,8 +4,10 @@
|
|||||||
:root {
|
:root {
|
||||||
--text-color: #fff;
|
--text-color: #fff;
|
||||||
--text-color-inverted: #000;
|
--text-color-inverted: #000;
|
||||||
--button-background-color-inverted: #fff;
|
--button-background-color: #fff;
|
||||||
--button-background-color: #000;
|
--button-background-color-inverted: #000;
|
||||||
|
--button-hover-background-color: #abc7c6;
|
||||||
|
--button-active-background-color: #8fa3a2;
|
||||||
--section-background-color-inverted: #fff;
|
--section-background-color-inverted: #fff;
|
||||||
--section-background-color: #000;
|
--section-background-color: #000;
|
||||||
--background-color: #fbfaf6;
|
--background-color: #fbfaf6;
|
||||||
@@ -21,9 +23,6 @@
|
|||||||
--blue: #0ea5e9;
|
--blue: #0ea5e9;
|
||||||
|
|
||||||
--paper: var(--white);
|
--paper: var(--white);
|
||||||
|
|
||||||
--button-plain-hover-background-color: #bdd2c8;
|
|
||||||
--button-plain-active-background-color: #7d9f8f;
|
|
||||||
}
|
}
|
||||||
/* } */
|
/* } */
|
||||||
|
|
||||||
@@ -56,8 +55,10 @@
|
|||||||
:root {
|
:root {
|
||||||
--text-color: #fff;
|
--text-color: #fff;
|
||||||
--text-color-inverted: #000;
|
--text-color-inverted: #000;
|
||||||
--button-background-color-inverted: #fff;
|
--button-background-color: #fff;
|
||||||
--button-background-color: #000;
|
--button-background-color-inverted: #000;
|
||||||
|
--button-hover-background-color: #abc7c6;
|
||||||
|
--button-active-background-color: #8fa3a2;
|
||||||
--section-background-color-inverted: #fff;
|
--section-background-color-inverted: #fff;
|
||||||
--section-background-color: #000;
|
--section-background-color: #000;
|
||||||
--background-color: #fbfaf6;
|
--background-color: #fbfaf6;
|
||||||
@@ -72,8 +73,5 @@
|
|||||||
--white: #fff;
|
--white: #fff;
|
||||||
|
|
||||||
--paper: var(--white);
|
--paper: var(--white);
|
||||||
|
|
||||||
--button-plain-hover-background-color: #bdd2c8;
|
|
||||||
--button-plain-active-background-color: #7d9f8f;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
@charset "UTF-8";
|
@charset "UTF-8";
|
||||||
|
|
||||||
section#companies {
|
article#companies {
|
||||||
z-index: 50;
|
z-index: 50;
|
||||||
width: 100vw;
|
width: 100vw;
|
||||||
height: 70px;
|
height: 70px;
|
||||||
|
|||||||
@@ -30,11 +30,12 @@ section#cookies {
|
|||||||
}
|
}
|
||||||
|
|
||||||
>div {
|
>div {
|
||||||
padding: 0.8rem 1.2rem 0.7rem;
|
padding: 0.9rem 1.2rem 0.8rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
gap: 0.3rem;
|
||||||
|
|
||||||
>p {
|
>p {
|
||||||
margin: unset;
|
margin: unset;
|
||||||
@@ -43,6 +44,8 @@ section#cookies {
|
|||||||
}
|
}
|
||||||
|
|
||||||
>small {
|
>small {
|
||||||
|
line-height: 1rem;
|
||||||
|
text-align: center;
|
||||||
font-family: Nunito;
|
font-family: Nunito;
|
||||||
font-size: 0.9rem;
|
font-size: 0.9rem;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
|||||||
@@ -125,8 +125,8 @@ section#project {
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 0.8em;
|
gap: 0.8em;
|
||||||
overflow: hidden;
|
/* overflow: hidden;
|
||||||
border-radius: 1.125rem;
|
border-radius: 1.125rem; */
|
||||||
/* border: 2px solid;
|
/* border: 2px solid;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
box-shadow: var(--shadow);
|
box-shadow: var(--shadow);
|
||||||
@@ -185,6 +185,8 @@ section#project {
|
|||||||
>:is(input, select, textarea) {
|
>:is(input, select, textarea) {
|
||||||
grid-column: 2;
|
grid-column: 2;
|
||||||
grid-row: 2;
|
grid-row: 2;
|
||||||
|
width: 100%;
|
||||||
|
border-radius: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
>small.guide {
|
>small.guide {
|
||||||
@@ -266,7 +268,7 @@ section#project {
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-flow: row wrap;
|
justify-content: space-between;
|
||||||
gap: 0.6em 1em;
|
gap: 0.6em 1em;
|
||||||
/* border-radius: 0.75rem; */
|
/* border-radius: 0.75rem; */
|
||||||
border: 1px solid #000;
|
border: 1px solid #000;
|
||||||
@@ -278,45 +280,39 @@ section#project {
|
|||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
}
|
}
|
||||||
|
|
||||||
>div.row {
|
>label {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.3rem;
|
||||||
|
|
||||||
>label {
|
>input[type="number"] {
|
||||||
width: 100%;
|
appearance: textfield;
|
||||||
display: flex;
|
-moz-appearance: textfield;
|
||||||
flex-direction: column;
|
width: 80%;
|
||||||
align-items: center;
|
/* padding: 0.4em 0.6em 0.4em 1.2em; */
|
||||||
gap: 0.3rem;
|
padding: 0.4em 0.6em;
|
||||||
|
box-sizing: border-box;
|
||||||
|
text-align: center;
|
||||||
|
font-family: Nunito;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 1em;
|
||||||
|
outline: unset;
|
||||||
|
border: unset;
|
||||||
|
border-bottom: 1px solid #000;
|
||||||
|
background: unset;
|
||||||
|
|
||||||
>input[type="number"] {
|
&::-webkit-outer-spin-button,
|
||||||
appearance: textfield;
|
&::-webkit-inner-spin-button {
|
||||||
-moz-appearance: textfield;
|
-webkit-appearance: none;
|
||||||
width: 80%;
|
display: none;
|
||||||
/* padding: 0.4em 0.6em 0.4em 1.2em; */
|
|
||||||
padding: 0.4em 0.6em;
|
|
||||||
box-sizing: border-box;
|
|
||||||
text-align: center;
|
|
||||||
font-family: Nunito;
|
|
||||||
font-weight: 400;
|
|
||||||
font-size: 1em;
|
|
||||||
outline: unset;
|
|
||||||
border: unset;
|
|
||||||
border-bottom: 1px solid #000;
|
|
||||||
background: unset;
|
|
||||||
|
|
||||||
&::-webkit-outer-spin-button,
|
|
||||||
&::-webkit-inner-spin-button {
|
|
||||||
-webkit-appearance: none;
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
>span {
|
>span {
|
||||||
font-size: 0.9em;
|
font-size: 0.9em;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -703,11 +699,9 @@ section#project {
|
|||||||
gap: unset;
|
gap: unset;
|
||||||
|
|
||||||
>label#requester_personal {
|
>label#requester_personal {
|
||||||
padding: 1em 0.8em;
|
padding: 0.6em 0.8em;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
display: grid;
|
display: flex;
|
||||||
grid-template-columns: 3ch auto;
|
|
||||||
grid-template-rows: 2ch;
|
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 0.7ch;
|
gap: 0.7ch;
|
||||||
font-size: 0.9rem;
|
font-size: 0.9rem;
|
||||||
@@ -725,8 +719,7 @@ section#project {
|
|||||||
}
|
}
|
||||||
|
|
||||||
>div {
|
>div {
|
||||||
grid-column: 1;
|
scale: 0.8;
|
||||||
scale: 0.7;
|
|
||||||
|
|
||||||
>input {
|
>input {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@@ -762,7 +755,6 @@ section#project {
|
|||||||
}
|
}
|
||||||
|
|
||||||
>span {
|
>span {
|
||||||
grid-column: 2;
|
|
||||||
margin-top: 0.15ch;
|
margin-top: 0.15ch;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -858,7 +850,7 @@ section#project {
|
|||||||
display: contents;
|
display: contents;
|
||||||
|
|
||||||
>button#back {
|
>button#back {
|
||||||
--diameter: 6ch;
|
--diameter: 7ch;
|
||||||
--radius: calc(var(--diameter, 4ch) / 2);
|
--radius: calc(var(--diameter, 4ch) / 2);
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: calc(-1.2rem - var(--diameter, 4ch));
|
left: calc(-1.2rem - var(--diameter, 4ch));
|
||||||
@@ -870,14 +862,14 @@ section#project {
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
border-radius: 100%;
|
border-radius: 100%;
|
||||||
border: unset;
|
border: unset;
|
||||||
background-color: #fff;
|
background-color: var(--button-background-color, #fff);
|
||||||
|
|
||||||
&:is(:hover, :focus) {
|
&:is(:hover, :focus) {
|
||||||
background-color: var(--button-plain-hover-background-color, #bdd2c8);
|
background-color: var(--button-hover-background-color, #abc7c6);
|
||||||
}
|
}
|
||||||
|
|
||||||
&:active {
|
&:active {
|
||||||
background-color: var(--button-plain-active-background-color, #7d9f8f);
|
background-color: var(--button-active-background-color, #8fa3a2);
|
||||||
}
|
}
|
||||||
|
|
||||||
>img {
|
>img {
|
||||||
@@ -894,20 +886,33 @@ section#project {
|
|||||||
/* padding: 1.05em 1.3em 1em;
|
/* padding: 1.05em 1.3em 1em;
|
||||||
border-radius: 0.75rem; */
|
border-radius: 0.75rem; */
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
padding: 1.55em 1.3em 1.5em;
|
padding: 1.25em 1.3em 1.2em;
|
||||||
|
font-size: 1rem;
|
||||||
border-radius: 1.25rem;
|
border-radius: 1.25rem;
|
||||||
border: unset;
|
border: unset;
|
||||||
background-color: #fff;
|
background-color: var(--button-background-color, #fff);
|
||||||
|
|
||||||
|
&:is(:hover, :focus) {
|
||||||
|
background-color: var(--button-hover-background-color, #abc7c6);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:active {
|
||||||
|
background-color: var(--button-active-background-color, #8fa3a2);
|
||||||
|
}
|
||||||
|
|
||||||
&:is(#send) {
|
&:is(#send) {
|
||||||
--shadow: 0 4px 5px -4px rgba(0, 0, 0, 0.5);
|
--shadow: 0 4px 5px -4px rgba(0, 0, 0, 0.5);
|
||||||
/* padding: 2.3ch 4.5ch 2.5ch; */
|
/* padding: 2.3ch 4.5ch 2.5ch; */
|
||||||
line-height: 0.9em;
|
font-weight: 600;
|
||||||
|
font-size: 1rem;
|
||||||
|
color: #fff;
|
||||||
|
text-shadow: 0 0 4px #000, 0 3px 1.4rem #0009;
|
||||||
border: unset;
|
border: unset;
|
||||||
background: #ff5c5c;
|
background: hsl(var(--button-send-background-color, 120deg) 40% 50%);
|
||||||
box-shadow: var(--shadow);
|
box-shadow: var(--shadow);
|
||||||
-webkit-box-shadow: var(--shadow);
|
-webkit-box-shadow: var(--shadow);
|
||||||
-moz-box-shadow: var(--shadow);
|
-moz-box-shadow: var(--shadow);
|
||||||
|
transition: background 1.2s ease-out;
|
||||||
|
|
||||||
&:not(:disabled) {
|
&:not(:disabled) {
|
||||||
filter: contrast(1.1);
|
filter: contrast(1.1);
|
||||||
@@ -934,16 +939,6 @@ section#project {
|
|||||||
filter: grayscale(1) brightness(0.8);
|
filter: grayscale(1) brightness(0.8);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
>span {
|
|
||||||
line-height: 1rem;
|
|
||||||
font-family: Geologica;
|
|
||||||
font-weight: 600;
|
|
||||||
font-size: 1rem;
|
|
||||||
color: #fff;
|
|
||||||
text-shadow: 0 0 4px #00000070;
|
|
||||||
/* mix-blend-mode: overlay; */
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -965,6 +960,10 @@ section#project {
|
|||||||
font-size: 0.8em;
|
font-size: 0.8em;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
text-shadow: 0px 1px 3px #000C, 0px 1px 1px #000B;
|
text-shadow: 0px 1px 3px #000C, 0px 1px 1px #000B;
|
||||||
|
|
||||||
|
>b {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
>section#contacts_shortcut {
|
>section#contacts_shortcut {
|
||||||
@@ -1022,7 +1021,22 @@ section#project {
|
|||||||
margin: unset;
|
margin: unset;
|
||||||
min-width: var(--diameter, 4ch);
|
min-width: var(--diameter, 4ch);
|
||||||
width: 30%;
|
width: 30%;
|
||||||
border-radius: 0.75rem;
|
height: auto;
|
||||||
|
border-radius: 1.25rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (width < 480px) {
|
||||||
|
section#project {
|
||||||
|
>article {
|
||||||
|
>section[data-paginator-page] {
|
||||||
|
>section#team {
|
||||||
|
>fieldset {
|
||||||
|
flex-flow: row wrap;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
61
kodorvan/site/system/public/themes/default/css/elements/rofls.css
Executable file
@@ -0,0 +1,61 @@
|
|||||||
|
@charset "UTF-8";
|
||||||
|
|
||||||
|
body {
|
||||||
|
&:has(> article#rofls > img.eye:is(:hover, :focus, :active)) {
|
||||||
|
>article#rofls {
|
||||||
|
>img.eye {
|
||||||
|
cursor: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
>img:not(.eye) {
|
||||||
|
opacity: 0;
|
||||||
|
transition: opacity 0.1s ease-in;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
>*:not(section#buttons) {
|
||||||
|
opacity: 0;
|
||||||
|
transition: opacity 0.1s ease-in;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
>article#rofls {
|
||||||
|
z-index: 50;
|
||||||
|
width: min-content;
|
||||||
|
height: 32px;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
&:has(> img.colors:is(:hover, :focus, :active)) {
|
||||||
|
z-index: 9999;
|
||||||
|
mix-blend-mode: color-dodge;
|
||||||
|
filter: contrast(50);
|
||||||
|
}
|
||||||
|
|
||||||
|
>img {
|
||||||
|
margin: unset;
|
||||||
|
height: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
&:is(.noclick) {
|
||||||
|
cursor: not-allowed;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:is(.antibuttons) {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:is(.construction, .cogs) {
|
||||||
|
cursor: wait;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (width < 800px) {
|
||||||
|
section#rofls {
|
||||||
|
height: 50px;
|
||||||
|
padding-bottom: 2.5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -20,12 +20,24 @@ section#superpacks {
|
|||||||
scale: 1.4;
|
scale: 1.4;
|
||||||
transform-origin: top;
|
transform-origin: top;
|
||||||
|
|
||||||
|
/* &:before {
|
||||||
|
content: '';
|
||||||
|
border-bottom: 0.65vw solid #1f5a58;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
width: 12.8%;
|
||||||
|
} */
|
||||||
|
|
||||||
>img.layer {
|
>img.layer {
|
||||||
z-index: 30;
|
z-index: 30;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
padding-left: 3.2vw;
|
padding-left: 3.2vw;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 5vw;
|
height: 5vw;
|
||||||
|
|
||||||
|
&:is(.packs) {
|
||||||
|
margin-left: 3px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
>div.labubumba {
|
>div.labubumba {
|
||||||
@@ -35,7 +47,8 @@ section#superpacks {
|
|||||||
width: 72vw;
|
width: 72vw;
|
||||||
height: 17.2vw;
|
height: 17.2vw;
|
||||||
background: red;
|
background: red;
|
||||||
background: radial-gradient(circle, red 20vw, #af0000 40vw);
|
background: radial-gradient(circle, red 12vw, #000 50vw);
|
||||||
|
background: radial-gradient(circle, hsl(calc(var(--scroll-deg, 0deg) * 12) 100% 50%) 12vw, #000 50vw);
|
||||||
mask: var(--mask);
|
mask: var(--mask);
|
||||||
clip-path: polygon(0 0, 0 100%, 39% 100%, 39% 46.5%, 61% 46.5%, 61% 100%, 100% 100%, 100% 0);
|
clip-path: polygon(0 0, 0 100%, 39% 100%, 39% 46.5%, 61% 46.5%, 61% 100%, 100% 100%, 100% 0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ footer {
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
justify-content: end;
|
justify-content: end;
|
||||||
gap: 1rem;
|
gap: 2rem;
|
||||||
|
|
||||||
&.company {
|
&.company {
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
@@ -118,9 +118,13 @@ footer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
>a.mail {
|
||||||
|
margin-top: 0.2em;
|
||||||
|
}
|
||||||
|
|
||||||
>p.worktime {
|
>p.worktime {
|
||||||
margin: unset;
|
margin: unset;
|
||||||
margin-top: 0.6em;
|
margin-top: 0.8em;
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 0.5em;
|
gap: 0.5em;
|
||||||
|
|
||||||
@@ -150,7 +154,7 @@ footer {
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 0.5rem;
|
gap: 0.5rem;
|
||||||
font-family: "Bahnschrift";
|
font-family: "Cascadia Code";
|
||||||
|
|
||||||
>h1.name {
|
>h1.name {
|
||||||
margin: unset;
|
margin: unset;
|
||||||
@@ -167,12 +171,23 @@ footer {
|
|||||||
text-align: right;
|
text-align: right;
|
||||||
gap: 0.2em;
|
gap: 0.2em;
|
||||||
font-size: 0.8rem;
|
font-size: 0.8rem;
|
||||||
color: grey;
|
color: #a3a396;
|
||||||
|
|
||||||
|
::selection {
|
||||||
|
color: #000;
|
||||||
|
background: #F22;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-moz-selection {
|
||||||
|
color: #000;
|
||||||
|
background: #F22;
|
||||||
|
}
|
||||||
|
|
||||||
>span.row {
|
>span.row {
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
justify-content: end;
|
justify-content: end;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
gap: 0.6em;
|
||||||
|
|
||||||
&:before {
|
&:before {
|
||||||
margin-right: auto;
|
margin-right: auto;
|
||||||
@@ -247,3 +262,23 @@ footer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media (width < 520px) {
|
||||||
|
footer {
|
||||||
|
>div.sector {
|
||||||
|
&:is(.company) {
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 3rem;
|
||||||
|
|
||||||
|
>article#contacts {
|
||||||
|
width: 100%;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
>article#company {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -78,16 +78,16 @@ body {
|
|||||||
--dot-size: 23px;
|
--dot-size: 23px;
|
||||||
--dot-space: 24px;
|
--dot-space: 24px;
|
||||||
z-index: -50;
|
z-index: -50;
|
||||||
position: fixed;top: -200%;
|
position: fixed;
|
||||||
left: -200vw;
|
top: 0;
|
||||||
top: -200%;
|
left: min(-30vw, -300px);
|
||||||
justify-self: center;
|
justify-self: center;
|
||||||
align-self: center;
|
align-self: center;
|
||||||
width: 400vw;
|
width: max(250vw, 600px);
|
||||||
min-height: 1000px;
|
height: 200vh;
|
||||||
height: 800%;
|
|
||||||
rotate: -16deg;
|
rotate: -16deg;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
background: linear-gradient(90deg, var(--dot-bg) calc(var(--dot-space) - var(--dot-size)), transparent 1%) center / var(--dot-space) var(--dot-space), linear-gradient(var(--dot-bg) calc(var(--dot-space) - var(--dot-size)), transparent 1%) center / var(--dot-space) var(--dot-space), var(--dot-color);
|
background: linear-gradient(90deg, var(--dot-bg) calc(var(--dot-space) - var(--dot-size)), transparent 1%) center / var(--dot-space) var(--dot-space), linear-gradient(var(--dot-bg) calc(var(--dot-space) - var(--dot-size)), transparent 1%) center / var(--dot-space) var(--dot-space), var(--dot-color);
|
||||||
|
transform-origin: top left;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,13 +39,22 @@ body {
|
|||||||
}
|
}
|
||||||
|
|
||||||
>article#offer {
|
>article#offer {
|
||||||
background: #fff;
|
|
||||||
z-index: 500;
|
z-index: 500;
|
||||||
border-radius: 1.25rem;
|
border-radius: 1.25rem;
|
||||||
margin: 3rem 10vw 8rem;
|
margin: 3rem 0 8rem;
|
||||||
padding: 1rem 4rem;
|
width: 880px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 3rem 4rem;
|
||||||
|
background: #fff;
|
||||||
|
|
||||||
>h1 {}
|
>h1 {
|
||||||
|
margin-top: unset;
|
||||||
|
margin-bottom: 2.5rem;
|
||||||
|
text-align: center;
|
||||||
|
font-family: "MT Sans";
|
||||||
|
font-size: 3rem;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -68,16 +77,15 @@ body {
|
|||||||
--dot-space: 24px;
|
--dot-space: 24px;
|
||||||
z-index: -50;
|
z-index: -50;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: -200%;
|
top: 0;
|
||||||
left: -200vw;
|
left: min(-30vw, -300px);
|
||||||
top: -200%;
|
|
||||||
justify-self: center;
|
justify-self: center;
|
||||||
align-self: center;
|
align-self: center;
|
||||||
width: 400vw;
|
width: max(250vw, 600px);
|
||||||
min-height: 1000px;
|
height: 200vh;
|
||||||
height: 800%;
|
|
||||||
rotate: -16deg;
|
rotate: -16deg;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
background: linear-gradient(90deg, var(--dot-bg) calc(var(--dot-space) - var(--dot-size)), transparent 1%) center / var(--dot-space) var(--dot-space), linear-gradient(var(--dot-bg) calc(var(--dot-space) - var(--dot-size)), transparent 1%) center / var(--dot-space) var(--dot-space), var(--dot-color);
|
background: linear-gradient(90deg, var(--dot-bg) calc(var(--dot-space) - var(--dot-size)), transparent 1%) center / var(--dot-space) var(--dot-space), linear-gradient(var(--dot-bg) calc(var(--dot-space) - var(--dot-size)), transparent 1%) center / var(--dot-space) var(--dot-space), var(--dot-color);
|
||||||
|
transform-origin: top left;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,12 +34,51 @@
|
|||||||
transition: 0.1s ease-out;
|
transition: 0.1s ease-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
::selection {
|
||||||
|
color: #000;
|
||||||
|
background: #FF2;
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-moz-selection {
|
||||||
|
color: #000;
|
||||||
|
background: #FF2;
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
margin: unset;
|
margin: unset;
|
||||||
width: 100vw;
|
width: 100vw;
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
background: var(--background-color, #fff);
|
/* background: var(--background-color, #fff);
|
||||||
background: var(--background-gradient);
|
background: var(--background-gradient); */
|
||||||
|
background-color: #020c13;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
font-family: "Cascadia Code";
|
||||||
|
text-decoration: unset;
|
||||||
|
color: #094ef2;
|
||||||
|
|
||||||
|
&:is(:hover, :focus) {
|
||||||
|
color: #487dfa;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:active {
|
||||||
|
color: #1224bc;
|
||||||
|
}
|
||||||
|
|
||||||
|
&::selection {
|
||||||
|
color: #094ef2;
|
||||||
|
background: #FAA;
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
&::-moz-selection {
|
||||||
|
color: #094ef2;
|
||||||
|
background: #FAA;
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.unselectable {
|
.unselectable {
|
||||||
@@ -67,6 +106,7 @@ input:not([type="range"]) {
|
|||||||
outline: unset;
|
outline: unset;
|
||||||
border: unset;
|
border: unset;
|
||||||
border-bottom: 1px solid;
|
border-bottom: 1px solid;
|
||||||
|
border-radius: unset;
|
||||||
background: unset;
|
background: unset;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -130,6 +170,6 @@ button {
|
|||||||
&:disabled {
|
&:disabled {
|
||||||
cursor: not-allowed;
|
cursor: not-allowed;
|
||||||
background-color: #08111d17;
|
background-color: #08111d17;
|
||||||
filter: grayscale(1) brightness(0.8);
|
filter: grayscale(1) brightness(0.55);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,49 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
// Initializing default theme for the views templater
|
|
||||||
define('THEME', 'default');
|
define('THEME', 'default');
|
||||||
|
|
||||||
|
define('DOMAIN', 'kodorvan.tech');
|
||||||
|
|
||||||
|
define('COMPANY', [
|
||||||
|
'identifier' => '000000000000000',
|
||||||
|
'tax' => '000000000000',
|
||||||
|
'name' => [
|
||||||
|
'short' => 'ИП Мирзаев',
|
||||||
|
'full' => 'ИП Мирзаев Арсен Магомедович'
|
||||||
|
],
|
||||||
|
'address' => [
|
||||||
|
'full' => 'Пермь'
|
||||||
|
],
|
||||||
|
'worktime' => [
|
||||||
|
'from' => '10:00',
|
||||||
|
'to' => '19:00'
|
||||||
|
],
|
||||||
|
'contacts' => [
|
||||||
|
'request' => [
|
||||||
|
'sim' => [
|
||||||
|
'full' => '79005004010',
|
||||||
|
'country' => '7',
|
||||||
|
'operator' => '900',
|
||||||
|
'number' => ['500', '40', '10']
|
||||||
|
],
|
||||||
|
'mail' => 'request@kodorvan.tech'
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
|
||||||
|
define('MAIL', [
|
||||||
|
'host' => 'smtp.mail.ru',
|
||||||
|
'sender' => [
|
||||||
|
'mail' => 'system@kodorvan.tech',
|
||||||
|
'name' => 'Система',
|
||||||
|
'password' => '',
|
||||||
|
],
|
||||||
|
'receiver' => [
|
||||||
|
'mail' => 'request@kodorvan.tech',
|
||||||
|
'name' => 'Заявки'
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
|
||||||
define('TELEGRAM_ROBOT', [
|
define('TELEGRAM_ROBOT', [
|
||||||
'domain' => 'kodorvan_bot'
|
'domain' => 'kodorvan_bot'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
define('PROJECT_CONTACTS_SIM_REQUESTS', '79005004010');
|
|
||||||
define('PROJECT_CONTACTS_SIM_REQUESTS_COUNTRY', '7');
|
|
||||||
define('PROJECT_CONTACTS_SIM_REQUESTS_OPERATOR', '900');
|
|
||||||
define('PROJECT_CONTACTS_SIM_REQUESTS_NUMBER_1', '500');
|
|
||||||
define('PROJECT_CONTACTS_SIM_REQUESTS_NUMBER_2', '40');
|
|
||||||
define('PROJECT_CONTACTS_SIM_REQUESTS_NUMBER_3', '10');
|
|
||||||
|
|||||||
@@ -63,6 +63,8 @@ final class templater extends controller implements array_access
|
|||||||
|
|
||||||
// Initializing global variables
|
// Initializing global variables
|
||||||
$this->twig->addGlobal('theme', THEME);
|
$this->twig->addGlobal('theme', THEME);
|
||||||
|
$this->twig->addGlobal('domain', DOMAIN);
|
||||||
|
$this->twig->addGlobal('company', COMPANY);
|
||||||
$this->twig->addGlobal('server', $_SERVER);
|
$this->twig->addGlobal('server', $_SERVER);
|
||||||
$this->twig->addGlobal('cookies', $_COOKIE);
|
$this->twig->addGlobal('cookies', $_COOKIE);
|
||||||
$this->twig->addGlobal('language', $language = $session?->buffer['language'] ?? language::en);
|
$this->twig->addGlobal('language', $language = $session?->buffer['language'] ?? language::en);
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
{% block css %}
|
{% block css %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% include '/elements/yandex.html' %}
|
{% include '/metrics/yandex.html' %}
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
|
|||||||
@@ -46,21 +46,21 @@
|
|||||||
</section>
|
</section>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
document.addEventListener('core.initialized', () =>
|
document.addEventListener('core.initialized', () =>
|
||||||
core.modules.connect(["hotline"]).then((connected) => {
|
core.modules.connect(["hotline"]).then((connected) => {
|
||||||
// Imported the hotline.mjs module
|
// Imported the hotline.mjs module
|
||||||
|
|
||||||
// Initializing an instance of the hotline.mjs
|
// Initializing an instance of the hotline.mjs
|
||||||
const instance = new connected.hotline(document.getElementById("cases"));
|
const instance = new connected.hotline(document.getElementById("cases"));
|
||||||
|
|
||||||
// Initializing settings of the hotline instance
|
// Initializing settings of the hotline instance
|
||||||
instance.alive = true;
|
instance.alive = true;
|
||||||
instance.wheel = false;
|
instance.wheel = false;
|
||||||
instance.delta = 3;
|
instance.delta = 3;
|
||||||
instance.step = -0.5;
|
instance.step = -0.5;
|
||||||
|
|
||||||
// Starting the hotline instance
|
// Starting the hotline instance
|
||||||
instance.start();
|
instance.start();
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -1,27 +1,27 @@
|
|||||||
<section id="companies" class="unselectable">
|
<article id="companies" class="unselectable">
|
||||||
{% for alt, file in integrations %}
|
{% for alt, file in integrations %}
|
||||||
<img class="{{ file }}" src="/themes/{{ theme }}/images/logotypes/{{ file }}.svg" alt="{{ alt }}" ondragstart="return false"/>
|
<img class="{{ file }}" src="/themes/{{ theme }}/images/logotypes/{{ file }}.svg" alt="{{ alt }}" ondragstart="return false"/>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</section>
|
</article>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
document.addEventListener('core.initialized', () =>
|
document.addEventListener('core.initialized', () =>
|
||||||
core.modules.connect(["hotline"]).then((connected) => {
|
core.modules.connect(["hotline"]).then((connected) => {
|
||||||
// Imported the hotline.mjs module
|
// Imported the hotline.mjs module
|
||||||
|
|
||||||
// Initializing an instance of the hotline.mjs
|
// Initializing an instance of the hotline.mjs
|
||||||
const instance = new connected.hotline(document.getElementById("companies"));
|
const instance = new connected.hotline(document.getElementById("companies"));
|
||||||
|
|
||||||
// Initializing settings of the hotline instance
|
// Initializing settings of the hotline instance
|
||||||
instance.alive = true;
|
instance.alive = true;
|
||||||
instance.wheel = false;
|
instance.wheel = false;
|
||||||
instance.movable = false;
|
instance.movable = false;
|
||||||
instance.hover = false;
|
instance.hover = false;
|
||||||
instance.delta = 3;
|
instance.delta = 3;
|
||||||
instance.step = 0.2;
|
instance.step = -0.2;
|
||||||
|
|
||||||
// Starting the hotline instance
|
// Starting the hotline instance
|
||||||
instance.start();
|
instance.start();
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
oninput="core.project.architecture = this.value"
|
oninput="core.project.architecture = this.value"
|
||||||
>
|
>
|
||||||
<option value="" selected="true" disabled="true" hidden="true" data-paginator-select-title="true">Выберите архитектуру</option>
|
<option value="" selected="true" disabled="true" hidden="true" data-project-select-title="true">Выберите архитектуру</option>
|
||||||
{% for value, label in project.architectures %}
|
{% for value, label in project.architectures %}
|
||||||
<option value="{{ value }}">{{ label }}</option>
|
<option value="{{ value }}">{{ label }}</option>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
oninput="core.project.purpose = this.value"
|
oninput="core.project.purpose = this.value"
|
||||||
>
|
>
|
||||||
<option value="" selected="true" disabled="true" hidden="true" data-paginator-select-title="true">Выберите назначение</option>
|
<option value="" selected="true" disabled="true" hidden="true" data-project-select-title="true">Выберите назначение</option>
|
||||||
{% for value, label in project.purposes %}
|
{% for value, label in project.purposes %}
|
||||||
<option value="{{ value }}">{{ label }}</option>
|
<option value="{{ value }}">{{ label }}</option>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
@@ -80,47 +80,45 @@
|
|||||||
<section id="team" class="row" style="display: none;">
|
<section id="team" class="row" style="display: none;">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>Команда</legend>
|
<legend>Команда</legend>
|
||||||
<div class="row">
|
<label for="programmers">
|
||||||
<label for="programmers">
|
<input
|
||||||
<input
|
id="programmers"
|
||||||
id="programmers"
|
class="input"
|
||||||
class="input"
|
type="number"
|
||||||
type="number"
|
min="0"
|
||||||
min="0"
|
max="3"
|
||||||
max="3"
|
value="0"
|
||||||
value="0"
|
autocomplete="off"
|
||||||
autocomplete="off"
|
onkeyup="core.project.programmers = this.value"
|
||||||
onkeyup="core.project.programmers = this.value"
|
/>
|
||||||
/>
|
<span>Программисты</span>
|
||||||
<span>Программисты</span>
|
</label>
|
||||||
</label>
|
<label for="designers">
|
||||||
<label for="designers">
|
<input
|
||||||
<input
|
id="designers"
|
||||||
id="designers"
|
class="input"
|
||||||
class="input"
|
type="number"
|
||||||
type="number"
|
min="0"
|
||||||
min="0"
|
max="4"
|
||||||
max="4"
|
value="0"
|
||||||
value="0"
|
autocomplete="off"
|
||||||
autocomplete="off"
|
onkeyup="core.project.designers = this.value"
|
||||||
onkeyup="core.project.designers = this.value"
|
/>
|
||||||
/>
|
<span>Дизайнеры</span>
|
||||||
<span>Дизайнеры</span>
|
</label>
|
||||||
</label>
|
<label for="boosters">
|
||||||
<label for="boosters">
|
<input
|
||||||
<input
|
id="boosters"
|
||||||
id="boosters"
|
class="input"
|
||||||
class="input"
|
type="number"
|
||||||
type="number"
|
min="0"
|
||||||
min="0"
|
max="2"
|
||||||
max="2"
|
value="0"
|
||||||
value="0"
|
autocomplete="off"
|
||||||
autocomplete="off"
|
onkeyup="core.project.boosters = this.value"
|
||||||
onkeyup="core.project.boosters = this.value"
|
/>
|
||||||
/>
|
<span>Бустеры</span>
|
||||||
<span>Бустеры</span>
|
</label>
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<small class="guide">Соберите команду разработчиков проекта</small>
|
<small class="guide">Соберите команду разработчиков проекта</small>
|
||||||
</section>
|
</section>
|
||||||
@@ -317,21 +315,21 @@
|
|||||||
<button onclick="core.paginator.relative(1)" style="display: none" data-paginator-page-button="2" disabled="true">ПРОДОЛЖИТЬ</button>
|
<button onclick="core.paginator.relative(1)" style="display: none" data-paginator-page-button="2" disabled="true">ПРОДОЛЖИТЬ</button>
|
||||||
<button
|
<button
|
||||||
id="send"
|
id="send"
|
||||||
class="gradient"
|
|
||||||
style="display: none"
|
style="display: none"
|
||||||
onclick="core.project.send();"
|
onclick="core.project.send();"
|
||||||
data-paginator-page-button="3"
|
data-paginator-page-button="3"
|
||||||
disabled="true"
|
disabled="true"
|
||||||
>
|
>ОТПРАВИТЬ</button>
|
||||||
<span>НАЧАТЬ РАЗРАБОТКУ</span>
|
|
||||||
<div class="color yellow"></div>
|
|
||||||
<div class="color green"></div>
|
|
||||||
<div class="color blue"></div>
|
|
||||||
</button>
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
const send = document.getElementById('send');
|
||||||
|
let deg = 120;
|
||||||
|
setInterval(() => send.style.setProperty('--button-send-background-color', (deg += 43) + 'deg'), 1200);
|
||||||
|
</script>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<small class="offer unselectable">Создан для удобства и <b>не является публичной офертой</b></br>Точная стоимость после изучения задания</small>
|
<small class="offer unselectable">Создан для удобного планирования и <b>не является публичной офертой</b></small>
|
||||||
|
|
||||||
<section id="contacts_shortcut">
|
<section id="contacts_shortcut">
|
||||||
<p class="sim"><span class="country">7</span><span class="operator">901</span><span>592</span><span>4211</span></p>
|
<p class="sim"><span class="country">7</span><span class="operator">901</span><span>592</span><span>4211</span></p>
|
||||||
|
|||||||
67
kodorvan/site/system/views/themes/default/elements/rofls.html
Executable file
@@ -0,0 +1,67 @@
|
|||||||
|
<article id="rofls" class="unselectable" style="display: none;">
|
||||||
|
<img class="construction" loading="lazy" src="https://lyra.horse/css-clicker/buttons/construction.gif"
|
||||||
|
ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://lyra.horse/css-clicker/buttons/css2.gif" ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://lyra.horse/css-clicker/buttons/dbd.gif" ondragstart="return false;" />
|
||||||
|
<!-- <img loading="lazy" src="https://lyra.horse/css-clicker/buttons/gaywebring.gif" ondragstart="return false;" /> -->
|
||||||
|
<!-- <img loading="lazy" src="https://lyra.horse/css-clicker/buttons/miku.gif" ondragstart="return false;" /> -->
|
||||||
|
<img loading="lazy" src="https://lyra.horse/css-clicker/buttons/mozbutd1.gif" ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://lyra.horse/css-clicker/buttons/nofuckingthanks.gif" ondragstart="return false;" />
|
||||||
|
<img class="noclick" loading="lazy" src="https://maia.crimew.gay/badges/noclick.gif" onclick="alert('bruh');"
|
||||||
|
ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://cyber.dabamos.de/88x31/zanarkand.gif" ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://88x31.nl/gifs/antinazi.gif" ondragstart="return false;" />
|
||||||
|
<img class="hell" loading="lazy" src="https://cyber.dabamos.de/88x31/tohell.gif" ondragstart="return false;"
|
||||||
|
ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://88x31.nl/gifs/say-no-to-web3.gif" ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://88x31.nl/gifs/they-walk-among-us.png" ondragstart="return false;" />
|
||||||
|
<img class="eye" loading="lazy" src="https://88x31.nl/gifs/uranohead.gif" ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://88x31.nl/gifs/discord-no-way.gif" ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://88x31.nl/gifs/chat.gif" ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://88x31.nl/gifs/upallnight%20(3).gif" ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://lyra.horse/css-clicker/buttons/free-sex.gif" ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://88x31.nl/gifs/virusalert.gif" ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://cyber.dabamos.de/88x31/microsoft_stop.gif" ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://88x31.nl/gifs/linuxnow2.gif" ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://88x31.nl/gifs/vim.vialle.love.anim.gif" ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://cyber.dabamos.de/88x31/tummy.gif" ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://88x31.nl/gifs/anybrow%20(3).gif" ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://88x31.nl/gifs/camtime.png" ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://88x31.nl/gifs/reshirii.gif" ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://88x31.nl/gifs/alien2.gif" ondragstart="return false;" />
|
||||||
|
<img class="antibuttons" loading="lazy" src="https://88x31.nl/gifs/anti_button.gif"
|
||||||
|
onclick="alert('BUTTONS SUCKS!'); document.getElementById('buttons').remove();" ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://88x31.nl/gifs/fspeech96a.gif" ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://88x31.nl/gifs/saratov.gif" ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://88x31.nl/gifs/thatpays2.gif" ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://lyra.horse/css-clicker/buttons/antinft.gif" ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://88x31.nl/gifs/tumblr_ptmmk6djdu1xwjivko5_100.gif" ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://88x31.nl/gifs/ieshit.gif" ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://88x31.nl/gifs/underground.gif" ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://88x31.nl/gifs/volta.gif" ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://88x31.nl/gifs/ocartswap_2.gif" ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://88x31.nl/gifs/f_ckfb.gif" ondragstart="return false;" />
|
||||||
|
<img class="cogs" loading="lazy" src="https://88x31.nl/gifs/cogs.gif" ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://88x31.nl/gifs/antifa.gif" ondragstart="return false;" />
|
||||||
|
<img loading="lazy" src="https://cyber.dabamos.de/88x31/newbuttonone.gif" ondragstart="return false;" />
|
||||||
|
<img class="colors" loading="lazy" src="https://88x31.nl/gifs/bestviewed16bit.gif" ondragstart="return false;" />
|
||||||
|
</article>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
document.addEventListener('core.initialized', () =>
|
||||||
|
core.modules.connect(["hotline"]).then((connected) => {
|
||||||
|
// Imported the hotline.mjs module
|
||||||
|
|
||||||
|
// Initializing an instance of the hotline.mjs
|
||||||
|
const instance = new connected.hotline(document.getElementById("rofls"), true);
|
||||||
|
|
||||||
|
// Initializing settings of the hotline instance
|
||||||
|
instance.alive = true;
|
||||||
|
instance.wheel = true;
|
||||||
|
instance.movable = true;
|
||||||
|
instance.hover = true;
|
||||||
|
instance.delta = 3.2;
|
||||||
|
instance.step = -0.2;
|
||||||
|
})
|
||||||
|
);
|
||||||
|
</script>
|
||||||
@@ -52,7 +52,7 @@
|
|||||||
{% for button in buttons %}
|
{% for button in buttons %}
|
||||||
{% set icon = button.icon ?? 'close' %}
|
{% set icon = button.icon ?? 'close' %}
|
||||||
<link type="text/css" rel="stylesheet" href="/css/icons/{{ button.icon|replace({' ': '_'}) }}.css" />
|
<link type="text/css" rel="stylesheet" href="/css/icons/{{ button.icon|replace({' ': '_'}) }}.css" />
|
||||||
<a type="button" href="{{ button.href }}" target="_blank" rel="nofollow noopener noreferrer"><i class="icon {{ button.icon }}"></i></a>
|
<a type="button" href="{{ button.href }}" target="_blank" rel="external nofollow noopener noreferrer"><i class="icon {{ button.icon }}"></i></a>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
--company-tax: "{{ language.name == 'ru' or true ? 'ИНН' : 'TAX' }}";
|
--company-tax: "{{ language.name == 'ru' or true ? 'ИНН' : 'TAX' }}";
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
<link type="text/css" rel="stylesheet" href="/themes/default/css/elements/rofls.css" />
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block body %}
|
{% block body %}
|
||||||
@@ -23,29 +24,41 @@
|
|||||||
</article>
|
</article>
|
||||||
|
|
||||||
<nav id="links" class="unselectable">
|
<nav id="links" class="unselectable">
|
||||||
<a href="/offer">ПУБЛИЧНАЯ ОФЕРТА</a>
|
<a rel="terms-of-service noreferrer noopener" href="/offer">ОФЕРТА</a>
|
||||||
<a href="https://ru.wikipedia.org/wiki/WTFPL">ЛИЦЕНЗИЯ</a>
|
<a rel="privacy-policy noreferrer noopener" href="/policy">ПОЛИТИКА</a>
|
||||||
<a href="https://t.me/kodorvan">КОДОРВАНЬ</a>
|
<a rel="license external nofollow noopener" href="https://ru.wikipedia.org/wiki/WTFPL">ЛИЦЕНЗИЯ</a>
|
||||||
<a href="https://t.me/from_mirzaev">МИРЗАЕВ</a>
|
<a rel="external nofollow noopener" href="https://git.svoboda.works/kodorvan">РЕПОЗИТОРИЙ</a>
|
||||||
<a href="https://git.svoboda.works/kodorvan">РЕПОЗИТОРИЙ</a>
|
<a rel="help external nofollow noopener" href="https://t.me/kodorvan">БЛОГ</a>
|
||||||
|
<a rel="author external nofollow noopener" href="https://t.me/from_mirzaev">МИРЗАЕВ</a>
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="sector company">
|
<div class="sector company">
|
||||||
<article id="contacts">
|
<article id="contacts">
|
||||||
<h1 class="sim"><span class="country">7</span><span class="operator">901</span><span>592</span><span>4211</span></h1>
|
{% if company.contacts.request.sim is not empty %}
|
||||||
<span class="mail support">support@kodorvan.tech</span>
|
<h1 class="sim" aria-label="{{ company.contacts.request.sim.full }}">
|
||||||
<p class="worktime unselectable">Пермь, <span class="time from">10:00</span><span class="time to">19:00</span></p>
|
<span class="country">{{ company.contacts.request.sim.country }}</span>
|
||||||
|
<span class="operator">{{ company.contacts.request.sim.operator }}</span>
|
||||||
|
<span>{{ company.contacts.request.sim.number[0] }}</span>
|
||||||
|
<span>{{ company.contacts.request.sim.number[1] ~ company.contacts.request.sim.number[2] }}</span>
|
||||||
|
</h1>
|
||||||
|
{% endif %}
|
||||||
|
{% if company.contacts.request.mail is not empty %}
|
||||||
|
<a class="mail support" href="mailto:{{ company.contacts.request.mail }}">{{ company.contacts.request.mail }}</a>
|
||||||
|
{% endif %}
|
||||||
|
<p class="worktime unselectable">
|
||||||
|
{% if company.address.full is not empty %}{{ company.address.full }}{% endif %},
|
||||||
|
<span class="time from">{{ company.worktime.from }}</span>
|
||||||
|
<span class="time to">{{ company.worktime.to }}</span></p>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
<article id="company">
|
<article id="company">
|
||||||
<h1 class="name">ИП Мирзаев</h1>
|
<h1 class="name">{{ company.name.short }}</h1>
|
||||||
<p class="column"><span class="tax row">271103176488</span><span class="identifier row">322270000004691</span></p>
|
<p class="column"><span class="tax row">{{ company.tax }}</span><span class="identifier row">{{ company.identifier }}</span></p>
|
||||||
</article>
|
</article>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- <strong class="background unselectable">КОДОРВАНЬ</strong> -->
|
|
||||||
</footer>
|
</footer>
|
||||||
|
{% include '/themes/default/elements/rofls.html' %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block js %}
|
{% block js %}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
<meta name="author" content="Арсен Мирзаев Татьяно-Мурадович" />
|
<meta name="author" content="Арсен Мирзаев Татьяно-Мурадович" />
|
||||||
|
|
||||||
<meta name="robots" content="index, follow" />
|
<meta name="robots" content="index, follow" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, shrink-to-fit=no" />
|
||||||
<meta name="HandheldFriendly" content="true" />
|
<meta name="HandheldFriendly" content="true" />
|
||||||
<meta name="MobileOptimized" content="width" />
|
<meta name="MobileOptimized" content="width" />
|
||||||
<meta name="mobile-web-app-capable" content="yes" />
|
<meta name="mobile-web-app-capable" content="yes" />
|
||||||
@@ -35,8 +35,6 @@
|
|||||||
<meta name="twitter:description" content="Programming, design, boosting and legal armor!" />
|
<meta name="twitter:description" content="Programming, design, boosting and legal armor!" />
|
||||||
<meta name="twitter:image" content="https://kodorvan.tech/images/kodorvan_1200_630.webp" />
|
<meta name="twitter:image" content="https://kodorvan.tech/images/kodorvan_1200_630.webp" />
|
||||||
|
|
||||||
<link rel="canonical" href="https://kodorvan.tech" />
|
|
||||||
|
|
||||||
<link rel="apple-touch-icon" sizes="57x57" href="/images/favicon/favicon-57x57.png" />
|
<link rel="apple-touch-icon" sizes="57x57" href="/images/favicon/favicon-57x57.png" />
|
||||||
<link rel="apple-touch-icon" sizes="60x60" href="/images/favicon/favicon-60x60.png" />
|
<link rel="apple-touch-icon" sizes="60x60" href="/images/favicon/favicon-60x60.png" />
|
||||||
<link rel="apple-touch-icon" sizes="72x72" href="/images/favicon/favicon-72x72.png" />
|
<link rel="apple-touch-icon" sizes="72x72" href="/images/favicon/favicon-72x72.png" />
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{% block js %}
|
{% block js %}
|
||||||
<script src="/js/modules/damper.mjs" type="module"></script>
|
<link rel="modulepreload" href="/js/modules/damper.mjs" ></script>
|
||||||
<script src="/js/core.js"></script>
|
<script src="/js/core.js"></script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
{% extends "/themes/default/index.html" %}
|
{% extends "/themes/default/index.html" %}
|
||||||
|
|
||||||
{% block css %}
|
{% block css %}
|
||||||
|
<link rel="canonical" href="https://{{ domain }}/" />
|
||||||
|
|
||||||
{{ parent() }}
|
{{ parent() }}
|
||||||
|
|
||||||
<link type="text/css" rel="stylesheet" href="/css/icons/loading_spinner.css" />
|
<link type="text/css" rel="stylesheet" href="/css/icons/loading_spinner.css" />
|
||||||
<!-- <link type="text/css" rel="stylesheet" href="/css/icons/code_slash.css" />
|
<!-- <link type="text/css" rel="stylesheet" href="/css/icons/code_slash.css" />
|
||||||
<link type="text/css" rel="stylesheet" href="/css/icons/coffe.css" />
|
<link type="text/css" rel="stylesheet" href="/css/icons/coffe.css" />
|
||||||
@@ -21,7 +24,10 @@
|
|||||||
<link type="text/css" rel="stylesheet" href="/themes/default/css/elements/companies.css" />
|
<link type="text/css" rel="stylesheet" href="/themes/default/css/elements/companies.css" />
|
||||||
<link type="text/css" rel="stylesheet" href="/themes/default/css/elements/project.css" />
|
<link type="text/css" rel="stylesheet" href="/themes/default/css/elements/project.css" />
|
||||||
<link type="text/css" rel="stylesheet" href="/themes/default/css/elements/superpacks.css" />
|
<link type="text/css" rel="stylesheet" href="/themes/default/css/elements/superpacks.css" />
|
||||||
{% if not smartphone %}
|
{% if smartphone %}
|
||||||
|
<link rel="preload expect" as="image" href="/themes/default/images/interface/labubumba_2_mobile.svg" />
|
||||||
|
{% else %}
|
||||||
|
<link rel="preload expect" as="image" href="/themes/default/images/interface/labubumba_2.svg" />
|
||||||
<!-- <link type="text/css" rel="stylesheet" href="/themes/default/css/elements/cases.css" /> -->
|
<!-- <link type="text/css" rel="stylesheet" href="/themes/default/css/elements/cases.css" /> -->
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<link type="text/css" rel="stylesheet" href="/themes/default/css/elements/cookies.css" />
|
<link type="text/css" rel="stylesheet" href="/themes/default/css/elements/cookies.css" />
|
||||||
@@ -46,7 +52,7 @@
|
|||||||
{% if cookies.cookies_popup_closed is empty %}
|
{% if cookies.cookies_popup_closed is empty %}
|
||||||
{% include '/themes/default/elements/cookies.html' %}
|
{% include '/themes/default/elements/cookies.html' %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block after %}
|
{% block after %}
|
||||||
<div class="vignette"></div>
|
<div class="vignette"></div>
|
||||||
@@ -65,8 +71,22 @@
|
|||||||
}, 60);
|
}, 60);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
const companies = document.getElementById("companies");
|
||||||
|
|
||||||
|
companies.style.setProperty('margin-top', '70vh');
|
||||||
|
companies.style.setProperty('transition', 'margin 0.6s cubic-bezier(0, 1, .45, 1)');
|
||||||
|
|
||||||
|
const companies_show = setTimeout(() => companies.style.removeProperty('margin-top'), 2000);
|
||||||
|
|
||||||
|
document.addEventListener('load', () => {
|
||||||
|
clearTimeout(companies_show);
|
||||||
|
companies.style.removeProperty('margin-top');
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<link rel="modulepreload" href="/js/modules/hotline.mjs" ></script>
|
||||||
<script src="/js/modules/project.mjs" type="module"></script>
|
<script src="/js/modules/project.mjs" type="module"></script>
|
||||||
<script src="/js/modules/paginator.mjs" type="module"></script>
|
<script src="/js/modules/paginator.mjs" type="module"></script>
|
||||||
<script src="/js/modules/hotline.mjs" type="module"></script>
|
|
||||||
<script src="/js/pages/main.js" type="module" defer></script>
|
<script src="/js/pages/main.js" type="module" defer></script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
{% extends "/themes/default/index.html" %}
|
{% extends "/themes/default/index.html" %}
|
||||||
|
|
||||||
{% block css %}
|
{% block css %}
|
||||||
|
<link rel="canonical" href="https://{{ domain }}/offer" />
|
||||||
|
|
||||||
{{ parent() }}
|
{{ parent() }}
|
||||||
|
|
||||||
<link type="text/css" rel="stylesheet" href="/css/icons/loading_spinner.css" />
|
<link type="text/css" rel="stylesheet" href="/css/icons/loading_spinner.css" />
|
||||||
<link type="text/css" rel="stylesheet" href="/themes/default/css/pages/offer.css" />
|
<link type="text/css" rel="stylesheet" href="/themes/default/css/pages/offer.css" />
|
||||||
<link type="text/css" rel="stylesheet" href="/themes/default/css/elements/cookies.css" />
|
<link type="text/css" rel="stylesheet" href="/themes/default/css/elements/cookies.css" />
|
||||||
@@ -20,24 +23,22 @@
|
|||||||
<h1>Согласие на обработку электронных пользовательских данных</h1>
|
<h1>Согласие на обработку электронных пользовательских данных</h1>
|
||||||
|
|
||||||
<div class="text">
|
<div class="text">
|
||||||
<p>Я даю согласие на обработку моих электронных пользовательских данных АО «ПФ «СКБ Контур» (ИНН
|
<p>Я даю согласие на обработку моих электронных пользовательских данных «{{ company.name.full ?? company.name.short }}» (ИНН
|
||||||
6663003127) и его дочерним обществам (далее вместе — СКБ Контур, группа компаний),
|
{{ company.tax }}) и его дочерним обществам (далее вместе — {{ company.name.short }}, группа компаний),
|
||||||
в соответствии с разделом 6 <a class="external-link" href="https://kontur.ru/about/policy"
|
в соответствии с разделом 6 <a href="/policy" rel="nofollow noopener">Политики обработки персональных данных</a> (далее — Политика),
|
||||||
rel="nofollow noopener">Политики обработки персональных данных</a> (далее — Политика),
|
в следующих целях:</p>
|
||||||
в следующих целях:</p>
|
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>обеспечение корректной работы сайтов и программных продуктов СКБ Контур, персонализация, сохранение
|
<li>обеспечение корректной работы сайтов и программных продуктов {{ company.name.short }}, персонализация, сохранение
|
||||||
настроек пользователя, повышение удобства работы;</li>
|
настроек пользователя, повышение удобства работы;</li>
|
||||||
<li>сбор, обработка аналитических и статистических данных по тематике деятельности СКБ Контур,
|
<li>сбор, обработка аналитических и статистических данных по тематике деятельности {{ company.name.short }},
|
||||||
использования информационных ресурсов, программных продуктов, товаров, работ и услуг СКБ Контур
|
использования информационных ресурсов, программных продуктов, товаров, работ и услуг {{ company.name.short }}
|
||||||
для разработки новых программных продуктов, расширения спектра оказываемых услуг, контроля качества,
|
для разработки новых программных продуктов, расширения спектра оказываемых услуг, контроля качества,
|
||||||
противодействия незаконным или несанкционированным действиям, мошенничеству при использовании
|
противодействия незаконным или несанкционированным действиям, мошенничеству при использовании
|
||||||
программных продуктов, товаров, работ и услуг СКБ Контур, обеспечение информационной безопасности.
|
программных продуктов, товаров, работ и услуг {{ company.name.short }}, обеспечение информационной безопасности.
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>Перечень электронных пользовательских данных, которые могут обрабатываться в соответствии с указанными
|
<p>Перечень электронных пользовательских данных, которые могут обрабатываться в соответствии с указанными
|
||||||
целями обработки:</p>
|
целями обработки:</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
@@ -45,82 +46,81 @@
|
|||||||
<li>сетевые адреса;</li>
|
<li>сетевые адреса;</li>
|
||||||
<li>файлы cookies;</li>
|
<li>файлы cookies;</li>
|
||||||
<li>идентификаторы устройств;</li>
|
<li>идентификаторы устройств;</li>
|
||||||
<li>размеры и разрешение экрана;</li>
|
<li>размеры и разрешение экрана;</li>
|
||||||
<li>сведения об аппаратном и программном обеспечении, например, браузерах, операционной системе,
|
<li>сведения об аппаратном и программном обеспечении, например, браузерах, операционной системе,
|
||||||
установленных приложениях;</li>
|
установленных приложениях;</li>
|
||||||
<li>геолокация;</li>
|
<li>геолокация;</li>
|
||||||
<li>языковые настройки;</li>
|
<li>языковые настройки;</li>
|
||||||
<li>часовой пояс;</li>
|
<li>часовой пояс;</li>
|
||||||
<li>время и статистика использования приложений и информационных ресурсов СКБ Контур;</li>
|
<li>время и статистика использования приложений и информационных ресурсов {{ company.name.short }};</li>
|
||||||
<li>действия в сервисах СКБ Контур, источники переходов на веб-страницы, отправленные поисковые
|
<li>действия в сервисах {{ company.name.short }}, источники переходов на веб-страницы, отправленные поисковые
|
||||||
и иные запросы, созданный пользователем контент.</li>
|
и иные запросы, созданный пользователем контент.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>Кроме обработки данных cookies, установленных самими сайтами СКБ Контур, на моем устройстве могут
|
<p>Кроме обработки данных cookies, установленных самими сайтами {{ company.name.short }}, на моем устройстве могут
|
||||||
устанавливаться cookies, относящиеся к сайтам сторонних организаций, например, в случаях, когда
|
устанавливаться cookies, относящиеся к сайтам сторонних организаций, например, в случаях, когда
|
||||||
на сайтах СКБ Контур используются сторонние компоненты и программное обеспечение. Обработка таких
|
на сайтах {{ company.name.short }} используются сторонние компоненты и программное обеспечение. Обработка таких
|
||||||
cookies регулируется политиками соответствующих сайтов, к которым они относятся, и может изменяться
|
cookies регулируется политиками соответствующих сайтов, к которым они относятся, и может изменяться
|
||||||
без моего предварительного уведомления. К таким случаям может относиться размещение на сайтах:</p>
|
без моего предварительного уведомления. К таким случаям может относиться размещение на сайтах:</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><span>счетчиков посещений, аналитических и статистических сервисов для сбора статистики посещаемости
|
<li><span>счетчиков посещений, аналитических и статистических сервисов для сбора статистики посещаемости
|
||||||
общедоступных страниц сайтов (Яндекс.Метрика, Яндекс.Аудитории, VK.com, Mail.ru);</span></li>
|
общедоступных страниц сайтов (Яндекс.Метрика, Яндекс.Аудитории, VK.com, Mail.ru);</span></li>
|
||||||
<li><span>виджетов вспомогательных сервисов для сбора обратной связи, организации чатов и иных видов
|
<li><span>виджетов вспомогательных сервисов для сбора обратной связи, организации чатов и иных видов
|
||||||
коммуникаций с пользователями (Carrot Quest, Callibri);</span></li>
|
коммуникаций с пользователями (Carrot Quest, Callibri);</span></li>
|
||||||
<li><span>систем контекстной рекламы, баннерных и иных маркетинговых сетей (VK Ads);</span></li>
|
<li><span>систем контекстной рекламы, баннерных и иных маркетинговых сетей (VK Ads);</span></li>
|
||||||
<li><span>кнопок авторизации на сайтах с помощью учетных записей в социальных сетях (VK ID, Яндекс
|
<li><span>кнопок авторизации на сайтах с помощью учетных записей в социальных сетях (VK ID, Яндекс
|
||||||
ID, Alfa ID);</span></li>
|
ID, Alfa ID);</span></li>
|
||||||
<li><span>иных сторонних компонент, используемых СКБ Контур на своих сайтах.</span></li>
|
<li><span>иных сторонних компонент, используемых {{ company.name.short }} на своих сайтах.</span></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>Действия, на которые дается согласие: сбор, запись, систематизация, накопление, хранение, уточнение
|
<p>Действия, на которые дается согласие: сбор, запись, систематизация, накопление, хранение, уточнение
|
||||||
(обновление, изменение), извлечение, использование, передача (предоставление, доступ, без осуществления
|
(обновление, изменение), извлечение, использование, передача (предоставление, доступ, без осуществления
|
||||||
трансграничной передачи), обезличивание, блокирование, удаление, уничтожение, осуществляемые с использованием
|
трансграничной передачи), обезличивание, блокирование, удаление, уничтожение, осуществляемые с использованием
|
||||||
средств автоматизации.</p>
|
средств автоматизации.</p>
|
||||||
|
|
||||||
<p>В случае если я не согласен с обработкой cookies, я принимаю на себя риск того,
|
<p>В случае если я не согласен с обработкой cookies, я принимаю на себя риск того,
|
||||||
что в таком случае функции и возможности сайта могут не быть доступны в полном объеме,
|
что в таком случае функции и возможности сайта могут не быть доступны в полном объеме,
|
||||||
и могу выбрать один из следующих вариантов:</p>
|
и могу выбрать один из следующих вариантов:</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>произвести самостоятельную настройку своего браузера в соответствии с документацией
|
<li>произвести самостоятельную настройку своего браузера в соответствии с документацией
|
||||||
или справкой к нему таким образом, чтобы он на постоянной основе не разрешал принимать
|
или справкой к нему таким образом, чтобы он на постоянной основе не разрешал принимать
|
||||||
и отправлять данные cookies для любых сайтов либо для конкретного сайта СКБ Контур
|
и отправлять данные cookies для любых сайтов либо для конкретного сайта {{ company.name.short }}
|
||||||
или сайта стороннего компонента;</li>
|
или сайта стороннего компонента;</li>
|
||||||
<li>переключиться в специальный режим «инкогнито» браузера для использования сайтом cookies
|
<li>переключиться в специальный режим «инкогнито» браузера для использования сайтом cookies
|
||||||
до закрытия окна браузера или до переключения обратно в обычный режим;</li>
|
до закрытия окна браузера или до переключения обратно в обычный режим;</li>
|
||||||
<li>покинуть сайт во избежание дальнейшей обработки cookies.</li>
|
<li>покинуть сайт во избежание дальнейшей обработки cookies.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>Я понимаю, что могу самостоятельно через встроенные в браузеры средства работы с данными
|
<p>Я понимаю, что могу самостоятельно через встроенные в браузеры средства работы с данными
|
||||||
cookies управлять сохраненными данными, в том числе, удалять или просматривать сведения
|
cookies управлять сохраненными данными, в том числе, удалять или просматривать сведения
|
||||||
об установленных сайтами cookies, включая:</p>
|
об установленных сайтами cookies, включая:</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>адреса сайтов и пути на них, куда будут отправляться cookies;</li>
|
<li>адреса сайтов и пути на них, куда будут отправляться cookies;</li>
|
||||||
<li>названия и значения параметров, хранящихся в cookies;</li>
|
<li>названия и значения параметров, хранящихся в cookies;</li>
|
||||||
<li>сроки действия cookies.</li>
|
<li>сроки действия cookies.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>Срок обработки электронных пользовательских данных — до наступления условий:</p>
|
<p>Срок обработки электронных пользовательских данных — до наступления условий:</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>достижение целей обработки персональных данных или максимальных сроков хранения;</li>
|
<li>достижение целей обработки персональных данных или максимальных сроков хранения;</li>
|
||||||
<li>утрата необходимости в достижении целей обработки персональных данных;</li>
|
<li>утрата необходимости в достижении целей обработки персональных данных;</li>
|
||||||
<li>предоставление субъектом персональных данных или его законным представителем подтверждения того,
|
<li>предоставление субъектом персональных данных или его законным представителем подтверждения того,
|
||||||
что персональные данные являются незаконно полученными или не являются необходимыми
|
что персональные данные являются незаконно полученными или не являются необходимыми
|
||||||
для заявленной цели обработки;</li>
|
для заявленной цели обработки;</li>
|
||||||
<li>отзыв согласия на обработку персональных данных, если сохранение персональных данных более
|
<li>отзыв согласия на обработку персональных данных, если сохранение персональных данных более
|
||||||
не требуется для целей обработки персональных данных;</li>
|
не требуется для целей обработки персональных данных;</li>
|
||||||
<li>законное требование о прекращении обработки персональных данных;</li>
|
<li>законное требование о прекращении обработки персональных данных;</li>
|
||||||
<li>ликвидация (реорганизация) отдельно взятого общества, входящего в СКБ Контур, если обработка
|
<li>ликвидация (реорганизация) отдельно взятого общества, входящего в {{ company.name.short }}, если обработка
|
||||||
осуществлялась исключительно в интересах данного общества и отсутствует какой-либо правопреемник
|
осуществлялась исключительно в интересах данного общества и отсутствует какой-либо правопреемник
|
||||||
общества в СКБ Контур.</li>
|
общества в {{ company.name.short }}.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>Я уведомлен, что при необходимости я могу ознакомиться с актуальной версией Политики обработки
|
<p>Я уведомлен, что при необходимости я могу ознакомиться с актуальной версией Политики обработки
|
||||||
персональных данных СКБ Контур по адресу <a class="external-link"
|
персональных данных {{ company.name.short }} по адресу <a href="/offer" rel="nofollow noopener">https://{{ domain }}/policy</a>.</p>
|
||||||
href="https://kontur.ru/about/policy" rel="nofollow noopener">https://kontur.ru/about/policy</a>.</p>
|
|
||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||