Display Friendly Birthdate on Registration

Started by brianjw, September 26, 2008, 03:54:14 PM

Previous topic - Next topic

brianjw

The following codes will display a friendly birthdate on registration. Because I don't have age restrictions on my forum, I didn't include asking for a year on this one.

Screenshot: (Full Size)


Now for the edits:

OPEN Register.template.php which can be found in ./Themes/default/
Code (FIND) Select
if ($context['visual_verification'])
{
echo '
<tr valign="top">
<td width="40%" valign="top">
<b>', $txt['visual_verification_label'], ':</b>
<div class="smalltext">', $txt['visual_verification_description'], '</div>
</td>
<td>';
if ($context['use_graphic_library'])
echo '
<img src="', $context['verificiation_image_href'], '" alt="', $txt['visual_verification_description'], '" id="verificiation_image" /><br />';
else
echo '
<img src="', $context['verificiation_image_href'], ';letter=1" alt="', $txt['visual_verification_description'], '" id="verificiation_image_1" />
<img src="', $context['verificiation_image_href'], ';letter=2" alt="', $txt['visual_verification_description'], '" id="verificiation_image_2" />
<img src="', $context['verificiation_image_href'], ';letter=3" alt="', $txt['visual_verification_description'], '" id="verificiation_image_3" />
<img src="', $context['verificiation_image_href'], ';letter=4" alt="', $txt['visual_verification_description'], '" id="verificiation_image_4" />
<img src="', $context['verificiation_image_href'], ';letter=5" alt="', $txt['visual_verification_description'], '" id="verificiation_image_5" />';
echo '
<input type="text" name="visual_verification_code" size="30" tabindex="', $context['tabindex']++, '" />
<div class="smalltext">
<a href="', $context['verificiation_image_href'], ';sound" onclick="return reqWin(this.href, 400, 120);">', $txt['visual_verification_sound'], '</a> | <a href="', $scripturl, '?action=register" onclick="refreshImages(); return false;">', $txt['visual_verification_request_new'], '</a>
</div>
</td>
</tr>';
}

Code (REPLACE) Select
if ($context['visual_verification'])
{
echo '
<tr valign="top">
<td width="40%" valign="top">
<b>', $txt['visual_verification_label'], ':</b>
<div class="smalltext">', $txt['visual_verification_description'], '</div>
</td>
<td>';
if ($context['use_graphic_library'])
echo '
<img src="', $context['verificiation_image_href'], '" alt="', $txt['visual_verification_description'], '" id="verificiation_image" /><br />';
else
echo '
<img src="', $context['verificiation_image_href'], ';letter=1" alt="', $txt['visual_verification_description'], '" id="verificiation_image_1" />
<img src="', $context['verificiation_image_href'], ';letter=2" alt="', $txt['visual_verification_description'], '" id="verificiation_image_2" />
<img src="', $context['verificiation_image_href'], ';letter=3" alt="', $txt['visual_verification_description'], '" id="verificiation_image_3" />
<img src="', $context['verificiation_image_href'], ';letter=4" alt="', $txt['visual_verification_description'], '" id="verificiation_image_4" />
<img src="', $context['verificiation_image_href'], ';letter=5" alt="', $txt['visual_verification_description'], '" id="verificiation_image_5" />';
echo '
<input type="text" name="visual_verification_code" size="30" tabindex="', $context['tabindex']++, '" />
<div class="smalltext">
<a href="', $context['verificiation_image_href'], ';sound" onclick="return reqWin(this.href, 400, 120);">', $txt['visual_verification_sound'], '</a> | <a href="', $scripturl, '?action=register" onclick="refreshImages(); return false;">', $txt['visual_verification_request_new'], '</a>
</div>
</td>
</tr>';
}

// Ask for their birthday...
echo '<tr>
                  <td width="40%">
                     <b>When is your birthday?</b>
                     <div class="smalltext">We want to wish you a happy birthday when your birthday arrives.</div>
                  </td>
                  <td>
  <select name="bday1" tabindex="', $context['tabindex']++, '">
  <option selected="selected" value="01">January</option>
  <option value="02">February</option>
  <option value="03">March</option>
  <option value="04">April</option>
  <option value="05">May</option>
  <option value="06">June</option>
  <option value="07">July</option>
  <option value="08">August</option>
  <option value="09">September</option>
  <option value="10">October</option>
  <option value="11">November</option>
  <option value="12">December</option>
</select>
                     <select name="bday2" tabindex="', $context['tabindex']++, '">
  <option selected="selected" value="01">1</option>
  <option value="02">2</option>
  <option value="03">3</option>
  <option value="04">4</option>
  <option value="05">5</option>
  <option value="06">6</option>
  <option value="07">7</option>
  <option value="08">8</option>
  <option value="09">9</option>
  <option value="10">10</option>
  <option value="11">11</option>
  <option value="12">12</option>
  <option value="13">13</option>
  <option value="14">14</option>
  <option value="15">15</option>
  <option value="16">16</option>
  <option value="17">17</option>
  <option value="18">18</option>
  <option value="19">19</option>
  <option value="20">20</option>
  <option value="21">21</option>
  <option value="22">22</option>
  <option value="23">23</option>
  <option value="24">24</option>
  <option value="25">25</option>
  <option value="26">26</option>
  <option value="27">27</option>
  <option value="28">28</option>
  <option value="29">29</option>
  <option value="30">30</option>
  <option value="31">31</option>
</select>
                  </td>
          </tr>';

You may modify it as you wish and even add a place to put the birth year. You can kind of see how I am coding this if you look at the values.
For example: Look at january... The value is 01. 01 is the month number for January. So for the years the value of 2000 would be 2000. ;)
You may also want to change the text in it like:

<td width="40%">
                     <b>When is your birthday?</b>
                     <div class="smalltext">We want to wish you a happy birthday when your birthday arrives.</div>
                  </td>


Enjoy :)

Thanks,
Brian

[SiNaN]

Maybe we should do it like this:

Instead of this:

                    <option selected="selected" value="01">January</option>
                    <option value="02">February</option>
                    <option value="03">March</option>
                    <option value="04">April</option>
                    <option value="05">May</option>
                    <option value="06">June</option>
                    <option value="07">July</option>
                    <option value="08">August</option>
                    <option value="09">September</option>
                    <option value="10">October</option>
                    <option value="11">November</option>
                    <option value="12">December</option>


This:

foreach($txt['months_titles'] as $key => $month)
echo '<option value="', $key, '"', $key == 1 ? ' selected="selected"' : '', '>', $month, '</option>';


And instead of this:

                    <option selected="selected" value="01">1</option>
                    <option value="02">2</option>
                    <option value="03">3</option>
                    <option value="04">4</option>
                    <option value="05">5</option>
                    <option value="06">6</option>
                    <option value="07">7</option>
                    <option value="08">8</option>
                    <option value="09">9</option>
                    <option value="10">10</option>
                    <option value="11">11</option>
                    <option value="12">12</option>
                    <option value="13">13</option>
                    <option value="14">14</option>
                    <option value="15">15</option>
                    <option value="16">16</option>
                    <option value="17">17</option>
                    <option value="18">18</option>
                    <option value="19">19</option>
                    <option value="20">20</option>
                    <option value="21">21</option>
                    <option value="22">22</option>
                    <option value="23">23</option>
                    <option value="24">24</option>
                    <option value="25">25</option>
                    <option value="26">26</option>
                    <option value="27">27</option>
                    <option value="28">28</option>
                    <option value="29">29</option>
                    <option value="30">30</option>
                    <option value="31">31</option>


This:

$day = 1;
while($day < 32)
{
echo '<option value="', $day, '"', $day == 1 ? ' selected="selected"' : '', '>', $day, '</option>';
$day++;
}


And maybe you can include the year too, for general use.
Former SMF Core Developer | My Mods | SimplePortal

brianjw

Thank you [SiNaN]! :) I will update my site to use that as well. I will work on a year as well.

bliljerk101

I like this code, guys. I fixed it up for you two though, and I added years for you.

Here is an official one:

Replace this:

if ($context['visual_verification'])
{
echo '
<tr valign="top">
<td width="40%" valign="top">
<b>', $txt['visual_verification_label'], ':</b>
<div class="smalltext">', $txt['visual_verification_description'], '</div>
</td>
<td>';
if ($context['use_graphic_library'])
echo '
<img src="', $context['verificiation_image_href'], '" alt="', $txt['visual_verification_description'], '" id="verificiation_image" /><br />';
else
echo '
<img src="', $context['verificiation_image_href'], ';letter=1" alt="', $txt['visual_verification_description'], '" id="verificiation_image_1" />
<img src="', $context['verificiation_image_href'], ';letter=2" alt="', $txt['visual_verification_description'], '" id="verificiation_image_2" />
<img src="', $context['verificiation_image_href'], ';letter=3" alt="', $txt['visual_verification_description'], '" id="verificiation_image_3" />
<img src="', $context['verificiation_image_href'], ';letter=4" alt="', $txt['visual_verification_description'], '" id="verificiation_image_4" />
<img src="', $context['verificiation_image_href'], ';letter=5" alt="', $txt['visual_verification_description'], '" id="verificiation_image_5" />';
echo '
<input type="text" name="visual_verification_code" size="30" tabindex="', $context['tabindex']++, '" />
<div class="smalltext">
<a href="', $context['verificiation_image_href'], ';sound" onclick="return reqWin(this.href, 400, 120);">', $txt['visual_verification_sound'], '</a> | <a href="', $scripturl, '?action=register" onclick="refreshImages(); return false;">', $txt['visual_verification_request_new'], '</a>
</div>
</td>
</tr>';
}


With this:

if ($context['visual_verification'])
{
echo '
<tr valign="top">
<td width="40%" valign="top">
<b>', $txt['visual_verification_label'], ':</b>
<div class="smalltext">', $txt['visual_verification_description'], '</div>
</td>
<td>';
if ($context['use_graphic_library'])
echo '
<img src="', $context['verificiation_image_href'], '" alt="', $txt['visual_verification_description'], '" id="verificiation_image" /><br />';
else
echo '
<img src="', $context['verificiation_image_href'], ';letter=1" alt="', $txt['visual_verification_description'], '" id="verificiation_image_1" />
<img src="', $context['verificiation_image_href'], ';letter=2" alt="', $txt['visual_verification_description'], '" id="verificiation_image_2" />
<img src="', $context['verificiation_image_href'], ';letter=3" alt="', $txt['visual_verification_description'], '" id="verificiation_image_3" />
<img src="', $context['verificiation_image_href'], ';letter=4" alt="', $txt['visual_verification_description'], '" id="verificiation_image_4" />
<img src="', $context['verificiation_image_href'], ';letter=5" alt="', $txt['visual_verification_description'], '" id="verificiation_image_5" />';
echo '
<input type="text" name="visual_verification_code" size="30" tabindex="', $context['tabindex']++, '" />
<div class="smalltext">
<a href="', $context['verificiation_image_href'], ';sound" onclick="return reqWin(this.href, 400, 120);">', $txt['visual_verification_sound'], '</a> | <a href="', $scripturl, '?action=register" onclick="refreshImages(); return false;">', $txt['visual_verification_request_new'], '</a>
</div>
</td>
</tr>';
}

// Ask for their birthday...
echo '<tr>
                  <td width="40%">
                     <b>When is your birthday?</b>
                     <div class="smalltext">We want to wish you a happy birthday when your birthday arrives.</div>
                  </td>
                  <td>';
  echo '<select name="bday1" tabindex="', $context['tabindex']++, '">';
  foreach($txt['months_titles'] as $key => $month)
echo '<option value="', $key, '"', $key == 1 ? ' selected="selected"' : '', '>', $month, '</option>';
echo '</select>';

echo '<select name="bday2" tabindex="', $context['tabindex']++, '">';
            $day = 1;
while($day < 32)
{
echo '<option value="', $day, '"', $day == 1 ? ' selected="selected"' : '', '>', $day, '</option>';
$day++;
}

echo '</select>';

echo '<select name="bday3" tabindex="', $context['tabindex']++, '">';
            $year = 2000;
while($year > 1899)
{
echo '<option value="', $year, '"', $year == 1 ? ' selected="selected"' : '', '>', $year, '</option>';
$year--;
}

echo '</select>';
                echo  '</td>
          </tr>';


I used this with my SMF version 1.1.6. It works great.

nay27uk

is ther anyway of making this so it takes the date yyou enter and if your over 18 it automaticaly tickes the are you over 18 box

nitroglicerino


brianjw

Quote from: nitroglicerino on February 01, 2009, 11:07:12 AM
Does this work with 2.0?
I am not sure. See if you can find the edits it says to find and if you can do some trial and error. ;)

Advertisement: