vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3 Articles (https://vborg.vbsupport.ru/forumdisplay.php?f=187)
-   -   Menalto's G2 integration into VB3 (https://vborg.vbsupport.ru/showthread.php?t=80478)

Pete Cahill 08-15-2005 05:09 PM

Same experience here w/ 3.5 RC2 and a fresh-install of G2 - a nicely vB-wrapped G2 interface, but no user-integration. :ermm:

Thought it was cookie-related at first, but I've verified that the users aren't being created automatically in G2 by the script yet I'm not getting any errors being generated by the code, either.

Anyone have any ideas?

Regards,
Pete

whodah 08-19-2005 05:17 PM

3.5 users: as mentioned above, i've not updated to 3.5. however, Pete's clue led me to think about this:

maybe 3.5 changed their user variable?

in particular, the line:
Code:

$uid = $bbuserinfo['userid'] = 0 ? '' : $bbuserinfo['userid'];
that one line might be the issue. if 3.5 isn't calling it bbuserinfo [userid] anymore, then it wouldn't know what to enter into the G2 user tables.

food for thought! :)

i'll probably upgrade to 3.5 once they go gold w/ it. in reading on how it'll be much easier to upgrade on a customized/hacked vB, it sounds nifty!

Zed28: on another note - i upgraded to G2RC1+5 yesterday and had the cookie issue (images ended in ?G2_SID=alkjsdfo0987sdf87s987df) both logged in or not logged in. so i did the fix you linked to, thx!

in particular, went to G2 Site Admin -> General Settings -> Cookies and set:
Path = /
Domain i left blank

worded right away, didn't have to clear my cookies on the FF browser i was using! :)

JimBeam 08-30-2005 03:38 PM

Quote:

Originally Posted by whodah
JimBean: thought of you today when i read that they are implementing subdomain support. it's not there yet, but they are working on it...

more info here:
http://gallery.menalto.com/index.php...wtopic&t=30959

Okie thanks a lot for the update. I've now been more active as my site is about to be up. thanks again

chanzero 08-30-2005 04:12 PM

thanks whodah, this is very cool!

i got it working in 3.5 even :)

can anyone help me figure out how to make it so that only logged in users can leave comments? i'm thinking i can set the g2 permissions so that Everybody can post comments, but then restrict the link from actually showing up with some vbcode?

Oloh 09-02-2005 09:04 PM

I am getting this error:

Code:

line: 96, 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 166 (gallerystatus::error)
in modules/core/classes/GalleryEmbed.class at line 300 (galleryuser::create)
in /usr/www/users/oloh/silkyvenom/forums/vgfaces.php at line 93 (galleryembed::createuser)
in /usr/www/users/oloh/silkyvenom/forums/vgfaces.php at line 47

My vgfaces.php is:

Code:

<?php

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

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

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

);

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

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

$navbits = array();
$navbits[$parent] = 'vgFaces';

$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('../vgfaces/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' => 'vgfaces.php',
                                    'embedPath' => '/forums',
                                                'relativeG2Path' => '../vgfaces',
                                    '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('cmpspages_vgfaces') . '");');

?>


Anyone able to help? Note, I have Gallery 2 running under a different MySQL database than vbulletin...is that a problem?

JimBeam 09-04-2005 10:12 PM

Quote:

Originally Posted by Oloh
I am getting this error:

Code:

line: 96, 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 166 (gallerystatus::error)
in modules/core/classes/GalleryEmbed.class at line 300 (galleryuser::create)
in /usr/www/users/oloh/silkyvenom/forums/vgfaces.php at line 93 (galleryembed::createuser)
in /usr/www/users/oloh/silkyvenom/forums/vgfaces.php at line 47

My vgfaces.php is:

Code:

<?php

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

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

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

);

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

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

$navbits = array();
$navbits[$parent] = 'vgFaces';

$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('../vgfaces/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' => 'vgfaces.php',
                                    'embedPath' => '/forums',
                                                'relativeG2Path' => '../vgfaces',
                                    '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('cmpspages_vgfaces') . '");');

?>


Anyone able to help? Note, I have Gallery 2 running under a different MySQL database than vbulletin...is that a problem?


How come you can go beyond the global.php?

I got this error in the 1st place.

Code:

Warning: main(./global.php): failed to open stream: No such file or directory in /home/abc/public_html/gallery/gallery2.php on line 32
OHHHHHHHHHHHHHH!! I finally got it!! thanks!

one thing i finally learnt is that the gallery2.php must be placed in the vb3 folder or else it can't work right?

zquestz 09-08-2005 06:48 AM

Just wanted to say thanks. Been wanting to do this for quite some time. If you want to check out my integrated vb3 -> gallery2 install you can check out:

http://blendchicago.com

Gallery2 Embeded: http://blendchicago.com/forums/gallery2.php
Gallery2 Standalone: http://blendchicago.com/gallery

Anyhow, if people care I can post the changes I made to the code in this thread. I did get mod_rewrite working in both standalone and embeded mode. I also stripped down the template since I didn't want the vb window borders around my install, and I noticed a ton of css conflicts I didn't want to work out.

whodah 09-08-2005 02:12 PM

yw zquestz! :D

and i'd be very greatful if you'd post your fixes. i'd love to see 'em! :D

they address some issues that i've just kinda lived with, ha ha! (i.e. the css issues)

Wordplay 09-09-2005 06:13 PM

anybody gotten this to work on 3.5 yet?

nitro 09-11-2005 07:50 AM

Am currently looking at this on a test area @ home

in vb 3.5x you need to change
Code:

$bbuserinfo to $vbulletin->userinfo
in all instances except by global

here change it to
Code:

global $vbulletin, $userinfo;
after doing this it seems to import vb users if they dont exist ok.


All times are GMT. The time now is 01:30 PM.

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.01550 seconds
  • Memory Usage 1,822KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (8)bbcode_code_printable
  • (2)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.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
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete