View Single Post
  #11  
Old 03-09-2012, 09:05 AM
0lly 0lly is offline
 
Join Date: Apr 2007
Location: UK
Posts: 29
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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->userinfo41382) 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

You can see the thread at the bottom of this page comes up as a "WikiEdit" post - http://www.nintendolounge.com/forum/...er=desc&page=3
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01108 seconds
  • Memory Usage 1,820KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (3)bbcode_php
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete