Seite 2 von 6

Verfasst: Do 11.Mär, 2004 16:17
von oxpus
Auch bei dem Aufruf der ungelesenen Beiträge waren durch diese Änderungen alle Icons gelb. Und die Links funktionierten auch.
Und gerade bei diesem Teil hatte ich lange zu kämpfen :(

Okay, das Testboard von Dir habe ich ja noch. Ich werde meine Änderungen nochmal damit testen, vielleicht muss da mehr angepasst werden.
Ergebnis kommt dann hier zurück.

Verfasst: Do 11.Mär, 2004 21:25
von Simpson
Vielleicht bin ich ja auch zu blöd, obwohl mehr als einbauen kann ich das ja eigentlich nich ^7 habs auch mehrfach versucht, is irgendwie nichts passiert.

Verfasst: Do 11.Mär, 2004 21:39
von oxpus
Warte bis morgen, dann kann ich Dir mehr sagen. Ich werde das wie schon gesagt, in dem Testboard, das Du mir gegeben hattest einbasteln und die dann auftretenden Fehler beseitigen. Nur Geduld, das bekommen wir schon hin.

Verfasst: Do 11.Mär, 2004 22:04
von Simpson
Das wäre genial und mach dir keine Hektik, wenns länger dauert, dann dauert es eben länger - gut Ding will Weile haben :)

Verfasst: Do 11.Mär, 2004 22:21
von oxpus
Yepp. Morgen gehe ich damit an den Start. Das muss doch klappen verdammich

Verfasst: So 14.Mär, 2004 02:30
von oxpus
Ich denke ich habs jetzt:
In der search.php hast Du ja noch den Mode "unread" hinzugefügt und da die Neue SQL-Abfrage eingebaut. Was dann aber nicht mehr funktioniert, ist der Mode "newposts". Auch hier muss diese Abfrage rein ;)
Hier der Code, der auf Basis meines Codes zu ändern wäre:

Code: Alles auswählen

#
#-----[ OPEN ]-----
#

#
#-----[ FIND ]-----
#
			if ( $search_id == 'newposts' )
			{
				if ( $userdata['session_logged_in'] )
				{
					$sql = "SELECT post_id 
						FROM " . POSTS_TABLE . " 
						WHERE post_time >= " . $userdata['user_lastvisit'];

#
#-----[ REPLACE WITH ]-----
#
			if ( $search_id == 'newposts' )
			{
				if ( $userdata['session_logged_in'] )
				{
				       $jetzt_vor_einem_monat = time() - $board_config['unread_time']; 
				       $sql = "SELECT p.post_id, p.topic_id, r.visit_time  
					  FROM " . POSTS_TABLE . " AS p LEFT OUTER JOIN " . TOPIC_READ_TABLE . " AS r 
					  ON ( p.topic_id = r.topic_id AND r.user_id = " . $userdata['user_id'] . ") 
					  WHERE ( (r.user_id = " . $userdata['user_id'] . " OR r.user_id IS NULL) 
					     AND (p.post_time > " . $jetzt_vor_einem_monat . " OR p.post_edit_time > " . $jetzt_vor_einem_monat . ")
					     AND (p.post_time > r.visit_time OR p.post_edit_time > r.visit_time OR r.topic_id IS NULL) )"; 

#
#-----[ SAVE/CLOSE ALL FILES ]-----
#
# EoM
Und anbei auch die Dateien, die ich geändert habe.
Wie aber schon gesagt: Man sieht die eigenen neuen Beiträge immer als gelesen. Da muss man zwischen zwei Account immer wieder wechseln. Nervig, aber bei mir klappt das in der jetzigen Fassung.
Wenn Du das Ganze Paket nochmal braucht, melde Dich.

Verfasst: So 14.Mär, 2004 14:08
von Simpson
Habe deine Dateien jetzt auch ins Testforum integriert...

Auf dem Index funktioniert das schon mal super :) , siehe hier:

Bild

Klickt man auf "Ungelesene Beiträge anzeigen" sieht dann das Ergebnis allerdings immernoch so aus:

Bild

Den editierten Beiträge fehlt leider weiterhin das Newposticon und das Newicon. Haste noch ne Idee?

Verfasst: So 14.Mär, 2004 14:30
von oxpus
Komisch, bei mir funktioniert das. Also rein die editierten Posts sind nicht markiert. Hm. Okay, ich schau nachher nochmal drüber. Vielleicht doch noch ein Bug, der mir nicht aufgefallen ist.

Verfasst: So 14.Mär, 2004 19:40
von oxpus
Den Fehler habe ich nun auch gesehen und mit einer wirklichen Kleinigkeit behoben.
Es fehlte in der Abfrage zu den Suchergebnissen nur noch das Feld "p2.post_edit_time"!
Nun, hier die Änderungen an der search.php

Code: Alles auswählen

#
#-----[ OPEN ]-----
#
search.php

#
#-----[ FIND ]-----
#
			$sql = "SELECT t.*, f.forum_id, f.forum_name, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_username, p2.post_username AS post_username2, p2.post_time 
				FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2, " . USERS_TABLE . " u2

#
#-----[ REPLACE WITH ]-----
#
			$sql = "SELECT t.*, f.forum_id, f.forum_name, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_username, p2.post_username AS post_username2, p2.post_time, p2.post_edit_time 
				FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2, " . USERS_TABLE . " u2

#
#-----[ SAVE/CLOSE ALL FILES ]-----
#
# EoM
und angehängt die korrigierte Datei. Hier im Forum war das ebenfalls falsch und nun auch korrigiert...

Verfasst: So 14.Mär, 2004 21:45
von Simpson
Geilo, funktioniert jetzt astrein :) das ist ja genial!!! Ich denke dann kann ich jetzt tatsächlich die Version 1.07 in eine Anleitung verfassen...

Verfasst: So 14.Mär, 2004 21:47
von oxpus
Jepp. Auf phpbb.de warten schliesslich schon einige.
Glückwunsch. Wird viele freuen.

Verfasst: So 14.Mär, 2004 21:49
von Simpson
Dank dir, ich allein hätte das nie hinbekommen, stark unzureichende PHP Kentnisse :D

Verfasst: So 14.Mär, 2004 21:58
von oxpus
Nichts zu danken. Auf ein nächstes Mal...

*Topic nach New Projects verschiebt*

Verfasst: So 14.Mär, 2004 22:08
von Simpson
Ah eine letzte Sache hät ich doch noch, ist nichts wichtiges und nur interessant wenn es nicht alzu aufwendig ist, ansonsten ist es das nämlich nicht wert, weil es wahrscheinlich eh kaum genutzt wird.

Wenn man die Suche benutzt und unter "Ergebnisse anzeigen als:" dort "Beiträge" anhackt, ist es dort möglich das man bei den Sucheregebnisse die Titeltexthintergrundfarbe bei neuen Beiträgen mit einbaut, sprich das die Titeltextleiste eine bestimmte Hintergrundfarbe bekommt wenn ein Beitrag neu ist?

Das ist in der viewtopic.php schon drin, das ist dieser Teil:
*********************************************************** - 6 - ***************************************************************
suche:
*********************************************************************************************************************************

//
// Note! The order used for parsing the message _is_ important, moving things around could break any
// output
//

*********************************************************************************************************************************
füge davor ein:
*********************************************************************************************************************************

// <!--- Tread Read Hack On --->

if( $userdata['session_logged_in'] )
{
$user_id = $userdata[user_id];
$post_id = $postrow[$i]['post_id'];
$post_time = $postrow[$i]['post_time'];
$post_edit_time = $postrow[$i]['post_edit_time'];
$post_new = "";
$zeit_min_monat = time() - $board_config['unread_time'];

$zeit_jetzt = time();
$zeit_monat = $zeit_jetzt - $board_config['unread_time'];
if ($post_time > $zeit_monat || $post_edit_time > $zeit_monat) {
if ($visit_time < $post_time || $visit_time < $post_edit_time) {
$post_new = "bgcolor=" . $board_config['unread_color'];

if ( $post_id == $last_post_id || $visit_time < $post_edit_time) {

$sql = "DELETE FROM " . TOPIC_READ_TABLE . "
WHERE topic_id = $topic_id
AND user_id = $user_id";

if (!$result = $db->sql_query($sql) ) {
message_die(GENERAL_ERROR, "Couldn't remove Topic Read database", "", __LINE__, __FILE__, $sql);
}
$visit_time_new = time();

$sql = "INSERT INTO " . TOPIC_READ_TABLE . " (topic_id, post_id, user_id, visit_time, forum_id) VALUES ('$topic_id' , '$post_id' , '$user_id' , '$visit_time_new', '$forum_id')";
if (!$result = $db->sql_query($sql) ) {
message_die(GENERAL_ERROR, "Couldn't Build Topic Read database", "", __LINE__, __FILE__, $sql);
}
}
}
}
}
und in der viewtopic.tpl dieser:
Öffne templates\viewtopic_body.tpl und folge den Anweisungen...



*********************************************************** - 1 - ***************************************************************
suche:
*********************************************************************************************************************************

<td width="100%"><a href="{postrow.U_MINI_POST}"><img src="{postrow.MINI_POST_IMG}" width="12" height="9" alt="{postrow.L_MINI_POST_ALT}" title="{postrow.L_MINI_POST_ALT}" border="0" /></a>

*********************************************************************************************************************************
ersetze mit:
*********************************************************************************************************************************

<td width="100%" {postrow.POST_NEW}><a href="{postrow.U_MINI_POST}"><img src="{postrow.MINI_POST_IMG}" width="12" height="9" alt="{postrow.L_MINI_POST_ALT}" title="{postrow.L_MINI_POST_ALT}" border="0" /></a>












****************************************** - 2 für phpBB 2.01 / 2.02 / 2.03 / 2.04 - *******************************************
suche:
*********************************************************************************************************************************

<td valign="top" align="right" nowrap="nowrap">{postrow.QUOTE_IMG} {postrow.EDIT_IMG} {postrow.DELETE_IMG} {postrow.IP_IMG}</td>

*********************************************************************************************************************************
ersetze mit:
*********************************************************************************************************************************

<td valign="top" align="right" nowrap="nowrap" {postrow.POST_NEW}>{postrow.QUOTE_IMG} {postrow.EDIT_IMG} {postrow.DELETE_IMG} {postrow.IP_IMG}</td>













************************************************** - 2 für phpBB 2.05 / 2.06 - **************************************************
suche:
*********************************************************************************************************************************

<td valign="top" nowrap="nowrap">{postrow.QUOTE_IMG} {postrow.EDIT_IMG} {postrow.DELETE_IMG} {postrow.IP_IMG}</td>

*********************************************************************************************************************************
ersetze mit:
*********************************************************************************************************************************

<td valign="top" nowrap="nowrap" {postrow.POST_NEW}>{postrow.QUOTE_IMG} {postrow.EDIT_IMG} {postrow.DELETE_IMG} {postrow.IP_IMG}</td>

Kannst du das mit ein paar "Klicks" auf die search.php und "search_results_posts.tpl" anwenden oder ist das längerwierige Sache, wenn ja dann vergiss das ganz schnell wieder.

Verfasst: So 14.Mär, 2004 23:20
von oxpus
Probiers mal hiermit:

Code: Alles auswählen

#
#-----[ OPEN ]-----
#
search.php

#
#-----[ FIND ]-----
#
				if ( $userdata['session_logged_in'] )
				{
					if ( !empty($tracking_topics[$topic_id]) && !empty($tracking_forums[$forum_id]) )

#
#-----[ BEFORE, ADD ]-----
#
				$post_new = 'row1';

#
#-----[ FIND ]-----
#
					if ( $searchset[$i]['post_time'] > $topic_last_read || $searchset[$i]['post_edit_time'] > $topic_last_read )
					{
						$mini_post_img = $images['icon_minipost_new'];
						$mini_post_alt = $lang['New_post'];

#
#-----[ REPLACE WITH ]-----
#
					if ( $searchset[$i]['post_time'] > $topic_last_read || $searchset[$i]['post_edit_time'] > $topic_last_read )
					{
						$post_new = "bgcolor=" . $board_config['unread_color'];
						$mini_post_img = $images['icon_minipost_new'];
						$mini_post_alt = $lang['New_post'];

#
#-----[ FIND ]-----
#
				$template->assign_block_vars("searchresults", array(
					'TOPIC_TITLE' => $topic_title,
					'FORUM_NAME' => get_object_lang(POST_FORUM_URL . $searchset[$i]['forum_id'], 'name'),
					'POST_SUBJECT' => $post_subject,

#
#-----[ AFTER, ADD ]-----
#
				$template->assign_block_vars("searchresults", array(
					'TOPIC_TITLE' => $topic_title,
					'FORUM_NAME' => get_object_lang(POST_FORUM_URL . $searchset[$i]['forum_id'], 'name'),
					'POST_SUBJECT' => $post_subject,
					'POST_NEW' => $post_new,

#
#-----[ OPEN ]-----
#
templates/subSilver/search_results_posts.tpl

#
#-----[ FIND ]-----
#
	<td valign="top" class="row1"><span class="postbody">{searchresults.MESSAGE}</span></td>

#
#-----[ REPLACE WITH ]-----
#
	<td valign="top" class="{searchresults.POST_NEW}"><span class="postbody">{searchresults.MESSAGE}</span></td>

#
#-----[ SAVE/CLOSE ALL FILES]-----
#
# EoM

Verfasst: Mo 15.Mär, 2004 12:56
von Simpson
Das geht leider nicht: "Call to undefined function: get_object_lang() in ...search.php on line 1099".

Habs mehrfach versucht, war einmal der Meinung es hätte gefunzt, allerdings nur in soweit das es keinen Error gab, die Titelzeile des Beitrages war nicht geändert.

Verfasst: Mo 15.Mär, 2004 14:31
von oxpus
Die Funktion get_object_lang() stammt aus meinem Forum. Versuch mal nur in dem betreffenden Block die Zeile "POST_NEW..." einzufügen und den Rest zu lassen, dann sollte es keine Fehler geben.
Allerdings bin ich mir nicht sicher, ob die Position der Variablen {POST_NEW} überhaupt im tpl-File richtig ist. GGf. nochmals verschieben und ausprobieren.

Verfasst: Mo 15.Mär, 2004 18:05
von Simpson
Ich habe es noch mal versucht...

statt wie du im vorletzten Post schriebst:

Code: Alles auswählen

# 
#-----[ FIND ]----- 
# 
            $template->assign_block_vars("searchresults", array( 
               'TOPIC_TITLE' => $topic_title, 
               'FORUM_NAME' => get_object_lang(POST_FORUM_URL . $searchset[$i]['forum_id'], 'name'), 
               'POST_SUBJECT' => $post_subject, 

# 
#-----[ AFTER, ADD ]----- 
# 
            $template->assign_block_vars("searchresults", array( 
               'TOPIC_TITLE' => $topic_title, 
               'FORUM_NAME' => get_object_lang(POST_FORUM_URL . $searchset[$i]['forum_id'], 'name'), 
               'POST_SUBJECT' => $post_subject, 
               'POST_NEW' => $post_new, 

habe ich die Stelle so abgeändert:

Code: Alles auswählen

# 
#-----[ FIND ]----- 
# 
            $template->assign_block_vars("searchresults", array( 
               'TOPIC_TITLE' => $topic_title, 
               'FORUM_NAME' => get_object_lang(POST_FORUM_URL . $searchset[$i]['forum_id'], 'name'), 
               'POST_SUBJECT' => $post_subject, 

# 
#-----[ REPLACE WITH ]----- 
# 
            $template->assign_block_vars("searchresults", array( 
               'TOPIC_TITLE' => $topic_title, 
               'FORUM_NAME' => get_object_lang(POST_FORUM_URL . $searchset[$i]['forum_id'], 'name'), 
               'POST_SUBJECT' => $post_subject, 
               'POST_NEW' => $post_new, 

... und in der search_results_posts.tpl habe ich folgendes gemacht:

Code: Alles auswählen

suche:

<td width="100%" valign="top" class="row1"><img src="{searchresults.MINI_POST_IMG}" width="12" height="9" alt="{searchresults.L_MINI_POST_ALT}" title="{searchresults.L_MINI_POST_ALT}" border="0" /><span class="postdetails">{L_FORUM}:&nbsp;<b><a href="{searchresults.U_FORUM}" class="postdetails">{searchresults.FORUM_NAME}</a></b>&nbsp; &nbsp;{L_POSTED}: {searchresults.POST_DATE}&nbsp; &nbsp;{L_SUBJECT}: <b><a href="{searchresults.U_POST}">{searchresults.POST_SUBJECT}</a></b></span></td>

ersetze mit:

Code: Alles auswählen

<td width="100%" valign="top" {searchresults.POST_NEW}><img src="{searchresults.MINI_POST_IMG}" width="12" height="9" alt="{searchresults.L_MINI_POST_ALT}" title="{searchresults.L_MINI_POST_ALT}" border="0" /><span class="postdetails">{L_FORUM}:&nbsp;<b><a href="{searchresults.U_FORUM}" class="postdetails">{searchresults.FORUM_NAME}</a></b>&nbsp; &nbsp;{L_POSTED}: {searchresults.POST_DATE}&nbsp; &nbsp;{L_SUBJECT}: <b><a href="{searchresults.U_POST}">{searchresults.POST_SUBJECT}</a></b></span></td>
Jetzt ist die Titelzeile jedoch leider dauerhaft mit der Neufarbe hinterlegt, egal ob das Post neu ist oder nicht.

Noch ne Idee?

Verfasst: Mo 15.Mär, 2004 18:31
von oxpus
Tjoar, schau mal in der if-Bedingung zu den mini_img nach und setze nach dem folgenden else die $post_new = 'row1'; ein. Vielleicht hilft das.

Verfasst: Mo 15.Mär, 2004 18:49
von Simpson
Hörte sich gut an aber klappt auch nicht / keine Veränderung.

Aufgefallen ist mir jetzt auch das die gelben Icons angezeigt werden, wenn man die Suche nutzt und nach Beiträgen auflistet, dabei ist egal ob es sich um einen neuen oder alten Beiträgen handelt.

Das ist auch schon seit der letzten search.php die du hier in den Thread hochgeladen hast.

Das scheint doch ein hartes Pflaster.

Verfasst: Mo 15.Mär, 2004 18:53
von Simpson
Mensch bin ich blöd, jetzt fällt bei mir der Groschen, kann es sein das diese dauerhaft gelben Icons auch was damit zu tun haben das die Titelzeile dauerhaft hinterlegt ist?

Verfasst: Mo 15.Mär, 2004 20:35
von oxpus
kann es sein das diese dauerhaft gelben Icons auch was damit zu tun haben das die Titelzeile dauerhaft hinterlegt ist?
Beides beruht auf der selben Abfrage, also Mini-Icon gelb = Titel farbig.
Irgendwo muss da noch der Haken sein, ich schaue nochmal nach...

Verfasst: Mo 15.Mär, 2004 22:40
von oxpus
Basierend auf der letzten Änderung, die ich gepostet habe:

Code: Alles auswählen

#
#-----[ OPEN ]-----
#
search.php

#
#-----[ FIND ]-----
#
		$searchset = array();
		while( $row = $db->sql_fetchrow($result) )
		{
			$searchset[] = $row;
		}

		$db->sql_freeresult($result);

#
#-----[ REPLACE WITH ]-----
#
		$searchset = array();
		$topicset = array();
		while( $row = $db->sql_fetchrow($result) )
		{
			$searchset[] = $row;
			$topicset[] = $row['topic_id'];
		}

		$db->sql_freeresult($result);

		if ( count($search_ids_visit) == 0 )
		{
			$topic_set = implode(', ', $topicset);
			$search_ids_visit = array();
			$sql = "SELECT max(visit_time) as last_time, topic_id FROM " . TOPIC_READ_TABLE . "
				WHERE topic_id IN ($topic_set)
				AND user_id = ".$userdata['user_id']."
				GROUP BY topic_id";
			if ( !$result = $db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, 'Could not obtain search results', '', __LINE__, __FILE__, $sql);
			}
			while( $row = $db->sql_fetchrow($result) )
			{
				$search_ids_visit[$row['topic_id']] = $row['last_time'];
			}
		}

#
#-----[ FIND ]-----
#
					$topic_last_read = ( !empty($search_ids_visit[$topic_id]) ) ? max($search_ids_visit[$topic_id]) : $topic_last_read;

#
#-----[ REPLACE WITH ]-----
#
					$topic_last_read = ( !empty($search_ids_visit[$topic_id]) ) ? $search_ids_visit[$topic_id] : 0;


#
#-----[ SAVE/CLOSE ALL FILES ]-----
#
# EoM
Damit werden die Icons beim Suchen nach Keywörtern und Anzeige als Beiträge gelb für neue/ungelesene Posts. Darauf kann man dann mit dem Hintergrund aufsetzen.

Verfasst: Mo 15.Mär, 2004 22:59
von Simpson
Habe das jetzt auch noch mit in die search.php übernommen, jetzt sind jedoch alle Mini-Icons grundsätzlich weiss und die Titel-Hintergrundfarbe taucht nicht auf.

Verfasst: Mo 15.Mär, 2004 23:14
von Simpson
Puh ich glaube jetzt gar nichts mehr, eben hatte ich das noch eingebaut und alles war okay, bis auf das alle Mini Icons nur noch pur weiss waren und der Titeltextbackground gefehlt hat, auch bei neuen Posts. Jetzt habe ich gedacht irgendetwas habe ich vorher wieder ausgebaut, dann habe ich es wieder eingesetzt und jetzt erhalt ich nur noch Fehler. Verdammt ich steig nicht mehr dran lang was jetzt noch drin ist und was nicht, ich werde morgen noch mal die search.php aus http://www.oxpus.de/download.php?id=296 downloaden und mit allem was danach an Posts gekommen ist modifizieren und dann sag ich dir obs geht und poste auch noch mal wie ich das dann gemacht habe, sprich wie die modifizierte search.php dann aussieht, nicht das ich dann irgendwas falsch verbaut habe.

Nun muss ich aber schlafen, morgen wieder arbeiten - gute N8 mit Hochacht.