.:V.I.P.:.
Доп. информация
|
Регистрация: 06.06.2013
Сообщений: 216
Поблагодарил(а): 42
Поблагодарили: 21 / 16
|
|
Чат бокс, нужно спрятать ник
Вот покопался в кодах чатбокса и сделал так, что при наборе /re + текст
получался такое сообщение
[Системное сообщение] sdfg
Как можно убрать ник автора?
Что бы реально казался системным сообщением.
Я уже пытался менять переменные, ничего не получается.
Код:
if ($vbulletin->options['vsachatbox_enable_product'] AND !VSacb_userExcluded($vbulletin->userinfo) AND empty($vbulletin->userinfo['infractiongroupids']) AND $vsacb_hasenoughposts)
{
function VSacb_buildTime($vsacb_reqtime = TIMENOW)
{
global $vbulletin;
$vsacb_time = '';
if ($vbulletin->options['vsachatbox_dateformat']!='')
{
$vsacb_time = vbdate($vbulletin->options['vsachatbox_dateformat'], $vsacb_reqtime);
$vsacb_time .= ', ';
}
$vsacb_time .= vbdate($vbulletin->options['vsachatbox_timeformat'], $vsacb_reqtime);
return $vsacb_time;
}
function VSacb_clickableLinks($vsacb_text)
{
$vsacb_text = preg_replace("/(\r\n|\n|\r)/", "\n", $vsacb_text);
$vsacb_lines = explode("\n", $vsacb_text);
for ($x = 0, $y = count($vsacb_lines); $x < $y; $x++) {
$vsacb_line = $vsacb_lines[$x];
$vsacb_words = explode(' ', $vsacb_line);
for ($vsacb_i = 0, $j = count($vsacb_words); $vsacb_i < $j; $vsacb_i++) {
$vsacb_word = $vsacb_words[$vsacb_i];
$vsacb_punctuation = '.,\'")(<>;:';
if (substr($vsacb_word, 0, 7) == 'http://' || substr($vsacb_word, 0, 8) == 'https://' || substr($vsacb_word, 0, 4) == 'www.')
{
$trailing = '';
$vsacb_last = substr($vsacb_word, -1);
while (strpos($vsacb_punctuation, $vsacb_last) !== false) {
$trailing .= $vsacb_last;
$vsacb_word = substr($vsacb_word, 0, -1);
$vsacb_last = substr($vsacb_word, -1);
}
$vsacb_link = $vsacb_word;
if (substr($vsacb_link, 0, 4) == 'www.') {
$vsacb_link = 'http://'.$vsacb_link;
}
$vsacb_word = ''.$vsacb_word.''.$trailing;
}
$vsacb_words[$vsacb_i] = $vsacb_word;
}
$vsacb_lines[$x] = implode(' ', $vsacb_words);
}
return implode("\n", $vsacb_lines);
}
require_once(DIR . '/includes/class_bbcode.php');
$vsacb_bbparser = new vB_BbCodeParser($vbulletin, fetch_tag_list());
$vsacb_smilies_onoff = $vbulletin->options['vsachatbox_smilies_parse'];
if (($_REQUEST['do']=='cchatbox') OR ($_REQUEST['do']=='ccarc'))
{
$vbulletin->db->hide_errors();
$vsacb_xhours = TIMENOW - ($vbulletin->options['vsachatbox_stats_lastxhours'] * 60 * 60);
$vsacb_mymessage = 0;
$vsacb_xhoursmessage = 0;
$vsacb_get_stats = $vbulletin->db->query_read("SELECT id, userid, dateline FROM " . TABLE_PREFIX . "vsa_chatbox ");
while ($vsacb_stats = $vbulletin->db->fetch_array($vsacb_get_stats))
{
if ($vsacb_stats[userid] == $vbulletin->userinfo['userid'])
{
$vsacb_mymessage += 1;
}
if ($vsacb_stats[dateline] > $vsacb_xhours)
{
$vsacb_xhoursmessage += 1;
}
}
$vsacb_totalentries = $vbulletin->db->num_rows($vsacb_get_stats);
$vsacb_totalmessages = vb_number_format($vsacb_totalentries);
$vsacb_mymessages = vb_number_format($vsacb_mymessage);
$vsacb_xhoursmessages = vb_number_format($vsacb_xhoursmessage);
unset($vsacb_get_stats, $vsacb_stats);
$vsacb_get_topx = $vbulletin->db->query("
SELECT COUNT(id) AS vsacb_msgs, vsa_chatbox.userid, user.username, user.usergroupid
FROM " . TABLE_PREFIX . "vsa_chatbox AS vsa_chatbox
LEFT JOIN " . TABLE_PREFIX . "user AS user ON (vsa_chatbox.userid = user.userid)
WHERE vsa_chatbox.userid > 0
GROUP BY vsa_chatbox.userid
ORDER BY vsacb_msgs DESC
LIMIT 0, ".$vbulletin->options['vsachatbox_topx_results']."
");
$vsacb_topx_total = $vbulletin->db->num_rows($vsacb_get_topx);
if ($vsacb_topx_total < $vbulletin->options['vsachatbox_topx_results'])
{
$vsacb_topx_res = $vsacb_topx_total;
}
else
{
$vsacb_topx_res = $vbulletin->options['vsachatbox_topx_results'];
}
while ($vsacb_topposter = $vbulletin->db->fetch_array($vsacb_get_topx))
{
$vsacb_topposternr += 1;
$templater = vB_Template::create('vsa_chatbox_topchatters_bit');
$templater->register('vsacb_topposter', $vsacb_topposter);
$templater->register('vsacb_topposternr', $vsacb_topposternr);
$vsacb_topchatters .= $templater->render();
}
unset($vsacb_get_topx, $vsacb_topposter);
if ($vbulletin->options['vsachatbox_excluded_users']!='')
{
$vsacb_banlist_get = explode(',',$vbulletin->options['vsachatbox_excluded_users']);
foreach ($vsacb_banlist_get AS $vsacb_banlist_item)
{
$vsacb_banlist_userinfo = fetch_userinfo($vsacb_banlist_item);
if ($vsacb_canmod)
{
$vsacb_banlist_usercell[] = '<a style="white-space:nowrap;" href="javascript:VSacb_Confirm(\'unbanuser\',\''.$vsacb_banlist_item.'\',\''.$vsacb_banlist_userinfo['username'].'\');">'.$vsacb_banlist_userinfo['musername'].'</a>';
}
else
{
$vsacb_banlist_usercell[] = '<a style="white-space:nowrap;" href="member.php?'.$vbulletin->session->vars['sessionurl'].'u='.$vsacb_banlist_item.'">'.$vsacb_banlist_userinfo['musername'].'</a>';
}
}
sort($vsacb_banlist_usercell);
foreach ($vsacb_banlist_usercell AS $vsacb_banlist_user)
{
$vsacb_banlist .= $vsacb_banlist_user;
}
unset($vsacb_banlist_get, $vsacb_banlist_item, $vsacb_banlist_user);
}
$vbulletin->db->show_errors();
$templater = vB_Template::Create('vsa_chatbox_input');
$templater->register('vsacb_cantpost', $vsacb_cantpost);
$templater->register('vsacb_smilies_init', $vsacb_smilies_init);
$templater->register('vsacb_colors', $vsacb_colors);
$templater->register('vsacb_smilie_first', $vsacb_smilie_first);
$templater->register('vsacb_textsize', $vsacb_textsize);
$templater->register('vsacb_color_default', $vsacb_color_default);
$vsachatbox_input = $templater->render();
$templater = vB_Template::Create('vsa_chatbox_dropdown');
$templater->register('vsacb_canmod', $vsacb_canmod);
$templater->register('vsacb_candelall', $vsacb_candelall);
$templater->register('vsacb_totalmessages', $vsacb_totalmessages);
$templater->register('vsacb_xhoursmessages', $vsacb_xhoursmessages);
$templater->register('vsacb_mymessages', $vsacb_mymessages);
$templater->register('vsacb_topx_res', $vsacb_topx_res);
$templater->register('vsacb_topchatters', $vsacb_topchatters);
$templater->register('vsacb_banlist', $vsacb_banlist);
$vsachatbox_dropdown = $templater->render();
$templater = vB_Template::Create('vsa_chatbox_status');
$templater->register('vsacb_sizes', $vsacb_sizes);
$vsachatbox_status = $templater->render();
$navbits = construct_navbits(array('' => $vbphrase['vsacb_chatbox_full']));
$navbar = render_navbar_template($navbits);
$templater = vB_Template::Create('vsa_chatbox');
$templater->register_page_templates();
$templater->register('navbar', $navbar);
$templater->register('vsachatbox_input', $vsachatbox_input);
$templater->register('vsachatbox_status', $vsachatbox_status);
$templater->register('vsachatbox_dropdown', $vsachatbox_dropdown);
$templater->register('vsacb_mymessages', $vsacb_mymessages);
$templater->register('vsacb_totalmessages', $vsacb_totalmessages);
$templater->register('vsacb_xhoursmessages', $vsacb_xhoursmessages);
$templater->register('vsacb_topchatters', $vsacb_topchatters);
$templater->register('vsacb_topx_res', $vsacb_topx_res);
$templater->register('vsacb_banlist', $vsacb_banlist);
$templater->register('vsacb_totalentries', $vsacb_totalentries);
$templater->register('vsacb_canmod', $vsacb_canmod);
$templater->register('vsacb_candelall', $vsacb_candelall);
$templater->register('vsacb_locs', $vsacb_locs);
$templater->register('vsacb_oneforum', $vsacb_oneforum);
$templater->register('vsacb_newstat', $vsacb_newstat);
$templater->register('vsacb_textsize', $vsacb_textsize);
$templater->register('vsacb_color_default', $vsacb_color_default);
$templater->register('vsacb_cantpost', $vsacb_cantpost);
$vsachatbox = $templater->render();
}
if ($_REQUEST['do']=='cchatbox')
{
$vbulletin->db->hide_errors();
$vbulletin->db->query_write("UPDATE " . TABLE_PREFIX . "session SET lastactivity = '".TIMENOW."', location = 'cchatbox' WHERE userid = " . $vbulletin->userinfo['userid']);
$vbulletin->db->show_errors();
print_output($vsachatbox);
}
if ($_REQUEST['ccbloc']!='')
{
$vbulletin->db->hide_errors();
$vsacb_locmessid = $vbulletin->input->clean_gpc('r', 'ccbloc', TYPE_UINT);
if ($vsacb_locmessid)
{
$vsacb_getlocpos = $vbulletin->db->query_read("
SELECT id
FROM " . TABLE_PREFIX . "vsa_chatbox
WHERE id >= '".$vsacb_locmessid."'
");
$vsacb_findlocpos = $vbulletin->db->num_rows($vsacb_getlocpos);
$vsacb_loctargetpage = ceil($vsacb_findlocpos / $vbulletin->options['vsachatbox_archive_perpage']);
$vsacb_locredirect = 'misc.php?'.$vbulletin->session->vars['sessionurl'].'do=ccarc&page='.$vsacb_loctargetpage.'&cm='.$vsacb_locmessid.'#'.$vsacb_locmessid;
}
else
{
$vsacb_locredirect = 'misc.php?'.$vbulletin->session->vars['sessionurl'].'do=ccarc&ccbnomess=true';
}
$vbulletin->db->show_errors();
exec_header_redirect($vsacb_locredirect);
}
if ($_REQUEST['ccbfind']!='')
{
$vbulletin->db->hide_errors();
if ($_REQUEST['ccbfind']=='unread')
{
$vsacb_lastmess_unread = $vbulletin->db->query_first("
SELECT id
FROM " . TABLE_PREFIX . "vsa_chatbox
WHERE dateline > '".$vbulletin->userinfo['lastvisit']."'
ORDER BY dateline ASC
");
$vsacb_reqmid = $vsacb_lastmess_unread['id'];
}
else
{
$vsacb_lastmessuser = $vbulletin->input->clean_gpc('r', 'ccbfind', TYPE_UINT);
$vsacb_lastmess_user = $vbulletin->db->query_first("
SELECT MAX(id) AS id
FROM " . TABLE_PREFIX . "vsa_chatbox
WHERE userid = '".$vsacb_lastmessuser."'
");
$vsacb_reqmid = $vsacb_lastmess_user['id'];
}
if ($vsacb_reqmid)
{
$vsacb_getfindpos = $vbulletin->db->query_read("
SELECT id
FROM " . TABLE_PREFIX . "vsa_chatbox
WHERE id >= '".$vsacb_reqmid."'
");
$vsacb_findpos = $vbulletin->db->num_rows($vsacb_getfindpos);
$vsacb_targetpage = ceil($vsacb_findpos / $vbulletin->options['vsachatbox_archive_perpage']);
$vsacb_findredirect = 'misc.php?'.$vbulletin->session->vars['sessionurl'].'do=ccarc&page='.$vsacb_targetpage.'&cm='.$vsacb_reqmid.'#'.$vsacb_reqmid;
}
else
{
$vsacb_findredirect = 'misc.php?'.$vbulletin->session->vars['sessionurl'].'do=ccarc&ccbnomess=true';
}
$vbulletin->db->show_errors();
exec_header_redirect($vsacb_findredirect);
}
if ($_REQUEST['do']=='ccarc')
{
$vbulletin->db->hide_errors();
$vsacb_globals = array(
'cbt' => TYPE_STR,
'cbu' => TYPE_UINT
);
$vbulletin->input->clean_array_gpc('r', $vsacb_globals);
$vsacb_search_value = $vbphrase['vsacb_search_chatbox'];
$vsacb_targettext = htmlspecialchars($vbulletin->GPC['cbt']);
if ($vsacb_targettext)
{
$vsacb_onlytext = "AND vsa_chatbox.message LIKE '%".$vbulletin->db->escape_string($vsacb_targettext)."%' ";
$vsacb_search_value = $vsacb_targettext;
}
$vsacb_targetuser = $vbulletin->GPC['cbu'];
if ($vsacb_targetuser)
{
$vsacb_onlyuser = "AND vsa_chatbox.userid = '".$vsacb_targetuser."' ";
}
$vsacb_get_msg_nav = $vbulletin->db->query_read("
SELECT vsa_chatbox.id, vsa_chatbox.message
FROM ".TABLE_PREFIX."vsa_chatbox AS vsa_chatbox
WHERE vsa_chatbox.message !='' $vsacb_onlytext $vsacb_onlyuser
");
$vsacb_totalnav = $vbulletin->db->num_rows($vsacb_get_msg_nav);
$navbits = array('misc.php?'.$vbulletin->session->vars['sessionurl'].'do=ccarc' . $vbulletin->session->vars['sessionurl_q'] => $vbphrase['vsacb_chatbox']);
$perpage = $vbulletin->input->clean_gpc('r', 'perpage', TYPE_UINT);
$pagenumber = $vbulletin->input->clean_gpc('r', 'pagenumber', TYPE_UINT);
sanitize_pageresults($vsacb_totalnav, $pagenumber, $perpage, 40, $vbulletin->options['vsachatbox_archive_perpage']);
$limitlower = ($pagenumber - 1) * $perpage + 1;
if ($limitlower <= 0)
{
$limitlower = 1;
}
$vsacb_get_msg_arc = $vbulletin->db->query_read("
SELECT vsa_chatbox.id, vsa_chatbox.userid, vsa_chatbox.userip, vsa_chatbox.message, vsa_chatbox.dateline, vsa_chatbox.textprop, user.username, user.usergroupid, user.displaygroupid
FROM ".TABLE_PREFIX."vsa_chatbox AS vsa_chatbox
LEFT JOIN ".TABLE_PREFIX."user AS user ON (user.userid = vsa_chatbox.userid)
WHERE vsa_chatbox.message !='' $vsacb_onlytext $vsacb_onlyuser $vsacb_onlymessage
ORDER BY vsa_chatbox.dateline DESC
LIMIT " . ($limitlower - 1) . "," . $perpage . "
");
while ($vsacb_msg_arc = $vbulletin->db->fetch_array($vsacb_get_msg_arc))
{
$vsacb_msg_arc_nr += 1;
$vsacb_msg_arc_staff = false;
if (is_member_of($vsacb_msg_arc, explode(',', '5,6,7')))
{
$vsacb_msg_arc_staff = true;
}
$vsacb_msg_arc_id = $vsacb_msg_arc['id'];
$vsacb_msg_arc['message'] = htmlspecialchars_uni($vsacb_msg_arc['message']);
$vsacb_msg_arc['musername'] = fetch_musername($vsacb_msg_arc);
$vsacb_msg_arc_banned = false;
eval('$vsacb_bannedusers = in_array($vsacb_msg_arc[userid], array(' . $vbulletin->options['vsachatbox_excluded_users'] . '));');
if (in_array($vsacb_msg_arc[userid], array($vsacb_bannedusers)))
{
$vsacb_msg_arc_banned = true;
}
$vsacb_msg_arc['time'] = VSacb_buildTime($vsacb_msg_arc['dateline']);
if ($vsacb_msg_arc['dateline']>$vbulletin->userinfo['lastvisit'])
{
$vsacb_msg_arc_icon = '<img class="inlineimg" src="'.vB_Template_Runtime::fetchStyleVar('imgdir_statusicon').'/post_new.png" alt="'.$vbphrase['new'].'" border="0" /> ';
}
else
{
$vsacb_msg_arc_icon = '<img class="inlineimg" src="'.vB_Template_Runtime::fetchStyleVar('imgdir_statusicon').'/post_old.png" alt="'.$vbphrase['new'].'" border="0" /> ';
}
$vsacb_arc_coloropen = '';
$vsacb_arc_colorclose = '';
$vsacb_arc_boldopen = '';
$vsacb_arc_boldclose = '';
$vsacb_arc_italicopen = '';
$vsacb_arc_italicclose = '';
$vsacb_arc_underlineopen = '';
$vsacb_arc_underlineclose = '';
$vsacb_msg_arc['textprop'] = unserialize($vsacb_msg_arc['textprop']);
if ($vsacb_msg_arc['textprop']['color'] AND $vbulletin->options['vsachatbox_colors_enabled'])
{
$vsacb_arc_coloropen = '[color='.$vsacb_msg_arc['textprop']['color'].']';
$vsacb_arc_colorclose = '[/color]';
}
if ($vsacb_msg_arc['textprop']['bold'])
{
$vsacb_arc_boldopen = '';
$vsacb_arc_boldclose = '';
}
|