4 Commits
1.0.1 ... 1.4.0

Author SHA1 Message Date
b304c89698 offer, footer and settings 2026-04-21 01:01:06 +05:00
3d851a2087 mobile fixes 2026-04-20 22:21:07 +05:00
e6c0c57b1f favicon compress, rofls, calculator new parameters 2026-04-19 20:13:57 +05:00
60884ab2ed from perm to site renamed 2026-04-19 16:54:39 +05:00
483 changed files with 969 additions and 664 deletions

View File

@@ -1,13 +1,13 @@
{ {
"name": "kodorvan/perm", "name": "kodorvan/site",
"description": "Лендинг для Перми от Ксении", "description": "The kodorvan team main site",
"homepage": "https://git.svoboda.works/kodorvan/perm", "homepage": "https://git.svoboda.works/kodorvan/site",
"type": "site", "type": "site",
"keywords": [ "keywords": [
"minimal", "minimal",
"baza", "baza",
"landing", "landing",
"perm" "site"
], ],
"readme": "README.md", "readme": "README.md",
"license": "WTFPL", "license": "WTFPL",
@@ -20,8 +20,8 @@
} }
], ],
"support": { "support": {
"wiki": "https://git.svoboda.works/kodorvan/perm/wiki", "wiki": "https://git.svoboda.works/kodorvan/site/wiki",
"issues": "https://git.svoboda.works/kodorvan/perm/issues" "issues": "https://git.svoboda.works/kodorvan/site/issues"
}, },
"require": { "require": {
"php": "^8.5", "php": "^8.5",
@@ -41,12 +41,12 @@
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"kodorvan\\perm\\": "kodorvan/perm/system" "kodorvan\\site\\": "kodorvan/site/system"
} }
}, },
"autoload-dev": { "autoload-dev": {
"psr-4": { "psr-4": {
"kodorvan\\perm\\tests\\": "kodorvan/perm/tests" "kodorvan\\site\\tests\\": "kodorvan/site/tests"
} }
}, },
"scripts": { "scripts": {

2
composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "7f073bad5c03fc54b0098f63afbc0cd9", "content-hash": "3d3b850ebd1027cf1790dfa901746eab",
"packages": [ "packages": [
{ {
"name": "mirzaev/baza", "name": "mirzaev/baza",

View File

@@ -1,14 +1,16 @@
#!/bin/bash #!/bin/bash
git submodule update --init --recursive
if [ -d author/project ]; then if [ -d author/project ]; then
mv author/project author/perm mv author/project author/site
fi fi
if [ -d author ]; then if [ -d author ]; then
mv author kodorvan mv author kodorvan
fi fi
for i in kodorvan/perm/system/settings/*.sample; do for i in kodorvan/site/system/settings/*.sample; do
echo $i; echo $i;
if [ ! -f "${i/.sample/}" ]; then if [ ! -f "${i/.sample/}" ]; then
cp -n "$i" "${i/.sample/}"; cp -n "$i" "${i/.sample/}";
@@ -16,26 +18,26 @@ for i in kodorvan/perm/system/settings/*.sample; do
fi fi
done done
if ! [ -d kodorvan/perm/system/public/js/modules ]; then if ! [ -d kodorvan/site/system/public/js/modules ]; then
mkdir kodorvan/perm/system/public/js/modules -p mkdir kodorvan/site/system/public/js/modules -p
fi fi
if ! [ -L kodorvan/perm/system/public/js/modules/damper.mjs ]; then if ! [ -L kodorvan/site/system/public/js/modules/damper.mjs ]; then
ln -s ../../../../../../damper.mjs/damper.mjs kodorvan/perm/system/public/js/modules/damper.mjs; ln -s ../../../../../../damper.mjs/damper.mjs kodorvan/site/system/public/js/modules/damper.mjs;
fi fi
if ! [ -L kodorvan/perm/system/public/js/modules/hotline.mjs ]; then if ! [ -L kodorvan/site/system/public/js/modules/hotline.mjs ]; then
ln -s ../../../../../../hotline.mjs/hotline.mjs kodorvan/perm/system/public/js/modules/hotline.mjs; ln -s ../../../../../../hotline.mjs/hotline.mjs kodorvan/site/system/public/js/modules/hotline.mjs;
fi fi
if ! [ -L kodorvan/perm/system/public/js/modules/womb3-simplex.mjs ]; then if ! [ -L kodorvan/site/system/public/js/modules/womb3-simplex.mjs ]; then
ln -s ../../../../../../womb3-simplex.mjs/womb3-simplex.mjs kodorvan/perm/system/public/js/modules/womb3-simplex.mjs; ln -s ../../../../../../womb3-simplex.mjs/womb3-simplex.mjs kodorvan/site/system/public/js/modules/womb3-simplex.mjs;
fi fi
if ! [ -L kodorvan/perm/system/public/js/modules/simplex-noise.mjs ]; then if ! [ -L kodorvan/site/system/public/js/modules/simplex-noise.mjs ]; then
ln -s ../../../../../../womb3-simplex.mjs/simplex-noise.mjs kodorvan/perm/system/public/js/modules/simplex-noise.mjs; ln -s ../../../../../../womb3-simplex.mjs/simplex-noise.mjs kodorvan/site/system/public/js/modules/simplex-noise.mjs;
fi fi
if ! [ -d kodorvan/perm/system/public/css/icons ]; then if ! [ -L kodorvan/site/system/public/css/icons ]; then
ln -s ../../../../../icons/css kodorvan/perm/system/public/css/icons; ln -s ../../../../../icons/css kodorvan/site/system/public/css/icons;
fi fi

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 893 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 364 KiB

View File

@@ -1,71 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- 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

View File

@@ -1,15 +0,0 @@
<?php
// Initializing default theme for the views templater
define('THEME', 'default');
define('TELEGRAM_ROBOT', [
'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');

View File

@@ -1,27 +0,0 @@
<section id="companies" class="unselectable">
{% for alt, file in integrations %}
<img class="{{ file }}" src="/themes/{{ theme }}/images/logotypes/{{ file }}.svg" alt="{{ alt }}" ondragstart="return false"/>
{% endfor %}
</section>
<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("companies"));
// Initializing settings of the hotline instance
instance.alive = true;
instance.wheel = false;
instance.movable = false;
instance.hover = false;
instance.delta = 3;
instance.step = 0.2;
// Starting the hotline instance
instance.start();
})
);
</script>

View File

@@ -1,52 +0,0 @@
{% block css %}
<style>
:root {
--map-loading: "Загрузка карты";
--map-loading: "Карта не загрузится :(";
--contacts-worktime-from: "{{ language.name == 'ru' or true ? 'с' : 'from' }}";
--contacts-worktime-to: "{{ language.name == 'ru' or true ? 'до' : 'to' }}";
--company-identifier: "{{ language.name == 'ru' or true ? 'ОГРН' : 'ID' }}";
--company-tax: "{{ language.name == 'ru' or true ? 'ИНН' : 'TAX' }}";
}
</style>
{% endblock %}
{% block body %}
<footer>
<div class="sector">
<article id="office">
<div class="map">
<div class="loading">
<i class="icon loading spinner animated"></i>
</div>
</div>
</article>
<nav id="links" class="unselectable">
<a href="/offer">ПУБЛИЧНАЯ ОФЕРТА</a>
<a href="https://ru.wikipedia.org/wiki/WTFPL">ЛИЦЕНЗИЯ</a>
<a href="https://t.me/kodorvan">КОДОРВАНЬ</a>
<a href="https://t.me/from_mirzaev">МИРЗАЕВ</a>
<a href="https://git.svoboda.works/kodorvan">РЕПОЗИТОРИЙ</a>
</nav>
</div>
<div class="sector company">
<article id="contacts">
<h1 class="sim"><span class="country">7</span><span class="operator">901</span><span>592</span><span>4211</span></h1>
<span class="mail support">support@kodorvan.tech</span>
<p class="worktime unselectable">Пермь, <span class="time from">10:00</span><span class="time to">19:00</span></p>
</article>
<article id="company">
<h1 class="name">ИП Мирзаев</h1>
<p class="column"><span class="tax row">271103176488</span><span class="identifier row">322270000004691</span></p>
</article>
</div>
<!-- <strong class="background unselectable">КОДОРВАНЬ</strong> -->
</footer>
{% endblock %}
{% block js %}
{% endblock %}

View File

@@ -1,4 +0,0 @@
{% block js %}
<script src="/js/modules/damper.mjs" type="module"></script>
<script src="/js/core.js"></script>
{% endblock %}

View File

@@ -1,135 +0,0 @@
{% extends "/themes/default/index.html" %}
{% block css %}
{{ parent() }}
<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/elements/cookies.css" />
{% endblock %}
{% block before %}
{% endblock %}
{% block main %}
<h1 id="title" class="unselectable">
<span class="slogan">ВСЕХ ШАБЛОНОВ</span>
<a href="/" class="kodorvan">КОДОРВАНЬ</a>
</h1>
<article id="offer" aria-label="Публичная оферта">
<h1>Согласие на обработку электронных пользовательских данных</h1>
<div class="text">
<p>Я даю согласие на&nbsp;обработку моих электронных пользовательских данных АО&nbsp;«ПФ «СКБ&nbsp;Контур»&nbsp;(ИНН
6663003127)&nbsp;и&nbsp;его дочерним обществам (далее вместе&nbsp;— СКБ&nbsp;Контур, группа компаний),
в&nbsp;соответствии с&nbsp;разделом 6&nbsp;<a class="external-link" href="https://kontur.ru/about/policy"
rel="nofollow noopener">Политики&nbsp;обработки персональных данных</a>&nbsp;(далее&nbsp;— Политика),
в&nbsp;следующих целях:</p>
<ul>
<li>обеспечение корректной работы сайтов и&nbsp;программных продуктов СКБ&nbsp;Контур, персонализация, сохранение
настроек пользователя, повышение удобства работы;</li>
<li>сбор, обработка аналитических и&nbsp;статистических данных по&nbsp;тематике деятельности СКБ&nbsp;Контур,
использования информационных ресурсов, программных продуктов, товаров, работ и&nbsp;услуг СКБ&nbsp;Контур
для&nbsp;разработки новых программных продуктов, расширения спектра оказываемых услуг, контроля качества,
противодействия незаконным или&nbsp;несанкционированным действиям, мошенничеству при&nbsp;использовании
программных продуктов, товаров, работ и&nbsp;услуг СКБ&nbsp;Контур, обеспечение информационной безопасности.
</li>
</ul>
<p>Перечень электронных пользовательских данных, которые могут обрабатываться в&nbsp;соответствии с&nbsp;указанными
целями обработки:</p>
<ul>
<li>идентификаторы пользователя;</li>
<li>сетевые адреса;</li>
<li>файлы cookies;</li>
<li>идентификаторы устройств;</li>
<li>размеры и&nbsp;разрешение экрана;</li>
<li>сведения об&nbsp;аппаратном и&nbsp;программном обеспечении, например, браузерах, операционной системе,
установленных приложениях;</li>
<li>геолокация;</li>
<li>языковые настройки;</li>
<li>часовой пояс;</li>
<li>время и&nbsp;статистика использования приложений и&nbsp;информационных ресурсов СКБ&nbsp;Контур;</li>
<li>действия в&nbsp;сервисах СКБ&nbsp;Контур, источники переходов на&nbsp;веб-страницы, отправленные поисковые
и&nbsp;иные запросы, созданный пользователем контент.</li>
</ul>
<p>Кроме обработки данных cookies, установленных самими сайтами СКБ&nbsp;Контур, на&nbsp;моем устройстве могут
устанавливаться cookies, относящиеся к&nbsp;сайтам сторонних организаций, например, в&nbsp;случаях, когда
на&nbsp;сайтах СКБ&nbsp;Контур используются сторонние компоненты и&nbsp;программное обеспечение. Обработка таких
cookies регулируется политиками соответствующих сайтов, к&nbsp;которым они относятся, и&nbsp;может изменяться
без&nbsp;моего предварительного уведомления. К&nbsp;таким случаям может относиться размещение на&nbsp;сайтах:</p>
<ul>
<li><span>счетчиков посещений, аналитических и&nbsp;статистических сервисов для&nbsp;сбора статистики посещаемости
общедоступных страниц сайтов (Яндекс.Метрика, Яндекс.Аудитории, VK.com, Mail.ru);</span></li>
<li><span>виджетов вспомогательных сервисов для&nbsp;сбора обратной связи, организации чатов и&nbsp;иных видов
коммуникаций с&nbsp;пользователями (Carrot Quest, Callibri);</span></li>
<li><span>систем контекстной рекламы, баннерных и&nbsp;иных маркетинговых сетей (VK Ads);</span></li>
<li><span>кнопок авторизации на&nbsp;сайтах с&nbsp;помощью учетных записей в&nbsp;социальных сетях (VK ID, Яндекс
ID, Alfa ID);</span></li>
<li><span>иных сторонних компонент, используемых СКБ&nbsp;Контур на&nbsp;своих сайтах.</span></li>
</ul>
<p>Действия, на&nbsp;которые дается согласие: сбор, запись, систематизация, накопление, хранение, уточнение
(обновление, изменение), извлечение, использование, передача (предоставление, доступ,&nbsp;без&nbsp;осуществления
трансграничной передачи), обезличивание, блокирование, удаление, уничтожение, осуществляемые с&nbsp;использованием
средств автоматизации.</p>
<p>В&nbsp;случае если я не&nbsp;согласен с&nbsp;обработкой cookies, я принимаю на&nbsp;себя риск того,
что&nbsp;в&nbsp;таком случае функции и&nbsp;возможности сайта могут не&nbsp;быть доступны в&nbsp;полном объеме,
и&nbsp;могу выбрать один из&nbsp;следующих вариантов:</p>
<ul>
<li>произвести самостоятельную настройку своего браузера в&nbsp;соответствии с&nbsp;документацией
или&nbsp;справкой к&nbsp;нему таким образом, чтобы он на&nbsp;постоянной основе не&nbsp;разрешал принимать
и&nbsp;отправлять данные cookies для&nbsp;любых сайтов либо для&nbsp;конкретного сайта СКБ&nbsp;Контур
или&nbsp;сайта стороннего компонента;</li>
<li>переключиться в&nbsp;специальный режим «инкогнито» браузера для&nbsp;использования сайтом cookies
до&nbsp;закрытия окна браузера или&nbsp;до&nbsp;переключения обратно в&nbsp;обычный режим;</li>
<li>покинуть сайт во&nbsp;избежание дальнейшей обработки cookies.</li>
</ul>
<p>Я понимаю, что&nbsp;могу самостоятельно через&nbsp;встроенные в&nbsp;браузеры средства работы с&nbsp;данными
cookies управлять сохраненными данными, в&nbsp;том числе, удалять или&nbsp;просматривать сведения
об&nbsp;установленных сайтами cookies, включая:</p>
<ul>
<li>адреса сайтов и&nbsp;пути на&nbsp;них, куда будут отправляться cookies;</li>
<li>названия и&nbsp;значения параметров, хранящихся в&nbsp;cookies;</li>
<li>сроки действия cookies.</li>
</ul>
<p>Срок обработки электронных пользовательских данных&nbsp;— до&nbsp;наступления условий:</p>
<ul>
<li>достижение целей обработки персональных данных или&nbsp;максимальных сроков хранения;</li>
<li>утрата необходимости в&nbsp;достижении целей обработки персональных данных;</li>
<li>предоставление субъектом персональных данных или&nbsp;его законным представителем подтверждения того,
что&nbsp;персональные данные являются незаконно полученными или&nbsp;не&nbsp;являются необходимыми
для&nbsp;заявленной цели обработки;</li>
<li>отзыв согласия на&nbsp;обработку персональных данных, если сохранение персональных данных более
не&nbsp;требуется для&nbsp;целей обработки персональных данных;</li>
<li>законное требование о&nbsp;прекращении обработки персональных данных;</li>
<li>ликвидация (реорганизация) отдельно взятого общества, входящего в&nbsp;СКБ&nbsp;Контур, если обработка
осуществлялась исключительно в&nbsp;интересах данного общества и&nbsp;отсутствует какой-либо правопреемник
общества в&nbsp;СКБ&nbsp;Контур.</li>
</ul>
<p>Я уведомлен, что&nbsp;при&nbsp;необходимости я могу ознакомиться с&nbsp;актуальной версией Политики обработки
персональных данных СКБ&nbsp;Контур по&nbsp;адресу&nbsp;<a class="external-link"
href="https://kontur.ru/about/policy" rel="nofollow noopener">https://kontur.ru/about/policy</a>.</p>
</div>
</article>
{% endblock %}
{% block after %}
<div class="vignette"></div>
<div class="dots"></div>
{% endblock %}
{% block js %}
{{ parent() }}
{% endblock %}

View File

@@ -2,11 +2,11 @@
declare(strict_types=1); declare(strict_types=1);
namespace kodorvan\perm\controllers; namespace kodorvan\site\controllers;
// Files of the project // Files of the project
use kodorvan\perm\views\templater, use kodorvan\site\views\templater,
kodorvan\perm\models\core as models; kodorvan\site\models\core as models;
// Library for languages support // Library for languages support
use mirzaev\languages\language; use mirzaev\languages\language;
@@ -20,7 +20,7 @@ use mirzaev\minimal\core as minimal,
/** /**
* Controllers core * Controllers core
* *
* @package kodorvan\perm\controllers * @package kodorvan\site\controllers
* *
* @param language $language Language * @param language $language Language
* @param response $response Response * @param response $response Response

View File

@@ -2,10 +2,10 @@
declare(strict_types=1); declare(strict_types=1);
namespace kodorvan\perm\controllers; namespace kodorvan\site\controllers;
// Files of the project // Files of the project
use kodorvan\perm\controllers\core; use kodorvan\site\controllers\core;
// Framework for PHP // Framework for PHP
use mirzaev\minimal\http\enumerations\content, use mirzaev\minimal\http\enumerations\content,
@@ -14,7 +14,7 @@ use mirzaev\minimal\http\enumerations\content,
/** /**
* Index * Index
* *
* @package kodorvan\perm\controllers * @package kodorvan\site\controllers
* *
* @param array $errors Registry of errors * @param array $errors Registry of errors
* *
@@ -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

View File

@@ -2,10 +2,10 @@
declare(strict_types=1); declare(strict_types=1);
namespace kodorvan\perm\controllers; namespace kodorvan\site\controllers;
// Files of the project // Files of the project
use kodorvan\perm\controllers\core; use kodorvan\site\controllers\core;
// Framework for PHP // Framework for PHP
use mirzaev\minimal\http\enumerations\content, use mirzaev\minimal\http\enumerations\content,
@@ -14,7 +14,7 @@ use mirzaev\minimal\http\enumerations\content,
/** /**
* Offer * Offer
* *
* @package kodorvan\perm\controllers * @package kodorvan\site\controllers
* *
* @param array $errors Registry of errors * @param array $errors Registry of errors
* *
@@ -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',

View File

@@ -2,10 +2,10 @@
declare(strict_types=1); declare(strict_types=1);
namespace kodorvan\perm\controllers; namespace kodorvan\site\controllers;
// Files of the project // Files of the project
use kodorvan\perm\controllers\core; use kodorvan\site\controllers\core;
// PHP framework // PHP framework
use mirzaev\minimal\http\enumerations\content, use mirzaev\minimal\http\enumerations\content,
@@ -19,7 +19,7 @@ use PHPMailer\PHPMailer\PHPMailer as mail,
/** /**
* Index * Index
* *
* @package kodorvan\perm\controllers * @package kodorvan\site\controllers
* *
* @param array $errors Registry of errors * @param array $errors Registry of errors
* *
@@ -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) {

View File

@@ -2,7 +2,7 @@
declare(strict_types=1); declare(strict_types=1);
namespace kodorvan\perm\models; namespace kodorvan\site\models;
// Framework for PHP // Framework for PHP
use mirzaev\minimal\model, use mirzaev\minimal\model,
@@ -14,7 +14,7 @@ use exception;
/** /**
* Models core * Models core
* *
* @package kodorvan\perm\models * @package kodorvan\site\models
* *
* @method void __construct() Constructor * @method void __construct() Constructor
* *

Some files were not shown because too many files have changed in this diff Show More