Seite 1 von 1

1 Mod - 1 Datei - 1 Problem !

Verfasst: 20.12.2004 23:23
von daruler
Hallo,

ich habe vor kurzem den "Password Protected Topics"-Mod eingebaut, womit man passwortgeschützte Themen erstellen kann. Alles lief wunderbar, bis mir dann ein User auf meinem Forum mitgeteilt hat, dass er den 1. Post des Threads nicht editieren kann. Wenn er dies versucht, sieht es bei ihm so aus: http://img70.exs.cx/img70/3814/editerror9yj.jpg

Bei dem Mod wird die posting.php so verändert, dass der Administrator bei dem 1. Posting eines Threads ein Passwort eingeben kann. Sieht dann so aus: http://img78.exs.cx/img78/6199/pw5qa.jpg Das klappt bei mir auch wunderbar, nur bin ich als Admin leider der Einzige der die ersten Posts eines Threads editieren kann, was natürlich sehr unpraktisch ist und zwingend Doppelposts fördert.

Ich wäre demjenigen sehr verbunden, der sich mal die Installations-txt des Mods mal anschauen könnte, warum dieser die posting.php so verändert, dass normale User ihre 1. Postings nicht mehr editieren können.

Hier ist noch meine gemodete posting.php.

Vielen Dank schonmal!

Verfasst: 05.01.2005 22:45
von daruler
Hallo,

ich bitte euch wirklich innigst die Dateien mal anzuschauen, da das Problem immer noch besteht und die User nicht mehr ihre Ausgangsposts editieren können. Lasst mich bitte nicht hängen!

Danke!

Verfasst: 16.01.2005 17:50
von daruler
:cry:

Verfasst: 16.04.2005 11:22
von Joko-Facile
Gibt es inzwischen eine Lösung für das Problem? Bin hier genau in das gleiche Problem gelaufen, und will mir die Arbeit das zu fixen nicht unbedingt machen, wenn das schon gelöst wurde ...

Verfasst: 16.04.2005 12:25
von daruler
Also, ich habe selbst eine Lösung dafür gefunden: Du setzt einfach ein Passwort für einen Thread und entfernst den "[ BEFORE, ADD]"-Teil einfach. Somit können die User wieder ihre Posts editieren und auch das Passwort funktioniert. Wenn du mal wieder ein PW-geschützten Thread aufmachen willst, musst du den "[ BEFORE, ADD]"-Teil kurz einbauen und das Passwort bestimmen. Danach einfach wieder weg damit. Da ich nicht viele PW-Threads habe, macht es für mich nicht viel Umstand.

Code: Alles auswählen

---- posting.php -----

# 
#-----[ FIND ]-------------------------------------------- 
# 
   if ( $mode == 'editpost' || $mode == 'delete' || $mode == 'poll_delete' ) 
   { 

# 
#-----[ BEFORE, ADD ]------------------------------------- 
# 
   $show_password_box = ( $mode == 'newtopic' || ($mode == 'editpost' && $post_info['topic_first_post_id'] == $post_id) ) ? TRUE : 0; 
   if( $userdata['user_level'] != ADMIN && ($mode == 'editpost' || $mode == 'delete' || $mode == 'poll_delete') && $post_info['topic_first_post_id'] == $post_id ) 
   { 
      message_die(GENERAL_MESSAGE, $lang['Not_auth_edit_topic']); 
   }


Vom Mod-Author selber habe ich auf Anfrage noch diese Mail bekommen, habe es jedoch nicht ausprobiert:
Hi,

My _sincere_ apologies for this extremely late reply. I have had a
number of matters to work through.
To solve your problem, the following change should be sufficient:

> OPEN: posting.php
>
> FIND:
> $show_password_box = ( $mode == 'newtopic' || ($mode == 'editpost'
&&
> $post_info['topic_first_post_id'] == $post_id) ) ? TRUE : 0;
> if( $userdata['user_level'] != ADMIN && ($mode == 'editpost' ||
$mode
> == 'delete' || $mode == 'poll_delete') &&
> $post_info['topic_first_post_id'] == $post_id )
>
> REPLACE WITH:
> $show_password_box = ( $mode == 'newtopic' || ($mode == 'editpost'
&&
> $post_info['topic_first_post_id'] == $post_id) ) ? TRUE : 0;
> if( ($mode == 'editpost' || $mode == 'delete' || $mode ==
> 'poll_delete') && $post_info['topic_first_post_id'] == $post_id )
>
> SAVE & CLOSE ALL FILES
Bye

Verfasst: 16.04.2005 13:31
von Joko-Facile
Hmm, danke für den Hinweis, auch wenn es nicht ganz das ist was ich eigentlich erreichen wollte, aber folgendes scheint ganz gut zu funktionieren:

Code: Alles auswählen

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

language/lang_xxx/lang_main.php

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

$lang['Not_auth_edit_post']

#
# --- [ REPLACE WITH ] ----
#

$lang['Not_auth_edit_topic']

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

posting.php

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

if( $show_password_box && $userdata['user_level'] == ADMIN )

#
# --- [ REPLACE WITH ] ----
#

if( $show_password_box )

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

if( $userdata['user_level'] != ADMIN && ($mode == 'editpost' || $mode == 'delete' || $mode == 'poll_delete') && $post_info['topic_first_post_id'] == $post_id )
{
	message_die(GENERAL_MESSAGE, $lang['Not_auth_edit_topic']);
}

#
# --- [ REPLACE WITH ] ----
#

// if( $userdata['user_level'] != ADMIN && ($mode == 'editpost' || $mode == 'delete' || $mode == 'poll_delete') && $post_info['topic_first_post_id'] == $post_id )
// {
// 	message_die(GENERAL_MESSAGE, $lang['Not_auth_edit_topic']);
// }
Dann kann jeder der schreiben darf auch ein Topic mit Passwort machen und das Posting auch gewohnt editieren.

Der Patch an der ersten Datei behebt den Fehler mit der leeren Fehlermeldung wenn man nicht editieren darf. Da war einfach ein falscher Name angegeben für den String.