function sn_chat_add_model() { global $skip_fleet_update, $config, $user; define('IN_AJAX', true); $skip_fleet_update = true; if ($config->_MODE != CACHER_NO_CACHE && $config->chat_timeout && SN_TIME_MICRO - $config->array_get('users', $user['id'], 'chat_last_activity') > $config->chat_timeout) { die; } if (($message = sys_get_param_str('message')) && $user['username']) { $ally_id = sys_get_param('ally') && $user['ally_id'] ? $user['ally_id'] : 0; $nick = db_escape(player_nick_compact(player_nick_render_current_to_array($user, array('color' => true, 'icons' => true, 'ally' => !$ally_id)))); $message = preg_replace("#(?:https?\\:\\/\\/(?:.+)?\\/index\\.php\\?page\\=battle_report\\&cypher\\=([0-9a-zA-Z]{32}))#", "[ube=\$1]", $message); doquery("INSERT INTO {{chat}} (chat_message_sender_id, user, ally_id, message, timestamp) VALUES ('{$user['id']}', '{$nick}', '{$ally_id}', '{$message}', " . SN_TIME_NOW . ");"); $config->array_set('users', $user['id'], 'chat_last_activity', SN_TIME_MICRO); } die; }
function player_nick_render_to_html($result, $options = false) { // TODO - обрабатывать разные случаи: $user, $render_nick_array, $string if (is_string($result) && strpos($result, ':{i:')) { $result = player_nick_uncompact($result); } if (is_array($result)) { if (isset($result['id'])) { $result = player_nick_render_current_to_array($result, $options); } if (!isset($result[NICK_HTML])) { $result = player_nick_render_array_to_html($result); } unset($result[NICK_HTML]); // unset($result[NICK_ID]); ksort($result); $result = implode('', $result); } return $result; }