Jump to content

J!WHMCS Integrator v1.5.0 released


Recommended Posts

J!WHMCS Integrator has been released to integrate your Joomla framework and WHMCS. If you use the Joomla framework for managing your site, then your customers understand how frustrating having two logins can be, and as the administrator, you understand the frustration of updating module and menu content on your WHMCS site, or you have resorted to using an iFrame :shock:.

 

Version 1.5.0 of this package has the following features:

 

Features:

  • Log into Joomla and you log into WHMCS simultaneously
  • Changes the form on "dologin.php" automatically to point to login handler that logs into Joomla first then WHMCS
  • Sets the session variables for both Joomla and WHMCS
  • Logout function logs user out of Joomla and WHMCS simultaneously
  • Parses a page on your web site and wraps that around the WHMCS content, needing only to change the header.tpl and footer.tpl to include two new smarty variables
  • Sets the active menu item on the parsed Joomla page so it matches up correctly (functions only with non-legacy menu items currently)
  • Requires no hacks of either system
  • Variables for everything except one path variable is handled in the Joomla backend
  • Allows a site to have their WHMCS as a subdomain or as a subfolder (so long as they are both on the same server)
  • Password and info changes are reflected in both when made
  • User registration form in Joomla to request all required info for WHMCS to create both accounts simultaneously

 

Requirements:

  • Joomla 1.5 (working currently on 1.5.10 and above)
  • WHMCS v4 or above (prior releases are not supported)
  • Both software packages must utilize the same server
  • If you are using SSL on WHMCS and you have it setup as a subdomain, you will need a second, functional SSL for your Joomla site. If your WHMCS is setup as a subfolder, then you will be fine.
  • If you have any other User level plugins installed, they must be performed prior to the Joomla / WHMCS plugin. (Note: may not function with other 3rd party plugins. I am aware that it does not function with the K2 user plugin at this time.)

 

A user manager is in the works for the next release, and will be available to all that purchase 1.5.0.

 

Cost is $120 - The first 10 customers who use promocode newrelease will receive $20 off their order!

 

Contact us if you would like more information!

 

Steven Mueller

Go Higher Information Services

Link to comment
Share on other sites

Hi Shaun,

 

I just tried it, and realized that I had set the demouser in WHMCS to closed, so it wouldn't allow it to login... it should work now. :)

 

As for linking directly to the cart, the J!WHMCS Integrator doesn't change any of the functionality of the WHMCS system, except for the "dologin.php" page. Any links directly to the cart or products, or contact us page, etc will function as they are intended by WHMCS. The Integrator simply wraps the content in WHMCS with the Joomla site.

 

Incidentally, if you have menu links in Joomla, you can tell the Integrator which links should go to what pages, and it will update the "active" menu item to the appropriate one. You can see on my site when you go to Contact Us or Order, the menu bar changes. This is handled in J!WHMCS Integrator.

 

Thanks for your question!

Steven

Link to comment
Share on other sites

Session handling is actually using the built in functionality of the two systems.

 

When a user logs into Joomla the following steps occur:

  1. Joomla logs the user in the way it's designed to, either with SSL enabled or not.
  2. Joomla creates a new token and writes that along with the password and cross referenced email address to a database table.
  3. Joomla redirects to the jwhmcs.php file located in the WHMCS root folder along with the token id. Ideally the client has ssl on the WHMCS site.
  4. Jwhmcs pulls the client id and password from the database using the token as the ref id, and wiping it from the DB.
  5. Jwhmcs redirects to dologin.php appending the email address retrieved and password via the URL (best solution at this time until they open password retrieval if ever)
  6. dologin handles login from there, redirecting to whatever page it is told to by the goto variable.

 

This isn't using iFrames to login. Ideally of course, there are SSL certs everywhere and no one is maliciously trying to hack the system. Credentials aren't blindly passed from one system to the other.

 

Hope that helps,

Steven

Link to comment
Share on other sites

This isn't using iFrames to login. Ideally of course,

that is not a yes or no

 

you are say no to login

and yes ideally not of course.

 

it is the joomla "wrapper" that is the problem as by using that you are NOT DOING A Integration then as a full integration would be putting joomla header,left menu in the header of WHMCS and the right menu and footer of joomla in to the footer of WHMC then you will have a fully integration joomla and WHMCS the right way

 

there are SSL certs everywhere and no one is maliciously trying to hack the system. Credentials aren't blindly passed from one system to the other.

 

I can only just think of what this means.

Link to comment
Share on other sites

I will try to explain, as I thought you were referring to the logging in of the user to the two software packages.

 

The J!WHMCS Integrator does not use an iFrame at any point. The header, footer (and menus, modules etc) are pulled from the Joomla site by the J!WHMCS Integrator, parsed, and then assigned to a couple of smarty variables. You simply add the smarty variable containing your site header to your header file, and one containing the footer to your footer.tpl files... and you are set.

 

If you add a module to the left position on all your Joomla pages, it will show up in your WHMCS site automatically, because the Joomla site is parsed and "wrapped" (not "framed") around the WHMCS content, just like a component in Joomla is "wrapped" (not "framed") in Joomla. WHMCS content simply replaces the Joomla content. Menus, modules, text etc that are on your Joomla pages are all managed in Joomla, you don't have to manage them again in WHMCS.

 

I hope that helps answer your question a little better.

Steven

Link to comment
Share on other sites

Trying to clear my confusion up. Please bear with me.

 

Are you saying that WHMCS pages show up on the Joomla! side as content without iframing or any other type of frames?

 

If so does that mean that the WHMCS pages are treated like Joomla! modules/extensions?

 

-Roger

Link to comment
Share on other sites

No problem,

 

The WHMCS pages aren't embedded into Joomla, and they aren't treated as modules or framed content.

 

What you will see is the Joomla content (menus, modules, header, footer etc) show up on the WHMCS side, not the other way around. You will be on your WHMCS site just like you would be now, the difference is the Joomla template has been wrapped (not framed) around the WHMCS content and then displayed through WHMCS.

 

The best way I can explain is for you to look at my site. My Joomla site is http://gohigheris.com, and my WHMCS site is http://client.gohigheris.com. If I make a change in Joomla (say I add a new menu item after "Client Portal"), that change is reflected automatically in http://client.gohigheris.com because the WHMCS site is pulling the live Joomla site and parsing the HTML to insert into the templates for WHMCS.

 

I hope that helps!

Steven

Link to comment
Share on other sites

I think i have it now the joomla header and footer and side menu's are all pulled in on the fly as and when a client lands on any part of WHMCS?

 

Is that right.

 

That is correct. It does pull it on the fly. If you have caching setup on Joomla, then your site will send whatever is cached along with refreshed content.

Link to comment
Share on other sites

Mate;

Gave it the once over and it does look like an awesome mod well done.

The only thing i would reccomend is if possible try and use the hooks in whmcs to do what you need then you don't have to "hack" the doloing.php. There are hooks for loging in and loggin out ;)

Link to comment
Share on other sites

Hi Shaun,

 

Thanks for the feedback. I actually did utilize the hook functionality in WHMCS for as many of the tasks as I could. The changes that were made in the "dologin.php" file were actually all carried out in the hooks as well (the only hack I had to make was to a mod I had already had for the support ticket system).

 

I used a hook to rename the script action variable so I didn't have to hack any of the templates (and make it usable across whatever templates are available).

 

Thanks,

Steven

Link to comment
Share on other sites

Hi Steven,

 

Your mod looks great! How does it handle logins on the Joomla side? For example, we have a Forum login and we have not found a way to include our WHMCS users into the forum; we have separate login's for both areas?

 

You also mentioned making a hack for the support Ticketing; how does this work for the Kayako integration?

 

Kind regards,

Link to comment
Share on other sites

Hi Steven,

 

Your mod looks great! How does it handle logins on the Joomla side? For example, we have a Forum login and we have not found a way to include our WHMCS users into the forum; we have separate login's for both areas?

 

You also mentioned making a hack for the support Ticketing; how does this work for the Kayako integration?

 

Kind regards,

 

Hi Keith,

 

There are actually a few pieces to this mod: a Joomla component, two plugins, a new WHMCS root file (doesn't replace anything, just a custom file), and a hook file that is used by WHMCS.

 

When your customer visits your Joomla site and want to login to the site, they fill in their login / password like normal for Joomla. The plugin requests the necessary information from WHMCS, stores it to a database, passes over to the new root WHMCS file, that then pulls and wipes that information from the database and passes it on to the dologin.php. Upon successful login, they are redirected to whatever page you want them to return to in Joomla (or WHMCS for that matter, it's specified in the component backend in Joomla).

 

My mod doesn't replace either login credentials, but bridges them together, so when you login to Joomla, the site knows the matching credentials in WHMCS. It does require the passwords to be the same in both systems, since WHMCS won't (or can't) allow us to decipher their encrypted password for comparison purposes, we have to take the password from the user as they login to Joomla and use it in logging into WHMCS.

 

The user level plugin in Joomla must be run last, after all other login plugins have run. This is because the user level plugin doesn't allow Joomla to complete the login task it is tasked to do, but redirects out before finishing. Joomla still sets the necessary session variables, and any plugins that go ahead of it will do the same. Any that occur after won't get run (I set the order on mine at like 10000 to ensure it can't get bumped ahead of another).

 

I am not familiar with the Kayako Integration, I'll have to check that out, but basically the only hack I had to do was in my supporttickets.tpl file, and that's because I have something called Endsupport that requires a user be logged in. Because WHMCS doesn't pass the "formaction" smarty variable to all files, only the ones they deem necessary, Endsupport had to hardcode the form action to <form action="dologin.php.... so I had to change that to my file, but it works fine.

 

In WHMCS, an action hook is called to replace any occurance of the smarty variable "formaction" where the filename it's calling for is "dologin.php". I replace that file name, tack on an extra query variable and pass it back to WHMCS, and WHMCS inserts it automatically into all the pages that ask for login credentials. I also change the form automatically to read "Username" instead of "Email Address", because when a client is in WHMCS, they still enter their Joomla credentials to login (it passes to Joomla then back to WHMCS, then to the "goto" page).

 

The only changes to the standard templates from WHMCS (aside from my own site customization) were to include a smarty variable called {htmlheader} in the header.tpl file and {htmlfooter} in the footer.tpl file.

 

I currently am working on an additional feature to the mod that will allow you to manually bridge your existing users in Joomla to existing users in WHMCS (or add them if they don't exist). The mod currently allows for user registration to add both at the same time (requesting all the info needed for both systems at once and creating the accounts), which you could try out at my site. The system level plugin redirects requests for com_user&task=register to the mod registration page (this won't work with something like RokLogin - have verified that it pulls the wrong registration page).

 

Hope that helps!

 

Steven

Link to comment
Share on other sites

We are a Joomla only shop and this is close to what I'm looking for. Quick question, why not write an Authentication plugin (i.e. LDAP, Google, and others in Joomla) to handle logins?

 

This way your not trying to keep ID's and passwords in sync.

 

I setup a similar Intranet setup for a client and used the LDAP plugin and I really like that solution...

Link to comment
Share on other sites

Thanks for the feedback!

 

The problem I ran into with WHMCS is that the password is encrypted with no way to authenticate against without coming from the client and passing through their authentication scheme.

 

As for keeping users and passwords synced up, as far as the user is concerned, there is only one set of credentials: their Joomla username and password. If they change their password in either system, it will make the change in both. If they change their info in either, it changes in both (including the email address). If the user changes their email address in WHMCS, it first checks to see if the new email address exists in Joomla, if so it fails, otherwise it will allow the change (changing the email address in Joomla and WHMCS simultaneously).

 

Thanks,

Steven

Link to comment
Share on other sites

hi,

a few questions:

x) must it run under the same server or also under the same domain (and whats about different IPs on same server)?

x) is it possible to deactivate the lightbox in joomla com_jwhmcs (sorry, its nice for visitors, but for work i hate it..)?

x) i want to inform you that on your pdf invoices you forgot to replace the logo ;)

x) and maybe if you know .. i`m using DirectAdmin with symlinked public/private_html folder and only my own private server-SSL cert. The website changes automatically to https as soon the cart.php is called; after that it stays on https. But first it didnt. Is there anything interaction / bad function known or something i should know?

 

I will try to start now and may come with updates on questions :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use & Guidelines and understand your posts will initially be pre-moderated