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

Reply
 
Thread Tools
Menalto's G2 integration into VB3
whodah
Join Date: Feb 2004
Posts: 77

 

Show Printable Version Email this Page Subscription
whodah whodah is offline 04-23-2005, 10:00 PM

NOTE: Development for G2.1 and vB 3.5 is on this page: https://vborg.vbsupport.ru/showthread.php?t=111931

I was about to post this on Menalto's site until i realized that I'd be publicly posting VB3's code... A no-no!!! heh!

So, I'll post the instructions here, and then refer people to this post on how to do it! (obviously they'll have to log on w/ their licensed account to see it)

Ok, here's how to integrate menalto's G2 gallery into VB3.

Menalto's gallery is sweet.
Menalto's gallery is free.
Menalto's gallery is here: http://gallery.menalto.com/index.php



This works on my system of vBulletin 3.0.7 and Gallery 2 Holy Hand Grenade.

Known issues: VB3 has a password structure that consists of the user's password
plus the salt md5'ed together. It is not possible to strip out just the user's
password
. Thus, this script pushes the users's password plus salt from VB3 into
G2. The outcome - the standalone G2 passwords will not match *just* the user's
password! There is talks of looking into salt'ing in the future w/ G2
integration, but that's the dealio as of this integration technique... If you
are using G2 as 'embedded only', then game on, no worries. If not, then your
users will need to log on through the VB3 install to setup their session, then
can visit the G2 standalone if they wish...

Step 1 - create a new file named 'gallery2.php' as per this thread:
https://vborg.vbsupport.ru/showthread.php?t=62164
(thx Gary King!!!)

in that thread, the first box (the gallery2.php file), the contents will be (this is the section that contains the G2 embeded code which is available on Menalto's site... i'll update this thread w/ direct links once it's in place! *only* the G2 code is on their site, no VB3 code in accordance w/ the VB license agreement! ):
Code:
<?php 

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

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

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

); 

// ######################### REQUIRE BACK-END ############################ 
require_once('./global.php'); 

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

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

$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 $bbuserinfo;
        require_once('../gallery2/embed.php');
    
        $data = array();
    
    // if anonymous user, set g2 activeUser to null
        $uid = $bbuserinfo['userid'] = 0 ? '' : $bbuserinfo['userid']; 
 
        // initiate G2 
        // you need to edit the following 4 lines to suite your VB3/G2 install!!!
        // this is setup for a install that looks like:
        //     public_html/VB/<vb files>
        //     public_html/gallery2/<gallery2 files>
        // and also setup for a VB3 tempalte 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... i.e. if you've changed it
        // to forums.php or something of the like.
        $ret = GalleryEmbed::init(array('embedUri' => 'gallery2.php',
                    'embedPath' => '/VB',
                        'relativeG2Path' => '../gallery2',
                    'loginRedirect' => 'index.php',
                    'activeUserId' => $uid));
                        
    if ($ret->isError()) 
        { 
           if ($ret->getErrorCode() & ERROR_MISSING_OBJECT) 
           { 
             // check if there's no G2 user mapped to the activeUserId 
             $ret = GalleryEmbed::isExternalIdMapped($uid, 'GalleryUser'); 
             if ($ret->isError() && ($ret->getErrorCode() & ERROR_MISSING_OBJECT)) 
             { 
                 // user not mapped, map create G2 user now 
                 // Get Arguments for the new user: 
                 $args['fullname']     =   $bbuserinfo['username']; 
                 $args['username']    = $bbuserinfo['username']; 
                 $args['hashedpassword'] =   $bbuserinfo['password']; 
                 $args['hashmethod'] =    'md5'; 
                 $args['email']       =   $bbuserinfo['email']; 
                 $args['language']   =   $bbuserinfo['lang_code']; 
                 $args['creationtimestamp']   =   $bbuserinfo['joindate']; 
                  
                 $retcreate = GalleryEmbed :: createUser($uid, $args); 
                 if (!$retcreate->isSuccess()) 
                 { 
                    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->isError()) { 
                    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') . '");'); 

?>
in the above, you'll need to edit:
Code:
        $ret = GalleryEmbed::init(array('embedUri' => 'gallery2.php',
                    'embedPath' => '/VB',
                        'relativeG2Path' => '../gallery2',
                    'loginRedirect' => 'index.php',
                    'activeUserId' => $uid));
and
Code:
require_once('../gallery2/embed.php');
to suit your directory structure...

step 2 - creating the template
as per the same thread, https://vborg.vbsupport.ru/showthread.php?t=62164 (2nd code box) create a template named 'gallery2' (no tics) and in it, place the following code:
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>
that's it, enjoy!

oh, forgot to add!

in scouring the net, i've seen a couple of posts where people have offered to pay for this solution. if you are one of them, and are serious, then here's Menalto's donation link!

(nope, i'm not affiliated w/ them... if you wanna donate to me, then i'll redirect you to the donation link to the site that this is for: a non-profit saltwater aquariast club's site! )


edit 2006.01.11
Quote:
links in navbar don't work w/ rewrite module enabled. you can enable them, but then need to 'hardcode' the links in your navbar templates and do one phrase adjustment. it's still 'dynamic' as the encoding involves vB variables and not your actual url... but a change none the less! see #41 in this thread:
https://vborg.vbsupport.ru/showpost....8&postcount=41

can you put a 'user's gallery' link near the users' posts? yup, see post #65 in this thread:
https://vborg.vbsupport.ru/showpost....2&postcount=65

does it work in 3.5.x as a NON-plugin? yup, if you read through this post, you'll find tidbits here and there on what it takes to get it to work in 3.5.x

does it work in 3.5.x as a plugin? nope, not yet. nobody has coded it as a plugin as of this edit's date.
/edit 2006.01.11
Reply With Quote
  #132  
Old 03-31-2006, 02:20 PM
johnmont johnmont is offline
 
Join Date: Feb 2006
Location: Chicago
Posts: 30
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Remember, this could essentially be a beta test -- seems as though its working correctly....but ya know the caveats....

What I also need to do is:

1. cross check the information when someone accesses the gallery site. update if it is out of date.

2. get the primary group from VB across to gallery2.
Reply With Quote
  #133  
Old 03-31-2006, 03:14 PM
SilVert SilVert is offline
 
Join Date: Oct 2003
Posts: 70
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by johnmont
Remember, this could essentially be a beta test -- seems as though its working correctly....but ya know the caveats....

What I also need to do is:

1. cross check the information when someone accesses the gallery site. update if it is out of date.

2. get the primary group from VB across to gallery2.

now that is EXACTLY what we need to make this work. perfectly.

im not much help but if you need some basic help with that let me know



Has anybody deleted a user, then tried to get them automatically recreated?

i have a test user, created the account through the integration script. deleted the user, now whenever i go back to the integration script, it gives me an error on line 113

Code:
Fatal error: Call to a member function on a non-object in <nope, not gonna tell ya >/httpdocs/forum/gallery.php on line 113

$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;
					}
the bold is line 113
Reply With Quote
  #134  
Old 03-31-2006, 06:41 PM
johnmont johnmont is offline
 
Join Date: Feb 2006
Location: Chicago
Posts: 30
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by SilVert
Has anybody deleted a user, then tried to get them automatically recreated?

i have a test user, created the account through the integration script. deleted the user, now whenever i go back to the integration script, it gives me an error on line 113
I saw your post on the gallery site...it was a bit cryptic but one of the devs answered your question earlier in the thread:

http://gallery.menalto.com/node/35249

Basically -- when you delete an emebedded user in gallery (from the site admin page) it doesn't delete all of the information related to the user. One user reference still exists in the externalIdMap table....this is the table that links a userid from VB to a userid in gallery. And when you're trying to recreate the user, the userid exists in externalIdMap already -- so it fails. Embedded gallery is designed to have all user functions controlled by the embedding app (VB). So what you get when you delete a user from within Gallery and not the embedding app is to be expected...or explained at least. Its not really robust, imho...but since you should really be creating a Gallery user when a user is created in VB -- it makes a bit of sense.

That being said, that's why I created the plugins for VB....so that you can control the users from VB. And why i'm working on the group thing.
Reply With Quote
  #135  
Old 04-01-2006, 06:24 PM
SilVert SilVert is offline
 
Join Date: Oct 2003
Posts: 70
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by johnmont
I saw your post on the gallery site...it was a bit cryptic but one of the devs answered your question earlier in the thread:

http://gallery.menalto.com/node/35249

Basically -- when you delete an emebedded user in gallery (from the site admin page) it doesn't delete all of the information related to the user. One user reference still exists in the externalIdMap table....this is the table that links a userid from VB to a userid in gallery. And when you're trying to recreate the user, the userid exists in externalIdMap already -- so it fails. Embedded gallery is designed to have all user functions controlled by the embedding app (VB). So what you get when you delete a user from within Gallery and not the embedding app is to be expected...or explained at least. Its not really robust, imho...but since you should really be creating a Gallery user when a user is created in VB -- it makes a bit of sense.

That being said, that's why I created the plugins for VB....so that you can control the users from VB. And why i'm working on the group thing.
yea he "anwsered" the question. but the problem is that i only want users in group X to be able to upload to the gallery. so i dont want to create a user account out of the box.

i already have an IF statement in place to create for ONLY user in group x. but say one of the users does nto want gallery anymore(its a paying service on my site), so i remove his account(or whatever). then he wants the ability back. i cant simply add the user into teh correct VBB group and the user be happy.

im just looking for the most seamless integration possible

there was some code that i found on the G2 forum that attempted to reolve the issue. but i aquired a bunch of errors once i put the code in place.
Reply With Quote
  #136  
Old 04-01-2006, 06:32 PM
johnmont johnmont is offline
 
Join Date: Feb 2006
Location: Chicago
Posts: 30
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

What I'm working on is the following...I'm almost done. Not sure if it will help...

1. Users get automatically created/deleted in gallery whenever changes are made in VB

2. User's primary VB group gets updated/tracked in gallery. So if you change the user's primary group in VB it gets changed in gallery. Haven't dealt with additional groups at this point, because I don't need it for my site.

3. User's info in VB gets updated in gallery as well.

I don't know if this would work for you -- using the primary VB group as the gallery group. But I'm almost done with the integration code.
Reply With Quote
  #137  
Old 04-01-2006, 07:12 PM
SilVert SilVert is offline
 
Join Date: Oct 2003
Posts: 70
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by johnmont
What I'm working on is the following...I'm almost done. Not sure if it will help...

1. Users get automatically created/deleted in gallery whenever changes are made in VB

2. User's primary VB group gets updated/tracked in gallery. So if you change the user's primary group in VB it gets changed in gallery. Haven't dealt with additional groups at this point, because I don't need it for my site.

3. User's info in VB gets updated in gallery as well.

I don't know if this would work for you -- using the primary VB group as the gallery group. But I'm almost done with the integration code.

sounds similar to what i want. i just want only users in group X to be allowd to upload to gallery. if all of my users had an account, i would have to modify gallerys permissions. and they dont really have a "deny" option with their system

do you know if their is an easy way to add a option to the "Quick User Links" dropdown when you view a users profile? if so, that would aleviate my embeded user problem for the time being. i would rather not modify the VBB usertools.php file to make it work.
Reply With Quote
  #138  
Old 04-01-2006, 10:01 PM
Brent H's Avatar
Brent H Brent H is offline
 
Join Date: Sep 2004
Location: Phoenix, AZ
Posts: 162
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I've just written a tutorial on achieving integration between Gallery 2.1 and vBulletin 3.5.X, viewable here. Hopefully this helps condense things a little and make the process that much easier for those wanting to do this.
Reply With Quote
  #139  
Old 07-05-2006, 01:55 PM
konstance's Avatar
konstance konstance is offline
 
Join Date: Dec 2002
Location: oklahoma
Posts: 40
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I am trying to integrate vB 3.0.5 with Gallery2. I have a file named gallery2.php in VBulletin directory.
The code is as follows.
PHP Code:
<?php 

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

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

$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'); //commented by karthick 7/3/2006
function runGallery()
    {
    global 
$bbuserinfo;
        require_once(
'../video_gallery/gallery2/embed.php');
    
        
$data = array();
    
        
// if anonymous user, set g2 activeUser to null
        
$uid = ($bbuserinfo['userid'] = '' $bbuserinfo['userid']); 
 
        
// initiate G2 
        // you need to edit the following 4 lines to suite your VB3/G2 install!!!
        // this is setup for a install that looks like:
        //     public_html/VB/<vb files>
        //     public_html/gallery2/<gallery2 files>
        // and also setup for a VB3 tempalte 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... i.e. if you've changed it
        // to forums.php or something of the like.
        
$ret GalleryEmbed::init(array('embedUri' => 'gallery2.php',
                    
'embedPath' => '/chit_chat2',
                        
'relativeG2Path' => '..video_gallery/gallery2',
                    
'loginRedirect' => 'index.php',
                    
'activeUserId' => $uid));
        
    if (
$ret->isError()) 
        { 
    
           if (
$ret->getErrorCode() & ERROR_MISSING_OBJECT
           { 
             
// check if there's no G2 user mapped to the activeUserId 
             
$ret GalleryEmbed::isExternalIdMapped($uid'GalleryUser'); 
             if (
$ret->isError() && ($ret->getErrorCode() & ERROR_MISSING_OBJECT)) 
             { 
                 
// user not mapped, map create G2 user now 
                 // Get Arguments for the new user: 
                 
$args['fullname']     =   $bbuserinfo['username']; 
                 
$args['username']    = $bbuserinfo['username']; 
                 
$args['hashedpassword'] =   $bbuserinfo['password']; 
                 
$args['hashmethod'] =    'md5'
                 
$args['email']       =   $bbuserinfo['email']; 
                 
$args['language']   =   $bbuserinfo['lang_code']; 
                 
$args['creationtimestamp']   =   $bbuserinfo['joindate']; 
                  
                 
$retcreate GalleryEmbed :: createUser($uid$args); 
                 if (!
$retcreate->isSuccess()) 
                 { 
                    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->isError()) { 
                    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') . '");'); 

?>
I have created a template named gallery2
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>
If the line $data= runGallery(); is used I am getting the blank display on page. If I don't use that function Only the template gets displayed with no images on gallery. It displays the forum. no problem at all. What could be the problem
Reply With Quote
  #140  
Old 07-06-2006, 12:57 PM
SilVert SilVert is offline
 
Join Date: Oct 2003
Posts: 70
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

this:
PHP Code:
'relativeG2Path' => '..video_gallery/gallery2'
should probobly look like this:
PHP Code:
relativeG2Path' => '../video_gallery/gallery2', 
Reply With Quote
  #141  
Old 07-06-2006, 07:08 PM
konstance's Avatar
konstance konstance is offline
 
Join Date: Dec 2002
Location: oklahoma
Posts: 40
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I saw the demo of cvreefers. I am not able to understand it. If the user registers and login in the forum, can he upload his images or movie files in the gallery?
I don't know whether I can ask about this or not. Are the POTM & other files in v directory of cvreefers is accessible?

The above integration code I posted is using for the integration of vB 3.0.5 and Gallery 2.0.4. Is thjere any problem with the version?

I am trying to integrate vB 3.0.5 with Gallery 2.0.4. I am using the integartion code as gallery2.php in vB directory
<?php

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

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

$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'); //commented by karthick 7/3/2006
function runGallery()
{
global $bbuserinfo;
require_once('../video_gallery/gallery2/embed.php');

$data = array();

// if anonymous user, set g2 activeUser to null
$uid = ($bbuserinfo['userid'] = 0 ? '' : $bbuserinfo['userid']);

// initiate G2
// you need to edit the following 4 lines to suite your VB3/G2 install!!!
// this is setup for a install that looks like:
// public_html/VB/<vb files>
// public_html/gallery2/<gallery2 files>
// and also setup for a VB3 tempalte 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... i.e. if you've changed it
// to forums.php or something of the like.
$ret = GalleryEmbed::init(array('embedUri' => 'gallery2.php',
'embedPath' => '/chit_chat2',
'relativeG2Path' => '..video_gallery/gallery2',
'loginRedirect' => 'index.php',
'activeUserId' => $uid));

if ($ret->isError())
{

if ($ret->getErrorCode() & ERROR_MISSING_OBJECT)
{
// check if there's no G2 user mapped to the activeUserId
$ret = GalleryEmbed::isExternalIdMapped($uid, 'GalleryUser');
if ($ret->isError() && ($ret->getErrorCode() & ERROR_MISSING_OBJECT))
{
// user not mapped, map create G2 user now
// Get Arguments for the new user:
$args['fullname'] = $bbuserinfo['username'];
$args['username'] = $bbuserinfo['username'];
$args['hashedpassword'] = $bbuserinfo['password'];
$args['hashmethod'] = 'md5';
$args['email'] = $bbuserinfo['email'];
$args['language'] = $bbuserinfo['lang_code'];
$args['creationtimestamp'] = $bbuserinfo['joindate'];

$retcreate = GalleryEmbed :: createUser($uid, $args);
if (!$retcreate->isSuccess())
{
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->isError()) {
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:arseHead($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') . '");');

?>
I am getting error from handleRequest function of GalleryEmbed class. It is causing to display the previous page and does not allow to do any modifiactions. I have given the handleRequest function of GalleryEmbed class as below
function handleRequest() {
static $secondCacheKey = 'GalleryEmbed::initSecondPass';
return GalleryMain(true);
}
Can you guide what could be the problem ? Am I using the correct integration code(gallery2.php)
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:06 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.04721 seconds
  • Memory Usage 2,426KB
  • 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
  • (5)bbcode_code
  • (1)bbcode_html
  • (3)bbcode_php
  • (5)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
  • (3)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
  • (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_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete