function send_feedback()
 {
     global $_CLASS, $_CORE_CONFIG;
     $_CLASS['core_template']->assign_array(array('SENT_FROM' => $this->data['NAME'], 'SENDER_NAME' => $this->data['NAME'], 'SENDER_EMAIL' => $this->data['EMAIL'], 'SENDER_IP' => $_CLASS['core_user']->ip, 'MESSAGE' => $this->data['MESSAGE']));
     $body = trim($_CLASS['core_template']->display('email/contact/index.txt', true));
     if ($this->preview) {
         $_CLASS['core_template']->assign('PREVIEW', modify_lines($body, '<br/>'));
         return;
     }
     require_once SITE_FILE_ROOT . 'includes/mailer.php';
     $mailer = new core_mailer();
     $mailer->to($_CORE_CONFIG['email']['site_mail'], $_CORE_CONFIG['global']['site_name']);
     $mailer->subject($_CLASS['core_user']->get_lang('SITE_FEEDBACK'));
     $mailer->message = $body;
     trigger_error($mailer->send() ? 'SEND_SUCCESSFULL' : $mailer->error);
 }
function get_variable($var_name, $type, $default = false, $var_type = 'string')
{
    $variable = null;
    $type = strtoupper($type);
    switch ($type) {
        case 'GET':
            $variable = isset($_GET[$var_name]) ? $_GET[$var_name] : $default;
            break;
        case 'POST':
            $variable = isset($_POST[$var_name]) ? $_POST[$var_name] : $default;
            break;
        case 'REQUEST':
            $variable = isset($_REQUEST[$var_name]) ? $_REQUEST[$var_name] : $default;
            break;
        case 'COOKIE':
            $variable = isset($_COOKIE[$var_name]) ? $_COOKIE[$var_name] : $default;
            break;
    }
    if (is_null($variable) || $variable === $default) {
        return $default;
    } else {
        switch ($var_type) {
            case 'int':
            case 'integer':
                return is_numeric($variable) ? (int) $variable : $default;
                break;
            case 'array':
                if (!is_array($variable)) {
                    return $default;
                }
                // need to add a function here to loop multi... arrays
                foreach ($variable as $key => $value) {
                    $variable[$key] = strip_slashes(trim(modify_lines(str_replace('\\xFF', ' ', $value), "\n")));
                }
                return $variable;
                break;
            case 'array:int':
            case 'array:integer':
                if (!is_array($variable)) {
                    return $default;
                }
                // need to add a function here to loop multi... arrays
                foreach ($variable as $key => $value) {
                    if (is_numeric($value)) {
                        $variable[$key] = (int) $value;
                    }
                }
                return $variable;
                break;
            default:
                return strip_slashes(trim(modify_lines(str_replace('\\xFF', ' ', $variable), "\n")));
                break;
        }
    }
}
    /*if ($row['user_avatar'] && $_CLASS['core_user']->optionget('viewavatars'))
    	{
    		$avatar_img = '';
    		
    		switch ($row['user_avatar_type'])
    		{
    			case AVATAR_UPLOAD:
    				$avatar_img = $config['avatar_path'] . '/';
    				break;
    			case AVATAR_GALLERY:
    				$avatar_img = $config['avatar_gallery_path'] . '/';
    				break;
    		}
    		
    		$avatar_img .= $row['user_avatar'];
    		$avatar = '<img src="' . $avatar_img . '" width="' . $row['user_avatar_width'] . '" height="' . $row['user_avatar_height'] . '" border="0" alt="" />';
    		
    	}*/
    if ($row['poster_id']) {
        $row['message'] = preg_replace('#\\[url=([^\\[]+?)\\](.*?)\\[/url\\]#s', '<a href="$1" target="_blank">$2</a>', $row['message_text']);
    }
    $_CLASS['core_template']->assign_vars_array('quick_message', array('USER_NAME' => $user_name, 'USER_LINK' => $userlink, 'DELETE_LINK' => $delete_link, 'MESSAGE' => modify_lines(htmlentities($row['message_text'], ENT_QUOTES, 'UTF-8'), '<br />'), 'TIME' => $_CLASS['core_user']->format_date($row['message_time']), 'POSTER_AVATAR' => $avatar, 'U_PROFILE' => $row['poster_id'] ? generate_link('Members_List&amp;mode=viewprofile&amp;u=' . $row['poster_id']) : false));
    $delete_link = '';
} while ($row = $_CLASS['core_db']->fetch_row_assoc($result));
$result = $_CLASS['core_db']->query('SELECT COUNT(*) AS total from ' . QUICK_MESSAGE_TABLE);
$row = $_CLASS['core_db']->fetch_row_assoc($result);
$_CLASS['core_db']->free_result($result);
$pagination = generate_pagination('Quick_Message', $row['total'], $limit, $start);
$_CLASS['core_template']->assign_array(array('Q_MESSAGE_PAGINATION' => $pagination['formated'], 'Q_MESSAGE_PAGINATION_ARRAY' => $pagination['array'], 'Q_PAGE_NUMBER' => on_page($row['total'], $limit, $start), 'Q_TOTAL_MESSAGES' => $row['total']));
$_CLASS['core_display']->display(false, 'modules/Quick_Message/index.html');
script_close();
 function send()
 {
     global $_CLASS, $_CORE_CONFIG;
     $to = $cc = $bcc = $reply_to = $from = false;
     foreach ($this->address_arrays as $type => $address) {
         if (empty($address)) {
             continue;
         }
         ${$type} = $this->format_address($address);
     }
     $_CORE_CONFIG['email']['site_mail'] = trim($_CORE_CONFIG['email']['site_mail']);
     if (!$from) {
         // modify_lines ?
         $from = '<' . $_CORE_CONFIG['email']['site_mail'] . '>';
     }
     $headers[] = "From: {$from}";
     $headers[] = 'Date: ' . gmdate('D, d M Y H:i:s T');
     if (!$_CORE_CONFIG['email']['smtp']) {
         if ($cc) {
             $headers[] = "Cc: {$cc}";
         }
         if ($bcc) {
             $headers[] = "Bcc: {$bcc}";
         }
     }
     if ($reply_to) {
         $headers[] = "Reply-to: {$reply_to}";
     }
     $headers[] = 'Return-Path: <' . $_CORE_CONFIG['email']['site_mail'] . ">";
     $headers[] = 'Sender: <' . $_CORE_CONFIG['email']['site_mail'] . ">";
     $headers[] = "MIME-Version: 1.0";
     $headers[] = 'Message-ID: <' . (function_exists('sha1') ? sha1(uniqid(mt_rand(), true)) : md5(uniqid(mt_rand(), true))) . "@" . $_CORE_CONFIG['global']['site_name'] . ">";
     if ($this->html) {
         // multipart
         $text_boundary = trim('--' . (function_exists('sha1') ? sha1(uniqid(mt_rand(), true)) : md5(uniqid(mt_rand(), true))));
         $headers[] = 'Content-Type: multipart/alternative;';
         $headers[] = "\tboundary=\"{$text_boundary}\"";
         $message .= 'This is a multi-part message in MIME format, Please use a MIME-compatible client';
         // Plain text
         $message .= "\n\n{$text_boundary}\n";
         $message .= 'Content-Type: text/plain; charset=' . $this->encoding . "\n";
         //format=
         $message .= "Content-Transfer-Encoding: 8bit\n\n";
         $message .= html_entity_decode(strip_tags(preg_replace('#<br */?>#i', "\n", modify_lines($this->message))), ENT_QUOTES);
         // HTML
         $message .= "\n\n{$text_boundary}\n";
         $message .= 'Content-Type: text/html; charset=' . $this->encoding . "\n";
         $message .= "Content-Transfer-Encoding: 8bit\n\n";
         $message .= $this->message;
         $message .= "\n\n{$text_boundary}--\n";
     } else {
         $headers[] = 'Content-Type: text/plain; charset=' . $this->encoding;
         $headers[] = 'Content-Transfer-Encoding: 8bit';
         $message = "\n" . strip_tags(preg_replace('#<br */?>#i', "\n", modify_lines($this->message))) . "\n";
     }
     if ($_CORE_CONFIG['email']['smtp']) {
         $smtp = new smtp_mailer();
         if ($connect = $smtp->connect($_CORE_CONFIG['email']['smtp_host'], $_CORE_CONFIG['email']['smtp_port'])) {
             $login = $smtp->login($_CORE_CONFIG['email']['smtp_username'], $_CORE_CONFIG['email']['smtp_password']);
         }
         if (!$connect || !$login) {
             $this->error = $smtp->error;
             return false;
         }
         $smtp->subject = $this->subject;
         $smtp->headers = $headers;
         $smtp->message = $message;
         $smtp->recipients = array_merge($this->address_arrays['to'], $this->address_arrays['cc'], $this->address_arrays['bcc']);
         if (!$smtp->send_mail()) {
             $this->error = $smtp->error;
             return false;
         }
         return true;
     }
     if (function_exists($_CORE_CONFIG['email']['email_function_name'])) {
         //mb_send_mail
         $result = $_CORE_CONFIG['email']['email_function_name']($to, $this->subject, $message, implode("\n", $headers));
         if (!$result) {
             return false;
         }
         return true;
     }
     return false;
 }
function block_get_data(&$data, &$error, $type = false)
{
    global $_CLASS;
    $error = '';
    $data = array();
    $data['block_title'] = get_variable('b_title', 'POST', '');
    // leave here for mods, maybe !
    foreach ($data as $field => $value) {
        if (!$value) {
            $error .= $_CLASS['core_user']->get_lang('ERROR_' . $field) . '<br />';
        }
    }
    $data['block_position'] = get_variable('b_position', 'POST', false, 'integer');
    if (!$data['block_position'] || !check_position($data['block_position'], false)) {
        $data['block_position'] = BLOCK_RIGHT;
    }
    $data['block_status'] = get_variable('b_active', 'POST', STATUS_DISABLED, 'integer') === STATUS_DISABLED ? STATUS_DISABLED : STATUS_ACTIVE;
    $data['block_expires'] = get_variable('b_expires', 'POST', '');
    $data['block_starts'] = get_variable('b_time', 'POST', '');
    $start = $expires = '';
    if ($data['block_starts']) {
        $start = strtotime($data['block_starts']);
        if (!$start || $start == -1) {
            $error .= $_CLASS['core_user']->lang['ERROR_START_TIME'] . '<br />';
        }
    }
    if ($data['block_expires']) {
        $expires = strtotime($data['block_expires']);
        if (!$expires || $expires == -1) {
            $error .= $_CLASS['core_user']->lang['ERROR_END_TIME'] . '<br />';
        }
    }
    $appoved_types = array(BLOCKTYPE_FILE, BLOCKTYPE_FEED, BLOCKTYPE_HTML, BLOCKTYPE_SYSTEM);
    $data['block_type'] = $type ? (int) $type : (int) get_variable('b_type', 'REQUEST', BLOCKTYPE_FILE);
    if (!in_array($data['block_type'], $appoved_types, true)) {
        $data['block_type'] = BLOCKTYPE_FILE;
    }
    $data['block_content'] = '';
    switch ($data['block_type']) {
        case BLOCKTYPE_HTML:
            //$data['content'] = modify_lines(trim(get_variable('b_content', 'POST', '')), '<br/>');
            $data['block_content'] = modify_lines(trim(get_variable('b_content', 'POST', '')), '');
            if (mb_strlen($data['block_content']) < 6) {
                $error .= $_CLASS['core_user']->lang['ERROR_content'] . '<br />';
            }
            break;
        case BLOCKTYPE_FILE:
            // Add a file check here
            $data['block_file'] = trim(get_variable('b_file', 'POST', ''));
            break;
        case BLOCKTYPE_FEED:
            // Add an url rss check here
            $data['block_rss_url'] = get_variable('b_url', 'POST', '');
            $data['block_rss_rate'] = get_variable('b_refresh', 'POST', '');
            break;
    }
    if (!$error) {
        $data['block_starts'] = $start ? $_CLASS['core_user']->time_convert($start, 'gmt') : 0;
        $data['block_expires'] = $expires ? $_CLASS['core_user']->time_convert($expires, 'gmt') : 0;
    }
}
        $forum_data = $row;
        do {
            $forum_list .= ($forum_list != '' ? ', ' : '') . '<b>' . $row['forum_name'] . '</b>';
        } while ($row = $_CLASS['core_db']->fetch_row_assoc($result));
        $_CLASS['core_db']->free_result($result);
    }
    // Grab relevant user or group information
    $ug_ids = $l_ug_list = $ug_hidden = $l_no_error = '';
    // need some work ( array_mapping()) blaa blaa
    switch ($ug_type) {
        case 'user':
            $l_no_error = $_CLASS['core_user']->lang['NO_USER'];
            $sql = 'SELECT user_id AS id, username AS name 
				FROM ' . USERS_TABLE . ' 
				WHERE ';
            $sql .= $submit == 'add_options' ? " username IN ('" . implode("', '", $_CLASS['core_db']->escape_array(array_unique(explode("\n", modify_lines($ug_data[0], "\n"))))) . "')" : ' user_id ' . (is_array($ug_data) ? 'IN (' . implode(', ', array_map('intval', $ug_data)) . ')' : '= ' . (int) $ug_data);
            break;
        case 'group':
            $l_no_error = $_CLASS['core_user']->lang['NO_GROUP'];
            $sql = 'SELECT group_id AS id, group_name AS name, group_type  
				FROM ' . GROUPS_TABLE . '
				WHERE group_id';
            $sql .= is_array($ug_data) ? ' IN (' . implode(', ', array_map('intval', $ug_data)) . ')' : ' = ' . (int) $ug_data;
            break;
    }
    $result = $_CLASS['core_db']->query($sql);
    if (!($row = $_CLASS['core_db']->fetch_row_assoc($result))) {
        trigger_error($l_no_error);
    }
    unset($l_no_error);
    // Store the user_ids and names for later use