Double post merge 1.0.1

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Antworten
Feuerball
Beiträge: 636
Registriert: Mi 15.Sep, 2004 22:11

Double post merge 1.0.1

Beitrag von Feuerball »

Hallo,
da ich in ein meiner Foren zig eMails und/oder PNs bekomme warum der post der User immer größer werden obwohl diese auf Antwort geklickt haben dachte ich mir mach mal ein Hinweis Text in der posting_body.tpl rein das das Post nach Angabe im ACP hinzugefügt wird.

Soweit so gut klappt auch alles dh jedenfalls die Angabe im ACP kann ich in der posting_body.tpl ausgeben mit einem Text dazu.

Das Problem ist da die Mod nicht bei Gäste funktioniert und wenn die Zeit die man im ACP eingegeben hat vorbei ist bleibt der text trotzdem stehen.

mmhh wie kriege das den hin das der Hinweis Text nur zu sehen ist wenn die Zeit vom ACP rum ist das der text verschwindet ???

Bsp:
im ACP gebe ich 0.10 ein.
Das wären 10 Minuten
für 10 Minuten belibt der Hinweis Text sichtbar
nach 10 Minuten soll der Hinweis Text nicht mehr zu sehen sein.

Genau das ist mein Problem, der Hinweis Text bleibt sichtbar.

posting_body.tpl

Code: Alles auswählen

{DOUBLE_POST_TIME}
posting.php

Code: Alles auswählen

//
// Include page header
//
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

$template->set_filenames(array(
	'body' => 'posting_body.tpl', 
	'pollbody' => 'posting_poll_body.tpl', 
	'reviewbody' => 'posting_topic_review.tpl')
);
make_jumpbox('viewforum.'.$phpEx);

$template->assign_vars(array(
	'FORUM_NAME' => $forum_name,
	'L_POST_A' => $page_title,
// TEST	
//	'TEST' => $board_config['join_interval'],
	 'DOUBLE_POST_TIME' => $lang['DPT'] .$board_config['join_interval'], 
// TEST
	'L_POST_SUBJECT' => $lang['Post_subject'], 

	'U_VIEW_FORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id"))
);
und hier müßte doch eigentlich eine möglichkeit sein dieses einzufügen ?

Code: Alles auswählen

//
	// Submit post/vote (newtopic, edit, reply, etc.)
	//
	// double_post eliminate start
	if ( $mode == 'reply' && $userdata['user_id'] != ANONYMOUS )
	{
		$poster_id = $userdata['user_id'];
		$sql = "SELECT post_id, poster_id, post_time, MAX(post_time) FROM " . POSTS_TABLE . " WHERE topic_id = $topic_id GROUP BY post_time ORDER BY post_time DESC LIMIT 1";
	
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not obtain forums information', '', __LINE__, __FILE__, $sql);
		}
		$post_id_last_row = $db->sql_fetchrow($result);
		$post_id = $post_id_last_row['post_id'];
		$current_time = time(); 
		$difference_time = $current_time - $post_id_last_row['post_time'];
		$hours = floor($difference_time/60/60); 
		$minutes = floor($difference_time/60%60);
		$seconds = $difference_time%60;
			$separator = ' \n\n[size=9][color=#999999]Zugefügt nach';
		if ( $hours != 0 )			$separator .= ' ' . $hours . ' Stunde(n)';
		if ( $minutes != 0 )			$separator .= ' ' . $minutes . ' Minute(n)';
		if ( $hours == 0 && $minutes == 0 )	$separator .= ' ' . $seconds . ' Sekunde(n)';
			$separator .= '[/color][/size]\n\n ';
		
		if ( $post_id_last_row['poster_id'] == $poster_id && ( $difference_time < ( $board_config['join_interval'] * 3600 ) ) )
		{			
			$mode = 'editpost';
			$sql = "SELECT post_text, bbcode_uid FROM " . POSTS_TEXT_TABLE . " WHERE post_id = $post_id";
			if ( !($result = $db->sql_query($sql)) )
				{
					message_die(GENERAL_ERROR, 'Could not obtain forums information', '', __LINE__, __FILE__, $sql);
				}
			$last_message_row = $db->sql_fetchrow($result);
			$bb_uid = ':' . $last_message_row['bbcode_uid'];
			
			// i don't know much about parsing the message, so it may well be that,
			// there are some wrongs, anyway all seems to work fine
			$last_message = str_replace($bb_uid, '', $last_message_row['post_text']);
			$last_message = preg_replace('/\:[0-9a-z\:]+\]/si', ']', $last_message);
			$last_message = undo_htmlspecialchars(addslashes($last_message));
			
		}	
	}
	// double_post eliminate end
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Code: Alles auswählen

if ( $mode == 'reply' && $userdata['user_id'] != ANONYMOUS )
Das ist hier Absicht, da mal die Gäste nicht immer eindeutig zuordnen kann.
Und der Double Post Merge MOD ist doch glaub ich bei Gästen eh nicht aktiv, oder?
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Feuerball
Beiträge: 636
Registriert: Mi 15.Sep, 2004 22:11

Beitrag von Feuerball »

JA richtig, Gäste werden Ignoriert. Das ist schon ok so,nur ich wollte einen Text ausgeben in der posting_body.tpl und diesen Zeitabhängig vom ACP einblenden lassen.

Das Zeit Abhängige Einblenden kriege ich nicht hin.

haste da eine Lösung für ?
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Für alle User? Oder klappt das nur für Gäste nicht?
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Feuerball
Beiträge: 636
Registriert: Mi 15.Sep, 2004 22:11

Beitrag von Feuerball »

Da die Mod ja nicht für Gäste ist, sollen auch Gäste keinen Hinweis Text sehen. Das soll nur für User gelten wenn die ein posting geschrieben haben und Antworten Quasie als Doppel Post dann soll ein Hinweis Text zu sehen sein. Wenn die Zeit natürlich rum ist die man im ACP einstellen kann, soll der Hinweis Text nicht Angezeigt werden oder es hat jemand anderes schon gepostet. Dann ist das ja kein Doppel Post mehr und der Hinweis Text braucht ja nicht Angezeigt zu werden.
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Schau dir mal mein Double Post Merge addon: disable by admin/mods wile posting an, Feuerball. Das liefert dir eine hervorragende Vorlage. :)
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Feuerball
Beiträge: 636
Registriert: Mi 15.Sep, 2004 22:11

Beitrag von Feuerball »

da werde ich doch glatt....

Danke

EDIT

@ AmigaLink
kann das sein das der Snippet nciht richtig funktioniert ?

Ich habe ihn mal so eingebaut wie du es geschrieben hast und im ACP Testweise auf 0.0.1 (1Minute) und 1 (1Stunde) eingestellt. Die Anzeige "Nicht mit dem vorangegangenem Beitrag zusammenfügen!" bleibt trotzdem Sichtbar obwohl die Zeit vorbei ist ^2
Zuletzt geändert von Feuerball am Mi 28.Mär, 2007 10:33, insgesamt 2-mal geändert.
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Seit wann gibt es Dezimalzahlen mit zwei Kommas? ^1
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Feuerball
Beiträge: 636
Registriert: Mi 15.Sep, 2004 22:11

Beitrag von Feuerball »

:)

och ich meinte 0.01 Punkt :D

Trotzdem funktioniert das nicht. Ob nun 1 Minute oder 1 Stunde ist völlig egal.
Zuletzt geändert von Feuerball am Mi 28.Mär, 2007 11:55, insgesamt 1-mal geändert.
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Die Zeit wird natürlich nur beim Aufrufen des Beitragsformulars geprüft. Die Anzeige bleibt somit erhalten wenn die Zeit erst abläuft nachdem du das Formular bereits geöffnet hast. ;)
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Feuerball
Beiträge: 636
Registriert: Mi 15.Sep, 2004 22:11

Beitrag von Feuerball »

mmhh dann nochmal Testen aber Online diesmal. Ich schäze es geht nicht Local zum Testen.
Zuletzt geändert von Feuerball am Mi 28.Mär, 2007 13:14, insgesamt 1-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Doch muss auch lokal gehen.
Vielleicht aber Javascript deaktiviert?
(Oder wird das hier nicht verwendet?!?!?)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Nein, Javascript wird nicht verwendet.
Mein Snippet prüft halt beim aufrufen der posting.php ob der zu schreibende Beitrag, beim absenden, an den vorangegangenen angefügt wird oder nicht und Blendet entsprechend die Funktion zu deaktivieren des Double Post Merge ein.
Reines PHP also. :)
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ah jetzt hab ich verstanden, was gemeint ist :wall:
Okay, dann kein JS, klar nur PHP...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Feuerball
Beiträge: 636
Registriert: Mi 15.Sep, 2004 22:11

Beitrag von Feuerball »

mhh jetzt habe ich ein TestForum in Aktueller Version Eingerichtet.
Das verschwindet einfach nicht. Im ACP habe ich 1 eingegeben und wer Testen möchte kann es hier machen.

User = phpBB
PW = phpbb
Zuletzt geändert von Feuerball am Mi 28.Mär, 2007 17:06, insgesamt 1-mal geändert.
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Ich weiss garnicht was du willst. Es Funktioniert doch einwandfrei! http://www.user-for-user.de/phpBB2/viewtopic.php?t=3
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Feuerball
Beiträge: 636
Registriert: Mi 15.Sep, 2004 22:11

Beitrag von Feuerball »

ja das nicht zusammen funktioniert aber die anzeige verwindet nach ablauf der Zeit im ACP (TestForum 1) nicht.

Ich warte 1ne Sunde und 5 Minuten und der blaue text ist immer noch da, sollte das nicht verwinden ?
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Als ich gerade mein erste Posting gemacht habe, war die Anzeige nicht da!
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Feuerball
Beiträge: 636
Registriert: Mi 15.Sep, 2004 22:11

Beitrag von Feuerball »

beim ersten posting kommt ja auch keine. Warte mal ca 1ne Stunde und poste dann nochmal im selben Beitrag. Die anzeige sollte logischer weise nicht mehr Angezeigt werden. Und genau das tut es ja ebend nicht, die anzeige bleibt sichtbar.
Zuletzt geändert von Feuerball am Mi 28.Mär, 2007 18:17, insgesamt 1-mal geändert.
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Ich muss jetzt nochmal weg. Aber wenn ich nachher dran denke, schau ich nochmal nach.
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Ok, füg mal vor

Code: Alles auswählen

    $difference_time = $current_time - $post_id_last_row['post_time'];  
    if ( $post_id_last_row['poster_id'] == $userdata['user_id'] && ( $difference_time < ( $board_config['join_interval'] * 3600 ) ) )
noch

Code: Alles auswählen

	$current_time = time();
ein. Dann sollte das Problem behoben sein.
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Feuerball
Beiträge: 636
Registriert: Mi 15.Sep, 2004 22:11

Beitrag von Feuerball »

Das klappt jetzt.

Danke, und da haste gleich einen Fix für dein AddOn ;)
Zuletzt geändert von Feuerball am Do 29.Mär, 2007 00:06, insgesamt 1-mal geändert.
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Ist schon geändert. ;)
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Antworten