Seite 1 von 1

Last Post in Profile View

Verfasst: 07.03.2003 14:05
von neo18tilidie
Dieses ziemlich einfache Mod hab ich komischerweise nirgends gefunden...
Zeigt wählweise auch mehrere Beiträge an (mehr infos unten)

Code: Alles auswählen

################################################################################### 
## 
## Hack Titel:    Last Post in Profile View 
## Hack Version:  1.0 
## Autor:         neo18tilidie < neo18tilidie@web.de > 
## Beschreibung:  Zeigt den letzten Beitrag im Profil an
##           Wahlweise können auch mehrere Beiträge angezeigt werden
## 
## Dateien zu ändern:        2 
##                        includes/usercp_viewprofile.php
##                        templates/xxx/profile_view_body.tpl 
## 
################################################################################### 

# 
#-----[   FIND in includes/usercp_viewprofile.php ]----------------------------
# 

//
// Output page header and profile_view template
//

# 
#-----[   ADD BEFORE ]-----------------------------------------
# 

// Last Post

$CFG['number_recent_post'] = '1';

$sql = "SELECT * FROM ". FORUMS_TABLE . " ORDER BY forum_id";
if (!$result = $db->sql_query($sql))
{
	message_die(GENERAL_ERROR, 'Could not query forums information', '', __LINE__, __FILE__, $sql);
}
$u_forum_data = array();
while( $row = $db->sql_fetchrow($result) )
{
	$u_forum_data[] = $row;
}

$is_auth_ary = array();
$is_auth_ary = auth(AUTH_ALL, AUTH_LIST_ALL, $userdata, $u_forum_data);

$except_forum_id = '\'start\'';
for ($i = 0; $i < count($u_forum_data); $i++)
{
	if ((!$is_auth_ary[$u_forum_data[$i]['forum_id']]['auth_read']) or (!$is_auth_ary[$u_forum_data[$i]['forum_id']]['auth_view']))
	{
		if ($except_forum_id == '\'start\'')
		{
			$except_forum_id = $u_forum_data[$i]['forum_id'];
		}
		else
		{
			$except_forum_id .= ',' . $u_forum_data[$i]['forum_id'];
		}
	}
}


$sql = "SELECT p.post_time as post_id, p.poster_id, t.topic_id, p.post_id, t.topic_title as topic_title_t, t.forum_id, f.forum_name, f.forum_id as forum_id_f
		FROM " . POSTS_TABLE . " p, " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f
		WHERE t.forum_id NOT IN (" . $except_forum_id . ") AND t.topic_status <> 2
		AND p.poster_id = " . $profiledata['user_id'] . "
		AND t.forum_id != 29
		AND p.topic_id = t.topic_id
		AND t.forum_id =  f.forum_id
		ORDER BY p.post_id DESC
		LIMIT 0," . $CFG['number_recent_post'];
		if (!$result = $db->sql_query($sql))
{
	message_die(GENERAL_ERROR, 'Could not query recent post information', '', __LINE__, __FILE__, $sql);
}
$number_recent_post = $db->sql_numrows($result);
$recent_post_row = array();
while ($row = $db->sql_fetchrow($result))
{
	$recent_post_row[] = $row;
}
for ($i = 0; $i < $number_recent_post; $i++)
{
	$template->assign_block_vars('recent_post_row', array(

		'UP_TITLE' => append_sid("viewtopic.$phpEx?" . POST_POST_URL . '=' . $recent_post_row[$i]['post_id']),
		'LP_TITLE' => $recent_post_row[$i]['topic_title_t'],
		'LP_TITLE_F' => $recent_post_row[$i]['forum_name'],
		'UP_TITLE_F' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . '=' . $recent_post_row[$i]['forum_id']),
		'LP_POST_ID' => $recent_post_row[$i]['post_id']

		)
	);
}


# 
#-----[   FIND in profile_view_body.tpl]-----------------------------------------
# 

<tr class=row2> 
		  <td valign="top" align="right" nowrap="nowrap"><span class="gen">{L_TOTAL_POSTS}:&nbsp;</span></td>
		  <td valign="top"><b><span class="gen">{POSTS}</span></b><br /><span class="genmed">[{POST_PERCENT_STATS} / {POST_DAY_STATS}]</span> <br /><span class="genmed"><a href="{U_SEARCH_USER}" class="genmed">{L_SEARCH_USER_POSTS}</a></span></td>
		</tr>

# 
#-----[   ADD AFTER  ]-----------------------------------------
# 

		<tr class=row2> 
		  <td valign="top" align="right" nowrap="nowrap"><span class="gen">Letzter Beitrag:&nbsp;</span></td>
		  <td valign="top">
			<!-- BEGIN recent_post_row -->
			<span class="genmed"><a href="{recent_post_row.UP_TITLE}#{recent_post_row.LP_POST_ID}"><img src="templates/subSilver/images/icon_latest_reply.gif" alt="Letzten Beitrag anzeigen" title="Letzten Beitrag anzeigen" border="0"   /> <b>{recent_post_row.LP_TITLE}</a></b><br>
			&nbsp;&nbsp;&nbsp;Im Forum <a href="{recent_post_row.UP_TITLE_F}">{recent_post_row.LP_TITLE_F}</a></span>
			<!-- END recent_post_row -->
		  </td>
		</tr>

# 
#-----[ SAVE AND CLOSE ALL FILES ]------------------------------------------ 
# 
Evtl. Image Datei in profile_view_body.tpl <img src="templates/subSilver/images/icon_latest_reply.gif" alt="Letzten Beitrag anzeigen" title="Letzten Beitrag anzeigen" border="0" /> anpassen.
"Letzter Beitrag" kann man natürlich noch in die lang_main.php einfügen, war ich aber zu faul *g*

Wenn mehr als ein Beitrag im Profil angezeigt werden soll einfach $CFG['number_recent_post'] = '1'; ändern und templ. anpassen!
z.B. <br> oder <p> nach &nbsp;&nbsp;&nbsp;Im Forum <a href="{recent_post_row.UP_TITLE_F}">{recent_post_row.LP_TITLE_F}</a></span> einfügen. oder ganz weglöschen.

Demo:
http://party.g0dlike.de/board/profile.p ... rofile&u=9
(http://www.party-portal.org)

P.S.: Vielleicht hat jemand doch noch n Link, falls es das Mod doch schon gibt :-?