I would like to take a moment to discuss community software that is available for Joomla. In the past few months I have seen a new array of community applications become available for Joomla, and have worked with quite a few.
If you are like me, you run off and install a popular package, get everything running the way you want, but then when you install another piece of software, oops, something breaks. Was it poor planning, or do I blame the community component or the new component I just installed? My answer is that depends.
- Is the new component the most important one for you site? Is it the driving source of revenue or content for your site?
- How is the coding of the community software. Is it easy to look at the developer’s code and change it to suite your needs? Or, when you look at do you get dizzy and start cursing? I understand most end users do not have the expertise to understand the coding, but remember, if you want it changed, you will probably have to hire someone to do it, so the better the coding, the less monies you will spend for modifications!
There are many sites out there that use community software just to extend registration, which is a great approach. Personally I would do this rather than hack up the core of Joomla to have additional fields, and then have problems when I need to upgrade Joomla or install a component that will not work with the hacked code.
If you are extending registration, a word of caution, no OVERKILL. I can understand asking someone for their address, if they want to receive a newsletter, or their gender, but asking me my favorite color, my interests, about me, the date I first bought a car, my affiliation with organizations, is just plain OVERKILL.
I have developed and owned too many sites and I know this for a fact, if a person sees all this, they probably will not register on your site, too complicated and too much time. Let’s be reallistic here, they are not even that familiar with your site yet, and you will scare them off asking all these questions before they make a commitment.
The best approach here is to ask what you really need for registration, such as name, email, user name, password and maybe address or gender, then register them. You can use several plug-ins available for Joomla to redirect them to edit their profile upon first login, or better yet use a module to remind them that their profile is not complete yet.
Now lets add subscriptions to the mix. You plan on running a site, where you sell memberships to said site. Now ask yourself, what is the most important piece of software for your site? If you did not say subscription software, I will tell you right now you are incorrect. I do not care if you are running a community site, a job hunting site, a stock site, or a site where you are selling digital goods. The subscription software needs to be number one on your list, you need one that is powerful enough to grow when you do and support the type of billing you want to do.
I am going to state, as you are probably aware, that my preference is AEC, and it was before I even went to work for Valanx (and also the reason I came to work at Valanx.) The reason: AEC integrates with many different components. Integration is available for download components, affiliate programs, community software, access control components, and forums. There are many choices to make, but beware of your choices, not all are good ones.
So lets get back to the community aspect and/or extending registration. Recently I spent over 20 hours of time trying to debug and integrate with a community package, as a part of my support job. I spent over 13 hours of that time putting in debug code into the community software to see what variables it was returning. It was almost to the point of being ridiculous, the code was spread all over the place, instead of being in one area, well documented and concise and clean. (I refuse to mention the components name, but those of you who are familiar with it probably have already guessed from working with it.)
I was using the same form that they do, just redirecting, looking to see if all the code in the page source was the same (and it was) and all the JavaScript were also in the page source, but still in failed on one field type only, telling me it was required, but it was filled out. So now what do I do, hack up their component, I do not think so. Or spend countless hours re-writing their code into our package and then passing the variables back directly to the database? This approach is not realistic from a time or a security aspect.
The decision I made was to tell my clients and the clients here, this is how the integration works and these are the fields you can include in registration, plain and simple. Why? I would rather point them to a component that I know works properly, is easily configurable, has outstanding support, clean code, easily customizable, and integrates well with Joomla’s user table.
I will tell you what component that is, JomSocial, hands down. Is it perfect? Nope, no component is, but it easy enough to get the logic flow you want and the code is a breeze to work with. So rather than spend countless hours trying to get bad code to work, I would rather tell my clients, hey use this, and save time and money.