Возраст пользователя в профиле

1639
- Тебе сколько годиков
- Скоро семь,.. пока четыре

Файл components\users\frontend.php
В самом начале после строки:
Код PHP:
if(!defined('VALID_CMS')) { die('ACCESS DENIED'); }
Вставляем функцию которая корректно подписывает возраст:
20 лет, 21 год, 22 года.
Код PHP:
function AgeToStr($Age)
{if(($Age>=5) && ($Age<=14)) $str = "лет"; else { $num = $Age - (floor($Age/10)*10); if($num == 1) { $str = "год"; } elseif($num == 0) { $str = "лет"; } elseif(($num>=2) && ($num<=4)) { $str = "года"; } elseif(($num>=5) && ($num<=9)) { $str = "лет"; } } return $Age . " " . $str ; }
Далее в этом же файле находим строчку
Код PHP:
$usr['birthdate'] 			= $inCore->getRusDate($usr['birthdate']);
И после добавляем:
Код PHP:
$sql = "SELECT birthdate,(YEAR(CURRENT_DATE)-YEAR(birthdate))-(RIGHT(CURRENT_DATE,5)<RIGHT(birthdate,5))AS age FROM cms_users WHERE id=$id";
$result = $inDB->query($sql);
$r = mysql_fetch_array($result) ;
$usr['age']=AgeToStr($r[age]) ;

Файл \templates\_default_\components\com_users_profile.tpl

Находим строки
Код PHP:
<div class="title">Дата рождения:</div>
<div class="value">{$usr.birthdate}</div>
И меняем их по своему усмотрению,
например, так:

Код PHP:
<div class="title">Возраст:</div>
<div class="value">{$usr.age}</div>
Как посмотреть настройки сервера | Правим неудобство в блогах
Комментарии (18)
L.B.Griffin 1 июля 2009 в 16:45 0
Оч. полезное добавление, особенно для сайтов связанных со знакомством  v
widik 1 июля 2009 в 18:21 0
отлично строю сайт знакомст огромное вам maximov спасибо
но у меня изменилось само слово возраст а даты никакой не показывает просто пробел
0 1 июля 2009 в 19:40 0
Возможно что-то не так изменил в файле frontend.php
Попробуй использовать уже измененные файлы
widik 2 июля 2009 в 01:34 0
теперь отлично работает спасибки вам это я где то видимо неправельно внёс простите засранца smile
Константин 3 июля 2009 в 05:47 0
Респект! Спасибо!  hoho
widik 3 июля 2009 в 13:24 0
дорогие разработчики внесите это пожалуйста в следущие версии с возможностью преключения чтобы был выбор паказать возраст или дату рождения поверьте это важно для пользователей особенна на сайтах знакомств
widik 15 июля 2009 в 00:56 0
на 1.5.1 уже не работает что не так ?
forlord 15 июля 2009 в 03:01 0
Как вывести возраст пользователя в общий список пользователей как здесь на сайте вкладка "люди" (только здесь не показывается возраст), было бы удобно просматривая людей сразу видеть и их возраст
0 16 июля 2009 в 16:03 0
найти файл который отвечает за организацию списка и по аналогии с профилем
вставить такой же код
0 15 июля 2009 в 23:12 0
как сменить дату рождения на более раннию, чем 1950. Например 1944г рождения
0 16 июля 2009 в 16:05 0
В файле core/cms.php
править строку:
$year_from = 1950;
0 3 сентября 2009 в 21:23 0
Возраст пользователя в 1.5.2 - работает!
как всегда - при копировании кода со страницы - что то косяки какие-то... скопировал изменённые файлы, взял из них код сам по вышеприведённой инструкции вставил в файлы от версии 1.5.2 - всё заработало. Только один момент: в отличии от этого:
Находим строки   Код:  Дата рождения:  {$usr.birthdate}  И меняем их по своему усмотрению,   например, так:    Код:  Возраст:  {$usr.age}
я просто сохранил и поле "Дата рождения" и "Возраст" (потому как в функционале версии 1.5.2 можно в настройках отключить показ даты рождения - и тогда останется только поле "Возраст"). Кому надо - выкладываю архив с изменёнными файлами для версии 1.5.2 - забирать тут. Ещё раз скажу - ИСПОЛЬЗОВАТЬ ДАННЫЕ ФАЙЛЫ ОСТОРОЖНО. ЕСЛИ У ВАС НЕСТАНДАРТНЫЙ ШАБЛОН (отличный от "_default_")ТО ПРИДЁТСЯ ВСЁ САМИМ ПРАВИТЬ РУЧКАМИ. ОБЯЗАТЕЛЬНО ПЕРЕД ВНЕСЕНИЕМ КАКИХ ЛИБО ИЗМЕНЕНИЙ В СВОИ ФАЙЛЫ СДЕЛАЙТЕ ИХ АРХИВНУЮ КОПИЮ.
Ну и естесственно хочу напомнить, что автором данного "мода" является господин МАКСИМов - за что ему большое спасибо!
С уважением
Антон.
Эдуард Исламов 3 сентября 2009 в 21:35 +1
При копировании со страницы не косяки  smile - проблема с апострофами - (&#8217;). Должны быть прямыми - а здесь при публикации они "превращаются" в косые...
0 3 сентября 2009 в 22:32 0
hoho Действительно... мелочь вроде - а проглядел. "Глаз не цепляется" - вроде апостроф есть и есть - а то что он "кривой" и неподметил  smile . Спасибо - теперь буду проверять.
alpik 23 февраля 2010 в 17:53 0
ссылки все битые... :(
WALTERZ 15 мая 2012 в 13:51 0
А ещё можно так ;)
Код PHP:
SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(now()) - TO_DAYS(@birthdate)), '%Y') + 0; 
Keep 18 января 2014 в 19:15 0
Может кто нибудь поправить этот хак под 1.10.3?
Keep 19 января 2014 в 00:57 0
Решение тут