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! ![]() 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:
|
#82
|
|||
|
|||
![]()
i was asked to post a copy of my .htaccess file.
for reference, my setup is: www.domain.com/forums.php www.domain.com/gallery2/ this file is located both in my web root directory and in my gallery2/ directory (perhaps redundantly in the 2nd location for that matter!) Code:
# BEGIN Url Rewrite section # (Automatically generated. Do not edit this section) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d [OR] RewriteCond %{REQUEST_FILENAME} gallery\_remote2\.php RewriteCond %{REQUEST_FILENAME} !gallery2\.php RewriteRule . - [L] RewriteCond %{THE_REQUEST} \ /v/(\?.|\ .) RewriteCond %{REQUEST_FILENAME} !gallery2\.php RewriteRule . /gallery2.php?g2_view=core.ShowItem [QSA,L] RewriteCond %{THE_REQUEST} \ /d/([0-9]+)-([0-9]+)/([^\/]+)(\?.|\ .) RewriteCond %{REQUEST_FILENAME} !gallery2\.php RewriteRule . /./gallery2/main.php?g2_view=core.DownloadItem&g2_itemId=%1&g2_serialNumber=%2 [QSA,L] RewriteCond %{THE_REQUEST} \ /v/([^?]+)(\?.|\ .) RewriteCond %{REQUEST_FILENAME} !gallery2\.php RewriteRule . /gallery2.php?g2_view=core.ShowItem&g2_path=%1 [QSA,L] </IfModule> # END Url Rewrite section |
#83
|
|||
|
|||
![]()
Hey Whodah! Refresh my memory - it's been a while but enabling re-write in VB screws up the VB links right? Was the solution to hardcode them all?
|
#84
|
|||
|
|||
![]()
ya
![]() i had to hardcode my navbar links, logo, and i think some footer links... |
#85
|
|||
|
|||
![]()
Workx great on my VB3.5 site.
http://www.glcoti.com/gallery2.php ONly things that still bug me are the way the gallery is "shown" in the "who is online" page. And that you dont get a nice "gallery" button in your postbit. If anyone knows how to get that in, let me know!!! |
#86
|
|||
|
|||
![]()
Can this be made into a Plugin?
![]() |
#87
|
|||
|
|||
![]()
Hey guys, I understand that with the salt stuff going on, a VB registered user won't be able to login directly to the gallery. That's cool with me, in fact I'd prefer that.
However, before I go through all the work of setting this up (and buying another license for this new site), I have a question. I already have over 100 registered users and I just launched my G2 site last week (woohoo!). I really, really don't want to have to ask them to all re-register in vB, then upload their content again. Is there ANY way at all to migrate users from G2, into vB, then require that logins come thru vB? I'll jump through any hoops I have to if I can keep my users from having to jump through hoops. ![]() Thanks in advance, and here's to hopin! -Sean |
#88
|
|||
|
|||
![]()
Anyone? Bueller? You guys still on holiday vacations? hehe...
![]() |
#89
|
|||
|
|||
![]()
I have this working with VB 3.5.2 and the latest stable release of Gallery. The one thing I've noticed is the performance hit when I enable the re-write module. With it enabled, I get a not-so-smooth transitions between gallery pages - meaning a white page flashes up between them while in none re-write mode, I don't and it looks way smoother.
I also get errors reported by the browser when running the re-write module, I don't if I disable it. The errors are shown below. Anyone else experiencing this? ![]() |
#90
|
|||
|
|||
![]()
One problem I have with this integration is the following:
When the user is inside a photo folder and clicks on login, they will get the login relative to their position and then get an error. What would I have to hardcode to get them directed to the proper vbulletin login? I also have a few footer links like admin which are needing to be hardcoded as well.. What template do I edit for them? Thanks!! Sean |
#91
|
|||
|
|||
![]() Quote:
|
![]() |
Thread Tools | |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
![]() |
|
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|