Перейти к контенту

[2.3.x]Возраст пользователя в топике


Рекомендуемые сообщения

index.php?app=downloads&module=display&section=screenshot&id=345

Название: Возраст пользователя в топике

Добавил: smash_TeAm

Добавлен: 31 Окт 2006

Обновлен: 09 Ноя 2007

Категория: IP.Board 2.3.x

 

Отображение возраста в топике для 2.1.х, 2.2.x, 2.3.x

Выводит полный возраст в краткой информации о пользователе при просмотре темы

 

Нажмите здесь, чтобы скачать файл

Ссылка на комментарий
Поделиться на других сайтах

  • Ответы 55
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

Ну, если добавлять столько кода - то можно конечно и мод.

		if ($member['bday_year'] && $member['bday_month'] && $member['bday_day'])
	{
		$year_today = date("Y");
		$month_today = date("m");
		$day_today = date("d");
		$year_born = $member['bday_year'];
		$month_born = $member['bday_month'];
		$day_born = $member['bday_day'];
		if ($month_born == $month_today && $day_born == $day_today)
			{
			$birtday = $year_today - $year_born;
			$member['old'] = "$birtday <br><b>{{ipb.lang['birtday']}</b>";
			}
			elseif ($month_born <= $month_today && $day_born <= $day_today)
				{
				$member['old'] = $year_today - $year_born;
				}
				else 
					{
					$member['old'] = $year_today - $year_born -1;
					}

Зачем такие извращения ? Вся эта штука делается в 2 строчки.

http://php.net/time http://php.net/strtotime http://php.net/date

Изменено пользователем Destruction
Ссылка на комментарий
Поделиться на других сайтах

А чем тут много кода? Дату записаную в бд в виде "31 5 2006" сравнил с текущей датой в таком же формате - так мне показалось проще.... И условий вроде немного...

Если кто подскажет как лучше сделать - буду только рад, я же ещё только учусь :D

Ссылка на комментарий
Поделиться на других сайтах

Заметил непонятное явление.... После 12 часов ПМ, возраст у всех почему-то убавился на год....

г ыг ыгы гыгы

помолодели они :D

Ссылка на комментарий
Поделиться на других сайтах

Смех смехом, но вот понять не могу в чем тут прикол. Изменений не вносил никаких. Работало нормально. Но вот с 1 ноября все помолодели на год )) Как поправить?
Ссылка на комментарий
Поделиться на других сайтах

Zeratull,

Должно отображаться, если строго по инструкции, то прямо в топике, под полем "Регистрация: х.х.хххх" появится поле "Возраст: хх" (только при условии что дата рождения указана полностью).

 

Nightmare,

Не понял, вы наверное меняли формат даты регистрации? или у Вас на локальной машине стоит дата в 12 часовом формате?

Ссылка на комментарий
Поделиться на других сайтах

Вроде разобрался... Вот в этом коде мода, по идее и минусуется год:

 $member['old'] = $year_today - $year_born -1;

Поставил значение -0, теперь нормально отображается.

Вот только вопрос... Почему тогда возраст сразу нормально отображался при значении -1?

Ссылка на комментарий
Поделиться на других сайтах

Nightmare,

Исправляюсь:

В файле /sources/action_public/topics.php вместо предыдущего кода вписать следующий:


if ($member['bday_year'] && $member['bday_month'] && $member['bday_day'])
	{
	$year_today = date("Y");
	$month_today = date("m");
	$day_today = date("d");
	$year_born = $member['bday_year'];
	$month_born = $member['bday_month'];
	$day_born = $member['bday_day'];

if ($month_born == $month_today && $day_born == $day_today)
			{
				$birtday = $year_today - $year_born;
				$member['old'] = "$birtday <br><b>{$this->ipsclass->lang['birtday']}</b>";
			}
	elseif ($month_born == $month_today && $day_born < $day_today) 
 		{
			$member['old'] = $year_today - $year_born;
		}
	elseif ($month_born === $month_today && $day_born > $day_today)
		{
			$member['old'] = $year_today - $year_born -1;
		}
	elseif ($month_born < $month_today)
					{
						$member['old'] = $year_today - $year_born;
					}
		else 
			{
			$member['old'] = $year_today - $year_born -1;
			}

$member['member_old'] = $this->ipsclass->compiled_templates['skin_topic']->member_old( $member['old']);
	}

 

Архив обновлён.

Ссылка на комментарий
Поделиться на других сайтах

У меня такая проблема:

 

ИПБ 2.1.7

 

поставил мод, расчитывает возраст правильно, но только видны цифры возратса тупо, и проблема сама в том что перед цифрами нету слов: Возраст...

 

Что делать? я этот мод 2 раза ставил, и не могу понять в чем проблема, в lan файле прописал перевод, в хтмл редакторе вписал member_old, все делал по инструкциии.... на разных даже скинах для форума провбовал... всервно видны только цифры возраста... =\

Ссылка на комментарий
Поделиться на других сайтах

А можно сделать так чтоб вместо 6,11,1981 показывал сколько лет ему (напр: 25)... И как можно его добавить в обьязательное поле при регистрации?
Ссылка на комментарий
Поделиться на других сайтах

и вот что за ошибка выходит после того как все делаю...

 

mySQL query error: SELECT p.*,
			m.id,m.name,m.mgroup,m.email,m.joined,m.posts, m.last_visit, m.last_activity,m.login_anonymous,m.title,m.hide_email, m.warn_level, m.warn_lastwarn,
			me.msnname,me.aim_name,me.icq_number,me.signature, me.website,me.yahoo,me.location, me.avatar_location, me.avatar_type, me.avatar_size, m.members_display_name, m.bday_day, m.bday_month, m.bday_year
			pc.*
			FROM ibf_posts p
			  LEFT JOIN ibf_members m ON (p.author_id=m.id)
			  LEFT JOIN ibf_member_extra me ON (me.id=m.id)
			  LEFT JOIN ibf_pfields_content pc ON (pc.member_id=p.author_id)
			WHERE p.pid IN(57640,58697,61022,62581,62968,65822) ORDER BY pid asc

SQL error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.*
			FROM ibf_posts p
			  LEFT JOIN ibf_members m ON (p.author_id=m.id)
' at line 4
SQL error code: 
Date: 11.11.2006, 17:39

Ссылка на комментарий
Поделиться на других сайтах

Это вызвано, что вы лицензией не пользуетесь.

 

Откройте mysql_queries.php найдите там

				FROM .SQL_PREFIX."posts p
			  LEFT JOIN ".SQL_PREFIX."members m ON (p.author_id=m.id)
			  LEFT JOIN ".SQL_PREFIX."member_extra me ON (me.id=m.id)
			WHERE p.pid IN(".implode(',', $a['pids']).") ORDER BY {$a['scol']} {$a['sord']};

и замените на

				FROM ".SQL_PREFIX."posts p
			  LEFT JOIN ".SQL_PREFIX."members m ON (p.author_id=m.id)
			  LEFT JOIN ".SQL_PREFIX."member_extra me ON (me.id=m.id)
			WHERE p.pid IN(".implode(',', $a['pids']).") ORDER BY {$a['scol']} {$a['sord']}";

 

Вроде так правильно должно быть.

 

Короче, должно быть так, как приведено во втором КОДе. меняй

Ссылка на комментарий
Поделиться на других сайтах


×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.