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
  #232  
Old 05-14-2007, 04:09 AM
specmav specmav is offline
 
Join Date: Jul 2006
Location: Boston, Ma
Posts: 41
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by TheHeartSmasher View Post
I only have a few problems now:

1. When I logout of vbulletin I recieve errors

At the top of the screen

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/username/public_html/testing/forums/includes/class_dm_user.php(1657) : eval()'d code on line 57



Vbulletin Message


Which is the same error message but if I refresh or click logout again it works.

I am recieveing this error as well, could someone please help HeartSmasher and myself.

Thanks
Reply With Quote
  #233  
Old 05-18-2007, 02:29 PM
carmichael1973's Avatar
carmichael1973 carmichael1973 is offline
 
Join Date: Aug 2006
Posts: 60
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I have this setup and working with one exception. Whenever I (or my members) upload images, we get the infamous "Page Cannot be Displayed" message! Although the path still shows http://uvuit.com/forums/gallery2.php . I can refresh the page and I am back at the gallery home page. When I click on "Your Album" link, I see that the images DID UPLOAD.

My question is: How can I get this to redirect back to the the previous page? Or the member album for that matter!

I also noticed the same thing happens when I make any setting changes from the embedded script.

Any advice would be great!

OK I fixed it! I changed the following with the full URL of my gallery2 files:

Code:
$ret = GalleryEmbed::init(array('embedUri' => 'http://www.uvuit.com/forums/gallery2.php', 
'g2Uri' => 'http://www.uvuit.com/forums/gallery2/', 
'loginRedirect' => 'index.php', 
'activeUserId' => $uid)); 
if ($ret)
I do have one more question though! How can I get this to allow $vbpoptions[bbdir] so I don't have cookie issues when someone logs in at uvuit.com instead of www.uvuit.com ?

Quote:
Originally Posted by specmav View Post
Quote:
Originally Posted by TheHeartSmasher
Code:
I only have a few problems now:

1. When I logout of vbulletin I recieve errors

At the top of the screen

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/username/public_html/testing/forums/includes/class_dm_user.php(1657) : eval()'d code on line 57



Vbulletin Message


Which is the same error message but if I refresh or click logout again it works.

I am recieveing this error as well, could someone please help HeartSmasher and myself.

Thanks
I was getting this error as well then I disbaled the two plugins. Those two plugins were causing errors all over vb (i.e. post thread, post reply, post anything, login, logout etc.)

I know that's not a fix for the problem since the plugins are designed (theoretically) to resolve collision issues when users are deleted.

I have the gallery working and functioning fine...other than the REWRITE.

Now for my problem:

How can I add a link on my members PROFILE page to go directly to their album? Now if REWRITE actually worked with the EMBEDDED version it would be no problem.

If I'm looking at this correctly, with Redirect disable the member albums resolve to something like this http://mysite.com/forums/gallery2.php?g2_itemId=51 where itemId=51 is the member Album.

I'm sure theres a way to call the members "Gallery User ID" and obtain this updated number automatically and insert it into the LINK to the Member Album. But I can't figure it out. Any help here would be most appreciated!
Reply With Quote
  #234  
Old 05-18-2007, 11:11 PM
karlm's Avatar
karlm karlm is offline
 
Join Date: Jul 2006
Location: England
Posts: 447
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Just done this with 3.6.6 (3.6.7 underneath but displays as 3.6.6) and it went flawlessly... as far as i can see, it operates flawlessly too.

Good job guys!
Reply With Quote
  #235  
Old 05-19-2007, 03:12 AM
carmichael1973's Avatar
carmichael1973 carmichael1973 is offline
 
Join Date: Aug 2006
Posts: 60
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by karlm View Post
Just done this with 3.6.6 (3.6.7 underneath but displays as 3.6.6) and it went flawlessly... as far as i can see, it operates flawlessly too.

Good job guys!
Were you able to add a link in the Members Profile to view their Album?
Reply With Quote
  #236  
Old 05-19-2007, 10:50 AM
targa_freak targa_freak is offline
 
Join Date: May 2007
Posts: 6
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

does it works on 3.6.x too?
Reply With Quote
  #237  
Old 05-20-2007, 04:56 AM
karlm's Avatar
karlm karlm is offline
 
Join Date: Jul 2006
Location: England
Posts: 447
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by carmichael1973 View Post
Were you able to add a link in the Members Profile to view their Album?
I didnt' get around to that - atm, i'm keeping the album out of reach of 90% of my members so i (and a few select members) can beta test it prior to letting the rest of my community know of it. I want it to be 100% before they get to use it.
Hence, I'm not going to link from the postbit just yet... nearer the time, I'll make a conditional (so only x-groups) can see the link on a user's postbit.
When I do that, I'll leave a comment here to let you know how it went...
Reply With Quote
  #238  
Old 05-20-2007, 07:41 PM
scan-pa scan-pa is offline
 
Join Date: May 2006
Location: Lebanon Co. Pa. USA
Posts: 189
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I updated the forums to 3.6.7pl and all I get are errors now.

How do I remove everything to do with this mod and gallery 2

here is some of the errors I get when people come to my forum main page and forum index page and admin login page:

Warning: rename(/tmp/0.incndrdBN,/home/centram2/CPAg2data/cache/module/thumbnail/0/0/0.inc) [function.rename]: Permission denied in /gallery2/modules/core/classes/GalleryPlatform.class on line 487

Warning: mkdir(/home/centram2/CPAg2data/cache) [function.mkdir]: Permission denied in /gallery2/modules/core/classes/GalleryPlatform.class on line 624

Warning: rename(/tmp/0.incjeNH1a,/home/centram2/CPAg2data/cache/module/rss/0/0/0.inc) [function.rename]: Permission denied in /gallery2/modules/core/classes/GalleryPlatform.class on line 487

Warning: mkdir(/home/centram2/CPAg2data/cache) [function.mkdir]: Permission denied in /gallery2/modules/core/classes/GalleryPlatform.class on line 624

Warning: rename(/tmp/0.incJIcqty,/home/centram2/CPAg2data/cache/module/panorama/0/0/0.inc) [function.rename]: Permission denied in /gallery2/modules/core/classes/GalleryPlatform.class on line 487

Warning: mkdir(/home/centram2/CPAg2data/cache) [function.mkdir]: Permission denied in /gallery2/modules/core/classes/GalleryPlatform.class on line 624

Warning: rename(/tmp/0.inczi6mWV,/home/centram2/CPAg2data/cache/module/publishxp/0/0/0.inc) [function.rename]: Permission denied in /gallery2/modules/core/classes/GalleryPlatform.class on line 487

Warning: mkdir(/home/centram2/CPAg2data/cache) [function.mkdir]: Permission denied in /gallery2/modules/core/classes/GalleryPlatform.class on line 624

Warning: rename(/tmp/0.inc53owqj,/home/centram2/CPAg2data/cache/module/sizelimit/0/0/0.inc) [function.rename]: Permission denied in /gallery2/modules/core/classes/GalleryPlatform.class on line 487

Warning: mkdir(/home/centram2/CPAg2data/cache) [function.mkdir]: Permission denied

-----------------------------------------------------------------------------

I just want to delete this whole mess and remove it from the system.

Any advice on doing that to restore my forums?

also getting these errors:

Warning: Unknown(/home/centram2/public_html/forum/gallery2/embed.php): failed to open stream: No such file or directory in /includes/class_dm_user.php(1668) : eval()'d code on line 1
Fatal error: (null)() [function.require]: Failed opening required '/home/centram2/public_html/forum/gallery2/embed.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/centram2/public_html/forum/includes/class_dm_user.php(1668) : eval()'d code on line 1
Reply With Quote
  #239  
Old 05-23-2007, 08:20 PM
bjornstrom bjornstrom is offline
 
Join Date: Mar 2003
Location: Stockholm, Sweden
Posts: 32
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I need to run gallery on a dedicated server - is this possible?

We're running a loadbalanced webserver farm for our vb and that would not be compatible with gallery since the uploaded pictures would be evenly spread over 4 servers.
Reply With Quote
  #240  
Old 06-02-2007, 01:53 PM
skunker skunker is offline
 
Join Date: Dec 2004
Location: Texas
Posts: 16
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I need someone to do this for me. PM me and I'll pay. Thanks.
Reply With Quote
  #241  
Old 06-03-2007, 01:22 PM
dotJoel dotJoel is offline
 
Join Date: Feb 2007
Location: Australia
Posts: 75
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Is it possible to use this mod without embedding the gallery ? All I really want to do is Synch my users.... But keep the gallery stand alone from the forum.

Also has anyone had any success not running the gallery in a subdirectory of their forum ?

Regards,

Joel
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 12:51 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.23451 seconds
  • Memory Usage 2,410KB
  • 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
  • (4)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