View file í«Γδ_ñ½∩_ú«ßΓÑó«⌐_óÑαß¿∩_1.1/modules/guestbook/bot_settings.php

File size: 18.36Kb
<?php
acms_header('Настройки ботов', 'management');
is_active_module('PRIVATE_GUESTBOOK');

/*
---------
База слов
---------
*/

if (db::get_column("SELECT COUNT(*) FROM `USERS` WHERE `ID` = ? AND `BOT_GUESTBOOK` >= ? LIMIT 1", [intval(get('base_bot')), 1]) > 0){
  
  get_check_valid();
  
  $id = intval(get('base_bot'));
  
  /*
  -------------
  Удалить слово
  -------------
  */
  
  if (db::get_column("SELECT COUNT(*) FROM `GUESTBOOK_BOTS` WHERE `ID` = ? LIMIT 1", [intval(get('delete_b'))]) > 0){
    
    db::get_set("DELETE FROM `GUESTBOOK_BOTS` WHERE `ID` = ?", [intval(get('delete_b'))]);
    
    success('Успешно удалено');
    redirect('/m/guestbook/bot_settings/?base_bot='.$id.'&'.TOKEN_URL);
    
  }
  
  /*
  -------------------
  Редактировать слово
  -------------------
  */
  
  if (get('edit_b')){
    
    $b = db::get_string("SELECT * FROM `GUESTBOOK_BOTS` WHERE `ID` = ? LIMIT 1", [intval(get('edit_b'))]);
    
    if (isset($b['ID'])){
      
      if (post('ok')) {
        
        valid::create(array(
          
          'BOT_MESSAGE' => ['message', 'text', [2, 5000], 'Слово/фраза', 0],
          'BOT_REPLY' => ['reply', 'text', [0, 5000], 'Ответ на сообщение пользователя', 0],
          'BOT_SEC' => ['sec', 'number', [0, 99999999999], 'Интервал']
        
        ));
        
        if (BOT_MESSAGE != $b['MESSAGE'] && db::get_column("SELECT COUNT(*) FROM `GUESTBOOK_BOTS` WHERE `MESSAGE` = ? LIMIT 1", [BOT_MESSAGE]) > 0){
          
          error('Такое слово/фраза уже существует в базе слов ботов');
          redirect('/m/guestbook/bot_settings/?base_bot='.$id.'&'.TOKEN_URL.'&edit_b='.$b['ID']);
        
        }
        
        db::get_set("UPDATE `GUESTBOOK_BOTS` SET `MESSAGE` = ?, `REPLY` = ?, `SEC` = ? WHERE `ID` = ? LIMIT 1", [BOT_MESSAGE, BOT_REPLY, BOT_SEC, $b['ID']]);
        
        success('Изменения успешно приняты');
        redirect('/m/guestbook/bot_settings/?base_bot='.$id.'&'.TOKEN_URL);
      
      }
      
      ?>
      <div class='list'>
      <form method='post' class='ajax-form' action='/m/guestbook/bot_settings/?base_bot=<?=$id?>&<?=TOKEN_URL?>&edit_b=<?=$b['ID']?>'>
      <?=html::input('message', null, 'Введите слово или фразу, которую бот должен будет написать в гостевой', null, tabs($b['MESSAGE']), 'form-control-100', 'text', null, 'commenting')?>
      <?=html::input('reply', null, 'Введите слово или фразу, на которую бот должен будет ответить в гостевой пользователю (если оставить поле пустым, то бот будет добавлять слово/фразу просто как сообщение по интервалу)', null, tabs($b['REPLY']), 'form-control-100', 'text', null, 'comment')?>
      <?=html::select('sec', array(
        10 => ['10 '.lg('секунд'), ($b['SEC'] == 10 ? "selected" : null)], 
        20 => ['20 '.lg('секунд'), ($b['SEC'] == 20 ? "selected" : null)],  
        30 => ['30 '.lg('секунд'), ($b['SEC'] == 30 ? "selected" : null)], 
        40 => ['40 '.lg('секунд'), ($b['SEC'] == 40 ? "selected" : null)], 
        50 => ['50 '.lg('секунд'), ($b['SEC'] == 50 ? "selected" : null)], 
        60 => ['1 '.lg('минута'), ($b['SEC'] == 60 ? "selected" : null)], 
        120 => ['2 '.lg('минуты'), ($b['SEC'] == 120 ? "selected" : null)], 
        180 => ['3 '.lg('минуты'), ($b['SEC'] == 180 ? "selected" : null)], 
        240 => ['4 '.lg('минуты'), ($b['SEC'] == 240 ? "selected" : null)], 
        300 => ['5 '.lg('минут'), ($b['SEC'] == 300 ? "selected" : null)], 
        600 => ['10 '.lg('минут'), ($b['SEC'] == 600 ? "selected" : null)], 
        900 => ['15 '.lg('минут'), ($b['SEC'] == 900 ? "selected" : null)], 
        1200 => ['20 '.lg('минут'), ($b['SEC'] == 1200 ? "selected" : null)], 
        1500 => ['25 '.lg('минут'), ($b['SEC'] == 1500 ? "selected" : null)], 
        1800 => ['30 '.lg('минут'), ($b['SEC'] == 1800 ? "selected" : null)], 
        2100 => ['35 '.lg('минут'), ($b['SEC'] == 2100 ? "selected" : null)], 
        2400 => ['40 '.lg('минут'), ($b['SEC'] == 2400 ? "selected" : null)], 
        2700 => ['45 '.lg('минут'), ($b['SEC'] == 2700 ? "selected" : null)], 
        3000 => ['50 '.lg('минут'), ($b['SEC'] == 3000 ? "selected" : null)], 
        3300 => ['55 '.lg('минут'), ($b['SEC'] == 3300 ? "selected" : null)], 
        3600 => ['1 '.lg('час'), ($b['SEC'] == 3600 ? "selected" : null)], 
        7200 => ['2 '.lg('часа'), ($b['SEC'] == 7200 ? "selected" : null)], 
        10800 => ['3 '.lg('часа'), ($b['SEC'] == 10800 ? "selected" : null)], 
        14400 => ['4 '.lg('часа'), ($b['SEC'] == 14400 ? "selected" : null)], 
        18000 => ['5 '.lg('часов'), ($b['SEC'] == 18000 ? "selected" : null)], 
        21600 => ['6 '.lg('часов'), ($b['SEC'] == 21600 ? "selected" : null)], 
        86400 => ['1 '.lg('день'), ($b['SEC'] == 86400 ? "selected" : null)]
      ), 'Интервал добавления', 'form-control-100-modify-select', 'clock-o')?>
      <small><?=lg('По интервалу ответы на сообщения пользователей не добавляются. В таком случае ответ будет мгновенный')?></small><br /><br />
      <?=html::button('button ajax-button', 'ok', 'save', 'Сохранить изменения')?>
      <a class='button-o' href='/m/guestbook/bot_settings/?base_bot=<?=$id?>&<?=TOKEN_URL?>'><?=lg('Отмена')?></a>
      </form>
      </div>
      <?
    
      back('/m/guestbook/bot_settings/?base_bot='.$id.'&'.TOKEN_URL);
      acms_footer();
      
    }
    
  }
  
  /*
  --------------
  Добавить слова
  --------------
  */
  
  if (get('get') == 'add_b') {
    
    if (post('ok')) {
      
      valid::create(array(
        
        'BOT_MESSAGE' => ['message', 'text', [2, 5000], 'Слово/фраза', 0],
        'BOT_REPLY' => ['reply', 'text', [0, 5000], 'Ответ на сообщение пользователя', 0],
        'BOT_SEC' => ['sec', 'number', [0, 99999999999], 'Интервал']
      
      ));
      
      if (db::get_column("SELECT COUNT(*) FROM `GUESTBOOK_BOTS` WHERE `MESSAGE` = ? LIMIT 1", [BOT_MESSAGE]) > 0){
        
        error('Такое слово/фраза уже существует в базе слов ботов');
        redirect('/m/guestbook/bot_settings/?base_bot='.$id.'&'.TOKEN_URL.'&get=add_b');
      
      }
      
      db::get_add("INSERT INTO `GUESTBOOK_BOTS` (`MESSAGE`, `REPLY`, `BOT_ID`, `SEC`) VALUES (?, ?, ?, ?)", [BOT_MESSAGE, BOT_REPLY, $id, BOT_SEC]);
      
      success('Успешно');
      redirect('/m/guestbook/bot_settings/?base_bot='.$id.'&'.TOKEN_URL);
    
    }
    
    ?>
    <div class='list'>
    <form method='post' class='ajax-form' action='/m/guestbook/bot_settings/?base_bot=<?=$id?>&<?=TOKEN_URL?>&get=add_b'>
    <?=html::input('message', null, 'Введите слово или фразу, которую бот должен будет написать в гостевой', null, null, 'form-control-100', 'text', null, 'commenting')?>
    <?=html::input('reply', null, 'Введите слово или фразу, на которую бот должен будет ответить в гостевой пользователю (если оставить поле пустым, то бот будет добавлять слово/фразу просто как сообщение по интервалу)', null, null, 'form-control-100', 'text', null, 'comment')?>
    <?=html::select('sec', array(
      10 => ['10 '.lg('секунд'), 10], 
      20 => ['20 '.lg('секунд'), 20],  
      30 => ['30 '.lg('секунд'), 30], 
      40 => ['40 '.lg('секунд'), 40], 
      50 => ['50 '.lg('секунд'), 50], 
      60 => ['1 '.lg('минута'), 60], 
      120 => ['2 '.lg('минуты'), 120], 
      180 => ['3 '.lg('минуты'), 180], 
      240 => ['4 '.lg('минуты'), 240], 
      300 => ['5 '.lg('минут'), 300], 
      600 => ['10 '.lg('минут'), 600], 
      900 => ['15 '.lg('минут'), 900], 
      1200 => ['20 '.lg('минут'), 1200], 
      1500 => ['25 '.lg('минут'), 1500], 
      1800 => ['30 '.lg('минут'), 1800], 
      2100 => ['35 '.lg('минут'), 2100], 
      2400 => ['40 '.lg('минут'), 2400], 
      2700 => ['45 '.lg('минут'), 2700], 
      3000 => ['50 '.lg('минут'), 3000], 
      3300 => ['55 '.lg('минут'), 3300], 
      3600 => ['1 '.lg('час'), 3600], 
      7200 => ['2 '.lg('часа'), 7200], 
      10800 => ['3 '.lg('часа'), 10800], 
      14400 => ['4 '.lg('часа'), 14400], 
      18000 => ['5 '.lg('часов'), 18000], 
      21600 => ['6 '.lg('часов'), 21600], 
      86400 => ['1 '.lg('день'), 86400]
    ), 'Интервал добавления', 'form-control-100-modify-select', 'clock-o')?>
    <small><?=lg('По интервалу ответы на сообщения пользователей не добавляются. В таком случае ответ будет мгновенный')?></small><br /><br />
    <?=html::button('button ajax-button', 'ok', 'plus', 'Добавить')?>
    <a class='button-o' href='/m/guestbook/bot_settings/?base_bot=<?=$id?>&<?=TOKEN_URL?>'><?=lg('Отмена')?></a>
    </form>
    </div>
    <?
    
    back('/m/guestbook/bot_settings/?base_bot='.$id.'&'.TOKEN_URL);
    acms_footer();
    
  }
  
  /*
  -----------
  Список слов
  -----------
  */
  
  $column = db::get_column("SELECT COUNT(*) FROM `GUESTBOOK_BOTS` WHERE `BOT_ID` = ?", [$id]);
  $spage = spage($column, PAGE_SETTINGS);
  $page = page($spage);
  $limit = PAGE_SETTINGS * $page - PAGE_SETTINGS;
  
  ?>
  <div class='list-body'>
  <div class='list-menu'>
  <?=lg('База слов бота')?> <?=user::login($id, 0, 1)?>
  </div>
  <div class='list-menu'>
  <a href='/m/guestbook/bot_settings/?base_bot=<?=$id?>&<?=TOKEN_URL?>&get=add_b' class='btn'><?=icons('plus', 15, 'fa-fw')?> <?=lg('Добавить слова')?></a>
  </div>
  </div>
  <?
  
  if ($column == 0){ 
    
    html::empty('Пока нет слов', 'commenting');
  
  }else{
    
    ?><div class='list-body'><?
    
  }
  
  $data = db::get_string_all("SELECT * FROM `GUESTBOOK_BOTS` WHERE `BOT_ID` = ? ORDER BY `ID` DESC LIMIT ".$limit.", ".PAGE_SETTINGS, [$id]);
  while ($list = $data->fetch()) {
    
    ?>
    <div class='list-menu'>
    <?=icons('commenting', 19, 'fa-fw')?> <b><?=lg('Слово/фраза')?>:</b> <?=tabs($list['MESSAGE'])?><br />
    <?php if (str($list['REPLY']) > 0) : ?>
    <?=icons('comment', 19, 'fa-fw')?> <b><?=lg('Будет отвечать на')?>:</b> <?=tabs($list['REPLY'])?><br />
    <?php else : ?>
    <?=icons('clock-o', 19, 'fa-fw')?> <b><?=lg('Интервал')?>:</b> <?=lg('каждые')?> <?=$list['SEC']?> <?=lg('секунд')?><br />
    <?php endif ?>
    <br />
    <a href='/m/guestbook/bot_settings/?base_bot=<?=$id?>&<?=TOKEN_URL?>&edit_b=<?=$list['ID']?>' class='btn'><?=icons('pencil', 15, 'fa-fw')?> <?=lg('Редактировать')?></a>
    <a href='/m/guestbook/bot_settings/?base_bot=<?=$id?>&<?=TOKEN_URL?>&delete_b=<?=$list['ID']?>' class='btn'><?=icons('times', 15, 'fa-fw')?> <?=lg('Удалить')?></a>
    </div>
    <?
    
  }
  
  if ($column > 0){ 
    
    ?></div><?
    
  }
  
  get_page('/m/guestbook/bot_settings/?base_bot='.$id.'&'.TOKEN_URL.'&', $spage, $page, 'list');
  
  back('/m/guestbook/bot_settings/');
  acms_footer();
  
}

/*
------------
Удалить бота
------------
*/

if (db::get_column("SELECT COUNT(*) FROM `USERS` WHERE `ID` = ? AND `BOT_GUESTBOOK` >= ? LIMIT 1", [intval(get('delete')), 1]) > 0){
  
  get_check_valid(); 
  
  if (get('get') == 'delete_ok'){
    
    db::get_set("UPDATE `USERS` SET `BOT_GUESTBOOK` = ? WHERE `ID` = ? LIMIT 1", [0, intval(get('delete'))]);
    db::get_set("DELETE FROM `GUESTBOOK_BOTS` WHERE `BOT_ID` = ?", [intval(get('delete'))]);
    
    success('Пользователь убран из списка ботов');
    redirect('/m/guestbook/bot_settings/');
    
  }  
  
  ?>
  <div class='list'>
  <?=lg('Вы действительно хотите убрать пользователя')?> <?=user::login(intval(get('delete')), 0, 1)?> <?=lg('из списка ботов')?>? <?=lg('Это приведет к удалению его базы слов')?><br /><br />
  <a href='/m/guestbook/bot_settings/?delete=<?=intval(get('delete'))?>&get=delete_ok&<?=TOKEN_URL?>' class='button'><?=icons('trash', 17, 'fa-fw')?> <?=lg('Удалить')?></a>
  <a href='/m/guestbook/bot_settings/' class='button-o'><?=lg('Отмена')?></a>
  </div>
  <?
    
  back('/m/guestbook/bot_settings/');
  acms_footer();
  
}

/*
-----------------
Активировать бота
-----------------
*/

if (db::get_column("SELECT COUNT(*) FROM `USERS` WHERE `ID` = ? AND `BOT_GUESTBOOK` = ? LIMIT 1", [intval(get('active')), 2]) > 0){
  
  get_check_valid();  
  db::get_set("UPDATE `USERS` SET `BOT_GUESTBOOK` = ? WHERE `ID` = ? LIMIT 1", [1, intval(get('active'))]);
  
  success('Бот успешно активирован');
  redirect('/m/guestbook/bot_settings/');
  
}

/*
-------------------
Деактивировать бота
-------------------
*/

if (db::get_column("SELECT COUNT(*) FROM `USERS` WHERE `ID` = ? AND `BOT_GUESTBOOK` = ? LIMIT 1", [intval(get('deactive')), 1]) > 0){
  
  get_check_valid();  
  db::get_set("UPDATE `USERS` SET `BOT_GUESTBOOK` = ? WHERE `ID` = ? LIMIT 1", [2, intval(get('deactive'))]);
  
  success('Бот успешно деактивирован');
  redirect('/m/guestbook/bot_settings/');
  
}

/*
--------------------
Отображать в онлайне
--------------------
*/

if (db::get_column("SELECT COUNT(*) FROM `USERS` WHERE `ID` = ? AND `BOT_GUESTBOOK` >= ? AND `BOT_GUESTBOOK_ONLINE` = ? LIMIT 1", [intval(get('online_on')), 1, 0]) > 0){
  
  get_check_valid();  
  db::get_set("UPDATE `USERS` SET `BOT_GUESTBOOK_ONLINE` = ? WHERE `ID` = ? LIMIT 1", [1, intval(get('online_on'))]);
  
  success('Теперь пользователь будет выходить в онлайн при сообщениях в гостевой');
  redirect('/m/guestbook/bot_settings/');
  
}

/*
-----------------------
Не отображать в онлайне
-----------------------
*/

if (db::get_column("SELECT COUNT(*) FROM `USERS` WHERE `ID` = ? AND `BOT_GUESTBOOK` >= ? AND `BOT_GUESTBOOK_ONLINE` = ? LIMIT 1", [intval(get('online_off')), 1, 1]) > 0){
  
  get_check_valid();  
  db::get_set("UPDATE `USERS` SET `BOT_GUESTBOOK_ONLINE` = ? WHERE `ID` = ? LIMIT 1", [0, intval(get('online_off'))]);
  
  success('Теперь пользователь не будет выходить в онлайн при сообщениях в гостевой');
  redirect('/m/guestbook/bot_settings/');
  
}

/*
---------------
Добавление бота
---------------
*/

if (get('get') == 'add') {
  
  if (post('ok')) {
    
    $id = intval(post('id'));
    
    if (db::get_column("SELECT COUNT(*) FROM `USERS` WHERE `ID` = ? AND `BOT_GUESTBOOK` >= ? LIMIT 1", [$id, 1]) > 0){
      
      error('Такой бот уже существует');
      redirect('/m/guestbook/bot_settings/?get=add');
    
    }
    
    if (db::get_column("SELECT COUNT(*) FROM `USERS` WHERE `ID` = ? LIMIT 1", [$id]) == 0){
      
      error('Пользователь не найден');
      redirect('/m/guestbook/bot_settings/?get=add');
    
    }
    
    db::get_set("UPDATE `USERS` SET `BOT_GUESTBOOK` = ? WHERE `ID` = ? LIMIT 1", [1, $id]);
    
    success('Бот успешно добавлен');
    redirect('/m/guestbook/bot_settings/');
    
  }
  
  ?>
  <div class='list'>
  <form method='post' class='ajax-form' action='/m/guestbook/bot_settings/?get=add'>
  <?=html::input('id', 'ID пользователя', null, null, null, 'form-control-50')?>
  <?=html::button('button ajax-button', 'ok', 'plus', 'Добавить')?>
  <a class='button-o' href='/m/guestbook/bot_settings/'><?=lg('Отмена')?></a>
  </form>
  </div>
  <?
  
  back('/m/guestbook/bot_settings/');
  acms_footer();
  
}

?>
<div class='list'>
<a href='/m/guestbook/bot_settings/?get=add' class='btn'><?=icons('plus', 15, 'fa-fw')?> <?=lg('Добавить бота')?></a>
</div>
<?
  
$column = db::get_column("SELECT COUNT(*) FROM `USERS` WHERE `BOT_GUESTBOOK` >= ?", [1]);
$spage = spage($column, PAGE_SETTINGS);
$page = page($spage);
$limit = PAGE_SETTINGS * $page - PAGE_SETTINGS;

if ($column == 0){ 
  
  html::empty('Пока нет ботов', 'gears');
  
}else{
  
  ?><div class='list-body'><?
  
}

$data = db::get_string_all("SELECT `ID`,`BOT_GUESTBOOK_ONLINE`,`BOT_GUESTBOOK` FROM `USERS` WHERE `BOT_GUESTBOOK` >= ? ORDER BY `ID` DESC LIMIT ".$limit.", ".PAGE_SETTINGS, [1]);
while ($list = $data->fetch()) {
  
  ?>
  <div class='list-menu'>
  <?=icons('gear', 19, 'fa-fw')?> <?=user::login($list['ID'], 0, 1)?><br /><br />
  <a href='/m/guestbook/bot_settings/?base_bot=<?=$list['ID']?>&<?=TOKEN_URL?>' class='btn'><?=icons('commenting', 15, 'fa-fw')?> <?=lg('База слов')?></a>
  <?php if ($list['BOT_GUESTBOOK'] == 1) : ?>  
  <a href='/m/guestbook/bot_settings/?deactive=<?=$list['ID']?>&<?=TOKEN_URL?>' class='btn'><?=icons('lock', 15, 'fa-fw')?> <?=lg('Деактивировать')?></a>
  <?php else : ?>
  <a href='/m/guestbook/bot_settings/?active=<?=$list['ID']?>&<?=TOKEN_URL?>' class='btn'><?=icons('unlock', 15, 'fa-fw')?> <?=lg('Активировать')?></a>
  <?php endif ?>
  <a href='/m/guestbook/bot_settings/?delete=<?=$list['ID']?>&<?=TOKEN_URL?>' class='btn'><?=icons('trash', 15, 'fa-fw')?> <?=lg('Удалить бота')?></a>
  <?php if ($list['BOT_GUESTBOOK_ONLINE'] == 0) : ?>
  <a href='/m/guestbook/bot_settings/?online_on=<?=$list['ID']?>&<?=TOKEN_URL?>' class='btn'><?=icons('check', 15, 'fa-fw')?> <?=lg('Отображать в онлайне')?></a>
  <?php else : ?>
  <a href='/m/guestbook/bot_settings/?online_off=<?=$list['ID']?>&<?=TOKEN_URL?>' class='btn'><?=icons('times', 15, 'fa-fw')?> <?=lg('Не отображать в онлайне')?></a>
  <?php endif ?>
  </div>
  <?
  
}

if ($column > 0){ 
  
  ?></div><?
  
}

get_page('/m/guestbook/bot_settings/?', $spage, $page, 'list');

back('/m/guestbook/');
acms_footer();