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

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

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

Иллюстрация

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


Webmoney:
R274715901195

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

+3
lokanaft lokanaft 9 лет назад #
А откуда цифра 31472300 ? ((365*4+1)*24*60*60)/4 = 31557600, не?
+4
lokanaft lokanaft 9 лет назад #
И?
Первый результат в поиске:
Код 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
0
EVV EVV 9 лет назад #
Спасибо!
+1
Петрмаг Петрмаг 9 лет назад #
FUZE у меня к вам чисто просто так вопрос: Где учат так хорошо и выявляют таланты на кодеров-программеров??? Я думаю вас в яше с руками бы оторвали к себе или в гугле
+9
picaboo picaboo 9 лет назад #
слишком грубо, надо нежнее льстить..нежнее :)
+2
Максим Шорин Максим Шорин 9 лет назад #
слишком грубо, надо нежнее льстить..нежнее :)

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

Еще от автора

Новое поле: семейное положение (исходя от пола) для 1.10
Здравствуйте, решил выложить переделку Семейное положение для версии 1.10.
Определение возраста пользователя по дате рождения
Решил поделиться небольшим улучшением, делал для себя, может кому-то пригодиться!
Объединяем в профиле пользователя Статус и Последний визит
Здравствуйте, вот решил сделать небольшое улучшение, не факт что всем понравится, но все-таки выкладываю:
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.