Seite 1 von 1

Nach Anklicken des Absenden-Button wird dieser deaktiviert

Verfasst: 15.10.2006 15:23
von mgutt
Der Button "Absenden" (Submit) und "Vorschau" (Preview) werden durch diese Änderung nach draufklicken des Users deaktiviert. D.h. er kann ihn nicht nochmal anklicken um dadurch einen Doublepost zu verursachen. Diese Änderung war notwendig, weil es manche User es trotz des Floodintervalls immer wieder geschafft haben Ihren Post erneut abzusenden.

Weiterhin wird der jeweilige Button mit dem Text "Bitte warten..." angezeigt.

öffne languages/german/lang_main.php und suche nach:

Code: Alles auswählen

$lang['Error'] = 'Fehler';
danach einfügen:

Code: Alles auswählen

$lang['Loading'] = 'Bitte warten...';
öffne posting.php:

Code: Alles auswählen

	'L_DELETE_POST' => $lang['Delete_post'],
danach einfügen:

Code: Alles auswählen

//-- mod : loading message -----------------------------------------------------
//-- add
			'L_LOADING' => $lang['Loading'],
//-- fin mod : loading message -------------------------------------------------
öffne templates/{TEMPLATE}/posting_body.tpl und suche nach:
(wie man sieht wurde diese Änderung bereits durch das phpBB-Team angedacht, aber leider nicht umgesetzt worden)

Code: Alles auswählen

		//formObj.preview.disabled = true;
		//formObj.submit.disabled = true;
danach einfügen:

Code: Alles auswählen

		if ( document.post.preview.value == '{L_LOADING}' )
		{
			setTimeout("document.post.preview.disabled = true;", 0);
		}
		else if ( document.post.post.value == '{L_LOADING}' )
		{
			setTimeout("document.post.post.disabled = true;", 0);
		}
suche nach:

Code: Alles auswählen

	  <td class="catBottom" colspan="2" align="center" height="28"> {S_HIDDEN_FORM_FIELDS}<input type="submit" tabindex="5" name="preview" class="mainoption" value="{L_PREVIEW}" />&nbsp;<input type="submit" accesskey="s" tabindex="6" name="post" class="mainoption" value="{L_SUBMIT}" /></td>
ersetze gegen:

Code: Alles auswählen

	  <td class="catBottom" colspan="2" align="center" height="28"> {S_HIDDEN_FORM_FIELDS}<input type="submit" tabindex="5" name="preview" class="mainoption" value="{L_PREVIEW}" onmousedown="this.value='{L_LOADING}'" />&nbsp;<input type="submit" accesskey="s" tabindex="6" name="post" class="mainoption" value="{L_SUBMIT}" onmousedown="this.value='{L_LOADING}'" /></td>
Ach ja, vielleicht ist das ja was für die Snippets :D

Verfasst: 15.10.2006 15:27
von CrYiNg
Hallo!

Ich glaube, dass gibt es auch schon als normalen Mod. Ja, der
"Post Is Sending" Mod. Aber deinen finde ich auch super. :wink:

CrYINg :cry:

Verfasst: 15.10.2006 15:29
von Seimon
CrYiNg hat geschrieben:Ja, der "Post Is Sending" Mod.
jepp
-> http://www.phpbb.de/viewtopic.php?p=422280#422280

Verfasst: 15.10.2006 15:38
von mgutt
Hmm.. mit dem Timeout hat der das getrickst... muss ich mal testen.

Aber das doofe bei ihm ist, dass der bei Klick auf vorschau den absenden button deaktiviert und nicht den preview button. besser wären dann beide.. mich wundert aber warum das überhaupt geht.. wahrscheinlich wegen dem timeout. denn wenn der button disabled wurde, dann hat das script nichts mehr zu empfangen, aber ich teste das mal aus.

gruß

EDIT:
So ich habe den Mod angepasst. Jetzt ist er kompakter und funktioniert genauso wie vorher auch :D

Der Trick mit dem setTimeout ist super, weil das Formular erst abgesendet und dann innerhalb von 0 Sekunden die Änderung durchgeführt wird. (also trotzdem noch gleichzeitig) Dadurch konnte ich auf die Hidden Felder verzichten.

Übrigens achte ich bei allen meinen Javascriptänderungen darauf, dass sie auch ohne aktiviertem Javascript die Seite nicht beeinflussen. Also ihr müsste keine Angst haben, dass bei deaktiviertem Javascript plötzlich kein Post oder sowas abgesendet werden kann.

Gruß

Verfasst: 15.10.2006 18:10
von easygo
War wohl nicht deine Baustelle -->

http://www.phpbb.de/viewtopic.php?t=132629

Verfasst: 19.02.2007 17:46
von EP_FAN
Also mir fällt gerade auf das man in der posting.php auch etwas ändern muss.

öffne privmsg.php und suche nach:

Code: Alles auswählen

'L_ATTACH_SIGNATURE' => $lang['Attach_signature'],
danach einfügen:

Code: Alles auswählen

//-- mod : loading message -----------------------------------------------------
//-- add
         'L_LOADING' => $lang['Loading'],
//-- fin mod : loading message -------------------------------------------------
Somit steht "Bitte warten..." auch bei PMs !!!
Ansonsten wird das Feld lehr

Gruß EP_FAN