View file panel/site/modules/promocodes.php

File size: 8.72Kb
<?php
  
/*
----------------
Список активаций
----------------
*/

if (get('list')){
  
  $pc = db::get_string("SELECT `ID`,`CODE` FROM `PROMOCODES` WHERE `ID` = ? LIMIT 1", [intval(get('list'))]);
  
  if (isset($pc['ID'])){
    
    $column = db::get_column("SELECT COUNT(*) FROM `PROMOCODES_USER` WHERE `CODE` = ?", [$pc['CODE']]);
    $spage = spage($column, PAGE_SETTINGS);
    $page = page($spage);
    $limit = PAGE_SETTINGS * $page - PAGE_SETTINGS;
    
    ?>
    <div class='list-body'>
    <div class='list-menu'><font size='+1'><?=lg('Промокод')?> "<font color='#27BF91'><?=tabs($pc['CODE'])?></font>"</font></div>
    <?
      
    if ($column == 0){ 
      
      html::empty('Пока нет активаций');
    
    }
    
    $data = db::get_string_all("SELECT * FROM `PROMOCODES_USER` WHERE `CODE` = ? ORDER BY `TIME` DESC LIMIT ".$limit.", ".PAGE_SETTINGS, [$pc['CODE']]);  
    while ($list = $data->fetch()){

      require (ROOT.'/modules/users/plugins/list-mini.php');
      echo $list_mini;
    
    }
    
    get_page('/admin/site/modules/?mod=promocodes&list='.$pc['ID'].'&', $spage, $page, 'list-menu');
    
    ?></div><?
    
    back('/admin/site/modules/?mod=promocodes');
    acms_footer();
    
  }
  
}
  
/*
--------------------
Добавление промокода
--------------------
*/
  
if (get('get') == 'add'){
  
  if (post('ok')){
    
    $count = abs(intval(post('count')));
    $code = esc(post('code'));
    $money = abs(post('money'));
    $rating = abs(post('rating'));
    $balls = abs(intval(post('balls')));
    
    if (db::get_column("SELECT COUNT(*) FROM `PROMOCODES` WHERE `CODE` = ? LIMIT 1", [$code]) > 0){
      
      error('Такой промокод уже есть');
      redirect('/admin/site/modules/?mod=promocodes&get=add');
    
    }
    
    db::get_add("INSERT INTO `PROMOCODES` (`MONEY`, `BALLS`, `RATING`, `CODE`, `COUNT`, `TIME`) VALUES (?, ?, ?, ?, ?, ?)", [$money, $balls, $rating, $code, $count, TM]);
    
    success('Промокод успешно добавлен');
    redirect('/admin/site/modules/?mod=promocodes');
    
  }
  
  ?>
  <div class='list'>
  <form method='post' class='ajax-form' action='/admin/site/modules/?mod=promocodes&get=add'>
  <?=html::input('money', 0, 'Сколько денег начислить после активации', null, null, 'form-control-30', 'number', null, 'money')?>
  <?=html::input('rating', 0, 'Сколько ед. рейтинга начислить после активации', null, null, 'form-control-30', 'number', null, 'bar-chart')?> 
  <?=html::input('balls', 0, 'Сколько баллов начислить после активации', null, null, 'form-control-30', 'number', null, 'plus')?>
  <?=html::input('count', 0, 'Кол-во активаций', null, null, 'form-control-30', 'number', null, 'sort-numeric-asc')?>
  <?=html::input('code', 'Промокод', 'Название промокода (например: PROMO или NewYear2022)', null, null, 'form-control-30', 'text', null, 'text-width')?>
  <?=html::button('button ajax-button', 'ok', 'plus', 'Создать промокод')?>
  </form>
  </div>
  <?
  
  back('/admin/site/modules/?mod=promocodes');
  acms_footer();
  
}

/*
----------
Остановить
----------
*/

if (get('stop')){
  
  get_check_valid();
  
  $pc = db::get_string("SELECT `ID` FROM `PROMOCODES` WHERE `ID` = ? LIMIT 1", [intval(get('stop'))]);
  
  if (isset($pc['ID'])){
  
    db::get_set("UPDATE `PROMOCODES` SET `ACT` = ? WHERE `ID` = ? LIMIT 1", [0, $pc['ID']]);
    
  }
  
}

/*
---------
Запустить
---------
*/

if (get('play')){
  
  get_check_valid();
  
  $pc = db::get_string("SELECT `ID` FROM `PROMOCODES` WHERE `ID` = ? LIMIT 1", [intval(get('play'))]);
  
  if (isset($pc['ID'])){
  
    db::get_set("UPDATE `PROMOCODES` SET `ACT` = ? WHERE `ID` = ? LIMIT 1", [1, $pc['ID']]);
    
  }
  
}
  
/*
------------------
Удаление промокода
------------------
*/

if (get('delete')){
  
  get_check_valid();
  
  $pc = db::get_string("SELECT `ID` FROM `PROMOCODES` WHERE `ID` = ? LIMIT 1", [intval(get('delete'))]);
  
  if (isset($pc['ID'])){
  
    db::get_set("DELETE FROM `PROMOCODES` WHERE `ID` = ? LIMIT 1", [$pc['ID']]);
    
  }
  
}

/*
-------------------------
Редактирование промокодов
-------------------------
*/

if (get('edit')){
  
  $pc = db::get_string("SELECT * FROM `PROMOCODES` WHERE `ID` = ? LIMIT 1", [intval(get('edit'))]);
  
  if (!isset($pc['ID'])){
    
    error('Неизвестная ошибка');
    redirect('/admin/site/modules/?mod=promocodes');
    
  }
  
  if (post('ok')){
    
    $count = abs(intval(post('count')));
    $code = esc(post('code'));
    $money = abs(post('money'));
    $rating = abs(post('rating'));
    $balls = abs(intval(post('balls')));
    
    if ($code != $pc['CODE'] && db::get_column("SELECT COUNT(*) FROM `PROMOCODES` WHERE `CODE` = ? LIMIT 1", [$code]) > 0){
      
      error('Такой промокод уже есть');
      redirect('/admin/site/modules/?mod=promocodes&edit='.$pc['ID']);
    
    }
    
    db::get_set("UPDATE `PROMOCODES` SET `MONEY` = ?, `BALLS` = ?, `RATING` = ?, `CODE` = ?, `COUNT` = ? WHERE `ID` = ? LIMIT 1", [$money, $balls, $rating, $code, $count, $pc['ID']]);
    
    success('Изменения успешно приняты');
    redirect('/admin/site/modules/?mod=promocodes');
    
  }
  
  ?>
  <div class='list'>
  <form method='post' class='ajax-form' action='/admin/site/modules/?mod=promocodes&edit=<?=$pc['ID']?>'>
  <?=html::input('money', null, 'Сколько денег начислить после активации', null, $pc['MONEY'], 'form-control-30', 'number', null, 'money')?>
  <?=html::input('rating', null, 'Сколько ед. рейтинга начислить после активации', null, $pc['RATING'], 'form-control-30', 'number', null, 'bar-chart')?> 
  <?=html::input('balls', null, 'Сколько баллов начислить после активации', null, $pc['BALLS'], 'form-control-30', 'number', null, 'plus')?>
  <?=html::input('count', null, 'Кол-во активаций', null, $pc['COUNT'], 'form-control-30', 'number', null, 'sort-numeric-asc')?>
  <?=html::input('code', null, 'Название промокода (например: PROMO или NewYear2022)', null, $pc['CODE'], 'form-control-30', 'text', null, 'text-width')?>
  <?=html::button('button ajax-button', 'ok', 'save', 'Сохранить изменения')?>
  </form>
  </div>
  <?
  
  back('/admin/site/modules/?mod=promocodes');
  acms_footer();
  
}

/*
-----------------
Список промокодов
-----------------
*/

?><div id='promo'><?
  
$column = db::get_column("SELECT COUNT(*) FROM `PROMOCODES`");
$spage = spage($column, PAGE_SETTINGS);
$page = page($spage);
$limit = PAGE_SETTINGS * $page - PAGE_SETTINGS;
  
?>
<div class='list-body'>
    
<div class='list-menu'>
<a href='/admin/site/modules/?mod=promocodes&get=add' class='button'><?=icons('key', 15, 'fa-fw')?> <?=lg('Добавить промокод')?></a>
</div>    
<?
  
if ($column == 0){ 
  
  html::empty('Пока нет промокодов');

}
  
$data = db::get_string_all("SELECT * FROM `PROMOCODES` ORDER BY `TIME` DESC LIMIT ".$limit.", ".PAGE_SETTINGS);  
while ($list = $data->fetch()){
  
  ?>
  <div class='list-menu'>
  <font size='+1'><?=lg('Промокод')?> "<font color='#27BF91'><?=tabs($list['CODE'])?></font>"</font><br /><br />    
  <?=lg('Создан')?>: <b><?=ftime($list['TIME'])?></b><br />  
  <?=lg('Денег')?>: <b><?=$list['MONEY']?></b><br />
  <?=lg('Баллов')?>: <b><?=$list['BALLS']?></b><br />
  <?=lg('Ед. рейтинга')?>: <b><?=$list['RATING']?></b><br />
  <?=lg('Осталось активаций')?>: <b><?=$list['COUNT']?></b> (<a href='/admin/site/modules/?mod=promocodes&list=<?=$list['ID']?>'><?=('список активаций')?></a>)
  <br /><br />
  <a href='/admin/site/modules/?mod=promocodes&edit=<?=$list['ID']?>' class='button3'><?=icons('pencil', 15, 'fa-fw')?> <?=lg('Редактировать')?></a>
  <?php if ($list['ACT'] == 1) { ?>
  <a href='/admin/site/modules/?mod=promocodes&stop=<?=$list['ID']?>&<?=TOKEN_URL?>' class='button'><?=icons('pause', 15, 'fa-fw')?> <?=lg('Остановить')?></a>
  <?php }else{ ?>
  <a href='/admin/site/modules/?mod=promocodes&play=<?=$list['ID']?>&<?=TOKEN_URL?>' class='button'><?=icons('play', 15, 'fa-fw')?> <?=lg('Запустить')?></a>
  <?php } ?>
  <button onclick="request('/admin/site/modules/?mod=promocodes&delete=<?=$list['ID']?>&<?=TOKEN_URL?>', '#promo')" class='button2'><?=icons('trash', 15, 'fa-fw')?></button> 
  </div>
  <?
  
}
  
get_page('/admin/site/modules/?mod=promocodes&', $spage, $page, 'list-menu');
  
?></div></div><?