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
  #172  
Old 09-18-2006, 09:08 PM
Codeman05 Codeman05 is offline
 
Join Date: Oct 2002
Location: Tx
Posts: 76
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks, I'll play with the script a bit and see what I can come up with.

As far as the remote goes, the "imbedded java upload client" isn't working as well. I'll double check the paths but I think they were correct.

Thanks for the help!
Reply With Quote
  #173  
Old 09-19-2006, 10:37 AM
Akagi Akagi is offline
 
Join Date: Jan 2006
Posts: 47
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by SilVert
he speaks the troof!

the integration script HAS TO BE VISITED for VBB/Gallery to integrate. how it works is basically as 2 totaly seperate islands with a small bridge. so when you cross the brodge you get an account. if you do not cross the bridge, you dont get an account.

hows that for a beach like explination
thanks for the clarification guys!
it's working great now cheers!
Reply With Quote
  #174  
Old 09-21-2006, 07:50 PM
GrandAmGuru's Avatar
GrandAmGuru GrandAmGuru is offline
 
Join Date: Jan 2002
Location: Cary, IL
Posts: 34
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I posted this up over on the menalto forums too in hopes of a resolution for a funky problem.

I'm integrating Gallery2 into my vBulletin script (which is essentially done). The problem I have is the folder navigation within the Gallery. Say I have a folder called Jeremy under the main Gallery. If I'm in the Jeremy folder and want to navigate back to Gallery (by clicking the breadcrumb link under the Gallery logo) it does a random google search on 'forum'. The same holds true for any nested folders. If you try to go up the breadcrumb trail it's doing that random search.
Reply With Quote
  #175  
Old 09-23-2006, 02:13 AM
Codeman05 Codeman05 is offline
 
Join Date: Oct 2002
Location: Tx
Posts: 76
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Codeman05
Thanks, I'll play with the script a bit and see what I can come up with.

As far as the remote goes, the "imbedded java upload client" isn't working as well. I'll double check the paths but I think they were correct.

Thanks for the help!
Still no luck, this is what I'm getting with the java upload...
"Upload error: Upload failed: 'user id: 5 doesn't have permission: core.addDataItem for item id: 22'."

Any suggestions?
Reply With Quote
  #176  
Old 09-25-2006, 02:33 PM
GrandAmGuru's Avatar
GrandAmGuru GrandAmGuru is offline
 
Join Date: Jan 2002
Location: Cary, IL
Posts: 34
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ok, disregard my previous post. I have the gallery working fully outside the forum. When I view it from an embedded view, something is up with the style. I don't have all the navigation links like I do when I view outside the forum.

Check the screen caps below.

I known when I was monkeying around with it before it did this same thing, and I ended up completely removing and reinstalling. Could it possibly be a corrupted style or something?
Attached Images
File Type: jpg View-Outside.JPG (20.7 KB, 0 views)
File Type: jpg View-Embedded.JPG (22.6 KB, 0 views)
Reply With Quote
  #177  
Old 09-28-2006, 06:34 AM
fishhub fishhub is offline
 
Join Date: Aug 2006
Posts: 214
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

My installation completed and things work fine, except the link below user within VB once click on error comes out:->

You don't have permission to access /forum/gallery2/g2data/albums/xxxxx/ on this server.

Can any kind soul help? Thanks.
Reply With Quote
  #178  
Old 10-03-2006, 04:54 PM
xitrum's Avatar
xitrum xitrum is offline
 
Join Date: Feb 2004
Posts: 14
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hi all,

I follow instructions to install gallery2 on the same root folder as my forum and everything seems to work ok. I was able to upload and view images as standalone version:

http://<mydomain>/forum/gallery2/main.php

but when I switch to the embeded version:

http://<mydomain>/forum/gallery2.php

I don't see any thumbnails in my gallery? Any idea. TIA for you help.

-xitrum

PS. Gallery 2.1, VBB 3.6
Attached Images
File Type: gif g2gallery.gif (139.6 KB, 0 views)
File Type: gif g2embeded.gif (18.0 KB, 0 views)
Reply With Quote
  #179  
Old 10-04-2006, 06:39 PM
Chet T16 Chet T16 is offline
 
Join Date: Oct 2005
Posts: 19
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Can anyone tell me what to remove from the gallery code posted so that it is a purely visual integration?
Reply With Quote
  #180  
Old 10-04-2006, 10:11 PM
xitrum's Avatar
xitrum xitrum is offline
 
Join Date: Feb 2004
Posts: 14
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

OK. I tried again with a new installation on my local machine and everything seems to work (now even thumbnails displayed when i access gallery2.php) ...except when I add a new item to the album.

After uploaded a new photo, the browser refresh with this URL:

http://<mydomain>/gallery2.php?g2_view=core.ItemAdmin&g2_subView=cor e.ItemAddConfirmation&g2_itemI d=7&g2_statusId=x5a383bbd&g2_navId=x58f76c22

It should have been:

http://<mydomain>/forum/gallery2.php?g2_view=core.ItemAdmin&g2_subView=cor e.ItemAddConfirmation&g2_itemI d=7&g2_statusId=x5a383bbd&g2_navId=x58f76c22

So the script actually pickup only the basename of the domain name. If I insert /forum to the URL and refresh then it works!

Can someone please help showing me how to fix this problem? TIA.

-xitrum
================================================== =================
I think I found the problem now. It was with these 2 lines in gallery2.php file

$ret = GalleryEmbed::init(array('embedUri' => '/forum/gallery2.php',
'g2Uri' => 'http://<full domain name>/forum/gallery2/',

The first line must have full path from the root of httpd. The second line should have the full domain name.

Everything works now. Thanks. Great mod.

xitrum
================================================== ============================
Man... I am having a headache with this and almost giving up now.. Wonder if anyone with the same problem or anyone can help out with this.

My standalone gallery2 works fine with:

http://<mydomainurl>/forum/gallery2/main.php

but when I tried the embeded version, I lost the theme and only the text display so it take up a lot of screen real estate:

http://<mydomainurl>/forum/gallery2.php

I have gallery2 installed as:

$htdocs/forum/gallery2

On my local test machine, the embeded version display correct theme. Only the production env it doesn't display correctly. Don't know what the differences are. There must be a very simple explanation to this! PLEASE HELP. TIA

xitrum
Reply With Quote
  #181  
Old 10-05-2006, 04:35 PM
xitrum's Avatar
xitrum xitrum is offline
 
Join Date: Feb 2004
Posts: 14
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

================================================== ==
I found out that the path to images directory is not correct when using the
embeded gallery link. Images link shown:

http://<domainurl>/forum/images/galleryLogo_sm.gif

instead of:

http://<domainurl>/forum/gallery2/images/galleryLogo_sm.gif

where:

Forum installed at: http://<domainurl>/forum

Gallery2 installed at: http://<domainurl>/forum/gallery2

Can someone please shed some light on this issue? TIA.

-xitrum
Attached Images
File Type: gif gallery.gif (53.8 KB, 0 views)
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 05:33 AM.


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.18017 seconds
  • Memory Usage 2,410KB
  • Queries Executed 28 (?)
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
  • (2)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
  • (7)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_postinfo_query
  • fetch_postinfo
  • 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