News:

Want to get involved in developing SMF, then why not lend a hand on our github!

Main Menu

World Clock

Started by TheListener, March 09, 2012, 07:56:57 PM

Previous topic - Next topic

TheListener

My latest forum is www.broadstarradio.com

Currently the world clock is situated in a portal block.

I would prefer it to be below the user details on the right side of the forum.

<table width="100%">
    <tr>
        <td width="100%" align="center">
            <select name="city" size="1" onchange="updateclock(this);">
                <option value="" selected>Local time</option>
                <option value="0">London</option>
                <option value="10">Sydney</option>
                <option value="-10">Hawaii</option>
                <option value="-8">Los Angeles</option>
                <option value="-5">New York</option>
                </select>
        </td>
    </tr>
    <tr>
        <td width="100%" align="center">
<script language="JavaScript">
if (document.all||document.getElementById)
document.write('<IMG height=16 src="Themes/default/images/timer.gif" width=16>    <span id="worldclock" style="font:bold 12px verdana;"></span><br>') 
zone=0;
isitlocal=true;
ampm='';
function updateclock(z){
zone=z.options[z.selectedIndex].value;
isitlocal=(z.options[0].selected)?true:false;
}
function WorldClock(){
now=new Date();
ofst=now.getTimezoneOffset()/60;
secs=now.getSeconds();
sec=-1.57+Math.PI*secs/30;
mins=now.getMinutes();
min=-1.57+Math.PI*mins/30;
hr=(isitlocal)?now.getHours():(now.getHours() + parseInt(ofst)) + parseInt(zone);
hrs=-1.575+Math.PI*hr/6+Math.PI*parseInt(now.getMinutes())/360;
if (hr < 0) hr+=24;
if (hr > 23) hr-=24;
ampm = (hr > 11)?"PM":"AM";
statusampm = ampm.toLowerCase();
hr2 = hr;
if (hr2 == 0) hr2=12;
(hr2 < 13)?hr2:hr2 %= 12;
if (hr2<10) hr2="0"+hr2
var finaltime=hr2+':'+((mins < 10)?"0"+mins:mins)+':'+((secs < 10)?"0"+secs:secs)+' '+statusampm;
if (document.all)
worldclock.innerHTML=finaltime
else if (document.getElementById)
document.getElementById("worldclock").innerHTML=finaltime
else if (document.layers){
document.worldclockns.document.worldclockns2.document.write(finaltime)
document.worldclockns.document.worldclockns2.document.close()
}
setTimeout('WorldClock()',1000);
}
window.onload=WorldClock
//-->
</script>
<ilayer id="worldclockns" width=100% height=35><layer id="worldclockns2" width=100% height=35 left=0 top=0 style="font:bold 12px verdana;"></layer></ilayer>
        </td>
    </tr>
</table>

kat

Quote from: Old Fossil on March 09, 2012, 07:56:57 PM
I would prefer it to be below the user details on the right side of the forum.

Eh? ;)

TheListener

So it isn't seen on the portal only ya ninny.

:P

kat

If it helps, I have mine where you can see it, here:

http://www.tlakoc.org.uk

I did it by adding this:

include 'banner.php';

right after:

</head>
<body>';
if($context['browser']['is_ie6'])
echo ' <table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100%">
<div id="infobar"><a href="http://www.microsoft.com/windows/internet-explorer/worldwide-sites.aspx"><p>' , (empty($modSettings['ie6_warning_bar_message'])) ? $txt['ie6_warning_bar_message_default'] : $modSettings['ie6_warning_bar_message'] , '</p></a>
</div>
</td>
</tr>
</table>';


and saved the world clock code as a separate file (banner.php), which the include calls. (As you saw, though, my forum's on SMF v1.1.16). So, yours'll be a bit different. I assume it has body tags, though. So, perhaps, just after the opening one would be a good place to start.

That way, if I wanted to change the script, I only had to change the one file, instead of having to do it with all themes.

I buggered about with the script, a bit.

<div style = "text-align: center;">
<form name="where">
<select name="city" size="1" onchange="updateclock(this);">
<option value="" selected>Local time</option>
<option value="0">London GMT</option>
<option value="+2">Amsterdam</option>
<option value="7">Bangkok</option>
<option value="-3">Buenos Aires</option>
<option value="-5">Chicago</option>
<option value="+2">Dordrecht</option>
<option value="12">Fiji</option>
<option value="-10">Hawaii</option>
<option value="8">Hong Kong</option>
<option value="-4">New York</option>
<option value="+8">Perth</option>
<option value="2">Rome</option>
<option value="-7">San Francisco</option>
<option value="11">Sydney</option>
<option value="9">Tokyo</option>
</select>

<script language="JavaScript">

/*
Drop Down World Clock- By JavaScript Kit (http://www.javascriptkit.com)
Portions of code by Kurt @ http://www.btinternet.com/~kurt.grigg/javascript
This credit notice must stay intact
*/

if (document.all||document.getElementById)
document.write('<span id="worldclock" style="font:bold 16px Arial;"></span><br>')

zone=0;
isitlocal=true;
ampm='';

function updateclock(z){
zone=z.options[z.selectedIndex].value;
isitlocal=(z.options[0].selected)?true:false;
}

function WorldClock(){
now=new Date();
ofst=now.getTimezoneOffset()/60;
secs=now.getSeconds();
sec=-1.57+Math.PI*secs/30;
mins=now.getMinutes();
min=-1.57+Math.PI*mins/30;
hr=(isitlocal)?now.getHours():(now.getHours() + parseInt(ofst)) + parseInt(zone);
hrs=-1.575+Math.PI*hr/6+Math.PI*parseInt(now.getMinutes())/360;
if (hr < 0) hr+=24;
if (hr > 23) hr-=24;
ampm = (hr > 11)?"PM":"AM";
statusampm = ampm.toLowerCase();

hr2 = hr;
if (hr2 == 0) hr2=12;
(hr2 < 13)?hr2:hr2 %= 12;
if (hr2<10) hr2="0"+hr2

var finaltime=hr2+':'+((mins < 10)?"0"+mins:mins)+':'+((secs < 10)?"0"+secs:secs)+' '+statusampm;

if (document.all)
worldclock.innerHTML=finaltime
else if (document.getElementById)
document.getElementById("worldclock").innerHTML=finaltime
else if (document.layers){
document.worldclockns.document.worldclockns2.document.write(finaltime)
document.worldclockns.document.worldclockns2.document.close()
}


setTimeout('WorldClock()',1000);
}

window.onload=WorldClock
//-->
</script>

<!--Place holder for NS4 only-->
<ilayer id="worldclockns" width=100% height=35><layer id="worldclockns2" width=100% height=35 left=0 top=0 style="font:bold 16px Arial;"></layer></ilayer>
</form>
</div>


Thinking about it, though, can't you make SP have blocks showing all over the forum, not just on the portal?

TheListener

#4
QuoteThinking about it, though, can't you make SP have blocks showing all over the forum, not just on the portal?
Yes but I am planning a few more blocks which I will be adding once I have paid for the streaming company (which pays the licensing).

The various players such as winamp etc.

kat

Ah, right.

Well, have a fiddle with that and see how it breaks everything goes. ;)

TheListener

Quote from: K@ on March 10, 2012, 02:59:25 PM
Ah, right.

Well, have a fiddle with that and see how it breaks everything goes. ;)

Cheeky rascal aint ya?

I will do ta.


TheListener

By the way are ya still as hairless as 2005 or has ya hair grown back?

;D

kat

You say I'm cheeky!!!

My hair's way down past my shoulders!

TheListener

Whats left ya mean lol

TheListener

Bump if anyone's interested.

kat


TheListener

What ya supplied no worky.

kat


TheListener

Different code for 2.0.2 and it gave errors.

kat

I'll try and stick it on my test site, which is v2.0.2.

Are you putting it in a SP block? Or, in index.template.php?

TheListener

Index.template.

(I know I'm a fussy sod).

kat

OK. Gimme a few years to figure this out...

TheListener

A decade is all ya have.

Advertisement: