nativegallery-weryskok/views/pages/Profile/LK/Profile.php
2024-07-10 12:29:58 +03:00

326 lines
No EOL
20 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
use \App\Services\{Auth, DB, Date};
use \App\Models\User;
$user = new User(Auth::userid());
?>
<!DOCTYPE html>
<html lang="ru">
<head>
<?php include($_SERVER['DOCUMENT_ROOT'] . '/views/components/LoadHead.php'); ?>
</head>
<body>
<div id="backgr"></div>
<table class="tmain">
<?php include($_SERVER['DOCUMENT_ROOT'] . '/views/components/Navbar.php'); ?>
<tr>
<td class="main">
<center>
<h1>Настройки профиля</h1>
<script src="/js/jquery.form.min.js"></script>
<script>
var bigPhoto = '';
var uploadPhoto, removePhoto;
$(document).ready(function() {
$('#form').ajaxForm({
url: '/api/profile/update',
dataType: 'text',
beforeSubmit: function() {
$('#applied').hide();
$('#errors').hide();
$('#submitBtn').val('Отправка данных...').prop('disabled', true);
uploadPhoto = ($('#userphoto_file').val() != '');
removePhoto = $('#remove_userphoto').is(':checked');
},
success: function(data) {
$('#submitBtn').val('Отредактировать профиль').prop('disabled', false);
if (data == '' || data == 'refresh') {
$('#applied').show();
if (removePhoto) {
bigPhoto = '';
$('#userphoto_div').hide();
} else
if (uploadPhoto || bigPhoto != '') {
bigPhoto = '/_update_temp/userphotos/' + 140 + '.jpg';
$('#userphoto_img').attr('src', '/_update_temp/userphotos/' + 140 + '_s.jpg');
$('#userphoto_div').show();
$('#remove_userphoto').prop('checked', false);
$('#userphoto_file').val('');
}
if (data == 'refresh') window.location.reload();
} else $('#errors').html(data).show();
}
});
$('#userphotoLink').click(function(e) {
$('#userphoto_big_img').attr('src', bigPhoto);
$('#userphoto_big_div').css('top', (getBodyScrollTop() + 10) + 'px').show();
e.stopPropagation();
return false;
});
$(document).click(function(e) {
if ($(e.target).closest('#userphoto_big_div').length == 0)
$('#userphoto_big_div').hide();
});
});
var errorElements = [];
function getBodyScrollTop() {
return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
}
function hideUserPhoto() {
$('#userphoto_big_div').hide();
}
</script>
<div id="userphoto_big_div" style="position:absolute; display:none; padding:10px; background-color:white; margin:auto; text-align:center; left:10px" class="p5 shadow"><a href="#" onclick="hideUserPhoto(); return false"><img alt="" src="" id="userphoto_big_img" border="0"></a><br><br><a href="#" onclick="hideUserPhoto(); return false">закрыть</a></div>
<p>Ссылка на публичный профиль: <b><a href="/author/<?= Auth::userid() ?>/" class="nw"><?= $user->i('username') ?></a></b></p>
<form method="post" name="form" id="form" enctype="multipart/form-data" style="display:inline-block">
<?php
function getSelectedCountryId()
{
$user = new User(Auth::userid());
$result = json_decode($user->i('content'), true)['aboutrid']['value'];
return $result;
}
$selectedCountryId = getSelectedCountryId();
$optionsHtml = '
<option value="0">(Без страны)</option>
<option value="24">Абхазия</option>
<option value="49">Австралия</option>
<option value="27">Австрия</option>
<option value="81">Австро-Венгрия</option>
<option value="31">Азербайджан</option>
<option value="70">Албания</option>
<option value="80">Алжир</option>
<option value="34">Аргентина</option>
<option value="25">Армения</option>
<option value="2">Беларусь</option>
<option value="53">Бельгия</option>
<option value="39">Болгария</option>
<option value="58">Босния и Герцеговина</option>
<option value="64">Бразилия</option>
<option value="47">Великобритания</option>
<option value="75">Венгерская народная республика</option>
<option value="43">Венгрия</option>
<option value="84">Вьетнам</option>
<option value="72">ГДР</option>
<option value="93">Гвинейская Республика</option>
<option value="15">Германия</option>
<option value="76">Германская империя</option>
<option value="71">Греция</option>
<option value="32">Грузия</option>
<option value="65">Дания</option>
<option value="97">Донецкая Народная Республика</option>
<option value="105">Европа (временно)</option>
<option value="91">Египет</option>
<option value="33">Израиль</option>
<option value="69">Индия</option>
<option value="90">Иордания</option>
<option value="82">Ирак</option>
<option value="68">Иран</option>
<option value="95">Ирландия</option>
<option value="54">Испания</option>
<option value="37">Италия</option>
<option value="85">КНДР</option>
<option value="3">Казахстан</option>
<option value="60">Канада</option>
<option value="61">Китай</option>
<option value="87">Косово</option>
<option value="66">Крым</option>
<option value="41">Куба</option>
<option value="12">Кыргызстан</option>
<option value="17">Латвия</option>
<option value="30">Ливия</option>
<option value="21">Литва</option>
<option value="98">Луганская Народная Республика</option>
<option value="51">Люксембург</option>
<option value="20">Молдова</option>
<option value="29">Монголия</option>
<option value="101">Намибия</option>
<option value="22">Нидерланды</option>
<option value="88">Новая Зеландия</option>
<option value="16">Норвегия</option>
<option value="89">Объединённые Арабские Эмираты</option>
<option value="104">Пакистан</option>
<option value="96">Панама</option>
<option value="100">Перу</option>
<option value="19">Польша</option>
<option value="55">Португалия</option>
<option value="67">Приднестровье</option>
<option value="79">Протекторат Богемии и Моравии</option>
<option value="102">РСФСР</option>
<option value="1">Россия</option>
<option value="ex_1">Российская Империя</option>
<option value="40">Румыния</option>
<option value="77">Румынская Народная Республика</option>
<option value="10">СССР</option>
<option value="38">США</option>
<option value="59">Северная Македония</option>
<option value="44">Сербия</option>
<option value="62">Сирия</option>
<option value="42">Словакия</option>
<option value="56">Словения</option>
<option value="78">Советская зона оккупации Герма</option>
<option value="36">Таджикистан</option>
<option value="63">Таиланд</option>
<option value="99">Тайвань</option>
<option value="86">Тунис</option>
<option value="35">Туркменистан</option>
<option value="52">Турция</option>
<option value="103">УССР</option>
<option value="28">Узбекистан</option>
<option value="4">Украина</option>
<option value="74">Уругвай</option>
<option value="14">Финляндия</option>
<option value="23">Франция</option>
<option value="57">Хорватия</option>
<option value="45">Черногория</option>
<option value="18">Чехия</option>
<option value="11">Чехословакия</option>
<option value="46">Швейцария</option>
<option value="50">Швеция</option>
<option value="83">Шри-Ланка</option>
<option value="13">Эстония</option>
<option value="94">Югославия</option>
<option value="92">Южная Корея</option>
<option value="48">Япония</option>
<option value="26">Прочее</option>
';
function addSelectedAttribute($optionsHtml, $selectedValue)
{
return preg_replace_callback(
'/<option value="(\d+)"(.*?)>(.*?)<\/option>/',
function ($matches) use ($selectedValue) {
$selected = ($matches[1] == $selectedValue) ? ' selected' : '';
return '<option value="' . $matches[1] . '"' . $selected . $matches[2] . '>' . $matches[3] . '</option>';
},
$optionsHtml
);
}
?>
<div class="p20" style="text-align:left; margin-bottom:15px">
<h4>Информация</h4>
<div style="margin-bottom:3px; margin-top:5px">Страна:</div>
<select name="aboutrid" style="width:100%">
<?= addSelectedAttribute($optionsHtml, $selectedCountryId) ?>
</select>
<div style="margin-bottom:3px; margin-top:5px">Откуда:</div>
<input type="text" name="aboutlive" id="live" style="width:100%" maxlength="50" value="<?= json_decode($user->i('content'), true)['aboutlive']['value'] ?>">
<div style="margin-bottom:3px; margin-top:5px">Дата рождения</div>
<input type="text" name="aboutbirthday" id="live" style="width:100%" maxlength="50" value="<?= json_decode($user->i('content'), true)['aboutbirthday']['value'] ?>">
<div style="margin-bottom:3px; margin-top:5px">Владение языками</div>
<input type="text" name="aboutlangs" id="live" style="width:100%" maxlength="50" value="<?= json_decode($user->i('content'), true)['aboutlangs']['value'] ?>">
<div style="margin-bottom:3px; margin-top:5px">Пол</div>
<select name="sex" style="width:100%">
<option value="0">(не указан)</option>
<option value="1" selected="">мужской</option>
<option value="2">женский</option>
</select>
</div>
<div class="p20" style="text-align:left; margin-bottom:15px">
<h4>О себе</h4>
<div style="margin-bottom:15px">
<textarea name="aboutmemo" style="width:100%; height:200px"><?= json_decode($user->i('content'), true)['aboutmemo']['value'] ?></textarea>
</div>
<div style="margin-bottom:3px; margin-top:5px">Telegram</div>
<input type="text" name="abouttelegram" id="live" style="width:100%" maxlength="50" value="<?= json_decode($user->i('content'), true)['abouttelegram']['value'] ?>">
<div style="margin-bottom:3px; margin-top:5px">ВКонтакте</div>
<input type="text" name="aboutvk" id="live" style="width:100%" maxlength="50" value="<?= json_decode($user->i('content'), true)['aboutvk']['value'] ?>">
<div style="margin-bottom:3px; margin-top:5px">Twitter/X</div>
<input type="text" name="abouttwitter" id="live" style="width:100%" maxlength="50" value="<?= json_decode($user->i('content'), true)['abouttwitter']['value'] ?>">
<div style="margin-bottom:3px; margin-top:5px">YouTube</div>
<input type="text" name="aboutyoutube" id="live" style="width:100%" maxlength="50" value="<?= json_decode($user->i('content'), true)['aboutyoutube']['value'] ?>">
<div style="margin-bottom:3px; margin-top:5px">Почта</div>
<input type="text" name="aboutemail" id="live" style="width:100%" maxlength="50" value="<?= json_decode($user->i('content'), true)['aboutemail']['value'] ?>">
<div style="margin-bottom:3px; margin-top:5px">Instagram</div>
<input type="text" name="aboutinstagram" id="live" style="width:100%" maxlength="50" value="<?= json_decode($user->i('content'), true)['aboutinstagram']['value'] ?>">
<div style="margin-bottom:3px; margin-top:5px">TransPhoto</div>
<input type="text" name="abouttransphoto" id="live" style="width:100%" maxlength="50" value="<?= json_decode($user->i('content'), true)['abouttransphoto']['value'] ?>">
<div style="margin-bottom:3px; margin-top:5px">Личный сайт</div>
<input type="text" name="aboutwebsite" id="live" style="width:100%; margin-bottom: 35px;" maxlength="50" value="<?= json_decode($user->i('content'), true)['aboutwebsite']['value'] ?>">
<div style="margin-bottom:3px; margin-top:5px">Любимые модели поездов</div>
<input type="text" name="aboutfavs_trains" id="live" style="width:100%" maxlength="50" value="<?= json_decode($user->i('content'), true)['aboutfavs_trains']['value'] ?>">
<div style="margin-bottom:3px; margin-top:5px">Любимые страны</div>
<input type="text" name="aboutfavs_countries" id="live" style="width:100%" maxlength="50" value="<?= json_decode($user->i('content'), true)['aboutfavs_countries']['value'] ?>">
<div style="margin-bottom:3px; margin-top:5px">Любимые города</div>
<input type="text" name="aboutfavs_cities" id="live" style="width:100%" maxlength="50" value="<?= json_decode($user->i('content'), true)['aboutfavs_cities']['value'] ?>">
<div style="margin-bottom:7px"><b>Фотография</b></div>
<div style="margin-bottom:15px">
<div id="userphoto_div" style="display:none">
<a href="#" id="userphotoLink"><img src="" alt="" id="userphoto_img" class="f" style="width:auto; max-width:250px"></a>
<div style="margin-top:5px; margin-bottom:7px" class="sm"><input type="checkbox" name="remove_userphoto" id="remove_userphoto"> <label for="remove_userphoto">удалить</label></div>
</div>
<div id="userphoto_file_span"><input type="file" name="userphoto" id="userphoto_file" accept="image/*"></div>
<div class="sm" style="margin-top:3px; color:#888">Для загрузки принимаются файлы JPEG объемом до 200 КБ и шириной не более 800 пикселей</div>
</div>
<div style="text-align:center; margin-top:25px">
<input type="submit" id="submitBtn" style="width:250px; height:30px; margin-bottom:5px" value="Отредактировать профиль">
<div><span style="color:red; font-weight:bold; display:none" id="errors"></span><span style="display:none; font-weight:bold; color:green" id="applied">✔&ensp;Изменения внесены</span></div>
</div>
</div>
</form>
</center>
</td>
</tr>
<tr>
<?php include($_SERVER['DOCUMENT_ROOT'] . '/views/components/Footer.php'); ?>
</tr>
</table>
</body>
</html>