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)

whodah 01-11-2006 05:13 PM

Quote:

Originally Posted by fringehead
One problem I have with this integration is the following:

When the user is inside a photo folder and clicks on login, they
will get the login relative to their position and then get an error.
What would I have to hardcode to get them directed to the proper
vbulletin login? I also have a few footer links like admin which are
needing to be hardcoded as well.. What template do I edit for them?

Thanks!!

Sean

heya! see post #41 in this thread. i also edited the first post w/ a note to see post #41 also just now for future visitors! :)

Quote:

Originally Posted by seanw088
Hey guys, I understand that with the salt stuff going on, a VB registered user won't be able to login directly to the gallery. That's cool with me, in fact I'd prefer that.

However, before I go through all the work of setting this up (and buying another license for this new site), I have a question. I already have over 100 registered users and I just launched my G2 site last week (woohoo!). I really, really don't want to have to ask them to all re-register in vB, then upload their content again. Is there ANY way at all to migrate users from G2, into vB, then require that logins come thru vB?

I'll jump through any hoops I have to if I can keep my users from having to jump through hoops. :)

Thanks in advance, and here's to hopin!
-Sean

heya! not sure... :( i don't know enough about vB's salt (or salt in general - unless it's the salt on my saltwater aquarium site, ha!). but perhaps someone else can chime in?

edited the first post w/ a bit more info at the very end for new readers! if you guys think anything else should be up in there, lmk!

i do plan on migrating to 3.5.x soon... it was gonna be the 1st of this year but didn't happen, heh!

if nobody has converted this to a plugin by then, i'll probably look into it.

SilVert 01-11-2006 07:21 PM

Quote:

Originally Posted by whodah
if nobody has converted this to a plugin by then, i'll probably look into it.


whish i could wait for that :(

my unknowledgeable ass is going to attempt this gallery integration soon(probobly this week). going to take a while as this is only my 2nd or 3rd attempt at anythign related to VBB other than the stuff built in(databases scare me ;))

but, wanted to thank you guys ahead of time for all the work youv done so far :) hopefully it will make my have less work to do :)

ZED28 01-14-2006 03:24 AM

Quote:

Originally Posted by SilVert
whish i could wait for that :(

my unknowledgeable ass is going to attempt this gallery integration soon(probobly this week). going to take a while as this is only my 2nd or 3rd attempt at anythign related to VBB other than the stuff built in(databases scare me ;))

but, wanted to thank you guys ahead of time for all the work youv done so far :) hopefully it will make my have less work to do :)

No worries SilVert, it's a pretty painless experience! :D In fact, your Gallery2 and VB installs will still remain quiet sepetate entities after the integration. It's the special gallery2.php page that does all of the work.

The only issues I have are with the mod_rewrite functionality as it slows the Gallery down considerably and has a few strange behaviour tendancies that I am fighting to overcome. But the mod_rewrite is just fluff really, the rest is pretty simple and straightforward.

voleibolmurcia 01-17-2006 02:13 PM

The integration of the Menalto´s G2 includes the style or theme?

If the answers is not, how could i make it? Thanks.

dodgechargerfan 01-17-2006 05:47 PM

Could this work across hosts?

I have my main vB site on one host and my Gallery running on another.
Would it work with the right changes to the paths?

SilVert 01-19-2006 06:28 PM

well.. i haev made it this far ;)

i have gallery installed(damn nice installer IMO :)). i can log into gallery in "stand alone" mode.

but when i goto the gallery.php file i get an error:
"Fatal error: Call to undefined function: iserror() in <location of files>/httpdocs/forum/gallery.php on line 74"

i just cant grasp where iserror() shoudl have been defined or anything... anybody got anythign on this?

my gallery is located at racersden.net/gallery, and the forum is at racersden.net/forum... the php file is in the forum directory...

SilVert 01-23-2006 07:17 PM

just thought about this... is it REQUIRED to have the gallery in a sub folder of the forum directory?

and also, the index file in the gallery directory, could i just have that file have a meta refresh to the VBB embed page or is that index file required?

manuka 02-25-2006 02:56 AM

Quote:

Originally Posted by SilVert
just thought about this... is it REQUIRED to have the gallery in a sub folder of the forum directory?

and also, the index file in the gallery directory, could i just have that file have a meta refresh to the VBB embed page or is that index file required?

no it's not - i've been working on this issue with some positive results so far. it needs a bit of fine-tuning but if you use the following code and change the file names/paths where necessary you can have a top-level embedded gallery:

Code:

<?php

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

// #################### DEFINE IMPORTANT CONSTANTS #######################
define('NO_REGISTER_GLOBALS', 1);
define('THIS_SCRIPT', 'photos'); // 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 ############################
chdir("./forum/"); 
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'] : 'MAYHEM PHOTOS';

function runGallery() {
    global $bbuserinfo;
                chdir("../photos/");
                require_once('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' => 'photos.php',
                                    'embedPath' => '/',
                                                'relativeG2Path' => 'photos/',
                                    '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') . '");');

?>

see if that works for you

cerndeosil 02-25-2006 06:24 PM

All this stuff is way too techie for me. I have one of my admins who does all the really techie stuff for me on my forum. But unfortunately we haven't been able to find a way for him to get access to this site.

We're running 3.5.3 and have been looking into setting up the Menalto Gallery on our forum The Moot and all these code posts have my head spinning. Have any of the posts in this thread been found to work with 3.5.3? If so, could someone post a link to the relevant post so I can pass on the details to my admin friend?

Thanks folks. :)

Mike

manuka 02-28-2006 07:25 AM

I only seem to get that error when the vBulletin admin views the gallery2 pages. Can anyone suggest a workaround so that the vBulletin admin can also view the gallery2 pages and not have to login via the 'backend'?

Any help would be much appreciated!

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?

Seems like there is not much support for this mod anymore - shame really because there are a lot of requests on the Gallery forums for support or advice. If anyone can provide an answer to my question above, I will be eternally grateful. Alternatively, if I find an answer I will post it here.


All times are GMT. The time now is 07:30 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.01846 seconds
  • Memory Usage 1,844KB
  • 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
  • (3)bbcode_code_printable
  • (6)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