Определение возраста пользователя по дате рождения для 1.10

1796
Продолжаем переделывать улучшения для 1.10

Определяем возраст пользователя по его дате рождения

""


для этого необходимо в файле components/users/model.php
найти:
Код PHP:
  1. $user['fbirthdate'] = cmsCore::dateFormat($user['birthdate']);
ниже вставляем::
Код PHP:
  1. $user['fage'] = floor((time() - strtotime($user['birthdate']))/31472300);
теперь в templates/_default_/components/com_users_profile.tpl находим:
Код PHP:
  1. {$usr.fbirthdate}
и заменяем на:
Код PHP:
  1. {$usr.fbirthdate} ({$usr.fage|spellcount:'год':'года':'лет'})
Спасибо FUZE за более красивый код

Благодарность

Всегда с Вами, Умные Интернет Разработки

Новое поле: семейное положение (исходя от пола) для 1.10
Комментарии (11)
lokanaft 4 марта 2013 в 11:07 +3
А откуда цифра 31472300 ? ((365*4+1)*24*60*60)/4 = 31557600, не?
Hmelex 4 марта 2013 в 13:51 0
lokanaft 4 марта 2013 в 15:39 +4
И?
Первый результат в поиске:
Код PHP:
  1. function calculate_age($birthday) {
  2. $birthday_timestamp = strtotime($birthday);
  3. $age = date('Y') - date('Y', $birthday_timestamp);
  4. if (date('md', $birthday_timestamp) > date('md')) {
  5. $age--;
  6. }
  7. return $age;
  8. }
И человек 100% постареет именно в полночь, ни секундой раньше, ни секундой позже, а не как в примере - недели на две раньше =D
EVV 4 марта 2013 в 14:09 0
Спасибо!
Петрмаг 4 марта 2013 в 22:16 +1
FUZE у меня к вам чисто просто так вопрос: Где учат так хорошо и выявляют таланты на кодеров-программеров??? Я думаю вас в яше с руками бы оторвали к себе или в гугле
picaboo 4 марта 2013 в 22:34 +9
слишком грубо, надо нежнее льстить..нежнее :)
Максим Шорин 4 марта 2013 в 22:48 +2
слишком грубо, надо нежнее льстить..нежнее :)

ХАХАХАААА! +1 =)))))))))))
letsgo 4 марта 2013 в 23:24 0
Научится)))
Student 29 марта 2013 в 21:09 -1
Ваш хак мне весь сайт испортил!!!!!!!! У меня из-за него меню пользователя и поиск сверху съехал на пол страницы!!!!
Telema93 28 мая 2013 в 18:27 0
что там могло что испортить - просто загадка!
Telema93 28 мая 2013 в 18:36 0
Более интересный вариант:
1. в templates/_default_/components/com_users_profile.tpl находим:
Код PHP:
  1.  
  2. {if $usr.showbirth && $usr.fbirthdate}
  3. <div class="field">
  4. <div class="title">{$LANG.BIRTH}:</div>
  5. <div class="value">{$usr.fbirthdate}</div>
  6. </div>
  7. {if}
  8.  
Заменяем:
Код PHP:
  1.  
  2. {if $usr.showbirth && $usr.fbirthdate}
  3. <div class="field">
  4. <div class="title">{$LANG.BIRTH}:</div>
  5. <div class="value">{$usr.fbirthdate}</div>
  6. </div>
  7. {else}
  8. <div class="field">
  9. <div class="title">{$LANG.BIRTHAGE}:</div>
  10. <div class="value">{$usr.fage|spellcount:'год':'года':'лет'}</div>
  11. </div>
  12. {/if}
  13.  
2. в languages/ru/components/users.php добавляем:
Код PHP:
  1.  
  2. $_LANG['BIRTHAGE'] ='Возраст';
  3.  
Изменяем описание:
"Показывать дату рождения" на выражение "Показ даты рождения"
3. в в templates/_default_/components/com_users_edit_profile.tpl находим:
Код PHP:
  1.  
  2. <tr>
  3. <td valign="top"><strong>{$LANG.SHOW_BIRTH}:</strong> </td>
  4. <td valign="top">
  5. <label><input name="showbirth" type="radio" value="1" {if $usr.showbirth}checked{/if}/> {$LANG.YES} </label>
  6. <label><input name="showbirth" type="radio" value="0" {if !$usr.showbirth}checked{/if}/> {$LANG.NO} </label>
  7. </td>
  8. </tr>
  9.  
и меняем на
Код PHP:
  1.  
  2. <tr>
  3. <td valign="top"><strong>{$LANG.SHOW_BIRTH}:</strong> </td>
  4. <td valign="top">
  5. <label><input name="showbirth" type="radio" value="1" {if $usr.showbirth}checked{/if}/> {$LANG.BIRTH} </label>
  6. <label><input name="showbirth" type="radio" value="0" {if !$usr.showbirth}checked{/if}/> {$LANG.BIRTHAGE} </label>
  7. </td>
  8. </tr>
  9.  
В итоге получаем выбор: показывать возраст или дату рождения