Seite 2 von 3

Verfasst: 03.02.2005 22:02
von rabbit
post is sending MOD hat geschrieben:
##############################################################
## MOD Title: Post Is Sending
## MOD Author: R@ < meos@mail.ru > (Kirill) N/A
## MOD Description: This mod changes post submit button text from "Submit" to "Sending" on posting to ensure user
## that his message is being send. And adds protection from double post
## MOD Version: 1.1.1
##
## Installation Level: Easy
## Installation Time: 3 Minutes
## Files To Edit: posting.php
## privmsg.php
## language/lang_english/lang_main.php
## templates/subSilver/posting_body.tpl
## Included Files: n/a
##############################################################
## For Security Purposes, Please Check: http://www.phpbbguru.net/mods/ for the
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code
## to enter into your phpBB Forum.
##############################################################
## Author Notes:
## Thanks to:
## Xpert < xpert@phpbbguru.net > for MOD Description
##
## Jovani for idea of double post protection
##############################################################
## MOD History:
##
## 2004-06-06 - Version 1.0.0
## - Initial Release
##
## 2004-06-07 - Version 1.1.0
## - Double post protection added
##
## 2004-06-08 - Version 1.1.1
## - Bug with PM sending fixed
##
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
##############################################################

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

posting.php

#
#-----[ FIND ]------------------------------------------
#

'L_SUBMIT' => $lang['Submit'],

#
#-----[ AFTER, ADD ]------------------------------------------
#

'L_SENDING' => $lang['Sending'],

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

privmsg.php

#
#-----[ FIND ]------------------------------------------
#

'L_SUBMIT' => $lang['Submit'],

#
#-----[ AFTER, ADD ]------------------------------------------
#

'L_SENDING' => $lang['Sending'],

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

language/lang_english/lang_main.php

#
#-----[ FIND ]------------------------------------------
#

$lang['Submit'] = 'Submit';

#
#-----[ AFTER, ADD ]------------------------------------------
#

$lang['Sending'] = 'Sending';

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

templates/subSilver/posting_body.tpl

#
#-----[ FIND ]------------------------------------------
#

bbstyle(-1);
//formObj.preview.disabled = true;
//formObj.submit.disabled = true;

#
#-----[ AFTER, ADD ]------------------------------------------
#

setTimeout("document.post.post.disabled = true; document.post.post.value='{L_SENDING}'", 0);

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

Verfasst: 03.02.2005 22:11
von daruler
Hi,

danke, rabbit.
Weißt du in wie fern die "protection from double post " funktioniert?

Verfasst: 03.02.2005 22:17
von Max
Und ich steuere mal auch noch eine Version bei.....

Code: Alles auswählen

##############################################################
## MOD Title: Double Post Control MOD
## MOD Author: Kinetix < webmaster@ikrontik.tk > (N/A) http://www.ikrontik.tk
## MOD Description: This MOD effectively stops users from posting the same message
##                  twice in a row.
## MOD Version: 1.0.0
##
## Installation Level: Easy
## Installation Time: 1 Minute
## Files To Edit: 2: includes/functions_post.php 
##                   language/lang_english/lang_main.php 
## Included Files: 0
##############################################################
## For Security Purposes, Please Check: http://www.phpbb.com/mods/ for the
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code
## to enter into your phpBB Forum. As such, phpBB will not offer support for MOD's not offered
## in our MOD-Database, located at: http://www.phpbb.com/mods/
##############################################################
## Author Notes: None.
##
##############################################################
## MOD History:  None.
##
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
############################################################## 

# IMPORTANT: Some FIND commands only contain partial lines.  Unless the script calls for an
# "IN-LINE ADD," always add new segments of code on separate lines.  Also, before an In-Line
# Find, you'll often see a FIND.  These FINDS are there to help you locate the lines where
# In-Line FIND will work.
# 
#-----[ OPEN ]------------------------------------------ 
#
includes/functions_post.php
# 
#-----[ FIND ]------------------------------------------ 
#
		//
		// Flood control
		//
		$where_sql = ($userdata['user_id'] == ANONYMOUS) ? "poster_ip = '$user_ip'" : 'poster_id = ' . $userdata['user_id'];
		$sql = "SELECT MAX(post_time) AS last_post_time
			FROM " . POSTS_TABLE . "
			WHERE $where_sql";
		if ($result = $db->sql_query($sql))
		{
			if ($row = $db->sql_fetchrow($result))
			{
				if (intval($row['last_post_time']) > 0 && ($current_time - intval($row['last_post_time'])) < intval($board_config['flood_interval']))
				{
					message_die(GENERAL_MESSAGE, $lang['Flood_Error']);
				}
			}
		}
# 
#-----[ AFTER, ADD ]------------------------------------------ 
#

		//
		// Double Post Control
		//
		$lastposttime = intval($row['last_post_time']);
		if($mode != 'editpost')
		{
			$sql = "SELECT pt.post_text
				FROM " . POSTS_TABLE . " p, " . POSTS_TEXT_TABLE . " pt
				WHERE $where_sql AND p.post_time = $lastposttime AND pt.post_id = p.post_id
				LIMIT 1";
			if ($result = $db->sql_query($sql))
			{
				if ($row = $db->sql_fetchrow($result))
				{
					if ($row['post_text'] == $post_message)
					{
						message_die(GENERAL_MESSAGE, $lang['Double_Post_Error']);
					}
				}
				$db->sql_freeresult($result);
			}
		}
# 
#-----[ OPEN ]------------------------------------------ 
#
language/lang_english/lang_main.php
# 
#-----[ FIND ]------------------------------------------ 
#
$lang['Flood_Error'] = 'You cannot make another post so soon after your last; please try again in a short while.';
# 
#-----[ AFTER, ADD ]------------------------------------------ 
#
$lang['Double_Post_Error'] = 'You cannot make another post with the exact same text as your last.';
# 
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ 
# 
# EoM 
Funktioniert in einem phpBB2.0.11
Es kann nicht zweimal der selbe Inhalt von einem Benutzer als Beitrag abgesendet werden.


Gruß Max

Verfasst: 03.02.2005 22:21
von daruler
Etwas anderer Zweck, aber dein Mod ist natürlich auch sehr nützlich...

Verfasst: 03.02.2005 22:30
von rabbit
@ max: dein MOD fügt einen zusätzlichen sql-query hinzu, daher würde ich persönlich schon aus performancegründen meine version vorziehen. ;)

Verfasst: 03.02.2005 22:39
von daruler
Wie funktioniert denn die "protection from double post ", rabbit ?

Verfasst: 03.02.2005 22:49
von rabbit
der 'Absenden'-button ist nicht mehr klickbar, nachdem er einmal geklickt wurde. somit wird bei ungeduldigen usern verhindert, dass sie nach einer weile (während die seite noch lädt) nochmal auf 'Absenden' klicken. ;)
außerdem steht dann statt 'Absenden' nach dem klicken 'Sending' (englische version, kann natürlich übersetzt werden).

Verfasst: 03.02.2005 23:00
von Max
das ist natürlich ein Aspekt, denich nicht mit berücksichtigt habe.
Allerdings bin ich damals auf der Suche nach so einer Funktion darüber gestolpert und nutze das seitdem.

Was natürlich ein angenehmer Nebeneffekt ist, wenn ein User auf die Idee kommt, mal eben in mehreren Bereichen den Forums immer den selben Beitrag schreiben will - das wird dann geblockt.

Das gibt es übrigens auch für Attachments, habe ich aber noch nicht eingebaut, halte ich aber auch für sinnvoll.


Gruß Max

Verfasst: 03.02.2005 23:01
von daruler
Ach, dann ist das doch nicht das, was ich brauche.
Denn ich will z.B. auch nicht, dass ein Paar Stunden später der User einen 2. Beitrag nach seinem 1. postet, anstatt diesen zu editieren.

Verfasst: 01.03.2005 20:42
von Schwarzer-Schlumpf
Hat jemand den double pos merge mod eingebaut?

Finde

Code: Alles auswählen

	if ($mode == 'editpost')
nicht.

Code: Alles auswählen

	$mode == 'editpost'
hingegen gleic mehrmals