Welcome to Egypt Forums Mark forums read | Egypt Main Page
Egypt Forums
Arabic Movies



Articles Thread, Menalto's G2 integration into VB3 in vBulletin; Menalto's G2 integration into VB3 I was about to post this on Menalto's site until i realized that I'd be ...

Short Link: http://forum.egypt.com/enforum/showthread.php?t=3347


Reply
LinkBack Thread Tools Display Modes
Menalto's G2 integration into VB3
 
 
The God Father
Developer's Avatar

Reply With Quote
 
Join Date: Jul 2008
Location: NDC
Posts: 5,425
10-09-2008, 06:14 AM
 
Menalto's G2 integration into VB3



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! Egypt.Com EnForum (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

Egypt.Com EnForum

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:
http://www.vbulletin.org/forum/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! Egypt.Com EnForum ):
<div style="margin: 5px 10px;"> <div class="smallfont" style="margin-bottom: 2px;">Code:
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(
    
'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:
<div style="margin: 5px 10px;"> <div class="smallfont" style="margin-bottom: 2px;">Code:
PHP Code:
             $ret = GalleryEmbed::init(array('embedUri' => 'gallery2.php',
                    
'embedPath' => '/VB',
                        
'relativeG2Path' => '../gallery2',
                    
'loginRedirect' => 'index.php',
                    
'activeUserId' => $uid));
and
<div style="margin: 5px 10px;"> <div class="smallfont" style="margin-bottom: 2px;">Code:
PHP Code:
     require_once('../gallery2/embed.php');
to suit your directory structure...

step 2 - creating the template
as per the same thread, http://www.vbulletin.org/forum/showthread.php?t=62164 (2nd code box) create a template named 'gallery2' (no tics) and in it, place the following code:
<div style="margin: 5px 10px;"> <div class="smallfont" style="margin-bottom: 2px;">Code:
PHP 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! Egypt.Com EnForum

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! Egypt.Com EnForum

(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! Egypt.Com EnForum )
__________________
I Love Walking In The Rain Cuz Nobody Know I'm Crying !!
 
 
 
 
Junior Member

Reply With Quote
 
Join Date: Jan 2009
Posts: 1
24-01-2009, 06:00 PM
 
Many thanks for your research and the instructions, Developer.
Would this work for vBulletin 3.8.0 and Gallery 2.3.0 integration?
 
 
 
 
Junior Member

Reply With Quote
 
Join Date: Apr 2009
Location: Somalia
Posts: 5
08-04-2009, 06:11 PM
 
Egypt.Com EnForum
hypnotherapy weight loss
__________________
pool weight loss exercise
 
 
 
Reply

Articles Thread, Menalto's G2 integration into VB3 in vBulletin; Menalto's G2 integration into VB3 I was about to post this on Menalto's site until i realized that I'd be ...

Short Link: http://forum.egypt.com/enforum/showthread.php?t=3347


Bookmarks

Tags
integration, menalto, vb3


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

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
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Gallery 2.1 and vBulletin 3.5.X integration Developer Articles 64 30-05-2009 07:03 AM
vBulletin and iDevAffiliate Integration Developer Mods for 3.7.x 11 19-03-2009 11:46 AM
Flashchat: Integration for vB 3.7 Developer Mods for 3.7.x 0 01-11-2008 11:05 PM
Enhanced Jabber Integration Developer Mods for 3.7.x 0 07-09-2008 09:38 PM
Flashchat: Integration for vB 3.7 Developer Mods for 3.7.x 0 07-09-2008 09:26 PM