Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Выво пола автора последнего сообщения на index.php

Ответы на вопросы, связанные с модами для phpBB 2.0.x, кроме относящихся к форуму Для авторов (phpBB 2.0.x).
Аватара пользователя
blazch
phpBB 1.4.4
Сообщения: 114
Стаж: 19 лет 1 месяц

Выво пола автора последнего сообщения на index.php

Сообщение blazch »

У меня устновлен мод пола пользователя, как эту картинку показывать и на index.php и на viewforum.php?
Т.е. как на http://damochka.ru/bb/ где отображаются картинки асек рядом с пользователем, а мне нужно не картинку аськи а картинку пола.
Понимаю что нужно лишь сделать допольнительный запрос к баще и кое-что поменять в выдаче, но как? Помогите плиззз...
Аватара пользователя
blazch
phpBB 1.4.4
Сообщения: 114
Стаж: 19 лет 1 месяц

Сообщение blazch »

Все проблему решил сам, пример на http://4allforum.com
Сделал вывод пола и у последних кто написал сообщение и у модераторов, в зависимости от пола цвет юзера тоже меняется.
Сделал грубо, но простите, не профи, можно доработать, чтоб не было так грубо локализовано и развить не только на индексную страницу но и на остальные.

Приведу пример на фоне цвета и пола модераторов:

Код: Выделить всё

	$forum_moderators = array();
	while( $row = $db->sql_fetchrow($result) )
	{
                if ($row['user_gender'] == 1) { $gender_image = '<img src="templates/subSilver/images/icon_minigender_male.gif" border=0>'; $color_moderator = "#0E55F4";}
                else if ($row['user_gender'] == 2) { $gender_image = '<img src="templates/subSilver/images/icon_minigender_female.gif" border=0>'; $color_moderator = "#F91545";}
                else if ($row['user_gender'] == 0) { $gender_image = ''; $color_moderator = "#000000";}


		$forum_moderators[$row['forum_id']][] = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"><font color='.$color_moderator.'>'."".$gender_image ."". $row['username'] .'</font></a>';
	}
Соответственно в SQL-ом запросе добавил запрос поля user_gender.


В остальном принцип тот же.

Добавлено спустя 23 минуты 20 секунд:

Вот никак не могу найти кусок кода в index.php отвечающий за выдачу вот этого:
Наши пользователи оставили сообщений: 3,465
Всего зарегистрированных пользователей: 822
Последний зарегистрированный пользователь: topol
Сейчас посетителей на форуме: 1, из них зарегистрированных: 1, скрытых: 0 и гостей: 0 [ Администратор ] [ Модератор ]
Больше всего посетителей (21) здесь было 02 Дек 2004 01:23 pm
Зарегистрированные пользователи: root
Добавлено спустя 6 минут 25 секунд:

Да и надо это дело реализовать как-то более серьезно на уровне автомата выдачи скриптом, чтоб не править кучу файлов.

Вот резюмируя что я хочу:
Чтобы ник выводился цветом в зависимости от его пола и рядом стояла иконка его пола, в viewtopic.php отображался лишь цвет в зависимости от пола (иконка пола там уже есть после установки соответсствующего мода).
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Стаж: 19 лет 4 месяца
Откуда: Novosibirsk,RU

Сообщение [R: R@m$e$ :U] »

Вот никак не могу найти кусок кода в index.php отвечающий за выдачу вот этого:
Наши пользователи оставили сообщений: 3,465

Код: Выделить всё

$total_posts = get_db_stat('postcount');

Код: Выделить всё

if( $total_posts == 0 )
{
	$l_total_post_s = $lang['Posted_articles_zero_total'];
}
else if( $total_posts == 1 )
{
	$l_total_post_s = $lang['Posted_article_total'];
}
else
{
	$l_total_post_s = $lang['Posted_articles_total'];
}

Код: Выделить всё

		'TOTAL_POSTS' => sprintf($l_total_post_s, $total_posts),
Всего зарегистрированных пользователей: 822

Код: Выделить всё

$total_users = get_db_stat('usercount');

Код: Выделить всё

		'TOTAL_USERS' => sprintf($l_total_user_s, $total_users),
Последний зарегистрированный пользователь: topol

Код: Выделить всё

$newest_userdata = get_db_stat('newestuser');
[code]		'NEWEST_USER' => sprintf($lang['Newest_user'], '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$newest_uid") . '">', $newest_user, '</a>'), 
$newest_user = $newest_userdata['username'];
$newest_uid = $newest_userdata['user_id'];[/code]

Код: Выделить всё

if( $total_users == 0 )
{
	$l_total_user_s = $lang['Registered_users_zero_total'];
}
else if( $total_users == 1 )
{
	$l_total_user_s = $lang['Registered_user_total'];
}
else
{
	$l_total_user_s = $lang['Registered_users_total'];
}
Сейчас посетителей на форуме: 1, из них зарегистрированных: 1, скрытых: 0 и гостей: 0 [ Администратор ] [ Модератор ]
Больше всего посетителей (21) здесь было 02 Дек 2004 01:23 pm
Зарегистрированные пользователи: root

Код: Выделить всё

	define('SHOW_ONLINE', true);
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
Аватара пользователя
blazch
phpBB 1.4.4
Сообщения: 114
Стаж: 19 лет 1 месяц

Сообщение blazch »

Ок, спасибо, побежал доделывать :)

Добавлено спустя 1 час 58 минут 22 секунды:

Вот сделал и для списка пользователей кто был в течении 24 часов и для Birthday Mod:

Код: Выделить всё

// Birthday Mod, Show users with birthday 
$time_now = time();
$date_now = create_date('md', $time_now, $board_config['board_timezone']);
$date_forward = create_date('md', $time_now+($board_config['birthday_check_day']*86400), $board_config['board_timezone']);
$sql = ($board_config['birthday_check_day']) ? "SELECT user_id, username, user_gender, user_birthday,user_level FROM " . USERS_TABLE. " WHERE user_birthday!=999999 ORDER BY username" :"";
if($result = $db->sql_query($sql)) 
{ 
	if (!empty($result)) 
	{ 
		$time_now = time();
		$this_year = create_date('Y', $time_now, $board_config['board_timezone']);
		$date_today = create_date('Ymd', $time_now, $board_config['board_timezone']);
		$date_forward = create_date('Ymd', $time_now+($board_config['birthday_check_day']*86400), $board_config['board_timezone']);
	      while ($birthdayrow = $db->sql_fetchrow($result))
		{ 

		      $user_birthday2 = $this_year.($user_birthday = realdate("md",$birthdayrow['user_birthday'] )); 
      		if ( $user_birthday2 < $date_today ) $user_birthday2 += 10000;
			if ( $user_birthday2 > $date_today  && $user_birthday2 <= $date_forward ) 
			{ 
				// user are having birthday within the next days
				$user_age = ( $this_year.$user_birthday < $date_today ) ? $this_year - realdate ('Y',$birthdayrow['user_birthday'])+1 : $this_year- realdate ('Y',$birthdayrow['user_birthday']); 
				switch ($birthdayrow['user_level'])
				{
					case ADMIN :
		      			$birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>'; 
						break;
					case MOD :
		      			$birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>'; 
						break;
				}
                if ($birthdayrow['user_gender'] == 1) { $gender_image = '<img src="templates/subSilver/images/icon_minigender_male.gif" border=0>'; $color = "#0E55F4";}
                else if ($birthdayrow['user_gender'] == 2) { $gender_image = '<img src="templates/subSilver/images/icon_minigender_female.gif" border=0>'; $color = "#F91545";}
                else if ($birthdayrow['user_gender'] == 0) { $gender_image = ''; $color = "#000000";}

				$birthday_week_list .= ' <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $birthdayrow['user_id']) . '"><font color='.$color.'>'.$gender_image.''. $birthdayrow['username'] . ' ('.$user_age.')</font></a>,'; 
			} else if ( $user_birthday2 == $date_today ) 
      		{ 
				//user have birthday today 
				$user_age = $this_year - realdate ( 'Y',$birthdayrow['user_birthday'] ); 
				switch ($birthdayrow['user_level'])
				{
					case ADMIN :
		      			$birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>'; 
						break;
					case MOD :
			      		$birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>'; 
						break;
				}

				$birthday_today_list .= ' <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $birthdayrow['user_id']) . '"><font color='.$color.'>'.$gender_image.''. $birthdayrow['username'] . ' ('.$user_age.')</font></a>,'; 
		      }
			 
		}
		if ($birthday_today_list) $birthday_today_list[ strlen( $birthday_today_list)-1] = ' ';
		if ($birthday_week_list) $birthday_week_list[ strlen( $birthday_week_list)-1] = ' ';
	} 
	$db->sql_freeresult($result);
}
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Стаж: 19 лет 4 месяца
Откуда: Novosibirsk,RU

Сообщение [R: R@m$e$ :U] »

blazch
да так не просил =) спросил бы.. я бы тебе сказал ;)
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y

Вернуться в «Поддержка модов для phpBB 2.0.x»