Announcement

Collapse
No announcement yet.

[Release v2] Let users choose their own date and time format

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [Release v2] Let users choose their own date and time format

    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:
    Code:
    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:
    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
    Code:
    		<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 Code:
      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 Code:
      if ($bbuserinfo[timezoneoffset]<0) {
        
    $timezonesel["n".(-$bbuserinfo[timezoneoffset]*10)]="selected";
      } else {
        
    $timezonesel[$bbuserinfo[timezoneoffset]*10]="selected";
      } 
    Still in member.php, replace this code:
    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:
    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 Code:
    // 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 Code:
    // ###################### 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!
    Last edited by Chen; Sun 16th Sep '01, 6:01am.
    Chen Avinadav
    Better to remain silent and be thought a fool than to speak out and remove all doubt.

    גם אני מאוכזב מסיקור תחרות לתור מוטור של NRG הרשת ע"י מעריב

  • #2
    one question??

    Can this hack work in version2.0.3??

    where can find this code:

    --------------------------------------------------------------------------------ALTER TABLE user ADD dateformat VARCHAR(4) DEFAULT '-1' not null AFTER timezoneoffset, ADD timeformat VARCHAR(4) DEFAULT '-1' not null AFTER dateformat;

    Comment


    • #3
      squawell:
      This was done on v2.0.3, but should work on all.

      What you pasted is not in the files, it's a query you need to run.
      Learn more about it here:
      http://www.vbulletin.com/forum/showt...threadid=18558

      Here's a demo guys.
      Chen Avinadav
      Better to remain silent and be thought a fool than to speak out and remove all doubt.

      גם אני מאוכזב מסיקור תחרות לתור מוטור של NRG הרשת ע"י מעריב

      Comment


      • #4
        thanks FireFly~~~

        i got it!!

        i just see you give the link~~~

        is phpmyadmin necessary??

        but i do not have it yet!!

        should i install ??
        Last edited by squawell; Sun 16th Sep '01, 6:19am.

        Comment


        • #5
          If you have Telnet access, then it's not necessary for this praticular hack.
          But it's good to have it, so I suggest you install it.

          How did you run the query by the way?
          Chen Avinadav
          Better to remain silent and be thought a fool than to speak out and remove all doubt.

          גם אני מאוכזב מסיקור תחרות לתור מוטור של NRG הרשת ע"י מעריב

          Comment


          • #6
            i look the link find it's need phpmyadmin but i do not have it!!

            How did you run the query by the way?-no i don't run the query!!

            one question--my forum made in this space[multimania]!!

            but i think this space shouldn't support Telnet access,am i ??

            have another way to make this hack??

            Comment


            • #7
              Nope.

              Install phpMyAdmin, it's very easy to install and you'll find it very useful.
              Chen Avinadav
              Better to remain silent and be thought a fool than to speak out and remove all doubt.

              גם אני מאוכזב מסיקור תחרות לתור מוטור של NRG הרשת ע"י מעריב

              Comment


              • #8
                Can you allow the user to write in the dateformat itself?

                Maybe in normal ways, and not in PHP format (using replace)

                Comment


                • #9
                  An excellent enhancement to my board! Thanks!!

                  Comment


                  • #10
                    Squawel and Gramphos please enter your license information in your profile.

                    Comment


                    • #11
                      I just want to add a quite touch to make the script better

                      Use this code to show the moment date and time


                      In your modifyoptions template add this code:

                      PHP Code:
                      <tr>
                          <
                      td bgcolor="#DFDFDF"><normalfont><b>Date format</b></normalfont><br>
                          <
                      smallfont>Select what format you would like to use for dates.</smallfont></td>
                          <
                      td bgcolor="#DFDFDF"><smallfont>
                          <
                      select name="newdateformat">
                              <
                      option value="-1" $datedefselected>Use forum default</option>
                              <
                      option value="0" $date0selected>$date1</option>        <option value="1" $date1selected>$date2</option>
                              <
                      option value="2" $date2selected>$date3</option>
                              <
                      option value="3" $date3selected>$date4</option>
                              <
                      option value="4" $date4selected>$date5</option>
                              <
                      option value="5" $date5selected>$date6</option>
                              <
                      option value="6" $date6selected>$date7</option>
                              <
                      option value="7" $date7selected>$date8</option>
                              <
                      option value="8" $date8selected>$date9</option>
                              <
                      option value="9" $date9selected>$date10</option>
                              <
                      option value="10" $date10selected>$date11</option>
                              <
                      option value="11" $date11selected>$date12</option>
                          </
                      select></smallfont></td>
                      </
                      tr>
                      <
                      tr>
                          <
                      td bgcolor="#F1F1F1"><normalfont><b>Time format</b></normalfont><br>
                          <
                      smallfont>Select what format you would like to use for times.</smallfont></td>
                          <
                      td bgcolor="#F1F1F1"><smallfont>
                          <
                      select name="newtimeformat">
                              <
                      option value="-1" $timedefselected>Use forum default</option>
                              <
                      option value="0" $time0selected>$time1</option>
                              <
                      option value="1" $time1selected>$time2</option>
                              <
                      option value="2" $time2selected>$time3</option>
                              <
                      option value="3" $time3selected>$time4</option>
                              <
                      option value="4" $time4selected>$time5</option>
                              <
                      option value="5" $time5selected>$time6</option>
                          </
                      select></smallfont></td>
                      </
                      tr
                      In global.php (main directory) add this code:

                      PHP Code:
                       // change to right date format 


                      $date1=Date('m-d-Y');
                      $date2=Date('m-d-y');
                      $date3=Date('m.d.Y');
                      $date4=Date('m.d.y');
                      $date5=Date('d-m-Y');
                      $date6=Date('d-m-y');
                      $date7=Date('d.m.Y');
                      $date8=Date('d.m.y');
                      $date9=Date('F jS, Y');
                      $date10=Date('l, F jS, Y');
                      $date11=Date('jS F Y');
                      $date12=Date('l, jS F Y');

                      $time1=Date('h:i a');
                      $time2=Date('h:i:s a');
                      $time3=Date('h:i A');
                      $time4=Date('h:i:s A');
                      $time5=Date('H:i');
                      $time6=Date('H:i:s');


                      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"


                      • I add the french version too
                      Last edited by [VbbFr]Elie; Thu 20th Sep '01, 5:38am.

                      Comment


                      • #12
                        Hey firefly...think you could get in the habit of putting your hacks in text files? Thanks!

                        Worked great.
                        Seriously! - The Definitive Home of All Things Serious
                        Seriously! Forums

                        To recieve support on these forums, enter your username here.

                        Comment


                        • #13
                          Ummm

                          Originally posted by [VbbFr]Elie
                          I just want to add a quite touch to make the script better

                          Use this code to show the moment date and time


                          In your modifyoptions template add this code:

                          PHP Code:
                          <tr>
                              <
                          td bgcolor="#DFDFDF"><normalfont><b>Date format</b></normalfont><br>
                              <
                          smallfont>Select what format you would like to use for dates.</smallfont></td>
                              <
                          td bgcolor="#DFDFDF"><smallfont>
                              <
                          select name="newdateformat">
                                  <
                          option value="-1" $datedefselected>Use forum default</option>
                                  <
                          option value="0" $date0selected>$date1</option>        <option value="1" $date1selected>$date2</option>
                                  <
                          option value="2" $date2selected>$date3</option>
                                  <
                          option value="3" $date3selected>$date4</option>
                                  <
                          option value="4" $date4selected>$date5</option>
                                  <
                          option value="5" $date5selected>$date6</option>
                                  <
                          option value="6" $date6selected>$date7</option>
                                  <
                          option value="7" $date7selected>$date8</option>
                                  <
                          option value="8" $date8selected>$date9</option>
                                  <
                          option value="9" $date9selected>$date10</option>
                                  <
                          option value="10" $date10selected>$date11</option>
                                  <
                          option value="11" $date11selected>$date12</option>
                              </
                          select></smallfont></td>
                          </
                          tr>
                          <
                          tr>
                              <
                          td bgcolor="#F1F1F1"><normalfont><b>Time format</b></normalfont><br>
                              <
                          smallfont>Select what format you would like to use for times.</smallfont></td>
                              <
                          td bgcolor="#F1F1F1"><smallfont>
                              <
                          select name="newtimeformat">
                                  <
                          option value="-1" $timedefselected>Use forum default</option>
                                  <
                          option value="0" $time0selected>$time1</option>
                                  <
                          option value="1" $time1selected>$time2</option>
                                  <
                          option value="2" $time2selected>$time3</option>
                                  <
                          option value="3" $time3selected>$time4</option>
                                  <
                          option value="4" $time4selected>$time5</option>
                                  <
                          option value="5" $time5selected>$time6</option>
                              </
                          select></smallfont></td>
                          </
                          tr
                          In global.php (main directory) add this code:

                          PHP Code:
                           // change to right date format 


                          $date1=Date('m-d-Y');
                          $date2=Date('m-d-y');
                          $date3=Date('m.d.Y');
                          $date4=Date('m.d.y');
                          $date5=Date('d-m-Y');
                          $date6=Date('d-m-y');
                          $date7=Date('d.m.Y');
                          $date8=Date('d.m.y');
                          $date9=Date('F jS, Y');
                          $date10=Date('l, F jS, Y');
                          $date11=Date('jS F Y');
                          $date12=Date('l, jS F Y');

                          $time1=Date('h:i a');
                          $time2=Date('h:i:s a');
                          $time3=Date('h:i A');
                          $time4=Date('h:i:s A');
                          $time5=Date('H:i');
                          $time6=Date('H:i:s');


                          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"


                          • I add the french version too
                          U could tell us whereto put it

                          Comment


                          • #14
                            Help

                            I fixed the error, now it is working, but there is 1 problem...

                            When i click Submit options, it says:

                            There seems to have been a slight problem with the database. Please try again by pressing the refresh button in your browser.

                            An E-Mail has been dispatched to our Technical Staff, who you can also contact if the problem persists.

                            We apologise for any inconvenience.


                            what is that happening it?
                            Last edited by Soul Lord XL; Mon 17th Sep '01, 4:58pm.

                            Comment


                            • #15
                              What's the error you are gettings?
                              Did you run the query?
                              Chen Avinadav
                              Better to remain silent and be thought a fool than to speak out and remove all doubt.

                              גם אני מאוכזב מסיקור תחרות לתור מוטור של NRG הרשת ע"י מעריב

                              Comment

                              Loading...
                              Working...
                              X