Seite 1 von 1

Nur die erste Seite lesen

Verfasst: 12.09.2007 17:28
von Domitz
Hallo, und zwar kam mir heute folgende Idee.
Wie schaffe ich es, dass die Gäste, die in spezielle bereiche kommen können nur die erste Seite eines Themas lesen können. Für die anderen Seiten muss sich der User einloggen.
So kann man einen kleinen Einblick in die Themen geben und es gibt einen anreiz sich anzumelden.

Verfasst: 12.09.2007 21:16
von fanrpg

Code: Alles auswählen

if( isset($HTTP_GET_VARS['start']) && !$userdata['session_logged_in'] )
{
message_die(GENERAL_MESSAGE, "Als Gast kann man nur die erste Seite eines Themas lesen");
}
nach

Code: Alles auswählen

$userdata = session_pagestart($user_ip, $forum_id);
init_userprefs($userdata);
in die viewtopic.php einfügen (Nachricht anpassen).
Ich denke das wäre die einfachste Möglichkeit, da start nur gesetzt ist wenn man auf weiteren Seiten rumeiert.

Verfasst: 12.09.2007 23:36
von Pyramide
fanrpg hat geschrieben:da start nur gesetzt ist wenn man auf weiteren Seiten rumeiert.
Klick mal auf den großen Thementitel oberhalb der Neues Thema / Antworten Buttons :roll:

Verfasst: 13.09.2007 16:26
von Seimon
So sollts klappen, oder?

öffne vietopic.php

finde

Code: Alles auswählen

//
// End session management
//
füge danach ein:

Code: Alles auswählen

if ($post_id)
{
	if ( (floor(($forum_topic_data['prev_posts'] - 1) / intval($board_config['posts_per_page'])) * intval($board_config['posts_per_page'])) > 0 && !$userdata['session_logged_in'])
	{
		redirect(append_sid("login.$phpEx?redirect=viewtopic.$phpEx?" . POST_POST_URL . "=$post_id#$post_id", true));
	}
}

if ($start > 0 && !$userdata['session_logged_in'])
{
	redirect(append_sid("login.$phpEx?redirect=viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&start=$start", true));
}
Alternativ kann man statt den redirects auch einen message_die verwenden (siehe oben)

Verfasst: 13.09.2007 17:43
von punkface
Dabei wurde aber nicht beachtet dass man die Beiträge auch nach Alter (umgekehrt) sortiert anzeigen lassen kann .. :D

Verfasst: 13.09.2007 18:07
von Seimon
Ja stimmt - hm

Versuch 2 - Gäste haben Threads nicht zu sortieren :D

öffne vietopic.php

finde:

Code: Alles auswählen

//
// Go ahead and pull all data for this topic
//
füge davor ein:

Code: Alles auswählen

if ($post_time_order == "DESC" || $post_days != 0 )
{
	redirect(append_sid("login.$phpEx?redirect=viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id", true));
}
if ($post_id)
{
	if ( (floor(($forum_topic_data['prev_posts'] - 1) / intval($board_config['posts_per_page'])) * intval($board_config['posts_per_page'])) > 0 && !$userdata['session_logged_in'])
	{
		redirect(append_sid("login.$phpEx?redirect=viewtopic.$phpEx?" . POST_POST_URL . "=$post_id#$post_id", true));
	}
}
if ($start > 0 && !$userdata['session_logged_in'])
{
	redirect(append_sid("login.$phpEx?redirect=viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&start=$start", true));
}
Fehlt noch was?

Verfasst: 13.09.2007 18:26
von Domitz
Wow, vielen lieben Dank, ihr habt mir sehr geholfen =)

Verfasst: 13.09.2007 18:29
von Seimon
Über die Suche kann man die restlichen Beiträge noch lesen...