[Bugfix] Merge Topic Mod

Kleine Codeänderungen oder Mini-MODs
Keine Anfragen!!! -- No requests!!!

Moderator: Supporter

[Bugfix] Merge Topic Mod

Beitragvon Lecay » 25. Okt 2007 20:10

Wer den Merge Topic Mod in ein aktuelles PhpBB 2.0.22 einbaut, wird eine ziemlich schlechte Erfahrung damit machen, da die SID des Benutzers nicht an den Link im ModCP weitergegeben wird. Auch wenn ich kein PHP kann, habe ich mir aktuelle Beispiele in dem File angesehen und habe den Code nach dem installieren des Mods in der viewtopic.php an folgener Stelle angepasst:
Code: Alles auswählen
#
#-----[ FIND ]------------------------------------------
#
   $topic_mod .= '<a href="' . append_sid("modcp.$phpEx?" . POST_TOPIC_URL . "=$topic_id&amp;mode=move"). '"><img src="' . $images['topic_mod_move'] . '" alt="' . $lang['Move_topic'] . '" title="' . $lang['Move_topic'] . '" border="0" /></a>&nbsp;';

#
#-----[ REPLACE WITH ]----------------------------------------
#
   $topic_mod .= "<a href=\"modcp.$phpEx?" . POST_TOPIC_URL . "=$topic_id&amp;mode=mergepost&amp;sid=" . $userdata['session_id'] . '"><img src="' . $images['topic_mod_merge'] . '" alt="' . $lang['Merge_post'] . '" title="' . $lang['Merge_post'] . '" border="0" /></a>&nbsp;';


Danach sollte der Mod ohne Probleme verwendbar und voll funktionstuechtig sein!

@AmigaLink; Wenn du bei dem Fix Einwende hast, dann editiere ihn gegenfalls oder loesche ihn. Bei mir hat er auf alle Faelle ohne Probleme zur Loesung des Problemes verholfen und ich denke ich moechte damit anderen die Hilfe geben, die mir hier gegeben wird.
Lecay
User
 
Beiträge: 58
Registriert: 29. Aug 2007 09:22

Beitragvon Christian_N » 25. Okt 2007 20:43

Ist schon komisch, den eigentlich ist die Funktion append_sid(); genau dafür da, komisch das es nicht funktioniert dann.

Aber so wie es jetzt auch gemacht hast geht es auch, den beides ist eigentlich für die Session ID gedacht.

Ok eins möchte ich allerdings bei die Fundstelle einwenden es sollte sicher
Code: Alles auswählen
  $topic_mod .= '<a href="' . append_sid("modcp.$phpEx?" . POST_TOPIC_URL . "=$topic_id&amp;mode=mergepost"). '"><img src="' . $images['topic_mod_merge'] . '" alt="' . $lang['Merge_post'] . '" title="' . $lang['Merge_post'] . '" border="0" /></a>&nbsp;';
heißen, den bei deiner Fundstelle würde sonst jeder andere die Move (Verschieben) Funktion überschreiben statt die Merge (Zusammenfügen) Funktion :)

Gruß Chris
Chantals - Fanpage :: http://www.chantals-fanpage.de
Benutzeravatar
Christian_N
User
 
Beiträge: 524
Registriert: 31. Mai 2005 00:17
Wohnort: Deutschland

Beitragvon Lecay » 25. Okt 2007 20:59

Christian_N hat geschrieben:Ok eins möchte ich allerdings bei die Fundstelle einwenden es sollte sicher
Code: Alles auswählen
  $topic_mod .= '<a href="' . append_sid("modcp.$phpEx?" . POST_TOPIC_URL . "=$topic_id&amp;mode=mergepost"). '"><img src="' . $images['topic_mod_merge'] . '" alt="' . $lang['Merge_post'] . '" title="' . $lang['Merge_post'] . '" border="0" /></a>&nbsp;';
heißen, den bei deiner Fundstelle würde sonst jeder andere die Move (Verschieben) Funktion überschreiben statt die Merge (Zusammenfügen) Funktion :)


Wah! :shock: Ist ja peinlich, da hast du vollkommen recht. :oops:

Naja, es war wirklich nur gut gemeint, da ich auch etwas zurueckgeben wollte. Aber es ist wirklich schon sehr merkwuerdig, dass diese Funktion nicht bei mir geklappt hat... Ich habe es gerade noch einmal getestet und die SID hat wieder im Link gefehlt... Kann das an der PHP Version liegen?

Zugefügt nach 26 Minute(n):

So, habe den Uebeltaeter gefunden:

In der modcp.php muss hinter:

define('IN_PHPBB', true);


Folgene Zeile eingefuegt werden, damit der Bug mit der SID nicht mehr auftritt:

define('IN_ADMIN', true);


Warum auch immer, es funktioniert und das ist die Hauptsache! :)
Lecay
User
 
Beiträge: 58
Registriert: 29. Aug 2007 09:22

Beitragvon Christian_N » 25. Okt 2007 22:45

Code: Alles auswählen
define('IN_ADMIN', true);
würde ich auf keine Fall machen, so wie es vorher hattest ist schon richtig, den im originale phpBB 2.0.22 sieht der Block ja auch so aus
Code: Alles auswählen
if ( $is_auth['auth_mod'] )
{
   $s_auth_can .= sprintf($lang['Rules_moderate'], "<a href=\"modcp.$phpEx?" . POST_FORUM_URL . "=$forum_id&amp;sid=" . $userdata['session_id'] . '">', '</a>');

   $topic_mod .= "<a href=\"modcp.$phpEx?" . POST_TOPIC_URL . "=$topic_id&amp;mode=delete&amp;sid=" . $userdata['session_id'] . '"><img src="' . $images['topic_mod_delete'] . '" alt="' . $lang['Delete_topic'] . '" title="' . $lang['Delete_topic'] . '" border="0" /></a>&nbsp;';

   $topic_mod .= "<a href=\"modcp.$phpEx?" . POST_TOPIC_URL . "=$topic_id&amp;mode=move&amp;sid=" . $userdata['session_id'] . '"><img src="' . $images['topic_mod_move'] . '" alt="' . $lang['Move_topic'] . '" title="' . $lang['Move_topic'] . '" border="0" /></a>&nbsp;';

   $topic_mod .= ( $forum_topic_data['topic_status'] == TOPIC_UNLOCKED ) ? "<a href=\"modcp.$phpEx?" . POST_TOPIC_URL . "=$topic_id&amp;mode=lock&amp;sid=" . $userdata['session_id'] . '"><img src="' . $images['topic_mod_lock'] . '" alt="' . $lang['Lock_topic'] . '" title="' . $lang['Lock_topic'] . '" border="0" /></a>&nbsp;' : "<a href=\"modcp.$phpEx?" . POST_TOPIC_URL . "=$topic_id&amp;mode=unlock&amp;sid=" . $userdata['session_id'] . '"><img src="' . $images['topic_mod_unlock'] . '" alt="' . $lang['Unlock_topic'] . '" title="' . $lang['Unlock_topic'] . '" border="0" /></a>&nbsp;';

   $topic_mod .= "<a href=\"modcp.$phpEx?" . POST_TOPIC_URL . "=$topic_id&amp;mode=split&amp;sid=" . $userdata['session_id'] . '"><img src="' . $images['topic_mod_split'] . '" alt="' . $lang['Split_topic'] . '" title="' . $lang['Split_topic'] . '" border="0" /></a>&nbsp;';
}
Da wird es so geregelt wie in deinen erste Post es geschrieben hast und vom phpBB Group garnicht mit die Funktion append_sid(); gearbeitet, womöglich weil die eben dort drin nicht geht also ist dein Fix im erste Beitrag schon richtig.

Mein Post davor war auch net bös oder so gemeint, schon klar das es gut gemeint hast und so, wollt nur auf den Fehler hinweisen höflich damit nicht wenn jem. es ändert durch ggf. des selbe Prob. des falsche ersetzt, deshalb würde ich sage ersetz einfach in deinem erste Beitrag die Fundstelle und dann hast ein Fix den Leute mitgeteilt für diesen MOD. :)

Gruß Chris
Chantals - Fanpage :: http://www.chantals-fanpage.de
Benutzeravatar
Christian_N
User
 
Beiträge: 524
Registriert: 31. Mai 2005 00:17
Wohnort: Deutschland

Beitragvon Lecay » 25. Okt 2007 22:54

Christian_N hat geschrieben:
Code: Alles auswählen
define('IN_ADMIN', true);
würde ich auf keine Fall machen, so wie es vorher hattest ist schon richtig, den im originale phpBB 2.0.22 sieht der Block ja auch so aus.


Nun, wenn ich die Zeile aus der modcp.php nehme, bekomme ich allerdings im modcp beim zusammenfuehren des Topics wieder ein anderes:

Invalid_session


Ausserdem, habe ich deine Antwort in der Tat nicht als boese empfunden. Du hast mich nur da verbessert, wo ich was verpatzt habe und da ist nichts schlimmes dran. Allerdings saehe es bestimmt ein wenig dumm aus, wenn ich einen Fix bereitstelle, der gar keiner ist ;)

Gruss Lecay

Zugefügt nach 3 Minute(n):

Hm, editieren ist gut... Allerdings kann man bereits beantwortete Beitraege nicht mehr editieren. :?
Lecay
User
 
Beiträge: 58
Registriert: 29. Aug 2007 09:22

Beitragvon Christian_N » 26. Okt 2007 06:07

Stimmt hier in dieser Kategorie ist es nicht erlaubt, muss es ggf. dann Markus machen.

Des mit dieser Meldung bekommst aber auch, wenn es so machst wie im erste Beitrag es beschrieben hast mit der viewtopic.php? Den da hattest doch geschrieben nachdem es ersetzt hast, das es ging?!?


Gruß Chris
Chantals - Fanpage :: http://www.chantals-fanpage.de
Benutzeravatar
Christian_N
User
 
Beiträge: 524
Registriert: 31. Mai 2005 00:17
Wohnort: Deutschland

Beitragvon Lecay » 26. Okt 2007 11:16

Hm, das ist schon merkwuerdig...
In der modcp.php muss aber trotzdem ein Bug sein, denn in einem anderen Forum wurde ueber dieses Problem auch berichtet, allerdings mit noch ein paar anderen Problemen.

Bei meiner Aenderung in der viewtopic.php komme ich bis zum eigendlichen zusammenfuehren von dem Thema, aber kurz vor der finalen Ausfuehrung, kommt fehlt wieder die SID... Denke da wird noch wieder etwas in der modcp.php vom diesem Mod sein, was nicht ganz dem neuen Muster endspricht. Auf alle Faelle wurde in den anderen support Foren geschrieben, dass ich in der modcp.php die Admin Zeile reinpacken soll und dass es damit getan waere... Nur warum? Ist schon merkwuerdig...
Lecay
User
 
Beiträge: 58
Registriert: 29. Aug 2007 09:22

Beitragvon Christian_N » 26. Okt 2007 13:09

Also deine Änderung in der viewtopic.php ist schon mal nicht verkehrt, die mach auf jedenfall und lass die so drin.

Zusätzlich müsste in der modcp.php noch dann gemacht werden

Code: Alles auswählen
#
#-----[ OPEN ]------------------------------------------

modcp.php

#
#-----[ FIND ]------------------------------------------
#
         $hidden_fields = '<input type="hidden" name="mode" value="' . $mode . '" /><input type="hidden" name="' . POST_FORUM_URL . '" value="' . $forum_id . '" />';

#
#-----[ REPLACE WITH ]------------------------------------------
#
         $hidden_fields = '<input type="hidden" name="sid" value="' . $userdata['session_id'] . '" /><input type="hidden" name="mode" value="' . $mode . '" /><input type="hidden" name="' . POST_FORUM_URL . '" value="' . $forum_id . '" />';


Damit müsste er dann die SID mit übermitteln wenn auf den Button klickst und die Finale Ausführung sollte mit eine Erfolgreiche Mitteilung dir gezeigt werden :D

Habe es zwar nicht getestet, aber sollte so funktionieren. :)

Gruß Chris
Chantals - Fanpage :: http://www.chantals-fanpage.de
Benutzeravatar
Christian_N
User
 
Beiträge: 524
Registriert: 31. Mai 2005 00:17
Wohnort: Deutschland

Beitragvon Lecay » 26. Okt 2007 15:33

Christian_N hat geschrieben:Damit müsste er dann die SID mit übermitteln wenn auf den Button klickst und die Finale Ausführung sollte mit eine Erfolgreiche Mitteilung dir gezeigt werden :D

Habe es zwar nicht getestet, aber sollte so funktionieren. :)


Nun, leider ist das wohl nicht der Fall. :?
Ich bekomme immer noch die gleiche Meldung, dass die SID nicht uebermittelt wird... warum auch immer...

Gruss Lecay.
Lecay
User
 
Beiträge: 58
Registriert: 29. Aug 2007 09:22

Beitragvon AmigaLink » 14. Nov 2007 08:09

Wie wäre es mit dem fix von oxpus?!
Bei mir Funktioniert er damit einwandfrei. :D
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Nächste

Zurück zu phpBB2 Snippets



Wer ist online?

Mitglieder in diesem Forum: Magpie [Crawler] und 2 Gäste

cron