Thread: Integration with vBulletin - vbWiki Standard - vBulletin+MediaWiki integration
View Single Post
  #294  
Old 07-07-2008, 04:42 AM
Michael Morris's Avatar
Michael Morris Michael Morris is offline
 
Join Date: Nov 2003
Location: Knoxville TN
Posts: 774
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ran across the session logout bug mentioned in this thread. This is how I killed it - I'm not familiar enough with mediaWiki yet to fully weigh the ramifications of this stunt. Use with caution.

In file vbWiki.php find this line of code
PHP Code:
require_once( LUX_VB_DIR "/vbWiki_Hooks.php" ); 
Insert after

PHP Code:
/** Patch - make sure $_SESSION is populated **/
if ((empty($_SESSION['wsUserID']) || empty($_SESSION['wsUserName']) || empty($_SESSION['wsToken'])) && !empty($_COOKIE['seebelow']))
{
    
$_SESSION array_merge$_SESSION$db->query_first("SELECT 
        user_id AS wsUserID,
        user_name AS wsUserName,
        user_token AS wsToken
        FROM mw__user
        WHERE user_name = '"
.addslashes($_COOKIE['seebelow'])."' LIMIT 1"));

To get the above to work you must also change $_COOKIE['seebelow'] following the instructions below. For my board it was

$_COOKIE['enprod_mw__UserName']

This appears to be databasename + underscore + mediawiki prefix + "UserName".

You can discover what the field actually is by calling print_r($_COOKIE); exit; where this code mod occurs to find out what part of the cookie you need to reference to find the username for the wiki.

It is during the code that precedes that vbWiki populates the cookie but for some reason the $_SESSION is left empty - this is why the user is logged out when they go to the wiki and has to log in. Keep in mind that vbulletin doesn't use $_SESSION at all.

The hack above populates $_SESSION with the values necessary to authenticate mediaWiki. It is called after the bridge has already tested the cookie using vbulletin core - so it should be safe.

With the fix above I now have this module running on vBulletin 3.7.2 and MediaWiki 1.12.0
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01325 seconds
  • Memory Usage 1,780KB
  • 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
  • (2)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