The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
Menalto's G2 integration into VB3
NOTE: Development for G2.1 and vB 3.5 is on this page: https://vborg.vbsupport.ru/showthread.php?t=111931 I was about to post this on Menalto's site until i realized that I'd be publicly posting VB3's code... A no-no!!! heh! So, I'll post the instructions here, and then refer people to this post on how to do it! (obviously they'll have to log on w/ their licensed account to see it) Ok, here's how to integrate menalto's G2 gallery into VB3. Menalto's gallery is sweet. Menalto's gallery is free. Menalto's gallery is here: http://gallery.menalto.com/index.php This works on my system of vBulletin 3.0.7 and Gallery 2 Holy Hand Grenade. Known issues: VB3 has a password structure that consists of the user's password plus the salt md5'ed together. It is not possible to strip out just the user's password. Thus, this script pushes the users's password plus salt from VB3 into G2. The outcome - the standalone G2 passwords will not match *just* the user's password! There is talks of looking into salt'ing in the future w/ G2 integration, but that's the dealio as of this integration technique... If you are using G2 as 'embedded only', then game on, no worries. If not, then your users will need to log on through the VB3 install to setup their session, then can visit the G2 standalone if they wish... Step 1 - create a new file named 'gallery2.php' as per this thread: https://vborg.vbsupport.ru/showthread.php?t=62164 (thx Gary King!!!) in that thread, the first box (the gallery2.php file), the contents will be (this is the section that contains the G2 embeded code which is available on Menalto's site... i'll update this thread w/ direct links once it's in place! *only* the G2 code is on their site, no VB3 code in accordance w/ the VB license agreement! ): Code:
<?php // ####################### SET PHP ENVIRONMENT ########################### error_reporting(E_ALL & ~E_NOTICE); // #################### DEFINE IMPORTANT CONSTANTS ####################### define('NO_REGISTER_GLOBALS', 1); define('THIS_SCRIPT', 'gallery2'); // change this depending on your filename // ################### PRE-CACHE TEMPLATES AND DATA ###################### // get special phrase groups $phrasegroups = array( ); // get special data templates from the datastore $specialtemplates = array( ); // pre-cache templates used by all actions $globaltemplates = array( 'galley2', ); // pre-cache templates used by specific actions $actiontemplates = array( ); // ######################### REQUIRE BACK-END ############################ require_once('./global.php'); // ####################################################################### // ######################## START MAIN SCRIPT ############################ // ####################################################################### $navbits = array(); $navbits[$parent] = 'Gallery G2'; $navbits = construct_navbits($navbits); eval('$navbar = "' . fetch_template('navbar') . '";'); // ####################################################################### // ###################### Begin G2 integration code ###################### // ####################################################################### $data = runGallery(); $data['title'] = (isset($data['title']) && !empty($data['title'])) ? $data['title'] : 'Gallery'; function runGallery() { global $bbuserinfo; require_once('../gallery2/embed.php'); $data = array(); // if anonymous user, set g2 activeUser to null $uid = $bbuserinfo['userid'] = 0 ? '' : $bbuserinfo['userid']; // initiate G2 // you need to edit the following 4 lines to suite your VB3/G2 install!!! // this is setup for a install that looks like: // public_html/VB/<vb files> // public_html/gallery2/<gallery2 files> // and also setup for a VB3 tempalte name of 'gallery2'. if you have any // differences, make those changes here! // you might need to change 'loginRedirect' if you have your VB3 setup to // where index.php is not the root page of VB3... i.e. if you've changed it // to forums.php or something of the like. $ret = GalleryEmbed::init(array('embedUri' => 'gallery2.php', 'embedPath' => '/VB', 'relativeG2Path' => '../gallery2', 'loginRedirect' => 'index.php', 'activeUserId' => $uid)); if ($ret->isError()) { if ($ret->getErrorCode() & ERROR_MISSING_OBJECT) { // check if there's no G2 user mapped to the activeUserId $ret = GalleryEmbed::isExternalIdMapped($uid, 'GalleryUser'); if ($ret->isError() && ($ret->getErrorCode() & ERROR_MISSING_OBJECT)) { // user not mapped, map create G2 user now // Get Arguments for the new user: $args['fullname'] = $bbuserinfo['username']; $args['username'] = $bbuserinfo['username']; $args['hashedpassword'] = $bbuserinfo['password']; $args['hashmethod'] = 'md5'; $args['email'] = $bbuserinfo['email']; $args['language'] = $bbuserinfo['lang_code']; $args['creationtimestamp'] = $bbuserinfo['joindate']; $retcreate = GalleryEmbed :: createUser($uid, $args); if (!$retcreate->isSuccess()) { echo '<HR>line: '.__LINE__.', Failed to create G2 user with extId ['.$uid.']. Here is the error message from G2: <br />'.$retcreate->getAsHtml(); return false; } $ret = GalleryEmbed::checkActiveUser($uid); if ($ret->isError()) { print $ret->getAsHtml(); return false; } } else { echo '<HR>line: '.__LINE__.', G2 did not return a success status. Here is the error message from G2: <br />'.$ret->getAsHtml(); return false; } } else { echo '<HR>line: '.__LINE__.', G2 did not return a success status. Here is the error message from G2: <br />'.$ret->getAsHtml(); return false; } } // user interface: disable sidebar in G2 and get it as separate HTML to put it into a block //GalleryCapabilities::set('showSidebar', false); // handle the G2 request $g2moddata = GalleryEmbed::handleRequest(); // show error message if isDone is not defined if (!isset($g2moddata['isDone'])) { $data['bodyHtml'] = 'isDone is not defined, something very bad must have happened.'; return $data; } // die if it was a binary data (image) request if ($g2moddata['isDone']) { exit; /* uploads module does this too */ } // put the body html from G2 into the xaraya template $data['bodyHtml'] = isset($g2moddata['bodyHtml']) ? $g2moddata['bodyHtml'] : ''; // get the page title, javascript and css links from the <head> html from G2 $title = ''; $javascript = array(); $css = array(); if (isset($g2moddata['headHtml'])) { list($data['title'], $css, $javascript) = GalleryEmbed::parseHead($g2moddata['headHtml']); $data['headHtml'] = $g2moddata['headHtml']; } /* Add G2 javascript */ if (!empty($javascript)) { foreach ($javascript as $script) { $data['javascript'] .= "\n".$script; } } /* Add G2 css */ if (!empty($css)) { foreach ($css as $style) { $data['css'] .= "\n".$style; } } // sidebar block if (isset($g2moddata['sidebarHtml']) && !empty($g2moddata['sidebarHtml'])) { $data['sidebarHtml'] = $g2moddata['sidebarHtml']; } return $data; } // ####################################################################### // ####################### End G2 integration code ####################### // ####################################################################### eval('print_output("' . fetch_template('gallery2') . '");'); ?> Code:
$ret = GalleryEmbed::init(array('embedUri' => 'gallery2.php', 'embedPath' => '/VB', 'relativeG2Path' => '../gallery2', 'loginRedirect' => 'index.php', 'activeUserId' => $uid)); Code:
require_once('../gallery2/embed.php'); step 2 - creating the template as per the same thread, https://vborg.vbsupport.ru/showthread.php?t=62164 (2nd code box) create a template named 'gallery2' (no tics) and in it, place the following code: Code:
$stylevar[htmldoctype] <html dir="$stylevar[textdirection]" lang="$stylevar[languagecode]"> <head> $headinclude $data[headHtml] </head> <body> $header $navbar <table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"> <tr><td class="tcat">Gallery</td></tr> <tr><td class="alt1">$data[bodyHtml]</td></tr> </table> $footer </body> </html> oh, forgot to add! in scouring the net, i've seen a couple of posts where people have offered to pay for this solution. if you are one of them, and are serious, then here's Menalto's donation link! (nope, i'm not affiliated w/ them... if you wanna donate to me, then i'll redirect you to the donation link to the site that this is for: a non-profit saltwater aquariast club's site! ) edit 2006.01.11 Quote:
|
#112
|
|||
|
|||
Quote:
took me a month or so to figure this out finally. |
#113
|
|||
|
|||
nevermind... jsut saw your post and ?Variable? fixed the issue. man, whish i did that a month or so ago
now, sombody get that stupid auto group adition to work! |
#114
|
|||
|
|||
So you have upgraded and are running 2.1? It's working without any issues?
I am going to give it a try. Definitely backing up the codebase, database and config file in case I need to revert to the old version. I'll let you know how it goes! Sean |
#115
|
||||
|
||||
Anyone have Gallery 2.1 working with 3.5.4?
Here is my config file with a couple changes as outlined in the integration notes on the Gallery site: PHP Code:
Fatal error: Call to undefined function: iserror() in /home/paranorm/public_html/gallery2.php on line 74 Not sure what to do.... |
#116
|
|||
|
|||
Quote:
|
#117
|
||||
|
||||
With some help from a member over on Menalto's site, I've got Gallery 2.1 and vBulletin 3.5.4 working together.
The only problem I've come across is when the user first accesses the gallery (causing the gallery to create the new user) I get this error: Code:
Fatal error: Call to a member function on a non-object in /home/paranorm/public_html/gallery2.php on line 96 Here is my gallery2.php file, updated to work with Gallery 2.1 and vBulletin 3.5.4. PHP Code:
|
#118
|
|||
|
|||
if you go into notepad, and hit ctrl-G then tell it to goto line 96.. what is on that line...
|
#119
|
||||
|
||||
PHP Code:
|
#120
|
|||
|
|||
Quote:
i alreayd have a user created(my username) from previous attempts and since i dotn haev to create that account again, the integration script runs fine... so the script is working other than that part. the isError() part is what i have been having issues with from day ?1?... there is a post that ?joshmount? made over on teh G2 integration section, he did nto respond to me asking for more info as of yesterday afternoon. i wish i could find where this problem was comming from... such a PITA.. and since VBB is closed source, Valiant or anybody over on the G2 forums wont help too much, but they will help with the G2 related issues helpfull normaly to alright, i MIGHT have fixed the isError() BS... try going into your gallery admin panel. goto the mod rewrite/URL rewrite.. scroll to the bottom and uncheck the "Show Item", and "Download Item". after you hit save you will probobly get somethign saying that your integration file does not exist... that is fine... if you hit back and refresh teh page the settings will have taken(mod rewrite does nto work yet). then attempt to display the page again. after you login make your user an admin, then i got another browser(i use firefix as my default, so IE is my test browser) and login as a bogus user... that is the best way to test IMO let me knwo how it goes |
#121
|
|||
|
|||
Figured it out guys. The error caused by: if ($ret->isError()) is caused -- among other things -- that if things go correctly when doing the embed, nothing is returned by the $ret= statements. So what you need to do is:
Change: Code:
$retcreate = GalleryEmbed :: createUser($uid, $args); if (!$retcreate->isSuccess()) Code:
$retcreate = GalleryEmbed :: createUser($uid, $args); if ($retcreate) First, I believe that $retcreate->isSuccess() is no longer used. In the new paradigm of this version, if you do something and its successful, you get nothing returned back to $ret. Only when there is an error, then you get something back in $ret. So my replacement says, "if you get something back"...which is essentially what the previous statment said: "if what you get back is not successful" Change: Code:
$ret = GalleryEmbed::checkActiveUser($uid); if ($ret->isError()) { Code:
$ret = GalleryEmbed::checkActiveUser($uid); if ($ret) { |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|