Файл: 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>