Seite 7 von 9

Verfasst: 12.10.2003 16:45
von Henne
Also bei mir läuft die MOD in einem 2.0.6 problemlos.

Installation, naja, für mich war es nicht schwer.
Aber mach vorher nen Backup und du bist auf der sicheren Seite.

Glaube nicht, dass der EMC ist...

Verfasst: 12.10.2003 17:00
von Nico Haase
Henne hat geschrieben:Also bei mir läuft die MOD in einem 2.0.6 problemlos.
Fein....
Henne hat geschrieben:Installation, naja, für mich war es nicht schwer.
Kannst du eine ungefähre Zeitangabe machen....?
mfg
Nico

Verfasst: 27.10.2003 20:59
von ThrillHousE
Das ist der Thread den ich seit tagen suche!
ich hab mein board von 2.0.4 1.0+ auf 2.0.6 1.3+ geupdated und vermisse ich das mit den gelesenen beitraegen. irgendwie war das bei mir ab 2.0 standardmaessig drinne, deswegen versteh ich nicht warum es wieder wech ist.

gibts da den was aktuell funktionierendes fuer 2.0.6? ich waere ober gluecklich wenn das wieder funzen wuerde. meine user jammern schon wie verrueckt und ich weiss nimmer weiter!

thx 4 replies

Verfasst: 27.10.2003 21:26
von Leuchte
gibts da den was aktuell funktionierendes fuer 2.0.6?
wenn Henne sagt das geht, dann geht das ;)
wenn du dein board auf die plus version geupdated hast, wirst du ja sicher nur die datenbank behalten und die dateien überschrieben haben. dann ist der mod natürlich auch weg.
unverändert würde der UPITDB-MOD nicht mit dem hierarchie mod zusammenarbeiten.
ich setz mich bei gelegenheit mal hin und versuch ein kleines workaround zu basteln, weil ich den einen auch habe und den anderen möchte :D

Verfasst: 01.11.2003 16:20
von oxpus
Dr. Love hat geschrieben:...Analog geht das auch für die Zahl in Klammern. Da fehlt nur noch die Subtraktion der Posts, die der User nicht lesen kann...
Ist schwer genug! Aber hier die Lösung, um die Anzahl der neuen Posts incl. der Userberechtigungen zu errechnen:

In index.php nach

Code: Alles auswählen

//
// End session management
//
Folgendes einfügen

Code: Alles auswählen

if( $userdata['session_logged_in'] )
{
	$sql = "SELECT * FROM ". FORUMS_TABLE;
	if (!$result = $db->sql_query($sql))
	{
		message_die(GENERAL_ERROR, 'Could not query forums information', '', __LINE__, __FILE__, $sql);
	}
	$forum_data = array();
	while( $row = $db->sql_fetchrow($result) )
	{
		$forum_data[] = $row;
	}

	$is_auth_ary = array();
	$is_auth_ary = auth(AUTH_ALL, AUTH_LIST_ALL, $userdata, $forum_data);
	for ($i = 0; $i < count($forum_data); $i++)
	{
		if (($is_auth_ary[$forum_data[$i]['forum_id']]['auth_read']) or ($is_auth_ary[$forum_data[$i]['forum_id']]['auth_view']))
		{
			if ($auth_forum_id == '')
			{
				$auth_forum_id = $forum_data[$i]['forum_id'];
			}
			else
			{
				$auth_forum_id .= ',' . $forum_data[$i]['forum_id'];
			}
		}
	}

   $p=0;
   $jetzt_vor_einem_monat = time() - 2592000;
   $sql = "SELECT count(p.post_id)
   	  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 . "
         AND (p.post_time > r.visit_time OR p.post_edit_time > r.visit_time OR r.topic_id IS NULL) )
         AND p.forum_id IN (" . $auth_forum_id . ")
      ORDER BY p.topic_id DESC, p.post_id DESC";
   if ( $result = $db->sql_query($sql) )
   {
		$p = $db->sql_fetchrow($result);
   }
   $countposts = ( $p[0] == 1 ) ? $lang['Post'] : $lang['Posts'];
   $lang['Search_new'] = ( $p[0] == 0 ) ? $lang['Search_new'] : $lang['New_for_user'] . " " . $p[0] . " " . $countposts;

}
Das Geheimnis liegt darin, erstmal alle Foren zusammenzustellen, die der User einsehen darf. Ist kaum zu verstehen, daher hab ich das an anderer Stelle mal geklaut. Die dann folgende Integration in die Abfrage der Postanzahl ist ein Kinderspiel.

Ach ja: Den in diesem Topic bereits geposteten Code für die Anzahl der neuen Beiträge durch meinem ersetzen. Sonst ist es doppelt und ggf. wieder falsch...

OXPUS

Verfasst: 01.11.2003 20:06
von oxpus
Für alle, die den Hierarchy Mod von Ptirhiik installiert haben und nicht wechseln möchten, habe ich eine gute Nachricht:
Hier ist die Lösung für die Foren-Images (gelesen/ungelesen) auf dem (Haupt-)Index:

includes/functions.php (bei Version 2.0.3 des Hierarchy Mods in der Datei includes/functions_categories_hierarchy.php!)

Code: Alles auswählen

						if ( $tracking_topics[$check_topic_id] < $check_post_time )
ersetzen mit

Code: Alles auswählen

						if ( $tracking_topics[$check_topic_id] <= $check_post_time )
finde

Code: Alles auswählen

	$new_topic_data = array();
	if ( $userdata['session_logged_in'] )
	{
		$user_lastvisit = $userdata['user_lastvisit'];
		$sql = "SELECT t.forum_id, t.topic_id, p.post_time
			FROM " . TOPICS_TABLE . " t, " . POSTS_TABLE . " p
			WHERE p.post_id = t.topic_last_post_id
				AND p.post_time > $user_lastvisit
				AND t.topic_moved_id = 0";
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not query new topic information', '', __LINE__, __FILE__, $sql);
		}

		while( $topic_data = $db->sql_fetchrow($result) )
		{
			$new_topic_data[$topic_data['forum_id']][$topic_data['topic_id']] = $topic_data['post_time'];
		}
	}
und mit folgendem ersetzen

Code: Alles auswählen

	$new_topic_data = array();
	if ( $userdata['session_logged_in'] )
	{
		$jetzt_vor_einem_monat = time() - 2592000;
		$sql = "SELECT p.forum_id, p.topic_id, p.post_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 . "
				AND (p.post_time > r.visit_time OR p.post_edit_time > r.visit_time OR r.topic_id IS NULL) )";
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not query new topic information', '', __LINE__, __FILE__, $sql);
		}

		while( $topic_data = $db->sql_fetchrow($result) )
		{
			$new_topic_data[$topic_data['forum_id']][$topic_data['topic_id']] = $topic_data['post_time'];
		}
	}
in index.php finde

Code: Alles auswählen

	//
	// Obtain a list of topic ids which contain
	// posts made since user last visited
	//
	if ( $userdata['session_logged_in'] )
	{
		$sql = "SELECT t.forum_id, t.topic_id, p.post_time, p.post_edit_time
			FROM " . TOPICS_TABLE . " t, " . POSTS_TABLE . " p
			WHERE p.post_id = t.topic_last_post_id
				AND p.post_time > " . $userdata['user_lastvisit'] . "
				AND t.topic_moved_id = 0";
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not query new topic information', '', __LINE__, __FILE__, $sql);
		}

		$new_topic_data = array();
		while( $topic_data = $db->sql_fetchrow($result) )
		{
			$new_topic_data[$topic_data['forum_id']][$topic_data['topic_id']] = $topic_data['post_time'];
		}
	}
und mit folgendem ersetzen

Code: Alles auswählen

	$new_topic_data = array();
	if ( $userdata['session_logged_in'] )
	{
		$jetzt_vor_einem_monat = time() - 2592000;
		$sql = "SELECT p.forum_id, p.topic_id, p.post_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 . "
				AND (p.post_time > r.visit_time OR p.post_edit_time > r.visit_time OR r.topic_id IS NULL) )";
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not query new topic information', '', __LINE__, __FILE__, $sql);
		}

		while( $topic_data = $db->sql_fetchrow($result) )
		{
			$new_topic_data[$topic_data['forum_id']][$topic_data['topic_id']] = $topic_data['post_time'];
		}
	}
Damit werden nun die Foren-Images auf dem (Haupt-)Index auch gemäß dem Status (= enthält gelesene/ungelesene Beiträge) gesetzt.

OXPUS

Verfasst: 01.11.2003 20:54
von ThrillHousE
hey cool oxpus:

hab 2.0.6 1.3+, heisst das nun ich nehme dein function code und den rest von der 2.0.4 installation und dann sollte es funzen?

Verfasst: 01.11.2003 21:13
von ThrillHousE
nunja ganz so einfach ists dann doch net fuer mich, haeng wieder an der Nr3, da sollen sachen getauscht werden die ich bei mir garnet drinne hab.

vielleicht kann ich dir ja mal meine files schicken oxpus? :roll:

Verfasst: 02.11.2003 10:18
von oxpus
Kannste machen. Schick mir Deine viewtopic.php und ich baue Dir den Teil 3 da schon ein...

Verfasst: 03.11.2003 00:04
von ThrillHousE
erstmal danke fuer deine unterstuetzung oxpus.

jetzt die frage an die allgemeinheit, ist es moeglich bei 2.0.6 die unread funktion wieder ueber die cookies laufen zu lassen? das fand ich 1000mal besser!
meinetwegen alles ueber die cookies so wie frueher? nachteile bei den cookies sind mir egal, hab davon jahre lang nix mitbekommen.

aber das mit dem gelesen/ungelesen stoert mich schon derbst!