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:
|
#12
|
|||
|
|||
I've been looking for a Menalto Gallery integration for vBulletin and this was great news! Right now I'm just running a test board to see how it works and have the intention of migrating an existing board over to it after testing.
Regarding the side-bar missing when integrated, I don't ever seem to be able to get it to show. My install is as vanilla as it can be, no mods, out of the box install for both Gallery2 and vBulletin. Just wondered if you could shine any light on it at all. I noticed it works like a champ on your site AND with the CMS addon, this is exactly what I'm hoping to achieve. |
#13
|
|||
|
|||
as for issue:
b) the 'missing side bar' was a line of code i overlooked. not a bug, a feature! i'm actually quite embarassed i missed it... see the lines in the gallery2.php file in the first post: Code:
// user interface: disable sidebar in G2 and get it as separate HTML to put it into a block GalleryCapabilities::set('showSidebar', false); i.e., change it to: Code:
// user interface: disable sidebar in G2 and get it as separate HTML to put it into a block //GalleryCapabilities::set('showSidebar', false); for instance, i'm using vBAdvanced and eventually plan on making the 'sidebar' controls a block on the left hand menu. why? real estate... i'll get my left hand VB menu, PLUS my gallery2 left hand menu. (only on the G2 pages of course!) i havn't figured out how to do that just yet (havn't messed w/ it much) so in the interim, i've just commented out that line and you'll instantly get the side G2 'bar'. revisiting issue: a) mod_rewrite G2 'holy hand grenade' has integration mod_rewrite issues. it has already been corrected according to the G2 developers, and u can grab it via the CVS if u like. i'm going to wait about a week or so and hope that the next beta release of G2 comes out. looking at their timeline, they have seemed to release udpates about every 4-5 weeks. if this pattern holds, we should have a release soon! if not, i'll go the CVS route. as for the other known issue, the VB salt pw vs. G2's 'regular' pw, no news on that front. but... as long as your users enter through the VB site, all is well! HTH! and lmk if u guys come across any other bugs!! once i get around to putting the G2 sidebar into vBAdvanced, i'll post that too! (no ETA, it's low priority compared to the other gazillion things i need to do to the site from the migration of postnuke) |
#14
|
||||
|
||||
This is great!!
How hard would it be to get 3 random images to show up on forum home??? I know..... this belongs in the hack request forum but I would love that hack intergrated with this one...... Nice work!! |
#15
|
|||
|
|||
very doable!
there are random block and newest pic and random album and newest album and....... blocks built into G2 which INCLUDE integration blocks! i've started to research this a bit, and don't quote me 100% because i got distracted during the research (pretty butterfly!!) but i believe that similar to issue a), there were some integration block issues that have been sorted out and are on the CVS. i plan on revisiting this once i do the next G2 update, so i'll post that too (unless of course someone beats me to it! ) but oh man, u just GOTTA have a random pic block or four, heh! |
#16
|
||||
|
||||
Awesome!!! I will be waiting for that!!!
Thanks again, Rich |
#17
|
|||
|
|||
notta prob, glad ya like it!
|
#18
|
|||
|
|||
Wodah, thanks so much for the VERY quick reply!!! This is a superb integration and it's also nice that we don't have to hack the snot out of vBulletin! Makes future upgrades a breeze! Kudos on this and I will be re-visiting. posting and watching your progress with baited breath!
|
#19
|
|||
|
|||
np!
big kudos to the folks at menalto!! coding from the ground up w/ a integration as a core feature has really shown it's strength! i too love the fact that you don't have to hack into your vB install to get it to work! |
#20
|
||||
|
||||
Thanks guys, I was really looking for this mod as well. I beleive I followed the noted steps correctly, but I'm getting this error...
Quote:
|
#21
|
|||
|
|||
ya, u need to up the:
memory_limit in your php.ini file or request that your admin does... looks like it's set to 8M. i had to REALLY increase mine on my G1 to G2 import... |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|