예제 #1
0
/**
 * displayStepFive 
 * 
 * @param string $error Any previous errors with this step.
 * 
 * @return void
 */
function displayStepFive($error = '0')
{
    global $cfg_mysql_host, $cfg_mysql_user, $cfg_mysql_pass, $cfg_mysql_db;
    if (empty($_POST['sitename']) || empty($_POST['contact'])) {
        displayStepFour("<p class=\"error\">" . T_('You forgot a required field.  Please fill out all required fields.') . "</p>");
        return;
    }
    include_once 'inc/config_inc.php';
    include_once 'inc/install_inc.php';
    include_once 'inc/datetime.php';
    mysql_connect($cfg_mysql_host, $cfg_mysql_user, $cfg_mysql_pass);
    mysql_select_db($cfg_mysql_db);
    $_POST['sitename'] = mysql_real_escape_string($_POST['sitename']);
    $_POST['contact'] = mysql_real_escape_string($_POST['contact']);
    // Setup Config
    installConfig($_POST['sitename'], $_POST['contact'], 'Family Connections 3.5.0');
    // Setup Navigation
    $order = 0;
    $order2 = 0;
    $nextComOrder = 2;
    $nextShareOrder = 5;
    $params = array();
    // Family News
    if (isset($_POST['sections-news'])) {
        $order = $nextComOrder;
        $nextComOrder++;
    }
    $params['familynews'] = array(3, $order, 0);
    // Prayers
    $order = 0;
    if (isset($_POST['sections-prayers'])) {
        $order = $nextComOrder;
        $nextComOrder++;
    }
    $params['prayers'] = array(3, $order, 0);
    // Recipes
    $order = 0;
    if (isset($_POST['sections-recipes'])) {
        $order = $nextShareOrder;
        $nextShareOrder++;
    }
    $params['recipes'] = array(4, $order, 0);
    // Family Tree
    $order = 0;
    if (isset($_POST['sections-tree'])) {
        $order = $nextShareOrder;
        $nextShareOrder++;
    }
    $params['tree'] = array(4, $order, 0);
    // Documents
    $order = 0;
    if (isset($_POST['sections-documents'])) {
        $order = $nextShareOrder;
        $nextShareOrder++;
    }
    $params['documents'] = array(4, $order, 0);
    // Where Is Everyone
    $order = 0;
    if (isset($_POST['sections-whereiseveryone'])) {
        $order = $nextShareOrder;
        $nextShareOrder++;
    }
    $params['whereiseveryone'] = array(4, $order, 0);
    installNavigation($params);
    echo '
    <div id="column">
        <h1>' . T_('Install') . ' Family Connections</h1>
        <h2>' . T_('Administrative Account') . '</h2>
        <p style="text-align:center">' . T_('Step 5 of 5') . '</p>
        <div class="progress"><div style="width:100%"></div></div>
        <form action="install.php" method="post">
            <p>' . T_('Everyone will be required to have an account and be logged in at all times to use this website.  This will help protect your site.') . '</p>
            <p>' . T_('You must have at least one administrative account.  Please fill out the information below for the person who will be the administrator of this site.') . '</p>
            <div>
                <div class="field-label"><label for="username"><b>' . T_('Username') . '</b> <span class="req">*</span></label></div>
                <div class="field-widget"><input type="text" name="username" id="username"/></div>
            </div>
            <script type="text/javascript">
                var funame = new LiveValidation(\'username\', { onlyOnSubmit: true });
                funame.add(Validate.Presence, {failureMessage: "' . T_('Sorry, but I can\'t install without this information.') . '"});
            </script>
            <div>
                <div class="field-label"><label for="password"><b>' . T_('Password') . '</b> <span class="req">*</span></label></div>
                <div class="field-widget"><input type="password" name="password" id="password"/></div>
            </div>
            <script type="text/javascript">
                var fpass = new LiveValidation(\'password\', { onlyOnSubmit: true });
                fpass.add(Validate.Presence, {failureMessage: "' . T_('Passwords are hard to remember, but unfortunately necessary.') . '"});
            </script>
            <div>
                <div class="field-label"><label for="fname"><b>' . T_('First Name') . '</b> <span class="req">*</span></label></div>
                <div class="field-widget"><input type="text" name="fname" id="fname"/></div>
            </div>
            <script type="text/javascript">
                var ffname = new LiveValidation(\'fname\', { onlyOnSubmit: true });
                ffname.add(Validate.Presence, {failureMessage: "' . T_('Sorry, but I can\'t install without this information.') . '"});
            </script>
            <div>
                <div class="field-label"><label for="lname"><b>' . T_('Last Name') . '</b> <span class="req">*</span></label></div>
                <div class="field-widget"><input type="text" name="lname" id="lname"/></div>
            </div>
            <script type="text/javascript">
                var flname = new LiveValidation(\'lname\', { onlyOnSubmit: true });
                flname.add(Validate.Presence, {failureMessage: "' . T_('Sorry, but I can\'t install without this information.') . '"});
            </script>
            <div>
                <div class="field-label"><label for="email"><b>' . T_('Email Address') . '</b> <span class="req">*</span></label></div>
                <div class="field-widget"><input type="text" name="email" id="email"/></div>
            </div>
            <script type="text/javascript">
                var femail = new LiveValidation(\'email\', { onlyOnSubmit: true });
                femail.add( Validate.Presence, { failureMessage: "' . T_('Sorry, but this information is required.') . '" } );
                femail.add( Validate.Email, { failureMessage: "' . T_('That\'s not a valid email address is it?') . '" } );
                femail.add( Validate.Length, { minimum: 10 } );
            </script>
            <div>
                <div class="field-label"><label for="day"><b>' . T_('Birthday') . '</b><span class="req">*</span></label></div>
                <div class="field-widget">
                    <select id="day" name="day">';
    $d = 1;
    while ($d <= 31) {
        echo "<option value=\"{$d}\">{$d}</option>";
        $d++;
    }
    echo '</select><select id="month" name="month">';
    $m = 1;
    while ($m <= 12) {
        echo "<option value=\"{$m}\">" . getMonthAbbr($m) . "</option>";
        $m++;
    }
    echo '</select><select id="year" name="year">';
    $y = 1900;
    while ($y - 5 <= gmdate('Y')) {
        echo "<option value=\"{$y}\">{$y}</option>";
        $y++;
    }
    echo '
                    </select>
                </div>
            </div>
            <p style="text-align:right;"><input id="submit" name="submit5" type="submit"  value="' . T_('Next') . ' >>"/></p>
            <div class="clear"></div>
        </form>
    </div><!-- /column -->';
}
예제 #2
0
    /**
     * displayEditForm
     * 
     * Displays the form to edit an existing calendar event.
     *
     * @param   int     $id
     * @return  void
     */
    function displayEditForm($id)
    {
        $id = (int) $id;
        $sql = "SELECT `id`, `date`, `time_start`, `time_end`, `date_added`, \n                    `title`, `desc`, `created_by`, `category`, `repeat`, `private`, `invite`\n                FROM `fcms_calendar` \n                WHERE `id` = ?\n                LIMIT 1";
        $row = $this->fcmsDatabase->getRow($sql, $id);
        if ($row === false) {
            $this->fcmsError->displayError();
            return;
        }
        // Make sure then can edit this event
        if ($this->fcmsUser->access > 1 and $row['created_by'] != $this->fcmsUser->id) {
            echo '
            <div class="error-alert">' . T_('You do not have permission to perform this task.') . '</div>';
            return;
        }
        list($year, $month, $day) = explode('-', $row['date']);
        for ($i = 1; $i <= 31; $i++) {
            $days[$i] = $i;
        }
        for ($i = 1; $i <= 12; $i++) {
            $months[$i] = getMonthAbbr($i);
        }
        for ($i = 1900; $i <= date('Y') + 5; $i++) {
            $years[$i] = $i;
        }
        $times = $this->getTimesList();
        $title = cleanOutput($row['title']);
        $desc = cleanOutput($row['desc']);
        $allDayChk = empty($row['time_start']) ? 'checked="checked"' : '';
        // Setup category field
        $sql = "SELECT *\n                FROM `fcms_category` \n                WHERE `type` = 'calendar'";
        $rows = $this->fcmsDatabase->getRows($sql);
        if ($rows === false) {
            $this->fcmsError->displayError();
            return;
        }
        $choose = '';
        foreach ($rows as $r) {
            if ($r['name'] == '') {
                $choose = '<option value="' . $r['id'] . '"></option>';
            } else {
                $categories[$r['id']] = $r['name'];
            }
        }
        $repeatChk = $row['repeat'] == 'yearly' ? 'checked="checked"' : '';
        $privateChk = $row['private'] == 1 ? 'checked="checked"' : '';
        $inviteChk = $row['invite'] == 1 ? 'checked="checked"' : '';
        // Display the form
        echo '
            <form id="frm" method="post" action="calendar.php">
                <fieldset>
                    <legend><span>' . T_('Edit Event') . '</span></legend>
                    <div class="field-row">
                        <div class="field-label"><label for="title"><b>' . T_('Event') . '</b></label></div>
                        <div class="field-widget">
                            <input type="text" id="title" name="title" size="40" value="' . $title . '"/>
                            <script type="text/javascript">
                                var ftitle = new LiveValidation(\'title\', { onlyOnSubmit: true});
                                ftitle.add(Validate.Presence, {failureMessage: ""});
                            </script>
                        </div>
                    </div>
                    <div class="field-row">
                        <div class="field-label"><label for="desc"><b>' . T_('Description') . '</b></label></div>
                        <div class="field-widget">
                            <input type="text" id="desc" name="desc" size="50" value="' . $desc . '"/>
                        </div>
                    </div>
                    <div class="field-row">
                        <div class="field-label"><label for="sday"><b>' . T_('Date') . '</b></label></div>
                        <div class="field-widget">
                            <select id="sday" name="sday">
                                ' . buildHtmlSelectOptions($days, $day) . '
                            </select>
                            <select id="smonth" name="smonth">
                                ' . buildHtmlSelectOptions($months, $month) . '
                            </select>
                            <select id="syear" name="syear">
                                ' . buildHtmlSelectOptions($years, $year) . '
                            </select>
                        </div>
                    </div>
                    <div id="time" class="field-row">
                        <div class="field-label"><label for="sday"><b>' . T_('Time') . '</b></label></div>
                        <div class="field-widget">
                            <select id="timestart" name="timestart">
                                <option></option>
                                ' . buildHtmlSelectOptions($times, $row['time_start']) . '
                            </select> &nbsp;
                            ' . T_('through') . ' &nbsp;
                            <select id="timeend" name="timeend">
                                <option></option>
                                ' . buildHtmlSelectOptions($times, $row['time_end']) . '
                            </select> &nbsp;
                            <input id="all-day" named="all-day" type="checkbox" 
                                onclick="toggleDisable($(\'#timestart\'), $(\'#timeend\'))" ' . $allDayChk . '/>
                            <label for="all-day">' . T_('All Day') . '</label> 
                        </div>
                    </div>
                    <div class="field-row">
                        <div class="field-label"><label for="category"><b>' . T_('Category') . '</b></label></div>
                        <div class="field-widget">
                            <select id="category" name="category">
                                ' . $choose . '
                                ' . buildHtmlSelectOptions($categories, $row['category']) . '
                            </select>
                        </div>
                    </div>
                    <div class="field-row">
                        <div class="field-label"><label for="repeat-yearly"><b>' . T_('Repeat (Yearly)') . '</b></label></div>
                        <div class="field-widget">
                            <input type="checkbox" name="repeat-yearly" id="repeat-yearly" ' . $repeatChk . '/>
                        </div>
                    </div>
                    <div class="field-row">
                        <div class="field-label"><label for="private"><b>' . T_('Private?') . '</b></label></div>
                        <div class="field-widget">
                            <input type="checkbox" name="private" id="private" ' . $privateChk . '/>
                        </div>
                    </div>
                    <div class="field-row">
                        <div class="field-label"><label for="invite"><b>' . T_('Invite Guests?') . '</b></label></div>
                        <div class="field-widget">
                            <input type="checkbox" name="invite" id="invite" ' . $inviteChk . '/>
                        </div>
                    </div>

                    <p>
                        <input type="hidden" name="id" value="' . $id . '"/>
                        <input class="sub1" type="submit" name="edit" value="' . T_('Edit') . '"/> 
                        <input class="sub2" type="submit" id="delcal" name="delete" value="' . T_('Delete') . '"/>
                        ' . T_('or') . '&nbsp;
                        <a href="calendar.php?year=' . $year . '&amp;month=' . $month . '&amp;day=' . $day . '">' . T_('Cancel') . '</a>
                    </p>
                </form>
            </fieldset>';
    }
예제 #3
0
 /**
  * displayEditBasicInfo 
  * 
  * @return void
  */
 function displayEditBasicInfo()
 {
     $sql = "SELECT `fname`, `mname`, `lname`, `maiden`, `bio`, `sex`, \n                    `dob_year`, `dob_month`, `dob_day`\n                FROM `fcms_users`\n                WHERE `id` = '" . $this->fcmsUser->id . "'";
     $row = $this->fcmsDatabase->getRow($sql, $this->fcmsUser->id);
     if ($row === false) {
         $this->fcmsError->displayError();
         return;
     }
     // Gender
     $gender_options = buildHtmlSelectOptions(array('M' => T_('Male'), 'F' => T_('Female')), $row['sex']);
     // Birthday
     $day_list = array();
     $i = 1;
     while ($i <= 31) {
         $day_list[$i] = $i;
         $i++;
     }
     $day_options = buildHtmlSelectOptions($day_list, $row['dob_day']);
     $month_list = array();
     $i = 1;
     while ($i <= 12) {
         $month_list[$i] = getMonthAbbr($i);
         $i++;
     }
     $month_options = buildHtmlSelectOptions($month_list, $row['dob_month']);
     $year_list = array();
     $i = 1900;
     $year_end = fixDate('Y', $this->fcmsUser->tzOffset);
     while ($i <= $year_end) {
         $year_list[$i] = $i;
         $i++;
     }
     $year_options = buildHtmlSelectOptions($year_list, $row['dob_year']);
     echo '
         <div id="sections_menu">
             <ul>
                 <li><a href="profile.php">' . T_('View Stats') . '</a></li>
                 <li><a href="?view=info">' . T_('Basic Information') . '</a></li>
                 <li><a href="?view=picture">' . T_('Profile Picture') . '</a></li>
                 <li><a href="?view=address">' . T_('Address / Contact') . '</a></li>
             </ul>
         </div>
         <div id="leftcolumn">
             <ul class="menu">
                 <li><a href="#section-name">' . T_('Name') . '</a></li>
                 <li><a href="#section-bio">' . T_('Bio') . '</a></li>
                 <li><a href="#section-gender">' . T_('Gender') . '</a></li>
                 <li><a href="#section-birthday">' . T_('Birthday') . '</a></li>
             </ul>
         </div>
         <div id="maincolumn">
             <script type="text/javascript" src="ui/js/livevalidation.js"></script>
             <form id="frm" action="profile.php?view=info" method="post">
             <fieldset id="section-name">
                 <legend><span>' . T_('Name') . '</span></legend>
                 <div class="field-row">
                     <div class="field-label"><label for="fname"><b>' . T_('First') . '</b></label></div>
                     <div class="field-widget">
                         <input type="text" name="fname" size="50" id="fname" value="' . cleanOutput($row['fname']) . '"/>
                     </div>
                 </div>
                 <script type="text/javascript">
                     var ffname = new LiveValidation(\'fname\', { onlyOnSubmit: true });
                     ffname.add(Validate.Presence, {failureMessage: "' . T_('Sorry, but this information is required.') . '"});
                 </script>
                 <div class="field-row">
                     <div class="field-label"><label class="optional" for="mname"><b>' . T_('Middle') . '</b></label></div>
                     <div class="field-widget">
                         <input type="text" name="mname" size="50" id="mname" value="' . cleanOutput($row['mname']) . '"/>
                     </div>
                 </div>
                 <div class="field-row">
                     <div class="field-label"><label for="lname"><b>' . T_('Last') . '</b></label></div>
                     <div class="field-widget">
                         <input type="text" name="lname" size="50" id="lname" value="' . cleanOutput($row['lname']) . '"/>
                     </div>
                 </div>
                 <script type="text/javascript">
                     var flname = new LiveValidation(\'lname\', { onlyOnSubmit: true });
                     flname.add(Validate.Presence, {failureMessage: "' . T_('Sorry, but this information is required.') . '"});
                 </script>
                 <div class="field-row">
                     <div class="field-label"><label class="optional" for="maiden"><b>' . T_('Maiden') . '</b></label></b></div>
                     <div class="field-widget">
                         <input type="text" name="maiden" size="50" id="maiden" value="' . cleanOutput($row['maiden']) . '"/>
                     </div>
                 </div>
             </fieldset>
             <fieldset id="section-bio">
                 <legend><span>' . T_('Bio') . '</span></legend>
                 <div class="field-row">
                     <div class="field-label"><label class="optional" for="bio"><b>' . T_('Bio') . '</b></label></div>
                     <div class="field-widget">
                         <textarea name="bio" id="bio" cols="40" rows="5">' . $row['bio'] . '</textarea>
                     </div>
                 </div>
             </fieldset>
             <fieldset id="section-gender">
                 <legend><span>' . T_('Gender') . '</span></legend>
                 <div class="field-row">
                     <div class="field-label"><b><label for="sex">' . T_('Gender') . '</label></b></div>
                     <div class="field-widget">
                         <select id="sex" name="sex">
                             ' . $gender_options . '
                         </select>
                     </div>
                 </div>
                 <script type="text/javascript">
                     var fsex = new LiveValidation(\'sex\', { onlyOnSubmit: true });
                     fsex.add(Validate.Presence, {failureMessage: "' . T_('Sorry, but this information is required.') . '"});
                 </script>
             </fieldset>
             <fieldset id="section-birthday">
                 <legend><span>' . T_('Birthday') . '</span></legend>
                 <div class="field-row">
                     <div class="field-label"><label for="sday"><b>' . T_('Birthday') . '</b></label></div>
                     <div class="field-widget">
                         <select id="sday" name="sday">
                             <option value="">' . T_('Day') . '</option>
                             ' . $day_options . '
                         </select>
                         <select id="smonth" name="smonth">
                             <option value="">' . T_('Month') . '</option>
                             ' . $month_options . '
                         </select>
                         <select id="syear" name="syear">
                             <option value="">' . T_('Year') . '</option>
                             ' . $year_options . '
                         </select>
                     </div>
                 </div>
             </fieldset>
             <p><input class="sub1" type="submit" name="submit" id="submit" value="' . T_('Submit') . '"/></p>
             </form>
         </div>';
 }
예제 #4
0
파일: FamilyTree.php 프로젝트: lmcro/fcms
 /**
  * displayCreateUserForm 
  * 
  * Displays the form for creating a new user to be added to the family tree
  * 
  * @param string $type 
  * @param int    $userId 
  * 
  * @return void
  */
 function displayCreateUserForm($type, $userId)
 {
     $userId = (int) $userId;
     $displayname = getUserDisplayName($userId, 2);
     switch ($type) {
         case 'father':
             $sex = 'M';
             $legend = sprintf(T_('Add New Father for %s'), $displayname);
             $options = $this->getAddFatherMotherAdditionalOptions($userId, $type);
             break;
         case 'mother':
             $sex = 'F';
             $legend = sprintf(T_('Add New Mother for %s'), $displayname);
             $options = $this->getAddFatherMotherAdditionalOptions($userId, $type);
             break;
         case 'brother':
             $sex = 'M';
             $legend = sprintf(T_('Add New Brother for %s'), $displayname);
             $options = $this->getAddBrotherSisterAdditionalOptions($userId);
             break;
         case 'sister':
             $sex = 'F';
             $legend = sprintf(T_('Add New Sister for %s'), $displayname);
             $options = $this->getAddBrotherSisterAdditionalOptions($userId);
             break;
         case 'spouse':
             $sex = '?';
             $legend = sprintf(T_('Add New Spouse for %s'), $displayname);
             $options = $this->getAddSpouseAdditionalOptions($userId);
             break;
         case 'child':
             $sex = '?';
             $legend = sprintf(T_('Add New Child for %s'), $displayname);
             $options = $this->getAddChildAdditionalOptions($userId);
             break;
         default:
             echo '
         <div class="error-alert">' . T_('Invalid Display Type') . '</div>';
             return;
     }
     if ($options === false) {
         $this->fcmsError->displayError();
         return;
     }
     $dayList = array();
     $i = 1;
     while ($i <= 31) {
         $dayList[$i] = $i;
         $i++;
     }
     $monthList = array();
     $i = 1;
     while ($i <= 12) {
         $monthList[$i] = getMonthAbbr($i);
         $i++;
     }
     $validator = new FormValidator();
     echo '
     <form action="familytree.php?create=submit" method="post">
         <fieldset class="relationship-form">
             <legend><span>' . $legend . '</span></legend>
             <div class="cols">
                 <div>
                     <label for="fname"><b>' . T_('First Name') . '</b></label><br/>
                     <input class="frm_text" type="text" name="fname" id="fname" size="25"/>
                 </div>
                 <div>
                     <label for="mname"><b>' . T_('Middle Name') . '</b></label><br/>
                     <input class="frm_text" type="text" name="mname" id="mname" size="25"/>
                 </div>
                 <div>
                     <label for="lname"><b>' . T_('Last Name') . '</b></label><br/>
                     <input class="frm_text" type="text" name="lname" id="lname" size="25"/>
                 </div>
             </div>';
     // don't show maiden name unless it's needed
     if ($sex == 'F' || $sex == '?') {
         echo '
             <p class="maiden-name">
                 <label for="maiden"><b>' . T_('Maiden Name') . '</b></label><br/>
                 <input class="frm_text" type="text" name="maiden" id="maiden" size="25"/>
             </p>';
     }
     // We don't know the sex of the child or spouse, but we do for all other relationships
     if ($sex === '?') {
         echo '
             <p>
                 <label><b>' . T_('Sex') . '</b></label><br/>
                 <select id="sex" name="sex">
                     ' . buildHtmlSelectOptions(array('M' => T_('Male'), 'F' => T_('Female')), '-1') . '
                 </select>
             </p>';
     } else {
         echo '<div><input type="hidden" id="sex" name="sex" value="' . $sex . '"/></div>';
     }
     echo '
             <p id="living_deceased" style="display:none;">
                 <label for="living_option" class="radio_label">
                     <input type="radio" id="living_option" name="living_deceased_options" checked="checked" value="1"/>
                     ' . T_('Living') . '
                 </label>
                 &nbsp; &nbsp; &nbsp;
                 <label for="deceased_option" class="radio_label">
                     <input type="radio" id="deceased_option" name="living_deceased_options" value="1"/>
                     ' . T_('Deceased') . '
                 </label>
             </p>
             <div class="dob_dod">
                 <div class="half">
                     <label for="day"><b>' . T_('Birthday') . '</b></label><br/>
                     <select id="bday" name="bday">
                         <option value="">' . T_('Day') . '</option>
                         ' . buildHtmlSelectOptions($dayList, "") . '
                     </select>
                     <select id="bmonth" name="bmonth">
                         <option value="">' . T_('Month') . '</option>
                         ' . buildHtmlSelectOptions($monthList, "") . '
                     </select>
                     <input class="frm_text" type="text" name="byear" id="byear" size="5" maxlength="4" placeholder="' . T_('Year') . '"/>
                 </div>
                 <div id="deceased" class="half">
                     <label for="day"><b>' . T_('Date Deceased') . '</b></label><br/>
                     <select id="dday" name="dday">
                         <option value="">' . T_('Day') . '</option>
                         ' . buildHtmlSelectOptions($dayList, "") . '
                     </select>
                     <select id="dmonth" name="dmonth">
                         <option value="">' . T_('Month') . '</option>
                         ' . buildHtmlSelectOptions($monthList, "") . '
                     </select>
                     <input class="frm_text" type="text" name="dyear" id="dyear" size="5" maxlength="4" placeholder="' . T_('Year') . '"/>
                 </div>
             </div>
             ' . $options . '
             ' . $validator->getJsValidation($this->getProfile('create')) . '
             <p>
                 <input type="hidden" id="id" name="id" value="' . $userId . '"/>
                 <input type="hidden" id="type" name="type" value="' . cleanOutput($type) . '"/>
                 <input class="sub1" type="submit" id="submit" name="submit" value="' . T_('Add') . '"/> &nbsp;
                 <a href="familytree.php?view=' . $this->currentTreeUserId . '">' . T_('Cancel') . '</a>
             </p>
         </fieldset>
     </form>';
 }
예제 #5
0
파일: datetime.php 프로젝트: lmcro/fcms
/**
 * formatBirthday 
 * 
 * Because birthdays are not required, user can have parts of a birthday.
 * This will format those partial dates in a nice way.
 * 
 * Shows the following partial dates:
 *  Y-m-d   - 2011-03-15
 *  F, Y    - March, 2011
 *  M. j    - Mar. 15
 *  Y       - 2011
 * 
 * @param string $year 
 * @param string $month 
 * @param string $day 
 * 
 * @return string
 */
function formatBirthday($year, $month, $day)
{
    if (!empty($year)) {
        if (!empty($month)) {
            if (!empty($day)) {
                return getMonthName((int) $month) . ', ' . $day . ' ' . $year;
            } else {
                return getMonthName((int) $month) . ', ' . $year;
            }
        } else {
            return $year;
        }
    } elseif (!empty($month)) {
        if (!empty($day)) {
            return getMonthAbbr((int) $month) . '. ' . $day;
        }
    }
    return '';
}