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
  #142  
Old 07-24-2006, 06:25 AM
kallenapp kallenapp is offline
 
Join Date: Jan 2005
Posts: 6
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hi,

is it posible to open the Gallery in a new window? when i open it withe the gallery2.php, my layout ist broken.

maybe there ist a way tho sync the users only with a cronjob?

thx for help
Reply With Quote
  #143  
Old 07-27-2006, 03:52 AM
Keyser520 Keyser520 is offline
 
Join Date: Feb 2006
Posts: 114
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
// #################### DEFINE IMPORTANT CONSTANTS #######################
define('NO_REGISTER_GLOBALS', 1);
define('THIS_SCRIPT', 'gallery'); // change this depending on your filename
Ok...so what do I change in the above?

And how do I create a new template?

And where do I set permissions so that I can select who gets to upload and who doesn't?

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

Quote:
Originally Posted by kallenapp
Hi,

is it posible to open the Gallery in a new window? when i open it withe the gallery2.php, my layout ist broken.


maybe there ist a way tho sync the users only with a cronjob?

thx for help
i dont see why opening in a new window would break it... you can go straight to your gallery.php file without going to the front page of your board...

Quote:
Originally Posted by Keyser520
Ok...so what do I change in the above?

And how do I create a new template?

And where do I set permissions so that I can select who gets to upload and who doesn't?

-Thanks!
if you have a template in VBB it would need to be named "gallery" with the code you quoted.

there is a step by step at the begining fo the thread of how to do all this. to get to your styles you haev to log into the adminCP, then "Styles & Templates", style manager, select your style, then create a new template...
Reply With Quote
  #145  
Old 07-28-2006, 12:31 AM
coachjohns coachjohns is offline
 
Join Date: Feb 2006
Posts: 17
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Getting this Error:

Fatal error: main(): Failed opening required '/homepages/11/d155644365/htdocs/forums/gallery2/modules/core/classes/GalleryUtilities.class' (include_path='.:/usr/local/lib/php') in /homepages/11/d155644365/htdocs/forums/gallery2/install/index.php on line 45
Reply With Quote
  #146  
Old 07-28-2006, 04:26 AM
Keyser520 Keyser520 is offline
 
Join Date: Feb 2006
Posts: 114
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'm getting some really strange looking crap and error messages.. Please check it out.


www.gargleblasterblues.com/forums/gallery2.php

I don't really care about "integrating" it into my vbulletin pages. What I want is to be able to have it interact with the vbulletin database, so I don't have to create new users, etc, etc, etc. How can I just make the two databases link together and be all happy like?
Reply With Quote
  #147  
Old 07-28-2006, 01:38 PM
SilVert SilVert is offline
 
Join Date: Oct 2003
Posts: 70
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Keyser520
I'm getting some really strange looking crap and error messages.. Please check it out.


www.gargleblasterblues.com/forums/gallery2.php

I don't really care about "integrating" it into my vbulletin pages. What I want is to be able to have it interact with the vbulletin database, so I don't have to create new users, etc, etc, etc. How can I just make the two databases link together and be all happy like?
the problem you are seeing is either due to a wrong path or the URL Rewrite module. i cant remember which. but i would disable the URL Rewrite. it is fairly advanced and a PITA. i have my gallery working, but i cant use 98% of the rewrite rules...

there is a "plugin" that would do what you want, BUT the people that were developing it have stoped using "gallery" and are now using something else. they sent me a copy, but i dont feel like messing with a working copy of my board. if you go back to the 1st post and send the guy that made the plugin a PM, he might be able to send it to you. i just dont know what state it is in.

Quote:
Originally Posted by coachjohns
Getting this Error:

Fatal error: main(): Failed opening required '/homepages/11/d155644365/htdocs/forums/gallery2/modules/core/classes/GalleryUtilities.class' (include_path='.:/usr/local/lib/php') in /homepages/11/d155644365/htdocs/forums/gallery2/install/index.php on line 45
lets start from the top...
where is your website located?
where is your gallery install located?
what is your websites adress?
Reply With Quote
  #148  
Old 07-31-2006, 02:25 PM
fudge55 fudge55 is offline
 
Join Date: Jul 2006
Posts: 1
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ok, i've gone through this thread and it seems that others has the same problem, but i couldn't find the answer...

Install is done and it's working well, except one thing, the international characters. If i call the gallery2 the 'usual' way, it's ok.

When i view the source i can see this:

Code:
<h2> Gal?ria </h2>
When i use the embedded version, the same lines look this way:

Code:
<h2> Gal??ria </h2>
It seems that the core module outputs something else when i use the embedded version. I don't know why... Any solutions?

2 screens are attached...
Attached Images
File Type: jpg g2emb.jpg (89.4 KB, 0 views)
File Type: jpg g2normal.jpg (67.9 KB, 0 views)
Reply With Quote
  #149  
Old 08-01-2006, 03:15 PM
SilVert SilVert is offline
 
Join Date: Oct 2003
Posts: 70
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by fudge55
Ok, i've gone through this thread and it seems that others has the same problem, but i couldn't find the answer...

Install is done and it's working well, except one thing, the international characters. If i call the gallery2 the 'usual' way, it's ok.

When i view the source i can see this:

Code:
<h2> Gal?ria </h2>
When i use the embedded version, the same lines look this way:

Code:
<h2> Gal??ria </h2>
It seems that the core module outputs something else when i use the embedded version. I don't know why... Any solutions?

2 screens are attached...
hmm, thats odd... i wish i had an anwser for you. i think this is a Gallery problem not a integration script problem. have you looked around on Gallery2.org to see if there is any talk about this issue on there?

i think it is probobly due to the "embed mode" not undertanding other languages like the standard mode is(not the integration script), but i really dont know how to resolve that.

sorry i cant help more man. let me know if you run across anythign else, il see what i can do to help
Reply With Quote
  #150  
Old 08-03-2006, 10:10 AM
kallenapp kallenapp is offline
 
Join Date: Jan 2005
Posts: 6
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by fudge55
Ok, i've gone through this thread and it seems that others has the same problem, but i couldn't find the answer...

Install is done and it's working well, except one thing, the international characters. If i call the gallery2 the 'usual' way, it's ok.

When i view the source i can see this:

Code:
<h2> Gal?ria </h2>
When i use the embedded version, the same lines look this way:

Code:
<h2> Gal??ria </h2>
It seems that the core module outputs something else when i use the embedded version. I don't know why... Any solutions?

2 screens are attached...

Gallery2 is using only utf-8. you must convert your vb-database to utf-8 an set this to the default chareset in vbulletin.
Reply With Quote
  #151  
Old 08-03-2006, 11:57 AM
m0nde's Avatar
m0nde m0nde is offline
 
Join Date: Mar 2005
Location: Toronto, ON Canada
Posts: 204
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Brent H
This tutorial will outline the steps needed to integrate your vBulletin 3.5.X and Menalto Gallery 2.1 installations.
Everything went very smoothly and I am able to browse the gallery by itself.

But, when I launch gallery2.php, I get the following while logged in as myself:

Code:
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/bostonlo/public_html/forums/gallery2.php at line 95 (galleryembed::createuser)
    * in /home/bostonlo/public_html/forums/gallery2.php at line 50
Also, if someone logs out, they get this message:

Code:
Unable to add cookies, header already sent.
File: /home/bostonlo/public_html/forums/includes/class_dm_user.php(1571) : eval()'d code
Line: 10
Thanks in advance for any help.
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 04:27 AM.


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.10325 seconds
  • Memory Usage 2,408KB
  • 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
  • (8)bbcode_code
  • (1)bbcode_html
  • (4)bbcode_php
  • (8)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
  • (4)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