I believe, from my own experience, that having user edits of their own posts disabled presents an unnecessary challenge to the user,: we all make typo mistakes. But equally letting users "go back in time" and change earlier posts [b]after[b/] someone has replied is also not too swift, as it leaves the door open to abuse.
The following mod to CPG-BB Forums (the standard forums in DF) will accomplish this, limiting user edits to their posts so long as no-one has posted a subsequent reply.
Leave basic forum setting at can-edit, and then make the following change to viewtopic.php at line 931 (for revision 9.39 in DF version 9.2.1):
if ( ( $userdata['user_id'] == $poster_id && $is_auth['auth_edit'] ) || $is_auth['auth_mod'] ) {
and replace with:
if ( ( $userdata['user_id'] == $poster_id && $is_auth['auth_edit'] && $i == $total_posts - 1 ) || $is_auth['auth_mod'] ) {
You are just adding a test, which applies to non-moderators, and non-admins, to see if the post is the last one.
EDIT: Adding an error message and enforcement
In posting.php in same folder, at line 227 insert:
} else if ( !$post_data['last_post'] && !$is_auth['auth_mod'] && $mode == 'editpost' ) {
message_die(GENERAL_MESSAGE, $lang['Cannot_edit_replied']);
And in language/english/forums.php add:
'Cannot_edit_replied' => 'Sorry, but you may not edit posts that have been replied to.',
You can test/evaluate here, just register/login and post to this thread. Reply twice and you will see that you can no longer edit your prior post in the thread.
Test post 1
Test post 2