Code: Selecteer alles
<?php
/**
*
* @author Pico
* @package - mChat Bot
* @version $Id: acp_mchat_bot.php, v 1.0.1 09/12/2011 Pico Exp $
* @copyright (c) 2011 Pico ( http://www.modsteam.tk )
* @license http://opensource.org/licenses/gpl-license.php GNU Public License 
*
*/
/**
* @ignore
*/
if (!defined('IN_PHPBB'))
{
	exit;
}
/**
* @package acp
*/
class acp_mchat_bot
{
	var $u_action;
	function main($id, $mode)
	{
		global $cache, $config, $db, $user, $auth, $template;
		global $phpbb_root_path, $phpEx, $phpbb_admin_path;
		add_form_key('acp_mchat_bot');
		$submit = (isset($_POST['submit'])) ? true : false;
		$action = request_var('action', '');
		$id = request_var('id', 0);
		$cat_id = request_var('cat_id', 0);
		$mchat_bot_id = request_var('mchat_bot_id', '');
		
		$error = array();
		
		$this->tpl_name = 'acp_mchat_bot';
		
		switch ($mode)
		{
			case 'settings':
				$this->page_title = $user->lang['MCHAT_BOT_TITLE'];
				
				$sql = 'SELECT * FROM ' . MCHAT_CONFIG_TABLE;
				$result = $db->sql_query($sql);
				$mchat_config = array();
				while ($row = $db->sql_fetchrow($result))	
				{
					$mchat_config[$row['config_name']] = $row['config_value'];
				}
				$db->sql_freeresult($result);
				
                $sql = 'SELECT user_id, username, user_colour
                   FROM ' . USERS_TABLE . '
                   WHERE user_id = '. $mchat_config['bot_id'];
                $result = $db->sql_query($sql);
                $user_row = $db->sql_fetchrow($result);
				if ($user_row['user_id'] != $mchat_config['bot_id'])
				{
					include_once($phpbb_root_path . 'includes/functions_user.' . $phpEx);
					$sql = 'SELECT group_id, group_colour
						FROM ' . GROUPS_TABLE . "
						WHERE group_name = 'BOTS'
							AND group_type = " . GROUP_SPECIAL;
					$result = $db->sql_query($sql);
					$group_row = $db->sql_fetchrow($result);
					$db->sql_freeresult($result);
					$mchat_bot_name = $user->lang['MCHAT_BOT_TITLE'];
					$mchat_bot_id = user_add(array(
						'user_type'				=> (int) USER_IGNORE,
						'group_id'				=> (int) $group_row['group_id'],
						'username'				=> (string) $mchat_bot_name,
						'user_regdate'			=> time(),
						'user_password'			=> '',
						'user_email'			=> '',
						'user_lang'				=> (string) $config['default_lang'],
						'user_style'			=> (int) $config['default_style'],
						'user_allow_massemail'	=> 0,
					));
								
					$sql = 'UPDATE ' . MCHAT_CONFIG_TABLE . "
						SET config_value = '" . $db->sql_escape($mchat_bot_id) . "'
						WHERE config_name = '" . $db->sql_escape('bot_id') . "'";
					$db->sql_query($sql);
					$cache->destroy('_mchat_config');
				
					if (!function_exists('mchat_cache'))
					{
						include($phpbb_root_path . 'includes/functions_mchat.' . $phpEx);
					}
					mchat_cache();
	
					trigger_error($user->lang['MCHAT_BOT_CREATED'] . adm_back_link($this->u_action));
				}
				
				$mchat_bot_row = array(
					'mchat_bot_name'	=> utf8_normalize_nfc(request_var('mchat_bot_name', '', true)),
					'mchat_bot_colour'	=> request_var('mchat_bot_colour', ''),
				);
						
				switch ($action)
				{
					case 'edit_bot' :
						include_once($phpbb_root_path . 'includes/functions_user.' . $phpEx);
						
						if (!$mchat_bot_id)
						{
							trigger_error('NO_MCHAT_BOT');
						}
						$sql = 'SELECT username, user_colour FROM ' . USERS_TABLE . ' WHERE user_id = ' . $mchat_config['bot_id'];
						$result = $db->sql_query($sql);
						$mchat_bot_data = $db->sql_fetchrow($result);
						
						if (!$mchat_bot_data)
						{
                            trigger_error('NO_MCHAT_BOT');
						}
						
						if (!$submit)
						{	
							$mchat_bot_row['mchat_bot_name'] = $mchat_bot_data['username'];
							$mchat_bot_row['mchat_bot_colour'] = $mchat_bot_data['user_colour'];
						}
						
						if ($submit)
						{
							$check_ary = array(
								'mchat_bot_name'			=> array(
									array('string', false, $config['min_name_chars'], $config['max_name_chars']),
									array('username', $user_row['username'])
								),
							);
							
							$error = validate_data($mchat_bot_row, $check_ary);
							if (!check_form_key('acp_mchat_bot'))
							{
								$error[] = 'FORM_INVALID';
							}
							
							// Replace "error" strings with their real, localised form
							$error = preg_replace('#^([A-Z_]+)$#e', "(!empty(\$user->lang['\\1'])) ? \$user->lang['\\1'] : '\\1'", $error);
							
							if (!sizeof($error))
							{						
								$mchat_bot_colour = !empty($mchat_bot_row['mchat_bot_colour']) ? $mchat_bot_row['mchat_bot_colour'] : $group_row['group_colour'];
								
								$sql_ary = array(
									'username'			=> (string) $mchat_bot_row['mchat_bot_name'],
									'username_clean'	=> (string) utf8_clean_string($mchat_bot_row['mchat_bot_name']),
									'user_colour'		=> (string) $mchat_bot_colour,
								);
								$sql = 'UPDATE ' . USERS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . " WHERE user_id = '" . $mchat_config['bot_id'] . "'";
								$db->sql_query($sql);
								
								trigger_error($user->lang['MCHAT_BOT_UPDATED'] . adm_back_link($this->u_action));
							}
						}
						
						$template->assign_vars(array(
							'MCHAT_BOT_ERROR'		=> isset($error) ? ((sizeof($error)) ? implode('<br />', $error) : '') : '',
							'U_BOT_ACTION'			=> $this->u_action . '&action=edit_bot&mchat_bot_id=' . $mchat_bot_id,
							'U_SWATCH'				=> append_sid("{$phpbb_admin_path}swatch.$phpEx", 'form=acp_mchat_bot&name=mchat_bot_colour'),
							'U_AVATAR'				=> $this->u_action . '&i=users&mode=avatar&u=' . $mchat_bot_id,
					
							'MCHAT_BOT_NAME'		=> $mchat_bot_row['mchat_bot_name'],
							'MCHAT_BOT_COLOUR'		=> $mchat_bot_row['mchat_bot_colour'],
					
							'S_EDIT_MCHAT_BOT'		=> true,
						));
						return;						
					break;
					default :
						$mchat_row = array(
							'bot_enable'		=> request_var('mchat_bot_enable', 0),
							'bot_warning'		=> request_var('mchat_bot_warning', 0),
							'bot_warns'			=> request_var('mchat_bot_warns', ''),
							'bot_welcome_id'	=> request_var('cat_id', 0),
						);		
						$sql = 'SELECT username, user_colour
								FROM ' . USERS_TABLE . '
								WHERE user_id = '. $mchat_config['bot_id'];
						$result = $db->sql_query($sql);
						$user_row = $db->sql_fetchrow($result);
							
						if ($submit)
						{
							if (!function_exists('validate_data'))
							{
								include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
							}
							
							// validate the entries...most of them anyway
							$mchat_array = array(
								'bot_warns'	=> array('num', false, 1, 100),
							);	
							
							$error = validate_data($mchat_row, $mchat_array);
							if (!check_form_key('acp_mchat_bot'))
							{
								$error[] = 'FORM_INVALID';
							}
							
							// Replace "error" strings with their real, localised form
							$error = preg_replace('#^([A-Z_]+)$#e', "(!empty(\$user->lang['\\1'])) ? \$user->lang['\\1'] : '\\1'", $error);
			
							if (!sizeof($error))
							{
								foreach ($mchat_row as $config_name => $config_value)
								{
									$sql = 'UPDATE ' . MCHAT_CONFIG_TABLE . "
										SET config_value = '" . $db->sql_escape($config_value) . "'
										WHERE config_name = '" . $db->sql_escape($config_name) . "'";
									$db->sql_query($sql);
								}
				
								set_config('mchat_bot_welcome', request_var('mchat_bot_welcome', 0));
								
								$cache->destroy('_mchat_config');
				
								if (!function_exists('mchat_cache'))
								{
									include($phpbb_root_path . 'includes/functions_mchat.' . $phpEx);
								}
								mchat_cache();
							
								trigger_error($user->lang['MCHAT_CONFIG_SAVED'] . adm_back_link($this->u_action));
							}
						}
		
						$mchat_bot_welcome = isset($config['mchat_bot_welcome']) ? $config['mchat_bot_welcome'] : 0;
						
						$template->assign_vars(array(
							'MCHAT_BOT_ERROR'		=> isset($error) ? ((sizeof($error)) ? implode('<br />', $error) : '') : '',
							'MCHAT_BOT_ENABLE'		=> !empty($mchat_row['bot_enable']) ? $mchat_row['bot_enable'] : $mchat_config['bot_enable'],
							'MCHAT_BOT_WARNING'		=> !empty($mchat_row['bot_warning']) ? $mchat_row['bot_warning'] : $mchat_config['bot_warning'],
							'MCHAT_BOT_WARNS'		=> !empty($mchat_row['bot_warns']) ? $mchat_row['bot_warns'] : $mchat_config['bot_warns'],
							'MCHAT_BOT_WELCOME'		=> ($mchat_bot_welcome) ? true : false,
							'CAT_SELECT' 			=> generate_cat_select($mchat_config['bot_welcome_id']),
							'MCHAT_BOT'				=> get_username_string('username', $mchat_config['bot_id'], $user_row['username'], $user_row['user_colour']),
							'MCHAT_BOT_COLOUR'		=> get_username_string('colour', $mchat_config['bot_id'], $user_row['username'], $user_row['user_colour']),
							'U_EDIT_BOT'			=> append_sid($this->u_action . '&action=edit_bot&mchat_bot_id=' . $mchat_config['bot_id']),
							'U_ACTION'				=> $this->u_action,
							
							'S_MCHAT_BOT_CONFIG'	=> true)
						);
					break;
				}
			break;
			
			case 'text' :
				$this->page_title = $user->lang['MCHAT_BOT_TEXT_TITLE'];
				$bot_data = array(
					'user_text'		=> utf8_normalize_nfc(request_var('user_text', '', true)),
					'bot_text'		=> utf8_normalize_nfc(request_var('bot_text', '', true)),
					'pos'			=> request_var('pos', '1'),
				);
				
				switch ($action)
				{
					case 'edit' :
						if (!$id)
						{
							trigger_error('NO_BOT_DATA');
						}
						$sql = 'SELECT * FROM ' . MCHAT_BOT_TABLE . ' WHERE id = ' . $id;
						$result = $db->sql_query($sql);
						$text = $db->sql_fetchrow($result);
						
						if (!$text)
						{
                            trigger_error('NO_BOT_DATA');
						}
						
						if (!$submit)
						{
							if (strstr($text['bot_text'], 'randtxt_'))
							{
								$cat_id = intval(substr($text['bot_text'], 8));
								$text['bot_text'] = '';
							}
							
							$bot_data = $text;
						}
					case 'add' :
						$template->assign_vars(array(
							'USER_TEXT'			=> $bot_data['user_text'],
							'BOT_TEXT'			=> $bot_data['bot_text'],
							'CAT_SELECT' 		=> generate_cat_select($cat_id),
							'S_ADD'				=> ($action == 'add') ? true : false,
							'U_TEXT_ACTION'		=> $this->u_action . '&action=' . $action . (($action == 'edit') ? '&id=' . $id : ''),
						));
						if ($submit)
						{
							if ($cat_id)
							{
								$bot_data['bot_text'] = 'randtxt_' . $cat_id;
							}
							
							if ($action == 'add')
							{
								$sql = 'SELECT pos AS pos FROM ' . MCHAT_BOT_TABLE . '
									ORDER BY pos DESC';
								$result = $db->sql_query_limit($sql, 1);
								$pos = (int) $db->sql_fetchfield('pos');
								$db->sql_freeresult($result);
								$bot_data['pos'] = $pos + 1;
								
								$sql = 'INSERT ' . MCHAT_BOT_TABLE . ' ' . $db->sql_build_array('INSERT', $bot_data);
								$db->sql_query($sql);
								$cache->destroy('_mchat_bot_text');
								trigger_error($user->lang['BOT_DATA_ADD_SUCCESS'] . adm_back_link($this->u_action));
							}
							else
							{
								$sql = 'SELECT pos AS pos FROM ' . MCHAT_BOT_TABLE . '
									WHERE id = ' . $id;
								$result = $db->sql_query_limit($sql, 1);
								$pos = (int) $db->sql_fetchfield('pos');
								$db->sql_freeresult($result);
								$bot_data['pos'] = $pos;
								
								$sql = 'UPDATE ' . MCHAT_BOT_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $bot_data) . " WHERE id = '" . $id . "'";
								$db->sql_query($sql);
								$cache->destroy('_mchat_bot_text');
								trigger_error($user->lang['BOT_DATA_EDIT_SUCCESS'] . adm_back_link($this->u_action));
							}
						}
					break;
					case 'delete' :
						if (!$id)
						{
							trigger_error('NO_BOT_DATA');
						}
						$sql = 'SELECT * FROM ' . MCHAT_BOT_TABLE . ' WHERE id = ' . $id;
						$result = $db->sql_query($sql);
						$text = $db->sql_fetchrow($result);
						if (!$text)
						{
                            trigger_error('NO_BOT_DATA');
						}
						if (confirm_box(true))
						{
							$sql = 'DELETE FROM ' . MCHAT_BOT_TABLE . " WHERE id = '" . $id . "'";
							$db->sql_query($sql);
							$cache->destroy('_mchat_bot_text');
							trigger_error($user->lang['BOT_DATA_DELETE_SUCCESS'] . adm_back_link($this->u_action));
						}
						else
						{
							confirm_box(false, $user->lang['DELETE_BOT_DATA']);
						}
					break;
					
					case 'move_up' :
					case 'move_down' :
						$sql = 'SELECT * FROM ' . MCHAT_BOT_TABLE . ' WHERE id = ' . $id;
						$result = $db->sql_query($sql);
						$row = $db->sql_fetchrow($result);
						$size = sizeof($row);
				
						move_text($action, $size, $row['pos'], $row['id']);
						
						$cache->destroy('_mchat_bot_text');
						
						redirect($this->u_action);
					break;
					
					default :
						$sql = 'SELECT * FROM ' . MCHAT_BOT_RANDTXT_CAT_TABLE . '
							ORDER BY cat_id';
						$result = $db->sql_query($sql);
						
						$randtxt_cats = array();
						
						while ($row = $db->sql_fetchrow($result))
						{
							$randtxt_cats[$row['cat_id']] = $row['cat_desc'];
						}
						$db->sql_freeresult($result);
				
						$sql = 'SELECT * FROM ' . MCHAT_BOT_TABLE . '
							ORDER BY pos ASC';
						$result = $db->sql_query($sql);
						while ($row = $db->sql_fetchrow($result))
						{
							$bot_text = $row['bot_text'];
							if( strstr($bot_text, 'randtxt_') )
							{
								$cat_id = intval(substr($bot_text, 8));
								$bot_text = !empty($randtxt_cats[$cat_id]) ? '<i>' . $user->lang['BOT_RANDTEXT'] . ': "' . $randtxt_cats[$cat_id] . '"</i>' : '<i>' . $user->lang['NO_CATEGORY'] . '</i>';
							}
							
							$template->assign_block_vars('bot_text', array(
								'USER_TEXT'		=> $row['user_text'],
								'BOT_TEXT'		=> $bot_text,
								'U_DELETE'		=> append_sid($this->u_action . '&action=delete&id=' . $row['id']),
								'U_EDIT'		=> append_sid($this->u_action . '&action=edit&id=' . $row['id']),
								'U_MOVE_DOWN'	=> $this->u_action . '&action=move_down&id=' . $row['id'],
								'U_MOVE_UP'		=> $this->u_action . '&action=move_up&id=' . $row['id'],
							));
						}
						$db->sql_freeresult($result);
						$template->assign_var('S_BOT_TEXT_LIST', true);
					break;
				}
				$template->assign_vars(array(
					'S_BOT_TEXT'		=> true,
				));
			break;
			
			case 'random_text' :
				
				$this->page_title = $user->lang['MCHAT_BOT_RANDTXT_TITLE'];
				$cat_data = utf8_normalize_nfc(request_var('cat_desc', '', true));
				$rand_data = utf8_normalize_nfc(request_var('rand_text', '', true));
				$rand_id = request_var('rand_id', 0);
				switch ($action)
				{
					case 'edit_cat' :
						if (!$cat_id)
						{
							trigger_error('NO_CATEGORY');
						}
						$sql = 'SELECT * FROM ' . MCHAT_BOT_RANDTXT_CAT_TABLE . ' WHERE cat_id = ' . $cat_id;
						$result = $db->sql_query($sql);
						$cat = $db->sql_fetchrow($result);
						
						if (!$cat)
						{
                            trigger_error('NO_CAT_DATA');
						}
						if (!$submit)
						{
							$cat_data = $cat['cat_desc'];
						}
					case 'add_cat' :
						$template->assign_vars(array(
							'CAT_DESC'			=> $cat_data,
							'S_ADD'				=> ($action == 'add_cat') ? true : false,
							'U_CAT_ACTION'		=> $this->u_action . '&action=' . $action . (($action == 'edit_cat') ? '&cat_id=' . $cat_id : ''),
							'S_CATEGORY_EDIT'	=> true,
						));
						if ($submit)
						{
							if ($action == 'add_cat')
							{
								$sql = 'INSERT INTO ' . MCHAT_BOT_RANDTXT_CAT_TABLE . ' ' . $db->sql_build_array('INSERT', array('cat_desc' => $cat_data));
								$db->sql_query($sql);
								trigger_error($user->lang['CAT_ADD_SUCCESS'] . adm_back_link($this->u_action));
							}
							else
							{
								$sql = 'UPDATE ' . MCHAT_BOT_RANDTXT_CAT_TABLE . ' SET ' . $db->sql_build_array('UPDATE', array('cat_desc' => $cat_data)) . " WHERE cat_id = '" . $cat_id . "'";
								$db->sql_query($sql);
								trigger_error($user->lang['CAT_EDIT_SUCCESS'] . adm_back_link($this->u_action));
							}
						}
					break;
					case 'delete_cat' :
						if (!$cat_id)
						{
							trigger_error('NO_CAT_DATA');
						}
						$sql = 'SELECT * FROM ' . MCHAT_BOT_RANDTXT_CAT_TABLE . ' WHERE cat_id = ' . $cat_id;
						$result = $db->sql_query($sql);
						$category = $db->sql_fetchrow($result);
						
						if (!$category)
						{
                            trigger_error('NO_CAT_DATA');
						}
						if (confirm_box(true))
						{
							$sql = 'DELETE FROM ' . MCHAT_BOT_RANDTXT_CAT_TABLE . ' WHERE cat_id = ' . $cat_id;
							$db->sql_query($sql);
							$sql = 'DELETE FROM ' . MCHAT_BOT_RANDTXT_TABLE . ' WHERE cat_id = ' . $cat_id;
							$db->sql_query($sql);
							$cache->destroy('_mchat_bot_randtxt');
							trigger_error($user->lang['CAT_DELETE_SUCCESS'] . adm_back_link($this->u_action));
						}
						else
						{
							confirm_box(false, $user->lang['DELETE_CATEGORY']);
						}
					break;
					
					case 'edit_randtxt' :
						if (!$rand_id)
						{
							trigger_error('NO_BOT_DATA');
						}
						$sql = 'SELECT * FROM ' . MCHAT_BOT_RANDTXT_TABLE . ' WHERE rand_id = ' . $rand_id;
						$result = $db->sql_query($sql);
						$rand = $db->sql_fetchrow($result);
						
						if (!$rand)
						{
                            trigger_error('NO_BOT_DATA');
						}
						if (!$submit)
						{
							$cat_id = $rand['cat_id'];
							$rand_data = $rand['rand_text'];
						}
					case 'add_randtxt' :
						$template->assign_vars(array(
							'RAND_TEXT'			=> $rand_data,
							'S_ADD'				=> ($action == 'add_randtxt') ? true : false,
							'CAT_SELECT' 		=> generate_cat_select($cat_id),
							'U_RANDTXT_ACTION'	=> $this->u_action . '&action=' . $action . (($action == 'edit_randtxt') ? '&rand_id=' . $rand_id : ''),
							'S_RANDTXT_EDIT'	=> true,
						));
						if ($submit)
						{
							if ($action == 'add_randtxt')
							{
								$sql = 'INSERT INTO ' . MCHAT_BOT_RANDTXT_TABLE . ' ' . $db->sql_build_array('INSERT', array('cat_id' => $cat_id, 'rand_text' => $rand_data));
								$db->sql_query($sql);
								$cache->destroy('_mchat_bot_randtxt');
								trigger_error($user->lang['RANDTXT_ADD_SUCCESS'] . adm_back_link($this->u_action));
							}
							else
							{
								$sql = 'UPDATE ' . MCHAT_BOT_RANDTXT_TABLE . ' SET ' . $db->sql_build_array('UPDATE', array('cat_id' => $cat_id, 'rand_text' => $rand_data)) . " WHERE rand_id = '" . $rand_id . "'";
								$db->sql_query($sql);
								$cache->destroy('_mchat_bot_randtxt');
								trigger_error($user->lang['RANDTXT_EDIT_SUCCESS'] . adm_back_link($this->u_action));
							}
						}
					break;
					case 'delete_randtxt' :
						if (!$rand_id)
						{
							trigger_error('NO_BOT_DATA');
						}
						$sql = 'SELECT * FROM ' . MCHAT_BOT_RANDTXT_TABLE . ' WHERE rand_id = ' . $rand_id;
						$result = $db->sql_query($sql);
						$category = $db->sql_fetchrow($result);
						
						if (!$rand_id)
						{
                            trigger_error('NO_BOT_DATA');
						}
						if (confirm_box(true))
						{
							$sql = 'DELETE FROM ' . MCHAT_BOT_RANDTXT_TABLE . ' WHERE rand_id = ' . $rand_id;
							$db->sql_query($sql);
							$cache->destroy('_mchat_bot_randtxt');
							trigger_error($user->lang['RANDTXT_DELETE_SUCCESS'] . adm_back_link($this->u_action));
						}
						else
						{
							confirm_box(false, $user->lang['DELETE_RANDTXT']);
						}
					break;
					default :
						$sql = 'SELECT * FROM ' . MCHAT_BOT_RANDTXT_TABLE  . '
							ORDER BY cat_id, rand_id';
						$result = $db->sql_query($sql);
		
						$randtxts = array();
		
						while ($row = $db->sql_fetchrow($result))
						{
							$randtxts[$row['cat_id']][] = array(
								'rand_id' => $row['rand_id'],
								'rand_text' => $row['rand_text']
							);
						}
						$db->sql_freeresult($result);
	
						$sql = 'SELECT * FROM ' . MCHAT_BOT_RANDTXT_CAT_TABLE . '
							ORDER BY cat_id';
						$result = $db->sql_query($sql);
						
						while ($row = $db->sql_fetchrow($result))
						{
							$cat_id = $row['cat_id'];
							$num_cat_texts = !empty($randtxts[$cat_id]) ? sizeof($randtxts[$cat_id]) : 0;
							
							$template->assign_block_vars('randtxt_cat', array(
								'CAT_ID' 		=> $cat_id,
								'CAT_DESC' 		=> $row['cat_desc'],
								'NUM_CAT_TEXTS' => $num_cat_texts,
								'U_CAT_EDIT' 	=> append_sid($this->u_action . '&action=edit_cat&cat_id=' . $cat_id),
								'U_CAT_DELETE'	=> append_sid($this->u_action . '&action=delete_cat&cat_id=' . $cat_id),
								'U_RANDTXT_ADD' => append_sid($this->u_action . '&action=add_randtxt&cat_id=' . $cat_id),
							));
							for ($i = 0; $i < $num_cat_texts; $i++)
							{
								$rand_id = $randtxts[$cat_id][$i]['rand_id'];
								$rand_text = $randtxts[$cat_id][$i]['rand_text'];
				
								$template->assign_block_vars('randtxt_cat.randtxt_word', array(
									'RAND_TEXT' => $rand_text,
					
									'U_RANDTXT_EDIT' => append_sid($this->u_action . '&action=edit_randtxt&rand_id=' . $rand_id),
									'U_RANDTXT_DELETE' => append_sid($this->u_action . '&action=delete_randtxt&rand_id=' . $rand_id),
								));
							}
						}
						
						$template->assign_var('S_RANDTXT_LIST', true);
					break;
				}
				$template->assign_vars(array(
					'S_RANDTXT'		=> true,
				));
			
			break;
		}
	}
}
function generate_cat_select($cat_selected = 0)
{
	global $db, $user;
	
	$sql = 'SELECT * FROM ' . MCHAT_BOT_RANDTXT_CAT_TABLE . '
		ORDER BY cat_id';
	$result = $db->sql_query($sql);
	
	$cat_select = '<select name="cat_id"><option value="0">' . $user->lang['SELECT_CATEGORY'] . '</option>';
	
	while( $row = $db->sql_fetchrow($result) )
	{
		if( $cat_selected != 0 && $cat_selected == $row['cat_id'] )
		{
			$selected = ' selected="selected"';
		}
		else
		{
			$selected = '';
		}
		
		$cat_select .= '<option value="' . $row['cat_id'] . '"' . $selected . '>' . $row['cat_desc'] . '</option>';
	}
	
	$cat_select .= '</select>';
	
	$db->sql_freeresult($result);
	
	return $cat_select;
}
function move_text($mode = 'move_up', $size, $pos, $id)
{
	global $db;
	
	if(($pos == 1 && $mode == 'move_up') || ($pos == $size && $mode == 'move_down'))
	{
		return;
	}
	
	if($mode == 'move_down')
	{
		$new_pos = $pos + 1;
	}
	elseif ($mode == 'move_up')
	{
		$new_pos = $pos - 1;
	}
	
	$sql = 'SELECT id as id FROM ' . MCHAT_BOT_TABLE . ' 
		WHERE pos = ' . (int) $new_pos;
	$result = $db->sql_query($sql);
	$id_pos = $db->sql_fetchfield('id');
	$db->sql_freeresult($result);
	
	$sql = 'UPDATE ' . MCHAT_BOT_TABLE . '
			SET pos = ' . (int) $pos . "
			WHERE id = '" . $db->sql_escape($id_pos) . "'";
	$result = $db->sql_query($sql);
	$db->sql_freeresult($result);
	$sql = 'UPDATE ' . MCHAT_BOT_TABLE . '
			SET pos = ' . (int) $new_pos . "
			WHERE id = '" . $db->sql_escape($id) . "'";
	$result = $db->sql_query($sql);
	$db->sql_freeresult($result);
}
?>