This hack adds an option for the user to select the date format and time format he wants to use in the forum.
Good for people from different countries, that use different formats.
Requested by markrt.
Demo:
Run this query:
كود:
ALTER TABLE user ADD dateformat VARCHAR(4) DEFAULT '-1' not null AFTER timezoneoffset, ADD timeformat VARCHAR(4) DEFAULT '-1' not null AFTER dateformat;
(for more information on running queries visit the Troubleshooting and Problems forum)
In your modifyoptions template add this code:
كود:
<tr>
<td bgcolor="{secondaltcolor}"><normalfont><b>Date format</b></normalfont><br>
<smallfont>Select what format you would like to use for dates.</smallfont></td>
<td bgcolor="{secondaltcolor}"><smallfont>
<select name="newdateformat">
<option value="-1" $datedefselected>Use forum default</option>
<option value="0" $date0selected>04-25-1998</option>
<option value="1" $date1selected>04-25-98</option>
<option value="2" $date2selected>04.25.1998</option>
<option value="3" $date3selected>04.25.98</option>
<option value="4" $date4selected>25-04-1998</option>
<option value="5" $date5selected>25-04-98</option>
<option value="6" $date6selected>25.04.1998</option>
<option value="7" $date7selected>25.04.98</option>
<option value="8" $date8selected>April 25th, 1998</option>
<option value="9" $date9selected>Saturday, April 25th, 1998</option>
<option value="10" $date10selected>25th April 1998</option>
<option value="11" $date11selected>Saturday, 25th April 1998</option>
</select></smallfont></td>
</tr>
<tr>
<td bgcolor="{firstaltcolor}"><normalfont><b>Time format</b></normalfont><br>
<smallfont>Select what format you would like to use for times.</smallfont></td>
<td bgcolor="{firstaltcolor}"><smallfont>
<select name="newtimeformat">
<option value="-1" $timedefselected>Use forum default</option>
<option value="0" $time0selected>08:15 pm</option>
<option value="1" $time1selected>08:15:48 pm</option>
<option value="2" $time2selected>08:15 PM</option>
<option value="3" $time3selected>08:15:48 PM</option>
<option value="4" $time4selected>20:15</option>
<option value="5" $time5selected>20:15:48</option>
</select></smallfont></td>
</tr>
right after
كود:
<option value="+12" $timezonesel[120]>(GMT +12:00 hours) Auckland, Wellington, Fiji, Kamchatka, Marshall Island</option>
</select></smallfont></td>
</tr>
In member.php add this code:
كود PHP:
if ($bbuserinfo[dateformat]!=-1) {
$dateformat="date".$bbuserinfo[dateformat]."selected";
$$dateformat = "selected";
} else {
$datedefselected = "selected";
}
if ($bbuserinfo[timeformat]!=-1) {
$timeformatsel="time".$bbuserinfo[timeformat]."selected";
$$timeformatsel = "selected";
} else {
$timedefselected = "selected";
}
right after
كود PHP:
if ($bbuserinfo[timezoneoffset]<0) {
$timezonesel["n".(-$bbuserinfo[timezoneoffset]*10)]="selected";
} else {
$timezonesel[$bbuserinfo[timezoneoffset]*10]="selected";
}
Still in member.php, replace this code:
كود:
$DB_site->query("UPDATE user
SET ".$updatestyles."adminemail='$adminemail',
showemail='$showemail',invisible='$invisible',cookieuser='$cookieuser',
maxposts='".addslashes($umaxposts)."',daysprune='".addslashes($prunedays)."',
timezoneoffset='".addslashes($timezoneoffset)."',emailnotification='$emailnotification',
startofweek='".addslashes($startofweek)."',options='$options',receivepm='$receivepm',
emailonpm='$emailonpm',pmpopup='$pmpopup',usergroupid='$bbuserinfo[usergroupid]',
nosessionhash='$nosessionhash'
WHERE userid='$bbuserinfo[userid]'");
with this code:
كود:
$DB_site->query("UPDATE user
SET ".$updatestyles."adminemail='$adminemail',
showemail='$showemail',invisible='$invisible',cookieuser='$cookieuser',
maxposts='".addslashes($umaxposts)."',daysprune='".addslashes($prunedays)."',
dateformat='".addslashes($newdateformat)."',timeformat='".addslashes($newtimeformat)."',
timezoneoffset='".addslashes($timezoneoffset)."',emailnotification='$emailnotification',
startofweek='".addslashes($startofweek)."',options='$options',receivepm='$receivepm',
emailonpm='$emailonpm',pmpopup='$pmpopup',usergroupid='$bbuserinfo[usergroupid]',
nosessionhash='$nosessionhash'
WHERE userid='$bbuserinfo[userid]'");
(note: this code might be changed in your file due to another hack. If so, just add the code that is in red)
In global.php (main directory) add this code:
كود PHP:
// change to right date format
if ($bbuserinfo[dateformat]!="-1") {
if ($bbuserinfo[dateformat]=="0") {
$dateformat = "m-d-Y";
} elseif ($bbuserinfo[dateformat]=="1") {
$dateformat = "m-d-y";
} elseif ($bbuserinfo[dateformat]=="2") {
$dateformat = "m.d.Y";
} elseif ($bbuserinfo[dateformat]=="3") {
$dateformat = "m.d.y";
} elseif ($bbuserinfo[dateformat]=="4") {
$dateformat = "d-m-Y";
} elseif ($bbuserinfo[dateformat]=="5") {
$dateformat = "d.m.y";
} elseif ($bbuserinfo[dateformat]=="6") {
$dateformat = "d.m.y";
} elseif ($bbuserinfo[dateformat]=="7") {
$dateformat = "d.m.y";
} elseif ($bbuserinfo[dateformat]=="8") {
$dateformat = "F jS, Y";
} elseif ($bbuserinfo[dateformat]=="9") {
$dateformat = "l, F jS, Y";
} elseif ($bbuserinfo[dateformat]=="10") {
$dateformat = "jS F Y";
} elseif ($bbuserinfo[dateformat]=="11") {
$dateformat = "l, jS F Y";
} else {
$dateformat = "$dateformat";
}
}
// change to right time format
if ($bbuserinfo[timeformat]!="-1") {
if ($bbuserinfo[timeformat]=="0") {
$timeformat = "h:i a";
} elseif ($bbuserinfo[timeformat]=="1") {
$timeformat = "h:i:s a";
} elseif ($bbuserinfo[timeformat]=="2") {
$timeformat = "h:i A";
} elseif ($bbuserinfo[timeformat]=="3") {
$timeformat = "h:i:s A";
} elseif ($bbuserinfo[timeformat]=="4") {
$timeformat = "H:i";
} elseif ($bbuserinfo[timeformat]=="5") {
$timeformat = "H:i:s";
} else {
$timeformat = "$timeformat";
}
}
right after
كود PHP:
// ###################### Referrer Stuff #########################
That's it.
I know it might look long, but it's really very very easy to install.
If you have any troubles with that block I told you about, ask for help here.
Feedback please!