Seite 1 von 1

[SUCHE] User Ignorieren bei "Beiträge seit dem letzten

Verfasst: Sa 21.Okt, 2006 20:05
von Germanboy4u
Hi
Suche mod oder snipset oder so was...

Habe einen RSS NewsBot in meinem Forum. So schon mal gut...

Leider werden seine Posts auch in "Beiträge seit dem letzten Besuch anzeigen" gezeigt. Kann man es so einstellen dass der da ignoriert wird?

Nicht so lustig wenn da was von 400 Posts steht^^ und es sind 398 von dem Bot *g*

Weiß da wer ne Lösung?

Danke

Germanboy4u

Verfasst: Sa 21.Okt, 2006 21:30
von oxpus
Der Bot wird wohl auch eine User-ID haben.
Dann wäre in der search.php in den ersten Abfragen diese User-ID auszuklammern.
Also in der Standard-Datei in diesen hier:

Code: Alles auswählen

		if ( $search_id == 'newposts' || $search_id == 'egosearch' || ( $search_author != '' && $search_keywords == '' )  )
		{
			if ( $search_id == 'newposts' )
			{
				if ( $userdata['session_logged_in'] )
				{
					$sql = "SELECT post_id 
						FROM " . POSTS_TABLE . " 
						WHERE post_time >= " . $userdata['user_lastvisit'];
				}
				else
				{
					redirect(append_sid("login.$phpEx?redirect=search.$phpEx&search_id=newposts", true));
				}

				$show_results = 'topics';
				$sort_by = 0;
				$sort_dir = 'DESC';
			}
			else if ( $search_id == 'egosearch' )
			{
				if ( $userdata['session_logged_in'] )
				{
					$sql = "SELECT post_id 
						FROM " . POSTS_TABLE . " 
						WHERE poster_id = " . $userdata['user_id'];
				}
				else
				{
					redirect(append_sid("login.$phpEx?redirect=search.$phpEx&search_id=egosearch", true));
				}

				$show_results = 'topics';
				$sort_by = 0;
				$sort_dir = 'DESC';
			}
			else
			{
				$search_author = str_replace('*', '%', trim($search_author));

				if( ( strpos($search_author, '%') !== false ) && ( strlen(str_replace('%', '', $search_author)) < $board_config['search_min_chars'] ) )
				{
					$search_author = '';
				}

				$sql = "SELECT user_id
					FROM " . USERS_TABLE . "
					WHERE username LIKE '" . str_replace("\'", "''", $search_author) . "'";
				if ( !($result = $db->sql_query($sql)) )
				{
					message_die(GENERAL_ERROR, "Couldn't obtain list of matching users (searching for: $search_author)", "", __LINE__, __FILE__, $sql);
				}

				$matching_userids = '';
				if ( $row = $db->sql_fetchrow($result) )
				{
					do
					{
						$matching_userids .= ( ( $matching_userids != '' ) ? ', ' : '' ) . $row['user_id'];
					}
					while( $row = $db->sql_fetchrow($result) );
				}
				else
				{
					message_die(GENERAL_MESSAGE, $lang['No_search_match']);
				}

				$sql = "SELECT post_id 
					FROM " . POSTS_TABLE . " 
					WHERE poster_id IN ($matching_userids)";
				
				if ($search_time)
				{
					$sql .= " AND post_time >= " . $search_time;
				}
			}
In der hier vorhandenen User-Tabelle wäre das die Bedingung

Code: Alles auswählen

AND user_id <> X
in den POST-Tabellen die Bedingung

Code: Alles auswählen

AND poster_id <> X
wobei X jeweils für die User-ID des Bots steht...