Thanks for the replies guys, I actually managed to do it a week or so ago (forgot to update here since I've been busy and working on a games wiki section which will also end up using this, so I kinda forgot about this thread )
Basically, what I did, was duplicate editpost.php, and called it wikiedit.php. Then, from the wikiedit.php file I removed all of this;
PHP Code:
// ############################### start permissions checking ############################### if ($_REQUEST['do'] == 'deletepost') { // is post being deleted? if so check delete specific permissions if (!can_moderate($threadinfo['forumid'], 'candeleteposts')) { if (!$threadinfo['open']) { $vbulletin->url = 'showthread.php?' . $vbulletin->session->vars['sessionurl'] . "t=$postinfo[threadid]"; eval(print_standard_redirect('redirect_threadclosed')); } if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['candeletepost'])) { print_no_permission(); } else { if ($vbulletin->userinfo['userid'] != $postinfo['userid']) { // check user owns this post since they failed the Mod Delete permission check for this forum print_no_permission(); } } } } else { // otherwise, post is being edited if (!can_moderate($threadinfo['forumid'], 'caneditposts')) { // check for moderator if (!$threadinfo['open']) { $vbulletin->url = 'showthread.php?' . $vbulletin->session->vars['sessionurl'] . "t=$threadinfo[threadid]"; eval(standard_error(fetch_error('threadclosed'))); } if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['caneditpost'])) { print_no_permission(); } else { if ($vbulletin->userinfo['userid'] != $postinfo['userid']) { // check user owns this post print_no_permission(); } else { // check for time limits if ($postinfo['dateline'] < (TIMENOW - ($vbulletin->options['edittimelimit'] * 60)) AND $vbulletin->options['edittimelimit'] != 0) { eval(standard_error(fetch_error('edittimelimit', $vbulletin->options['edittimelimit'], $vbulletin->options['contactuslink']))); } } } } }
and then from lines 91-97, I replaced this;
PHP Code:
// get permissions info $_permsgetter_ = 'edit post'; $forumperms = fetch_permissions($threadinfo['forumid']); if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canview']) OR !($forumperms & $vbulletin->bf_ugp_forumpermissions['canviewthreads']) OR (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canviewothers']) AND ($threadinfo['postuserid'] != $vbulletin->userinfo['userid'] OR $vbulletin->userinfo['userid'] == 0))) { print_no_permission(); }
with this;
PHP Code:
// get permissions info if ($threadinfo['prefixid'] != wiki OR is_member_of($vbulletin->userinfo, 4, 1, 3, 8, 2) OR ($threadinfo['firstpostid'] != $postinfo['postid'])) { print_no_permission(); }
I did have it do that any member could edit the first post, but decided to only allow it to people with over 15 posts (which is obviously what the is_member_of($vbulletin->userinfo, 4, 1, 3, 8, 2) bit is for)
I'm sure there's a better way of doing it, but I'm just happy I managed to get it working