Добавляем вывод аватаров в модуле FBLatest

Примерно во времена появления форума FireBoard появился и модуль FBLatest, предназначенный для вывода последних сообщений форума. В стандартном виде он представлял из себя исключительно ссылки на последние посты форума, имена авторов и дату. Но вот с форумными аватарами этот модуль смотится куда интереснее, так что добавляем.

Для этого добавим одну функцию в mod_fblatest.php и еще пару строк кода.

1. Для начала нам понадобиться флаг при использовании которого в настройках модуля в админке мы будем выводить аватар:

$item_format = str_replace( "%A", fblatest_makeavatar( $post->userid ), $item_format );

2. Во-вторых перепишем функцию fblatest_makesubjectlink( $post, $text, $componentname, $name) следующим образом:

function fblatest_makesubjectlink( $post, $text, $componentname, $name)
{
global $database;
	$database->setQuery( "SELECT avatar FROM `jos_fb_users` WHERE userid ='".$userid."';" );
$userDetails=$database->loadObjectList();
foreach($userDetails as $user)
	{$username  = $user->name;
	#echo $name;
	} 
	#$url = 'index.php?option='.$componentname.'&Itemid='.$menuitemid.'&func=view&catid='.$post->catid.'&id='.$post->id;
	$url = 'index.php?option='.$componentname.'&Itemid=52'.'&func=view&catid='.$post->catid.'&id='.$post->id;
	if (function_exists( 'sefRelToAbs' ))
	  $url = sefRelToAbs( $url );
	return '<a href="'.$url.'#'.$post->id.'">'.$text.'</a>';
}

3. И в третьих создадим новую функцию fblatest_makeavatar( $userid ):

function fblatest_makeavatar( $userid )
{
global $database;
$database->setQuery( "SELECT avatar FROM `jos_fb_users` WHERE userid ='".$userid."';" );
$userDetails=$database->loadObjectList();
	foreach($userDetails as $user)
	{$username  = $user->name;
	$fbavatar  = $user->avatar;
if ($fbavatar == '') {
	$fbav= "<img src=\"images/fbfiles/avatars/s_nophoto.jpg\" width=\"50\">";
		} else
	$fbav= '<img src="images/fbfiles/avatars/s_' . $fbavatar . '" height=\"50\" />';
		}
	return $fbav;
}

Комментариев: 2

  • 05.10.2010 Андрей:

    А как вывод из community builder аватаров реализовать не снаете?

    • 05.10.2010 Кирилл:

      Делать конкретно это не приходилось, но думаю можно сделать подобным описанному образом (при понимании php и sql): селектить адрес картинки аватара по id юзера из таблицы юзеров community builder и выводить ее в соотвествующем модуле. А еще можно поискать готовый модуль на joomlaforum.ru или joomla.org


Добавление комментария:

 css.php