Go Back   vb.org Archive > vBulletin Article Depository > Read An Article > vBulletin 3 Articles

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
  #192  
Old 10-30-2006, 04:53 PM
SilVert SilVert is offline
 
Join Date: Oct 2003
Posts: 70
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Codeman05
This what you want?

and this is the error I recieve using the java applet template:
Upload error: Upload failed: 'user id: 5 doesn't have permission: core.addDataItem for item id: 1007'.

I get the same error when trying to upload on 2 different user accounts

well, I don't know what I did, but it works now lol.

I do have another question though if anyone can help.

I have a couple of "premium usergroups" on our forum and I would like to be able to give them a larger quota in the gallery. Any suggestions on how to modify the creation/update scripts to get it to translate a forum groupID into the gallery group?

not what i meant... i just went into /gallery/modules/core/admineditgroupuser.inc and found the code THEY USE. i have not attempted to make this work.... I think this is the right code "$ret = GalleryCoreApi::addUserToGroup($user->getId(), $groupId);". but there is a check right above this code in that file to make sure the users is not already in that group.

i am no coding guru so i wont be able to make thiw work without alot of time invested. i have the knowledge of how it shoudl be done, but i dont know how to impliment somethign like this. sorry guys.. but you can easily look into what each page does if you look in the folder where this file reside. maybe it will help you out.

if anybody does figure it out, plese post up the code. i would love to us it. right now my code is working, but it is the wrong way IMO...

so, Codeman05, i can give you the code that i have to create users and not create users, but i do not have anythign inplace RIGHT NOW that would allow for what you want... sorry. wish i did.

Quote:
Originally Posted by Dimitrio
This is not longer working or not working as intended.

When I am not logged as administrator, the page appears in blank. And when I am logged in as administrator, I get several errors.



And yes installed the plugins, but they are not working.
this is the classic problem(which if you would read back i have stated 500 times by now) of you trying to log into Gallery with the VBB user number 1, most likley Admin.

you have to go into the gallery DB and manipulate the ExtID's table to point user #1 in gallery to #1 in VBB... i have said this a bunch of times...


PLEASE SEACH PEOPLE.
Reply With Quote
  #193  
Old 11-01-2006, 08:28 PM
weeno weeno is offline
 
Join Date: Jan 2002
Posts: 61
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

is there a demo of this?

arn
Reply With Quote
  #194  
Old 11-09-2006, 04:02 PM
SilVert SilVert is offline
 
Join Date: Oct 2003
Posts: 70
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by weeno
is there a demo of this?

arn
if you want...
Http://www.racersden.net/forum/gallery.php
Reply With Quote
  #195  
Old 11-15-2006, 01:20 PM
chevy01xtreme chevy01xtreme is offline
 
Join Date: Jan 2004
Location: ny
Posts: 78
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I've done everything as stated, changed the necessary items, but now I get this error when viewing my gallery.php (what i named it)

Quote:
Fatal error: Call to a member function on a non-object in /home/sonezero/public_html/forum/global.php on line 241
Reply With Quote
  #196  
Old 11-16-2006, 02:30 PM
Dimitrio Dimitrio is offline
 
Join Date: Aug 2006
Posts: 21
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by SilVert View Post
not what i meant... i just went into /gallery/modules/core/admineditgroupuser.inc and found the code THEY USE. i have not attempted to make this work.... I think this is the right code "$ret = GalleryCoreApi::addUserToGroup($user->getId(), $groupId);". but there is a check right above this code in that file to make sure the users is not already in that group.

i am no coding guru so i wont be able to make thiw work without alot of time invested. i have the knowledge of how it shoudl be done, but i dont know how to impliment somethign like this. sorry guys.. but you can easily look into what each page does if you look in the folder where this file reside. maybe it will help you out.

if anybody does figure it out, plese post up the code. i would love to us it. right now my code is working, but it is the wrong way IMO...

so, Codeman05, i can give you the code that i have to create users and not create users, but i do not have anythign inplace RIGHT NOW that would allow for what you want... sorry. wish i did.



this is the classic problem(which if you would read back i have stated 500 times by now) of you trying to log into Gallery with the VBB user number 1, most likley Admin.

you have to go into the gallery DB and manipulate the ExtID's table to point user #1 in gallery to #1 in VBB... i have said this a bunch of times...


PLEASE SEACH PEOPLE.
how can I do that"?

Ok is working at the moment, but unfortunately is not showing up some of the images that it should show up, like the blackjack image, etc..

http://www.veguild.org/forums/gallery2.php
Reply With Quote
  #197  
Old 11-29-2006, 12:42 AM
N8R N8R is offline
 
Join Date: May 2004
Posts: 5
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Alright, I have a question dealing with this, so lets see if I can make sense.

I decided to make the gallery stand alone because of problems with embedding, and I wanted to use the url rewrite. Anyway, what I need to figure out is how to still have the gallery recognize when a user is logged in, so they don't have to register in the gallery as well, like how the embedded gallery worked, where if they were logged into the forum, they were logged into the gallery... any ideas on how to do this?

btw I am using vb 3.6.3
Reply With Quote
  #198  
Old 12-01-2006, 10:13 PM
Mr Peabody Mr Peabody is offline
 
Join Date: May 2004
Posts: 105
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Howdy

Just installed this yesterday and must have spent a hour reading over this thread.
My issue has been mentioned before but im unclear as how to fix it.

Basically everything works, when users view the gallery it automatically makes them a account however they are just a guest and cannot add pictures etc.
I manually changed my account to admin so it works for me,. Is it the forum structure? I have my forum installed into the main directory and not under /forum. mine is as follows

/gallery2
/forum here in root
/gallery.php

any help would be appreciated.
Reply With Quote
  #199  
Old 12-04-2006, 01:25 AM
cthree cthree is offline
 
Join Date: Nov 2002
Posts: 7
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by brvheart View Post
I am having the issue of having created a user with the userid of 1 bumping with the one that VB has for me as an admin.

I am not clear on how to fix this even though I have been reading this thread all day

Could someone please give me a hand?
My Only advice is to NEVER use the default #1 Admin account that any package creates, including VB. ALL authenticated applications create at least 1 account and that account is ALWAYS #1. Using this account is like logging on and using your server as root. Bad idea. First thing you should do with VB is make yourself an account #2 that you will use and abandon/disable/delete user id #1.

Now you can integrate with other packages without clashing I'm not sure why this best practice is not in the manual but it should be as your first post install step.
Reply With Quote
  #200  
Old 12-07-2006, 07:50 PM
N8R N8R is offline
 
Join Date: May 2004
Posts: 5
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

No one has any help for me?
Reply With Quote
  #201  
Old 12-09-2006, 09:26 PM
SilVert SilVert is offline
 
Join Date: Oct 2003
Posts: 70
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Dimitrio View Post
how can I do that"?

Ok is working at the moment, but unfortunately is not showing up some of the images that it should show up, like the blackjack image, etc..

http://www.veguild.org/forums/gallery2.php
i jsut responded to your PM, but it is most likley due to your URL_Rewrite... they dotn work so well with VBB and embed mode. i disabled most of them.... if not ALL of them. i have spend countless hours in attempting to get it to work with the mod rewrite(an apache thing, that callery calls URL Rewrite )




Quote:
Originally Posted by N8R View Post
Alright, I have a question dealing with this, so lets see if I can make sense.

I decided to make the gallery stand alone because of problems with embedding, and I wanted to use the url rewrite. Anyway, what I need to figure out is how to still have the gallery recognize when a user is logged in, so they don't have to register in the gallery as well, like how the embedded gallery worked, where if they were logged into the forum, they were logged into the gallery... any ideas on how to do this?

btw I am using vb 3.6.3
what you want is EXACTLY what the integration is for... there are really no other benefits to haveing the integration script. the script is to enable VBB to create users in Gallery.... soley... you can custom script other things...

Quote:
Originally Posted by Mr Peabody View Post
Howdy

Just installed this yesterday and must have spent a hour reading over this thread.
My issue has been mentioned before but im unclear as how to fix it.

Basically everything works, when users view the gallery it automatically makes them a account however they are just a guest and cannot add pictures etc.
I manually changed my account to admin so it works for me,. Is it the forum structure? I have my forum installed into the main directory and not under /forum. mine is as follows

/gallery2
/forum here in root
/gallery.php

any help would be appreciated.
can you send me a link to what you mean? the users when they are CREATED shoudl come in as "users" not guests.... or that is how i remember it working.. look at the some of the gallery sections in the admin panel and see if there is a config setting that is not right

Quote:
Originally Posted by cthree View Post
My Only advice is to NEVER use the default #1 Admin account that any package creates, including VB. ALL authenticated applications create at least 1 account and that account is ALWAYS #1. Using this account is like logging on and using your server as root. Bad idea. First thing you should do with VB is make yourself an account #2 that you will use and abandon/disable/delete user id #1.

Now you can integrate with other packages without clashing I'm not sure why this best practice is not in the manual but it should be as your first post install step.
EXACTLY... but if you want to fix it you HAVE TO go into the gallery database and edit the extid's table.. the user in gallery that is number 1 needs to point to the VBB admin ID, i dotn remember it off the top of my head, but it is easy enough to find out

Quote:
Originally Posted by N8R View Post
No one has any help for me?
never i refuse!!@!

work has been so busy that i get home and dont feel like looking online AT ALL... my computer is off most of the time anyway nowadays
Reply With Quote
Reply

Thread Tools

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 08:27 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04997 seconds
  • Memory Usage 2,409KB
  • 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
  • (1)bbcode_html
  • (4)bbcode_php
  • (11)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
  • (2)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