Joywork/admin/builderEdit.php
2026-05-22 21:21:54 +03:00

409 lines
17 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
require_once($_SERVER['DOCUMENT_ROOT'] . "/config.php");
ini_set('display_errors', 1);
error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE);
// закрываем доступ на выполнение запросов
if (!isset($_SESSION['superadmin'])) {
header("location:/index.php");
die("Доступ запрещён!");
}
include $_SERVER['DOCUMENT_ROOT'] . '/import/obj/ImportRecord.php';
include $_SERVER['DOCUMENT_ROOT'] . '/import/obj/Builder.php';
if (isset($_POST['add_builder'])) {
$err = "";
$post = clearInputData($_POST);
if ($_FILES['logo']['name']) {
if ($_FILES['logo']['error'] == UPLOAD_ERR_OK) {
list($a, $ext) = explode("/", $_FILES['logo']['type']);
if ($ext == "pjpeg") {
$ext = "jpeg";
}
$ext = mb_strtolower($ext);
if ($ext == "jpeg" or $ext == "jpg" or $ext == "png") {
$name = md5($_FILES['logo']['tmp_name'] . time()) . "." . $ext;
$photo = $_SERVER['DOCUMENT_ROOT'] . "/photos/builder/" . $name;
if (!is_dir($_SERVER['DOCUMENT_ROOT'] . "/photos/builder")) {
mkdir($_SERVER['DOCUMENT_ROOT'] . "/photos/builder");
}
if (move_uploaded_file($_FILES['logo']['tmp_name'], $photo)) {
$size = getimagesize($photo);
if ($size[0] > 272) {
resize_img(272, $photo, $photo);
}
$post['hidden_logo'] = $name;
}
} else {
if (strlen($err) > 0) {
$err = $err . "<br/>";
}
$err .= "Неверный тип файла. Допустимые типы - jpg или png.";
}
} else {
if ($_FILES['logo']['error'] == UPLOAD_ERR_FORM_SIZE) {
if (strlen($err) > 0) {
$err = $err . "<br/>";
}
$err .= "Превышен размер файла. Допустимый размер 1-2 Mb.";
} else {
if (strlen($err) > 0) {
$err = $err . "<br/>";
}
$err .= "Ошибка при загрузке: ".$_FILES['logo']['error'];
}
}
}
if (isset($post['id'])) {
if (strlen($err) == 0) {
$builderToSave = new Builder();
$builderToSave->newRecord = false;
$builderToSave->name = $post['hidden_name'];
$builderToSave->id = $post['id'];
$builderToSave->fee = $post['fee'];
$builderToSave->note = $post['note'];
$builderToSave->discount_fee = $post['discount_fee'];
$builderToSave->pay_period = $post['pay_period'];
$builderToSave->adv = $post['adv'];
$builderToSave->logo = $post['hidden_logo'];
$builderToSave->save();
header("location:/admin/builders.php");
exit();
}
} else {
if (strlen($err) > 0) {
$err = $err . "<br/>";
}
$err .= "Не найден идентификатор застройщика в запросе.";
}
}
$get = clearInputData($_GET);
if (!isset($get['id'])) {
header("location:/admin/builders.php");
}
require_once($_SERVER['DOCUMENT_ROOT'] . "/templates/header-admin.php");
if (!isset($post) && $get['id'] > 0) {
$builder = Builder::findOne($get['id']);
}
?>
<div class="main-title">
<h1>Редактирование застройщика</h1>
</div>
<div class="users fr__users" style="margin-right: 20px;">
<div class="new-object">
<form method="post" enctype="multipart/form-data" id="upload-form">
<div class="new-object__form">
<?php if (isset($err) && strlen($err) > 0) { ?>
<div class="block" style="border-bottom: none; color: red;"><?php echo $err; ?></div>
<?php } ?>
<div class="block">
<div class="line">
<div class="label">
<span>Название:</span>
</div>
<div class="inputs">
<input type="text" class="text" name="name" disabled="disabled" style="width: 75%;"
value="<? if (isset($post)) echo $post['hidden_name'];
if (isset($builder)) echo $builder->name; ?>">
</div>
</div>
<div class="line">
<div class="label" style="width: 230px;">
<span>Комиссия:</span>
</div>
<div class="inputs">
<input type="number" step="0.1" min="0" max="100" class="text" name="fee"
value="<? if (isset($post)) echo $post['fee'];
if (isset($builder)) echo $builder->fee; ?>">
</div>
</div>
<div class="line">
<div class="label" style="width: 230px;">
<span>Комиссия переуступок:</span>
</div>
<div class="inputs">
<input type="number" step="0.1" min="0" max="100" class="text" name="discount_fee"
value="<? if (isset($post)) echo $post['discount_fee'];
if (isset($builder)) echo $builder->discount_fee; ?>">
</div>
</div>
<div class="line">
<div class="label" style="width: 230px;">
<span>Срок выплаты комиссионных застройщиком:</span>
</div>
<div class="inputs">
<input type="text" class="text" name="pay_period"
value="<? if (isset($post)) echo $post['pay_period'];
if (isset($builder)) echo $builder->pay_period; ?>">
</div>
</div>
<div class="line">
<div class="label">
<span>Заметка:</span>
</div>
<div class="inputs">
<textarea name="note" style="width: 75%;"><? if (isset($post)) echo $post['note'];
if (isset($builder) && $builder->note) { echo str_replace("<br>", "\n", $builder->note); } ?></textarea>
</div>
</div>
<div class="line">
<div class="label">
<span>Реклама:</span>
</div>
<div class="inputs">
<textarea name="adv" style="width: 75%;"><? if (isset($post)) echo $post['adv'];
if (isset($builder)) echo $builder->adv; ?></textarea>
</div>
</div>
<div class="line">
<div class="label">
<span>Логотип:</span>
</div>
<div class="inputs">
<input type="hidden" name="MAX_FILE_SIZE" value="3000000"/>
<input style="border: 1px solid white;" type="file" accept="image/jpeg,image/png"
class="text" name="logo"/>
<div class="text_comment" style="margin-left: 123px; font-size: 12px;">
<p>JPG, PNG (квадрат 272х272 пиксела)</p>
<div id="upload-result"></div>
</div>
<div <?php if(isset($builder) && $builder->logo) echo "style='margin-left: 123px;margin-top: 10px;height: 272px; width: 272px; background:url(/photos/builder/".$builder->logo.") no-repeat'"; ?>>
</div>
</div>
</div>
<div class="line" style="text-align: right">
<button type="submit" class="medium-button">Сохранить</button>
<a href="/admin/builders.php" class="cancel-button medium-button">Закрыть</a>
</div>
<input type="hidden" name="add_builder" value="1">
<input type="hidden" name="hidden_logo" value="<?php if (isset($builder)) {
echo $builder->logo;
} else {
if (isset($post)) {
echo $post['hidden_logo'];
}
} ?>">
<input type="hidden" name="hidden_name" value="<?php if (isset($builder)) {
echo $builder->name;
} else {
if (isset($post)) {
echo $post['hidden_name'];
}
} ?>">
<input type="hidden" name="id" value="<?php if (isset($builder)) {
echo $builder->id;
} else {
if (isset($post)) {
echo $post['id'];
}
} ?>">
<div class="clear"></div>
</div>
</div>
</form>
<!-- Отзовы застройщиков -->
<div class="tabs__content">
<div style="padding: 15px">
<style>
.review_builder_del_btn {
color: #e77;
cursor: pointer;
}
</style>
<link rel="stylesheet" href="https://cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css">
<h2 style="margin-bottom: 15px">Отзывы</h2>
<div id="reviews_builder_wrap">
<?php
$sql = "SELECT * FROM builder_reviews WHERE builder_id=".$builder->id;
$reviews = [];
try {
$result = mysql_query($sql);
while ($obj = mysql_fetch_assoc($result)) {
$reviews[$obj['id']] = $obj;
}
} catch (Exception $e) {
echo $e->getMessage();
}
?>
<table id="reviews_builder_table_id" class="display reviews_table_id">
<thead>
<tr>
<th>id</th>
<th>Имя</th>
<th>Отзыв</th>
<th>Дата</th>
<th></th>
</tr>
</thead>
<tbody>
<?php
foreach ($reviews as $id => $review) {
?>
<tr>
<td><?php echo $id ?></td>
<td><?php echo $review['name'] ?></td>
<td><?php echo $review['review'] ?></td>
<td><?php echo date('d.m.Y H:i', strtotime($review['date'])) ?></td>
<td><span class="review_builder_del_btn" id="<?php echo $id ?>">Удалить</span></td>
</tr>
<?php
}
?>
</tbody>
</table>
</div>
<div>
<button builder_id="<?php echo $builder->id ?>" class="medium-button action-button actionJW show_add_review_btn block_features_btn">Добавить</button>
</div>
<div class="clear"></div>
</div>
</div>
</div>
<div class="clear"></div>
</div>
<script src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>
<script>
$(document).ready(function () {
reviews_builder = $('#reviews_builder_table_id').DataTable({
"oLanguage": {
"sLengthMenu": "Отобразить _MENU_ записей на странице",
"sZeroRecords": "Ничего не найдено",
"sInfo": "Показано с _START_ по _END_ из _TOTAL_ записей",
"sInfoEmpty": "Показано с 0 по 0 из 0 записей",
"sInfoFiltered": "(Отфильтровано из _MAX_ записей)",
"sSearch": "Найти",
"oPaginate": {
"sFirst": "Первая",
"sLast": "Последняя",
"sNext": "Следующая",
"sPrevious": "Предыдущая"
},
}
});
$('.show_add_review_btn').on('click', function () {
$('#show_add_review_bg').show();
$('#show_add_review').show();
});
$('#show_add_review_bg .closer').on('click', function(){
$("#show_add_review_bg").toggle(10);
});
$('#block_review_save').on('click', function(){
builder_id = $(this).attr('builder_id');
review = $('#block_review_text').val();
name = $('#block_review_name').val();
param = {
"builder_id": builder_id,
"review": review,
"name": name,
};
$.post('/admin/ajax/addBuilderReview.php', param, function (data) {
data = JSON.parse(data);
id = data.id;
review = data.review;
name = data.name;
date = data.date;
del_btn = "<span id='"+id+"' class='review_builder_del_btn'>Удалить</span>";
reviews_builder.row.add([
id,
name,
review,
date,
del_btn
]).draw();
$('#show_add_review_bg').hide();
$('#block_review_text').val('');
});
});
$('body').on('click','.review_builder_del_btn', function(){
review_id = $(this).attr('id');
console.log(review_id);
param = {
"review_id": review_id
};
$.post('/admin/ajax/deleteBuilderReview.php', param, function (data) { });
reviews_builder.row( $(this).parents('tr') ).remove().draw();
});
})
</script>
<?php
require_once($_SERVER['DOCUMENT_ROOT'] . "/templates/footer-admin.php");
?>
<!--Review-->
<div class="full_modal-bg" id="show_add_review_bg" style="display: none">
<div class="full_modal" id="show_add_review" style="display: none">
<span class="pseudo-link closer" onclick="hidechangeTarif(); return false;"><i class="ti-close"></i></span>
<form id="add_review_form" action="">
<div class="modal-form">
<div class="modal-inner">
<h2>Добавить отзыв</h2>
<!-- <div class="form-block">-->
<!-- <div class="label">Порядок:</div>-->
<!-- <div class="inputs">-->
<!-- <input type="number" min="0" class="text" name="num" value="1" style="width:70px;">-->
<!-- </div>-->
<!-- <div class="clear"></div>-->
<!-- </div>-->
<div class="form-block">
<div class="label">Имя:</div>
<div class="inputs">
<input type="text" class="text" id="block_review_name" name="block_review_name" value="" style="width:100%">
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="label">Описание:</div>
<div class="inputs">
<textarea class="text" id="block_review_text" name="block_review_text" style="width:100%; height:200px;"></textarea>
</div>
<div class="clear"></div>
</div>
</div>
</div>
</form>
<div class="modal-submit">
<button id="block_review_save" class="fr-btn1" builder_id="<?php echo $builder->id ?>">Сохранить&nbsp;<i class="ti-angle-right"></i></button>
</div>
</div>
</div>