Last Post in Profile View

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
neo18tilidie
Mitglied
Beiträge: 56
Registriert: 23.02.2003 13:47
Kontaktdaten:

Last Post in Profile View

Beitrag 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 :-?
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“