vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   Modification Graveyard (https://vborg.vbsupport.ru/forumdisplay.php?f=224)
-   -   Major Additions - Joomla for vBulletin (IMPORTANT UPDATE) - Bridge to the World's Most Popular CMS (https://vborg.vbsupport.ru/showthread.php?t=145781)

Michael Morris 04-25-2007 10:00 PM

Joomla for vBulletin (IMPORTANT UPDATE) - Bridge to the World's Most Popular CMS
 
Warning!!! An potential exploit has been found in this modification. The server that hosts vjoomla.com has been attacked several times. It is known to already be severely comprimised so at this time it is unclear whether the vulnerability lies in vJoomla, Joomla itself or the server. Until this is resolved to my satisfaction I am removing this modification. My apologies.


The modification WILL be re-released once this issue is resolved!

vJoomla is an offshoot of Joomla 1.0 that is designed to run in tandem with vbulletin. Unlike the main release it will not run without vbulletin - if you desire a CMS without a forum then use Joomla! instead. vJoomla is identical in most all regards to Joomla!

What vJoomla Does
  • Provide a single session, single login interface to Joomla and vbulletin.
  • Allows Joomla pages to be skinned by vbulletin's template engine.
  • Maps Joomla usergroups to vbulletin usergroups.

What vJoomla Does Not Do
  • It does not rewrite your templates for you - so you will need to go in currently and change relative links to images and pages to absolute links. This is most important in the style sheets and in the navbar template. This is something you need to do yourself rather than programmatically since no two sites are likely to be using the same style sheet and the same setup for these links.

Install Instructions
  1. Log into your admincp
  2. Close your forum
  3. If your forums are at the root of your site move them elsewhere - the best location is probably /forum
  4. Upload the files from the zip packages to their respective locations. There should be no overwrites.
  5. Navigate to the root of your site and run the Joomla installer.
  6. Go back to the admincp and install the Joomla product file
  7. Now either copy the ./cpstyles, ./clientscript and ./images directory of the forum into the Joomla directory OR create symbolic links to those directories. The contents of the ./images directory of Joomla and vbulletin will need to be merged.

This is release candidate 2.

Michael Morris 04-26-2007 02:41 AM

Ok, for the technically inclined, and especially for those considering writing components or modules for this variant of Joomla, here in brief is how this works.

Joomla's global file calls vbulletin's global.php - either the forum or the admincp version as needed. If the forum version is used it caches it's 20 templates. The rest of the hacks are in the Joomla mainframe. Rather than allow the Joomla database object to connect itself the resource id of the Master connection is passed to it from the vbulletin database object. Both database classes are therefore available. So if you like you can do

$database->setQuery("-- some query");
$database->loadObjectList();

or you can use vbulletin's way.

$db->query_read(" -- some query ");

Each system has it's advantages and disadvantages. Typically I use the joomla object to handle joomla tables if, for no other reason, the table prefix in the queries is automatically parsed. But I digress.

Joomla doesn't do it's own login in this hack. Instead, at the line where Joomla WOULD verify the password it instead checks the vbulletin registry object ($vbulletin) to see if there is a user. If there is the hack lies to Joomla and cuts it loose with a session without independent verification. Therefore, in this hack all logins and user manipulations go through vbulletin (which has a far more robust user system anyway so in my opinion, no loss).

This will cause problems if you install a Joomla component that extends on the Joomla user object. These components probably will not work.

vJoomla, for the most part, doesn't need a complete user list. The first time a vbulletin user moves to a joomla page though part of their registration is copied into the joomla user table. This should help certain components function and is also necessary for the Joomla backend to work. I may write some stricter syncing code if necessary -- vJoomla itself doesn't need it to work but some components might.

The admin side is a little tricker. I had to disable joomla timing out - I swear this took longer than any other part but it works now. Again, Joomla is dependent on vbulletin to get the security right in this hack. Since admincp global throws a login interface automatically if you time out on it there's no reason for Joomla to maintain a seperate check. If you return from vbulletin global.php in the Joomla admin files you're golden.

Final notes are on templates. Once Joomla is ready to call it's template engine a hack steps in and iterates over the Joomla module positions, reading them all into an array. Each module position is then wrapped in a template file (though in this base distribution there are no elaborations on these templates). After this is done Joomla's output passes through vbulletin's template engine and vbulletin completes the page output.

In all it took 2 months on and off to figure this all out. But though it's incomplete, it's working very smoothly at the moment. Questions and comments welcome.

Quantnet 04-26-2007 02:59 AM

Been on the fence for so long. Would love to see a demo of how vjoomla use the vb template

Michael Morris 04-26-2007 03:02 AM

I don't have a live test demo site up as of yet and won't for another couple weeks. Also things are still in flux at the moment.

Ntfu2 04-26-2007 03:15 AM

Awesome job here it looks like a solid start and may have just get another vBulletin license for up coming project now :)

dizzy100 04-26-2007 10:46 AM

I tried the beta on test and it works very well indeed.

However installing some components showed issues with paths i guess ? Sorry i didn't write down the error messages. Removing the mod and the components all worked as expected.

Its a great start though.

UncoderMom 04-26-2007 11:44 AM

If you need a licensed board that is inactive to test on let me know! I have one you can use lol! PM me!

I would love to have this on my live site!!

The plug in I have now requires me to turn off my VB registration and use the Joomla only. I dont want that as I use the referral system.. A LOT.

Also, Im not sure I read this right... Are you saying that this modification will allow Joomla to be skinned with your vb templates? :eek:

beduino 04-26-2007 11:58 AM

Very interesting!
tks for your work - and really the add-ons will be very useful.
All the best
Joao Barroca
aka beduino

dizzy100 04-26-2007 12:52 PM

Quote:

Originally Posted by UncoderMom (Post 1235756)

Also, Im not sure I read this right... Are you saying that this modification will allow Joomla to be skinned with your vb templates? :eek:

When i tried it on my testbed the vbulletin skins is used for joomla which looked great :) Navbar links will need to be encoded with full paths though or they won't work.

Michael Morris 04-26-2007 12:59 PM

Quote:

Originally Posted by UncoderMom (Post 1235756)
Also, Im not sure I read this right... Are you saying that this modification will allow Joomla to be skinned with your vb templates? :eek:

Yes. It does.


All times are GMT. The time now is 10:03 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.02612 seconds
  • Memory Usage 1,746KB
  • 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
  • (2)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)pagenav_pagelink
  • (1)pagenav_pagelinkrel
  • (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