Joywork/admin/builderEdit.php

409 lines
17 KiB
PHP
Raw Permalink Normal View History

2026-05-22 20:21:54 +02:00
<?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>