Suche Mod: On 2 Reply Auto Copy 1 Reply and del 1 Reply

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
KnightOrk
Beiträge: 15
Registriert: Fr 07.Apr, 2006 20:15
Wohnort: http://www.knightork.de
Kontaktdaten:

Suche Mod: On 2 Reply Auto Copy 1 Reply and del 1 Reply

Beitrag von KnightOrk »

So der Titel enthällt eigentlich alles was der Mod können sollte *gg*

Ich würde es so formulieren:

Bei einer Antwort prüfe ob User bereits auf dieses Thema geanwortet hat.

Wenn JA: Kopiere die erste Antwort nach dem Befehl absenden in diesen neuen Beitrag und setzte es an den Anfang des neuen Beitrages, anschließend lösche die erste Anwort.

Wenn NEIN: Fahre fort wie gewohnt.

Kann mir dass jemand in PHP übersetzen? *gg*
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ich denke, da war jemand schon schneller: http://phpbbhacks.com/download/2206
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!
KnightOrk
Beiträge: 15
Registriert: Fr 07.Apr, 2006 20:15
Wohnort: http://www.knightork.de
Kontaktdaten:

Beitrag von KnightOrk »

Na dann sag ich vielen Dank ich hab alle möglichen Suchwörter da eingegeben nur Double nicht *rofl* In der Hoffnung dass der Mod tatsächlich hällt, was er verspricht!
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Der MOD prüft ob man auf einen eigenen Beitrag antwortet und fügt den neuen Text dann in den vorhergehenden Beitrag (am ende) ein.
Ausserdem gibt er den Zeitraum zwischen den beiden Postings an und setzt die Postingzeit auf die aktuelle Uhrzeit, wodurch der Thread (in der viewforum) wieder noch oben rutscht. :)
[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 »

Oh ja, ivh vergaß, daß dieser MOD ja auch auf AmigaLinks's Seite im Einsatz und daher auch dort zu bewundern ist...
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 »

Bei mir ist der aber beim bestem willen nicht mehr Original.
Mittlerweile ist er vollkommen an den UPI2DB angepasst und Arbeitet dadurch nicht mehr mit der Beitragszeit. :)
[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 »

Klar, aber der Effekt ist doch weiterhin sichtbar ;)
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!
KnightOrk
Beiträge: 15
Registriert: Fr 07.Apr, 2006 20:15
Wohnort: http://www.knightork.de
Kontaktdaten:

Beitrag von KnightOrk »

Hm sicher? Also laut Beschreibung:
This mod merges post text on posting
to the last message in topic
instead of adding a new one, only if
the poster of the last message
and the poster of current text is the
same person (double post becomes one post)
Macht er dass nur, wenn die letzte und neue Poster identisch sind!!!
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ja, nur dann macht er das.
Dieser MOD verhindert damit, daß ständig neue Beiträge von ein und demselben User im gleichen Topic erstellt werden, also die Unterbindung von Bumpings jeglicher Art.

Mein Stop Bumping MOD geht dazu noch einen Schritt weiter: Er unterbindet das Antworten auf eigene Posts komplett, so daß erst garkein User auf die Idee kommt, zu Bumpen.
Lediglich Editieren ist dann möglich, solange nicht ein anderer User geantwortet hat...
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 »

Du kannst dich gerne mal bei mir im Testforum austoben und schaun was der MOD macht.
Die Grundfunktion ist ja auch bei mir unverändert. Nur das Bunpen des Topics (durchs aktualisieren der Beitragszeit) und die Berechnung sowie Meldung der, zwischen den Postings, vergangenen Zeit ist halt vollkommen anders. :)
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
KnightOrk
Beiträge: 15
Registriert: Fr 07.Apr, 2006 20:15
Wohnort: http://www.knightork.de
Kontaktdaten:

Beitrag von KnightOrk »

Ja danke *gg* lieb gemeint hab Ihn schon selbst eingebaut und getestet. War ja auch nicht wirklich schwer, die Funktion dahingehend zu ändern, dass er halt nach poster_id sortiert und nicht nach Time *gg* Ich habs einfach so umgestellt:

Code: Alles auswählen

		$sql = "SELECT post_id, poster_id, post_time, MAX(post_time) FROM " . POSTS_TABLE . " WHERE topic_id = $topic_id GROUP BY poster_id ORDER BY poster_id DESC LIMIT 1";
Klappt auch wunderbar Die Time Edits hab ich auch selbst ausgebaut, weil die brauch kein Mensch eigentlich. Jetzt hab ich trotzdem noch ein Problem. Dass ganze soll nicht für den Thread Starter gelten und nicht für Mods und Admins.

Einfach gesagt schwer getan ich habs so versucht:

Code: Alles auswählen

if ( $mode == 'reply' && $userdata['user_id'] != ANONYMOUS && $post_info['topic_poster'] != $userdata['user_id'] ) 
Und dass mit dem Mod müsste man ja auch einfach dazu schreiben können. Aber nichtmal die einfache Abfrage da oben haut hin. Wobei es keine Fehlermeldung gibt. Sondern auch die Aufgabe des Posters wenn er sie nach ner Zeit etwas näher erklären möchte wird ans Ende gesetzt ziemlich blöd!!!
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Für Mods und Admins gibts bei mir ein feines addon => http://www.amigalink.de/phpbb2/viewtopic.php?t=422

Für den Threadstarter würde ich keine ausnahme zulassen, lässt sich aber auch ganz einfach realisieren wenn du mein add drin hast.
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
KnightOrk
Beiträge: 15
Registriert: Fr 07.Apr, 2006 20:15
Wohnort: http://www.knightork.de
Kontaktdaten:

Beitrag von KnightOrk »

Also ich hab dein Snippet natürlich sofort getestet und ich als Admin sehe keinen Haken zum ankreuzen. Btw wäre es natürlich dann noch schön, wenn der Haken immer an wäre, dann wäre ich zufrieden.

Ich habs auch mal ein wenig abgeändert aus:

Code: Alles auswählen

// 
// No_double_post 
// 
if ( $mode == 'reply' && $is_auth['auth_mod'] ) 
{ 
   $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); 
   $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 ) ) ) 
   { 
      $template->assign_block_vars('switch_no_double_post', array()); 
   } 
} 
Hab ich gemacht:

Code: Alles auswählen

$is_auth = auth(AUTH_ALL, $forum_id, $userdata, $post_info);
if ( $mode == 'reply' && $is_auth['auth_mod'] )
{ 
      $template->assign_block_vars('switch_no_double_post', array()); 
} 


Sonst konnte es nämlich niemande sehen kein Admin und kein Mod. Und man höre und staune die Funktion funktioniert sogar für Admins und Mods. Jetzt fehlt mir noch der Thread Starter den krieg ich da gar nicht unter trotz: Threadstartet can Close on Topic (weil die Funktion nur in Viewtopic definiert ist nicht in posting.

Ich habs so probiert:

Code: Alles auswählen

$is_auth = auth(AUTH_ALL, $forum_id, $userdata, $post_info);
if ( ( $mode == 'reply' && $is_auth['auth_mod'] ) || ( $forum_topic_data['topic_poster'] == $userdata['user_id'] ) )
{ 
      $template->assign_block_vars('switch_no_double_post', array()); 
} 



Ohne Erfolg!

PS: Den Haken hab ich schon selbst Standard angeklickt, den werd ich wohl nachher auch wieder ganz raus editieren, wenn der Rest erstmal geht brauchs nur zu Testzwecken!!!
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

???
Naja, solange du es irgendwie zufriedenstellend zum laufen bekommst, ist es ja ok. Aber nachvollziehen kann ich nicht das mein Snippet nicht funktioniert. ^2

Ich kann dir aber sagen warum dein Code nicht klappt. $forum_topic_data ist in der posting.php nicht verfügbar!
Was glaubst du warum ich eine extra SQL abfrage eingebaut habe, welche die Daten des letzten Beitrags ausliest? ;)
Nämlich damit ich Prüfen kann ob es überhaupt nötig ist die Option zum abschalten des double post merge an zu bieten. Der MOD verknüpft ja nur innerhalb eines im ACP eigestellten Zeitraums und auch dann nur wenn der letzte Beitrag vom gleichem User geschrieben wurde, der gerade einen Beitrag schreiben möchte. Ist das nicht der Fall, brauch ja auch die Option zum abschalten des double poste merge nicht angeboten zu werden. ;) Um das wiederum Prüfen zu können, müssen die Daten erst ermittelt werden und das macht der Code den du gelöscht hast. :)
Ok - Wenn du diese Prüfung nicht möchtest, ist das eine sache. Aber wenn du stattdessen den Topic-Starter einbeziehen willst, dann musst du auch diesen erstmal ermitteln. ;)

Abgesehen davon

Code: Alles auswählen

$is_auth = auth(AUTH_ALL, $forum_id, $userdata, $post_info);
ist an dieser stelle totaler Blödsinn. Der array $is_auth() ist schon lange gefüllt und wird unmittelbar bevor du ihn definierst sogar bereits für eine Abfrage genutzt

Code: Alles auswählen

if ( $mode == 'editpost' && ( ( $is_auth['auth_delete'] && $post_data['last_post'] && ( !$post_data['has_poll'] || $post_data['edit_poll'] ) ) || $is_auth['auth_mod'] ) )
{
	$template->assign_block_vars('switch_delete_checkbox', array());
}
;)
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
KnightOrk
Beiträge: 15
Registriert: Fr 07.Apr, 2006 20:15
Wohnort: http://www.knightork.de
Kontaktdaten:

Beitrag von KnightOrk »

Hm mag sein, *gg* Hey ich bin froh dass ich nen bischen was umbasteln kann.

Für mich ist dass alles Neuland. Ich hab eigentlich keine Ahnung von nichts.

Deine Prüfung hab ich raus genommen, weil ich den Mod umgeschrieben habe. Steht aber auch oben schon. Bei mir werden alle Doppelpostings zu einem zusammen gefügt. Allerdings hab ich es wenigstens auf Foren begrenzt. Warum Dein Snippet dennoch nicht funktioniert hat war mir nicht ersichtlich also hab ich einfach ein bischen umdekoriert und schon gehts. Mit dem Haken für Admins und Mods, dass die Posts nicht zusammen gefügt werden sollen Standard aktiviert. Soweit bin ich also schonmal ganz zufrieden mit deinem kleinem Snippet, weil es mir sehr geholfen hat dem Mod die Möglichkeit zu geben Posts nicht zusammen fügen zu lassen. Topic Starter krieg ich da auch bestimmt noch irgendwie rein. Sie sind ja schonmal definiert in Poll Delete z.b. *gg*

Aber eine Frage hätte ich trotzdem noch an Dich persönlich, kannst du bestätigen, dass auch ohne dein Snippet Admins immer davon ausgenommen waren. Ich kann die Stelle weder im Quellcode finden noch hab ich an dem "original" etwas geändert aber schon dort kann der Admin zwei Beiträge hintereinander "spammen"... Ich frag nur, weil es dann anscheinend ja doch schon irgendwo die Admin Abfrage geben muss, da könnte man da ja den Mod und die Topic_Poster auch zu tun...
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Aber eine Frage hätte ich trotzdem noch an Dich persönlich, kannst du bestätigen, dass auch ohne dein Snippet Admins immer davon ausgenommen waren.
Nein. Der Original MOD macht keinen Unterschied zwischen Usern, Mods & Admins. Er fügt grundsätzlich den neuen Beitrag in den alten ein, wenn sie vom gleichem User sind und innerhalb des eingestellten Zeitraums erstellt werden.
Wenn Admins eine Ausnahme wären, dann hätte ich das Snippet niemals geschrieben. ;)
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

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