Seite 1 von 1

View Friends Posts

Verfasst: 01.10.2009 12:14
von MajorROM
Ich habe das folgende Mod eingebunden, welches mir einen Link liefert, der mir alle Beiträge der User aus meiner Freundesliste auflistet:

http://www.phpbb.com/community/viewtopi ... &t=1675325

Alles klappt soweit prima und nun möchte ich in die Suchergebnisse noch meine eigenen Beiträge einbinden.
In der search.php wurde folgender Code eingeführt und es müsste doch möglich sein, ohne großem Aufwand hier meine eigenen Beiträge einzubauen.

Code: Alles auswählen

 
			case 'friendssearch':
                	        $friends_id_ary = array();
                	        
                                $sql = 'SELECT zebra_id
                                        FROM ' . ZEBRA_TABLE . '
                                        WHERE user_id = ' . $user->data['user_id'] . '
                                                AND friend = 1';
                                $result = $db->sql_query($sql);
                                
                                while ($row = $db->sql_fetchrow($result))
                                {
                                        $friends_id_ary[] = $row['zebra_id'];
                                }
                                
                                if (!sizeof($friends_id_ary))
                                {
                                        trigger_error('NO_FRIENDS');
                                }
                                			
				$l_search_title = $user->lang['SEARCH_FRIENDS'];
						
				$show_results = 'posts';
				$sort_key = 't';
				$sort_dir = 'd';
				$sort_by_sql['t'] = 'p.post_time';
				$sql_sort = 'ORDER BY ' . $sort_by_sql[$sort_key] . (($sort_dir == 'a') ? ' ASC' : ' DESC');

				gen_sort_selects($limit_days, $sort_by_text, $sort_days, $sort_key, $sort_dir, $s_limit_days, $s_sort_key, $s_sort_dir, $u_sort_param);
				$s_sort_key = $s_sort_dir = $u_sort_param = $s_limit_days = '';
                                
				$sql = 'SELECT p.post_id
					FROM ' . POSTS_TABLE . ' p
					WHERE ' . $db->sql_in_set('p.poster_id', $friends_id_ary) . "
						$m_approve_fid_sql
						" . ((sizeof($ex_fid_ary)) ? ' AND ' . $db->sql_in_set('p.forum_id', $ex_fid_ary, true) : '') . "
					$sql_sort";
				$field = 'post_id';				
			break;
			

Re: View Friends Posts

Verfasst: 01.10.2009 12:38
von nickvergessen
finde:

Code: Alles auswählen

                                if (!sizeof($friends_id_ary))
                                {
                                        trigger_error('NO_FRIENDS');
                                }
ersetze mit:

Code: Alles auswählen

$friends_id_ary[] = $user->data['user_id'];

Re: View Friends Posts

Verfasst: 01.10.2009 12:56
von MajorROM
Super, vielen Dank für die schnelle Hilfe.

Re: View Friends Posts

Verfasst: 05.11.2009 13:12
von MajorROM
Jetzt versuche ich, die Anzeige der eigenen Beiträge auf ein bestimmtes Forum zu begrenzen, es sollen also nur die Beiträge eines bestimmten Forums angezeigt werden. Dazu werde ich wohl "search_id=friendssearch" und "search_id=egosearch" irgendwie mit den nötigen Parametern versorgen müssen. Diese sähen in meinem Fall so aus: ?f=1&t=2. Hat jemand eine Idee ?

----------

Ich habe in der search.php folgendes geändert:

Code: Alles auswählen

			case 'egosearch':
				$l_search_title = $user->lang['SEARCH_SELF'];
			break;
in

Code: Alles auswählen

			case 'egosearch':
            $self_id_ary[] = $user->data['user_id'];
				$l_search_title = $user->lang['SEARCH_SELF'];
			break;
Irgendwie führt das zum gewünschten Ergebnis, ich verstehe leider nicht warum.

Re: View Friends Posts

Verfasst: 05.11.2009 14:13
von MajorROM
Naja, es führt bei der Suche nach den eigenen Beiträgen zum Ergebnis, aber nicht bei der Suche nachden Beiträgen der Freunde. Hier werden immer noch alle Foren durchsucht.

Re: View Friends Posts

Verfasst: 05.11.2009 15:48
von MajorROM
Ok, folgendermassen habe ich es gelöst. Mittlerweile wird der Thread ein Fall für die Bastelstube.

Im unteren Bereich des im ersten Posting geposteten Codes folgende Zeile suchen:

Code: Alles auswählen

               WHERE ' . $db->sql_in_set('p.poster_id', $friends_id_ary) . "
Darunter einfügen:

Code: Alles auswählen

               AND p.topic_id = 2
Wobei die "2" für den Topic steht, auf welchen ich die Suche beschränken möchte.