Файл: 3020.ru/file_3020/plugins/shop.goodsedit.php
Строк: 222
<?
if ($level < 1) {
die('У вас нет прав доступа');
}
if (isset($_GET['create'])) {
if ($user['block_set'] == 1) {
die('Вам закрыт доступ для добавления новых товаров');
}
}
if (isset($_GET['create'])) {
$id_category = (int) $_GET['create'];
$category = $sql -> fetch("SELECT * FROM `shop_category` WHERE `id` = '$id_category' LIMIT 1");
}
if ($user['wmid'] == '0' || $user['purse'] == '0') {
// $err[] = 'Заполните WMID и WM Кошелек';
}
if (isset($ID)) {
$goods = $sql -> fetch("SELECT * FROM `shop_goods` WHERE `id` = '$ID' AND `unlink` = '0' LIMIT 1");
$goods_tmp = $goods;
if ($goods['id_user'] != $user['id'] && $level < 3) {
die('У вас нет прав доступа к этому товару');
}
} elseif (isset($_GET['create']) && $sql -> selectCount("SELECT COUNT(*) FROM `shop_category` WHERE `id` = '$id_category' AND `goods` = '1'") == 1) {
$goods = array('name' => '', 'msg' => '', 'keywords' => '', 'wmr' => '', 'wmr_pr' => '0', 'wmr_pay' => '', 'copies' => '0');
if ($system['shop_goods_open'] == 0){
$err[] = 'Добавление новых товаров временно приостановлено';
}
} else {
die('Ошибка: Категория не существует, в этой категории запрещено добавлять товары или вы не правильно указали ID товара.');
}
if (isset($_POST['name']))
{
$goods['name'] = $sql->esc($_POST['name']);
$goods['msg'] = $sql->esc($_POST['msg']);
$goods['keywords'] = $sql->esc($_POST['keywords']);
$goods['copies'] = abs(intval($_POST['copies']));
$goods['wmr'] = abs(intval($_POST['wmr']));
$goods['wmr_pr'] = abs(intval($_POST['wmr_pr']));
$goods['wmr_pay'] = abs(intval($_POST['wmr_pay']));
if ($goods['wmr'] < $system['min_coins_goods']) {
$err[] = 'Минимальная цена товара ' . $system['min_coins_goods'] . ' wmr';
} elseif ($goods['wmr'] > $system['max_coins_goods']) {
$err[] = 'Максимальная цена товара ' . $system['max_coins_goods'] . ' wmr';
}
if (strlen2($goods['name']) > 32) {
$err[] = 'Название товара слишком длинное';
} elseif (strlen2($goods['name']) < 4) {
$err[] = 'Название товара слишком короткое';
}
if (strlen2($goods['msg']) > 15000) {
$err[] = 'Описание товара слишком длинное';
} elseif (strlen2($goods['msg']) < 30) {
$err[] = 'Описание товара слишком короткое';
}
if (!isset($err) && !isset($goods['id'])) {
$bro_rand = rand(1,9999999);
$file = esc(stripcslashes(htmlspecialchars($_FILES['file']['name'])));
$size = (int) $_FILES['file']['size'];
$type = $sql->esc($_FILES['file']['type']);
$file = preg_replace('(#|?)', NULL, $file);
$name = preg_replace('#.[^.]*$#', NULL, $file);
$name = ''.$time.'_OnlineShop_'.$user['login'].'_'.latin($goods['name']).'_'.$bro_rand.'';
$cache = md5($time);
$ras = strtolower(preg_replace('#^.*.#', NULL, $file));
if (@copy($_FILES['file']['tmp_name'], FILES.'shop/' . $cache . '.dat')) {
$files = serialize(array('name' => $name, 'ras' => $ras, 'size' => $size, 'type' => $type, 'cache' => $cache));
} else {
$err[] = 'Ошибка при выгрузке товара';
}
if (isset($files)) {
if ($_FILES['screen']['name'][0]) {
for ($i = 0; count($_FILES['screen']['name']) > $i; $i++) {
if (isset($_FILES['screen']['tmp_name'][$i]) && $imgc = @imagecreatefromstring(file_get_contents($_FILES['screen']['tmp_name'][$i]))) {
$cache = md5($_FILES['screen']['name'][$i].$time);
$screens[] = $cache;
@copy($_FILES['screen']['tmp_name'][$i], SRC.'screen/shop/' . $cache . '.png');
}
}
}
if (isset($screens) && is_array($screens)) {
$screens = serialize($screens);
} else {
$screens = null;
}
}
}
if (!isset($err)) {
if (isset($goods['id'])) {
if ($goods['id_user'] != $user['id']) {
admin_log($user['id'], 'Магазин|Параметры товара', "Изменение параметров товара [url=/goods/" . $goods['id'] . "]" . $goods['name'] . "[/url]");
}
// Рассылка подписчикам
if ($goods_tmp['wmr'] != $goods['wmr']) {
$spy = $sql -> select("SELECT * FROM `shop_spy` WHERE `id_author` = '$goods[id_user]' AND `wmr` = '1'");
foreach($spy AS $ank) {
journal($ank['id_user'], 'spy', "[url=/index.php?func=user.profile&id=" . $user['id'] . "]" . login($user['id'], 0) . "[/url] изменил".($user['pol']==0?'a':null)." цену на cвой товар [url=/goods/" . $goods['id'] . "]" . $goods['name'] . "[/url]r
Cтарая цена [s][red]$goods_tmp[wmr] wmr[/red][/s] -> [green]Новая цена [b]$goods[wmr] wmr [/b][/green]");
}
}
$sql -> update("UPDATE `shop_goods` SET `name` = '$goods[name]', `msg` = '$goods[msg]', `keywords` = '$goods[keywords]', `copies` = '$goods[copies]', `wmr` = '$goods[wmr]', `wmr_pr` = '$goods[wmr_pr]', `wmr_pay` = '$goods[wmr_pay]' WHERE `id` = '$goods[id]' LIMIT 1");
$returnID = $goods['id'];
$_SESSION['message'] = 'Параметры товара изменены';
} else {
$sql -> insert("INSERT INTO `shop_goods` (`name`, `msg`, `id_category`, `keywords`, `copies`, `wmr`, `wmr_pr`, `wmr_pay`, `file`, `screens`, `time`, `id_user`, `dir`)
values('$goods[name]', '$goods[msg]', '$id_category', '$goods[keywords]', '$goods[copies]', '$goods[wmr]', '$goods[wmr_pr]', '$goods[wmr_pay]', '$files', '$screens', '$time', '$user[id]', '" . $category['id_category'] . $category['id'] . "/')");
$returnID = $sql->insert_id();
if ($system['j_newgoods'] == 1) {
admin_journal($user['id'], 'goods', " добавил".($user['pol']==0?'a':null)." новый товар [url=/goods/" . $returnID . "]" . $goods['name'] . "[/url]");
}
// Рассылка подписчикам
$spy = $sql -> select("SELECT * FROM `shop_spy` WHERE `id_author` = '$user[id]' AND `goods` = '1'");
foreach($spy AS $ank){
journal($ank['id_user'], 'spy', "[url=/index.php?func=user.profile&id=" . $user['id'] . "]" . login($user['id'], 0) . "[/url] добавил".($user['pol']==0?'a':null)." новый товар [url=/goods/" . $returnID . "]" . $goods['name'] . "[/url]");
}
$_SESSION['message'] = 'Товар успешно добавлен';
}
header('Location: /?func=shop.goods&id=' . $returnID);
exit;
}
}
$system['title'] = 'Управление товарами';
require SYS . 'header.php';
echo '<div class="main_menu"><b>Запрещено</b><br />';
echo 'Добавление товара не заполнив реквизиты WebMoney в Анкете.<br />';
echo 'Добавление товара если у Вас Аттестат Псевдонима и BL< 10.<br />';
echo 'Добавление товара если у Вас Аттестат Формальный и BL< 5.<br />';
echo 'Данное ограничение по BL распространяется только на указанные выше Аттестаты с регистрации в системе WebMoney менее 6 месяцев.<br />';
echo '</div>';
echo '<div class="main_menu">';
echo 'Если Вы всё же загрузите товар, нарушая данное условие, то Ваш товар не пройдёт модерацию а Ваш аккаунт будет заблокирован на 7 суток .<br />';
echo '</div>';
echo '<div class="main_menu">';
echo 'При добавлении обязательно давать полное описание товара.<br />';
echo 'Скриншеты, ссылки на пример, полное описание функцианала.<br />';
echo '</div>';
?>
<form class="form-horizontal" action="?func=shop.goodsedit&<?= (isset($goods['id']) ? 'id=' . $goods['id'] : 'create=' . $id_category)?>" enctype="multipart/form-data" method="POST" style="padding: 20px 0 20px 0;">
<div class="control-group warning" >
<label class="control-label" for="name">Название</label>
<div class="controls">
<input type="text" id="name" name="name" placeholder="Название товара.." value="<?= text($goods['name'])?>" style="width: 200px" />
</div>
</div>
<div class="control-group warning" >
<label class="control-label" for="wmr">Цена (<?= $system['min_coins_goods']?>-<?= $system['max_coins_goods']?> wmr)</label>
<div class="controls">
<input type="text" id="wmr" name="wmr" placeholder="Стоимость товара.." value="<?= $goods['wmr']?>" style="width: 200px" />
</div>
</div>
<div class="control-group warning" >
<label class="control-label" for="wmr_pr">Скидка (до 50%)</label>
<div class="controls">
<input type="text" id="wmr_pr" name="wmr_pr" value="<?= $goods['wmr_pr']?>" style="width: 200px" />
</div>
</div>
<div class="control-group warning" >
<label class="control-label" for="wmr_pay">Куплено на общую сумму</label>
<div class="controls">
<input type="text" id="wmr_pay" name="wmr_pay" value="<?= $goods['wmr_pay']?>" style="width: 200px" />
</div>
</div>
<div class="control-group warning" >
<label class="control-label" for="copies">Копий (0 без ограничений)</label>
<div class="controls">
<input type="text" id="copies" name="copies" value="<?= $goods['copies']?>" style="width: 200px" />
</div>
</div>
<div class="control-group warning">
<label class="control-label" for="msg">Описание</label>
<div class="controls">
<textarea id="msg" name="msg" placeholder="Опишите ваш товар.."><?= text($goods['msg'])?></textarea>
</div>
</div>
<div class="control-group warning">
<label class="control-label" for="keywords">Ключевые слова (META)</label>
<div class="controls">
<input type="text" id="keywords" name="keywords" placeholder="Слова через запятую.." value="<?= text($goods['keywords'])?>" style="width: 200px" />
</div>
</div>
<? if (!isset($goods['id'])) { ?>
<div class="control-group warning">
<label class="control-label" for="file">Товар (max 100 mb)</label>
<div class="controls">
<input type="file" id="file" name="file" style="width: 200px" /><br />
</div>
</div>
<div class="control-group warning">
<label class="control-label" for="screen">Скриншоты</label>
<div class="controls" id="screens">
<input type="file" name="screen[]" id="screen1" style="width: 200px" /><br />
</div>
<div class="controls" style="padding: 4px; padding-left: 50px;">
<a href="#screens" onclick="addScreen()" class="btn">Добавить ещё</a>
</div>
</div>
<script>
var countScreen = 1;
function addScreen() {
if (countScreen <= 10) {
countScreen++;
$('#screens').append('<input type="file" name="screen[]" id="screen' + countScreen + '" style="width: 200px" /><br />');
} else {
alert('Разрешается выгружать не более 10 скриншотов');
}
}
</script>
<? } ?>
<div class="control-group" style="margin: 0;">
<div class="controls">
<button type="submit" class="btn"> <?= (isset($goods['id']) ? 'Сохранить' : 'Добавить')?></button>
</div>
</div>
</form>