Go Back   vb.org Archive > vBulletin Article Depository > Read An Article > vBulletin 3 Articles
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Gallery 2.1 and vBulletin 3.5.X integration
Brent H's Avatar
Brent H
Join Date: Sep 2004
Posts: 162

Poprocks on toast, yo.

Phoenix, AZ
Show Printable Version Email this Page Subscription
Brent H Brent H is offline 03-31-2006, 10:00 PM

This tutorial will outline the steps needed to integrate your vBulletin 3.5.X and Menalto Gallery 2.1 installations. The original thread located here has become a little too scattered, and since it's original focus was on the Gallery 2.0 and vBulletin 3.0 series, I think it'd be beneficial to start this new thread so that the information is more easily found for the 3.5.X and 2.1 series.

Before we begin, you should be aware that this tutorial assumes that you'll be placing your gallery in the root directory for your forums. My directory structure looks a little like this:

public_html/Vbulletin Files
and
public_html/gallery2/Gallery Files

As long as your gallery folder is located within your root vBulletin directory, this should work just fine.

Step 1:
Install Menalto Gallery 2.1. Remember to upload the "gallery2" folder INSIDE your root vBulletin directory!

Step 2:
Create a new file containing the following, and save it as gallery2.php:
PHP Code:
<?php

// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);

// #################### DEFINE IMPORTANT CONSTANTS #######################
define('NO_REGISTER_GLOBALS'1);
define('THIS_SCRIPT''gallery'); // 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(
'gallery2',
);

// pre-cache templates used by specific actions
$actiontemplates = array(

);

// ######################### REQUIRE BACK-END ############################

require_once('./global.php');

// #######################################################################
// ######################## START MAIN SCRIPT ############################
// #######################################################################

$navbits = array();
$navbits[$parent] = 'Gallery';
error_reporting(E_ALL );

$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 
$vbulletin$userinfo;
require_once(
'/home/paranorm/public_html/gallery2/embed.php');

$data = array();

// If it's an anonymous user, set the g2 activeUser to null
$uid $vbulletin->userinfo['userid'] = '' $vbulletin->userinfo['userid'];

// initiate G2
// You need to edit the following 4 lines to suit your VB3 & G2 installations
// This is set up for an install that looks like:
// public_html/VB/<vb files>
// public_html/gallery2/<gallery2 files>
// and also setup for a VB3 template 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... Like if you've changed it
// to forums.php or something of the like.

$ret GalleryEmbed::init(array('embedUri' => '/gallery2.php',
'g2Uri' => 'http://www.paranormalis.com/gallery2/',
'loginRedirect' => 'index.php',
'activeUserId' => $uid));
if (
$ret)
{
if (
$ret->getErrorCode() & ERROR_MISSING_OBJECT)
{
// Check if there's no G2 user mapped to the activeUserId
$ret GalleryEmbed::isExternalIdMapped($uid'GalleryUser');
if (
$ret && ($ret->getErrorCode() & ERROR_MISSING_OBJECT))
{
// User not mapped, create G2 user now
// Get Arguments for the new user:
$args['fullname'] = $vbulletin->userinfo['username'];
$args['username'] = $vbulletin->userinfo['username'];
$args['hashedpassword'] = $vbulletin->userinfo['password'];
$args['hashmethod'] = 'md5';
$args['email'] = $vbulletin->userinfo['email'];
$args['language'] = $vbulletin->userinfo['lang_code'];
$args['creationtimestamp'] = $vbulletin->userinfo['joindate'];

$retcreate GalleryEmbed :: createUser($uid$args);
if (
$retcreate)
{
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) {
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') . '");');

?>
(or download the attached gallery2.php)

Step 3:
Find and edit the following code to suit your site setup:
PHP Code:
 require_once('/home/paranorm/public_html/gallery2/embed.php'); 
and
PHP Code:
 $ret GalleryEmbed::init(array('embedUri' => '/gallery2.php',
'g2Uri' => 'http://www.yoursite.com/gallery2/',
'loginRedirect' => 'index.php'
Save and upload the file to your root vBulletin directory.

Step 4:
Create a new template in your style manager called gallery2 containing the following:
HTML 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>
And that's basically it! Your gallery should now be accessable via www.yoursite.com/gallery2.php or www.yoursite.com/forums/gallery2.php (depending on how you have it set up).

You can achieve further integration by using johnmont's plugins which will:
  1. Delete users from the Gallery when you delete them from the vBulletin control panel.
  2. Update user information in the gallery when they change their information in the User CP.
John has given me permission to post them The attached gallery-plugins.xml file will create two new plugins called Delete Gallery User and Update Gallery User. You'll need to edit both of these plugins after installation and change
PHP Code:
require_once('/home/paranorm/public_html/gallery2/embed.php''); 
(it's the very first line in both of them) to match your site setup.

Hopefully this tutorial sparks a little more interest in this area and we can get some additional people contributing solutions to achieve tighter integration :banana:

As the integration progresses, I'll update this thread to keep everything together and accessable.

Enjoy!
Attached Files
File Type: php gallery2.php (5.5 KB, 751 views)
File Type: xml gallery-plugins.xml (1.8 KB, 722 views)
Reply With Quote
  #32  
Old 04-06-2006, 12:45 PM
SilVert SilVert is offline
 
Join Date: Oct 2003
Posts: 70
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by blackwidow
silvert, do you know what could be causeing my errors?

i looked in my php.ini it says
url_rewriter.tags a=href,area=href,frame=src,form=,fieldset=
what are your errors(i just looked back and only saw a link you posted). i looked at your gallery link you posted and other than no content, it looks ok to me...

what is wrong?

Quote:
Originally Posted by tuanluu
thank it work now thank very much... I have one more question.. do you know any smtp service that is free? I use to use yahoo but it seem like this gallery does not like yahoo stmp
no problem

you can run a SMTP service on your machine, thereticaly. are you on a shared server or a dedicated one?

if shared, contact your host and see what they say. if it is dedicated, im 99% sure there are some free SMTP services out there.
Reply With Quote
  #33  
Old 04-06-2006, 05:39 PM
ztempuser ztempuser is offline
 
Join Date: Nov 2005
Posts: 143
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

o wow silvertit workks when your im not logged in, when i am logged in it says

line: 98, Failed to create G2 user with extId [1]. Here is the error message from G2:
Error (ERROR_COLLISION)

* in modules/core/classes/GalleryUser.class at line 154 (gallerycoreapi::error)
* in modules/core/classes/GalleryEmbed.class at line 360 (galleryuser::create)
* in /home/********/public_html/forum/gallery2.php at line 95 (galleryembed::createuser)
* in /home/********/public_html/forum/gallery2.php at line 50
Reply With Quote
  #34  
Old 04-06-2006, 06:06 PM
SuperJETT SuperJETT is offline
 
Join Date: Jan 2006
Location: Louisville, KY
Posts: 67
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I guess I've got something going on with the plugins.
Code:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/.bluster/superjett/x-h20.com/includes/class_dm_user.php(1548) : eval()'d code on line 10
That is the message I get when I try to change something in my usercp or try to logout. Also, when I do open www.x-h2o.com/gallery2.php or /gallery2/ I get the gallery, but no way to upload anything, I can only view.

Do I need to change some usergroup permissions or other?
Reply With Quote
  #35  
Old 04-06-2006, 06:10 PM
defcon_420's Avatar
defcon_420 defcon_420 is offline
 
Join Date: Jun 2004
Location: next to you
Posts: 116
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by blackwidow
o wow silvertit workks when your im not logged in, when i am logged in it says

line: 98, Failed to create G2 user with extId [1]. Here is the error message from G2:
Error (ERROR_COLLISION)

* in modules/core/classes/GalleryUser.class at line 154 (gallerycoreapi::error)
* in modules/core/classes/GalleryEmbed.class at line 360 (galleryuser::create)
* in /home/********/public_html/forum/gallery2.php at line 95 (galleryembed::createuser)
* in /home/********/public_html/forum/gallery2.php at line 50
If you have User Albums enabled with Create Album When first accessed there is a way around this untill a code or mod can be made to fix it

1. Make a second ID in your own forum
2. Enter your gallery with new user and click YOUR ALBUM - top right (should have no error but no admin) then log out
3. log into gallery non embed as admin eg." www.yourdomain.com/gallery2/main.php" select groups then add the new user that you made in your forum as "Site Admin" and log out
4. Log in with Your 2nd forum ID and go to www.example.com/gallery2.php then click Users and delete your original Admin then log out
5. Go back to www.example.com/gallery2.php as Admin and click Your album then log out
6. Go back in with your 2nd forum ID then give your Admin account "Site Admin" status from within the gallery.
Congratulations you can now log in as admin without error

Johnmont found the reason why here

hope that helps cause it worked for me
Reply With Quote
  #36  
Old 04-06-2006, 06:58 PM
ztempuser ztempuser is offline
 
Join Date: Nov 2005
Posts: 143
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

i think i might wait for the new codes to come out:P

Quote:
Originally Posted by SuperJETT
I guess I've got something going on with the plugins.
Code:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/.bluster/superjett/x-h20.com/includes/class_dm_user.php(1548) : eval()'d code on line 10
That is the message I get when I try to change something in my usercp or try to logout. Also, when I do open www.x-h2o.com/gallery2.php or /gallery2/ I get the gallery, but no way to upload anything, I can only view.

Do I need to change some usergroup permissions or other?
hey i started getting the same thing, either when i log out of my forum, or when i post a thread
Quote:
Originally Posted by vBulletin Message
Unable to add cookies, header already sent.
File: /home/*******/public_html/forum/includes/class_dm_user.php(1488) : eval()'d code
Line: 10
and at teh top of the page it says
Quote:
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/********/public_html/forum/includes/class_dm_user.php(1488) : eval()'d code on line 10
Reply With Quote
  #37  
Old 04-06-2006, 09:28 PM
johnmont johnmont is offline
 
Join Date: Feb 2006
Location: Chicago
Posts: 30
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Anyone up for helping me beta test my integration script with support of primary user group from VB?

Please PM me if you are....
Reply With Quote
  #38  
Old 04-07-2006, 08:25 AM
defcon_420's Avatar
defcon_420 defcon_420 is offline
 
Join Date: Jun 2004
Location: next to you
Posts: 116
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Blackwidow
if you turn your URL Rewrite module off in gallery 2 admin your pictures should work, they have had alot of problems with that URL Rewrite module i have read over in menatlo's gallery forums. Also you should disable your registration module as the same users will come from your existing Vbulletin database.
Reply With Quote
  #39  
Old 04-07-2006, 11:10 AM
Aken's Avatar
Aken Aken is offline
 
Join Date: Jul 2004
Location: Wisconsin, USA
Posts: 129
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

So I haven't taken the time to do this yet, because of a bunch of web site moves and stuff....

But if this little tutorial works and I can integrate the two, I will LOVE YOU FOREVER. lol
Reply With Quote
  #40  
Old 04-07-2006, 01:08 PM
SilVert SilVert is offline
 
Join Date: Oct 2003
Posts: 70
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Aken
So I haven't taken the time to do this yet, because of a bunch of web site moves and stuff....

But if this little tutorial works and I can integrate the two, I will LOVE YOU FOREVER. lol
expect to give love

Quote:
Originally Posted by johnmont
Anyone up for helping me beta test my integration script with support of primary user group from VB?

Please PM me if you are....
im a bit weary, but as long as i can remove the code and it not hurt anything..i am down

i will be out of town all next week(carribean here i come!!) so when i come back i might be down if you dont have anybody yet.

yes, i know its not a PM
Reply With Quote
  #41  
Old 04-07-2006, 01:31 PM
johnmont johnmont is offline
 
Join Date: Feb 2006
Location: Chicago
Posts: 30
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by SilVert
yes, i know its not a PM
Ha ...no worries.

Hopefully it will be full go and debugged by then. Enjoy the warm weather!
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 06:35 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.09974 seconds
  • Memory Usage 2,405KB
  • Queries Executed 26 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (2)bbcode_code
  • (1)bbcode_html
  • (4)bbcode_php
  • (9)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_article
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (1)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (2)postbit_attachment
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • 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_attachment
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete