Seite 1 von 1

[Gelöst] Letzte eigene Beiträge

Verfasst: 13.08.2013 21:13
von Gast234254
Ich möchte dem angemeldeten User seine letzten Beiträge anzeigen. Soweit habe ich es geschafft. Was ich nicht hin bekomme, ist das die letzten Beiträge dem jeweiligem angemeldetem User zugeordnet werden. Wie erreiche das? Da benötige ich Hilfe von den Profis hier.

php

Code: Alles auswählen

$sql = "SELECT p.post_id, p.forum_id, p.poster_id, p.post_time, p.post_subject, u.username, u.user_colour, t.topic_title
      		FROM " . POSTS_TABLE . " AS p
					LEFT JOIN " . USERS_TABLE . " AS u
					  ON p.poster_id = u.user_id
          LEFT JOIN " . TOPICS_TABLE . " AS t
					  ON p.topic_id = t.topic_id  
      		WHERE p.post_postcount = 1
      		ORDER BY p.post_time DESC";   
$result = $db->sql_query_limit($sql, 5, 0, 60);

while ($row = $db->sql_fetchrow($result))
{
   $template->assign_block_vars('self_posts', array(
   
		 'SELF_DATE'				=> $user->format_date($row['post_time']),
		 'SELF_POST_SUBJECT' => $row['post_subject'],
		 'SELF_POST_URL' 		=> append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'p='.$row["post_id"].'#p'.$row["post_id"]),
	 ));
}
html

Code: Alles auswählen

					<dd style="font-size: 1.1em; padding-left: 2px;"><!-- BEGIN self_posts --><div><a href="{self_posts.SELF_POST_URL}">{self_posts.SELF_POST_SUBJECT}</a><br />&nbsp;&nbsp;&raquo;{self_posts.SELF_DATE} </div><!-- END self_posts --></dd>

Re: Letzte eigene Beiträge

Verfasst: 13.08.2013 21:54
von Miriam

Code: Alles auswählen

$sql = 'SELECT max(post_id) AS post_id, post_time, post_subject FROM ' . POSTS_TABLE . '
            WHERE poster_id = ' . $user->data['user_id'] . '
                GROUP BY topic_id 
                ORDER BY post_id DESC';
Jetzt wird dem angemeldeten User sein jeweils letzter Beitrag (also die Statistik-Infos) aus jedem Thema angezeigt.
Es wird nicht geprüft, ob der User das Thema noch lesen darf oder nicht.

Re: Letzte eigene Beiträge

Verfasst: 13.08.2013 22:00
von Gast234254
Miriam hat geschrieben:

Code: Alles auswählen

$sql = 'SELECT topic_id, MAX(post_id) AS post_id, poster_id, post_time, post_subject FROM ' . POSTS_TABLE . '
            where poster_id = ' . (int) $user->data['user_id'] . '
                GROUP BY topic_id
                ORDER BY last_post DESC'; 
Jetzt wird dem angemeldeten User sein jeweils letzter Beitrag (also die Statistik-Infos) aus jedem Thema angezeigt.
Es wird nicht geprüft, ob der User das Thema noch lesen darf oder nicht.
Danke Miriam. :) Das mit den Lese Berechtigungen, könnte ich das so lösen?

Code: Alles auswählen

while ($row = $db->sql_fetchrow($result))
{
	if ( ($auth->acl_get('f_read', $row['forum_id'])) || ($row['forum_id'] == '0') )
	{
   $template->assign_block_vars('self_posts', array(
   
		 'SELF_DATE'				=> $user->format_date($row['post_time']),
		 'SELF_POST_SUBJECT' => $row['post_subject'],
		 'SELF_POST_URL' 		=> append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'p='.$row["post_id"].'#p'.$row["post_id"]),
	));
	}
}

Re: Letzte eigene Beiträge

Verfasst: 13.08.2013 22:54
von Miriam
$auth->acl_get('f_read', $row['forum_id'] sollte ausreichen.
Wenn die Forum-ID (warum auch immer) 0 sein sollte, hat der User da auch keine Lesebrechtigung, weil es dort keine Rechteeinstellung gibt.

Re: Letzte eigene Beiträge

Verfasst: 13.08.2013 22:58
von Gast234254
Vielen Dank Miriam. Habe wieder was dazu gelernt. :)