The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
Fix vbShout Timezone problem Details »» | |||||||||||||||||||||||||
This vbShout plugin: http://www.vbhackers.com/f76/ajax-fl...ut-2-1-a-4536/
Has a serious bug with Time Zone changing to that of the last person to post in the shout box. Here is a fix so that each user will see the time in their local timezone correctly. 1. Open template forumhome_vbshout_shout Find this (should be at the very beginning): Code:
<tr> Code:
<td nowrap align="left" valign="top"> <font size="1"> <date>{$Shout['time']}</date> </font> </td> 2. Open template forumhome_vbshout Find: Code:
Shouts.innerHTML = '<table cellpadding="1" cellspacing="3" border="0" width="95%" align="left">' + ShoutRequest.handler.responseText + '</table>' Code:
var formatMe = ShoutRequest.handler.responseText formatMe = replaceDates(formatMe); Shouts.innerHTML = '<table cellpadding="1" cellspacing="0" border="0" width="100%" align="left">' + formatMe + '</table>' Find this: Code:
function sb_CollectHV(sbForm) Code:
// replaces <date> tags function replaceDates(s) { var ret = ""; var matches = s.match(/<date>\d+<\/date>/g); for(var i = 0; matches != null && i < matches.length; i++) { var utc = matches[i].match(/\d+/); var date = new Date(utc * 1000); ret = ret + s.substr(0, s.indexOf(matches[i])); ret = ret + (date.getMonth()+1) + "/" + date.getDate() + "/" + date.getFullYear() + " " + date.getHours() + ":" + ((date.getMinutes() < 10) ? "0" : "") + date.getMinutes() + ":" + ((date.getSeconds() < 10) ? "0" : "") + date.getSeconds() + " "; s = s.substr(s.indexOf(matches[i]) + matches[i].length); } ret = ret + s; return ret; } 3. Open file vbshout.php FInd this (There are similar code blocks, this should be in the function rewrite_shoutbox_flatfile() around line 226): Code:
$Shout['time'] = buildTime($Shout['s_time']); $Shout['s_shout'] = bbcodeparser($Shout['s_shout']); $Shout['style'] = ''; $Shout['data'] = unserialize($Shout['s_data']); $Shout['username'] = fetch_musername($Shout, 'usergroupid'); if (preg_match("#(\#)?0099FF#i", $Shout['data']['color']) && $Shout['s_by'] != 1) { $Shout['data']['color'] = ''; } Code:
// $Shout['time'] = buildTime($Shout['s_time']); $Shout['time'] = $Shout['s_time']; $Shout['s_shout'] = bbcodeparser($Shout['s_shout']); $Shout['style'] = ''; $Shout['data'] = unserialize($Shout['s_data']); $Shout['username'] = fetch_musername($Shout, 'usergroupid'); if (preg_match("#(\#)?0099FF#i", $Shout['data']['color']) && $Shout['s_by'] != 1) { $Shout['data']['color'] = ''; } This should now pass the date as UTC and JavaScript will convert it on the client side to the appropriate date. Show Your Support
|
Comments |
#52
|
|||
|
|||
Quote:
-PB |
#53
|
|||
|
|||
Quote:
i hope someone will answer cause i had it on v2.0, and i really want it on v2.1. thanks- and this is a GREAT hack. |
#54
|
|||
|
|||
i can´t change somebody help me
|
#55
|
|||
|
|||
Cheers for the mods, much appreciated
CMGU, perhaps if you ask a question you might find help more forthcoming. |
#56
|
|||
|
|||
Ok, here's my customisations for anyone who's interested. These changes to the replaceDates function do the following
Code:
// replaces <date> tags function replaceDates(s) { var ret = ""; var matches = s.match(/<date>\d+<\/date>/g); var months=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug', 'Sep','Oct','Nov','Dec']; for(var i = 0; matches != null && i < matches.length; i++) { var utc = matches[i].match(/\d+/); var date = new Date(utc * 1000); ret = ret + s.substr(0, s.indexOf(matches[i])); ret = ret + ( date.getDate() + "-" + months[date.getMonth()]) + " " + ((date.getHours() < 10) ? " " : "") + date.getHours() + ":" + ((date.getMinutes() < 10) ? "0" : "") + date.getMinutes() + " "; s = s.substr(s.indexOf(matches[i]) + matches[i].length); } ret = ret + s; return ret; } |
#57
|
|||
|
|||
I found that changes aren't rendered until you make a new shout... so just shout!
|
#58
|
|||
|
|||
Quote:
I made an edit in forumhome_vbshout template to chang the table width to 95% as per the original hack which seems to have fixed it. Code:
Shouts.innerHTML = '<table cellpadding="1" cellspacing="0" border="0" width="95%" align="left">' + formatMe + '</table>' |
Thread Tools | |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|