The Joomla! Community Magazine™

Demand Their Best

Written by | Friday, 01 November 2013 00:00 | Published in 2013 November
Dear Joomla! developers, jQuery is already installed in Joomla! 3... KNOCK IT OFF! 
Demand Their Best @qbparis

Demand their best!

When purchasing a Joomla extension there are several 'implied' contracts you enter into with the vendor. At the very least receiving a working, as advertised, extension is high on this list. Anything short of this is just wrong! Now what constitutes a working, as advertised extension?

  • It must install without errors and be 100% compatible with the current version of Joomla! it was programmed for.
  • It must do everything (and hopefully more) it was advertised to do.
  • It should never require you to enter or alter its core code to perform basic tasks. If this is the case, you purchased a beta release.
  • It should never ever alter or rearrange the Joomla core code in order to perform its tasks. NEVER... period! I'm not talking about the inclusion of template overrides because this is the proper way of performing a coding task. I'm talking about including code within your extension or template that changes how the native Joomla core code gets processed.
  • It should conform to Joomla's best practices for using core libraries

Now, I have a hard drive filled with commercial Joomla extensions that should fall into the above statements (in whole or in part) and it is maddening to say the least. Spending good money for something that is not complete, won’t install properly, does not live up to its hype or has to alter or rearrange the Joomla core code to perform its tasks is just wrong.

If you encounter these issues, as a consumer, you have several options;

  • Ask the developer to fix any and all of the issues you are encountering.
  • Work with the developer to the best of your ability to assist them in correcting the issues.
  • Have a little patience with the developer if they show good faith in wanting to work with you to fix the issues.

If at any time you are not getting satisfaction from your requests;

  • Request a refund. If a refund is refused, file an appeal with your credit card company.
  • Post a review and rating on the developers Joomla Extension Directory (JED) page explaining your issues or problems.
  • Take your case to the social networks where the developer hangs out. The ‘power of the pen’ can be a very effective vehicle. Be concise, truthful and non-threatening in your comments!

Never accept the adage that your issues will be fixed in future upgrades because generally they will not. Never allow the developer to just 'blow you off' and claim that your issues are unique to you. Never just go away without being made whole for the issues you are encountering. If you allow any of these to take place, the developer wins and will continue to do others harm and hardship. Stand-up for your rights as a consumer!

For example, with the release of Joomla! 3 there is a growing issue with how some commercial developers use, manage or manipulate the jQuery Library and/or bootstrap script within their extensions or templates. I say growing because I’m seeing more and more developers abuse how they interface with these scripts contrary to how Joomla! 3 frames them. Case in point;

  • Including their own ‘Load jQuery’ option and version of this library script. Worse yet... having this damn option turned on or hard coded into their code.
  • Invoking code that turns off how and where Joomla! 3 loads jQuery or bootstrap scripts and replacing it with their own versions and placement.
  • Including more then one jQuery Library scripts within their code.

Don't believe for a second that 'your' best interest is being served from a Joomla! 3 extension or template developer coding this way. The only interest they are serving is their own and issues greater than the ones you are having will surely arise in the future. By altering how the jQuery Library and bootstrap scripts get loaded or using different versions then what comes native with Joomla 3, problems in how your Joomla! 3 operates and functions will cripple your installation.

More so as Joomla! 3 moves to newer release versions or as you attempt to install and use other jQuery Library required extensions. Playing by the rules that have been clearly defined by the Joomla! 3 development team is critical to everyone’s success. If your extension or template just can’t function properly within these rules... be a programmer and design your code accordingly.

Don’t alter or hack the Joomla! 3 core code just so your latest eye candy extension or template will dazzle the masses. No one will be singing your praise when it breaks or disrupts how the rest of a user's Joomla! 3 website was designed to function. No amount of eye candy is worth that!

Read 11253 times
Tagged under Developers, English
Ed Hathaway

Ed Hathaway

I have been an open source extension developer for Joomla for over five years. In addition I have been developing Joomla websites since the very early days of Mambo. More importanly, I am a Joomla extension and template consumer.

Very good article!

This is exactly what we care when we develop too!
Hakan, thanks for your kind comments and thanks for your development contributions. The Joomla community needs more developers like you all!
Great Article Ed
Thanks Paul... now take that dog out for it's walk!
As an extension developer I agree with what you say.

I would also like to add that many SEO type extensions fall into this category:

"It should never ever alter or rearrange the Joomla core code in order to perform its tasks. NEVER... period! I'm not talking about the inclusion of template overrides because this is the proper way of performing a coding task. I'm talking about including code within your extension or template that changes how the native Joomla core code gets processed."

There are many of these around that break a lot of components and most of them "require" that components support the seo component as opposed to the inverse. IMO it should be the other way around as a component that works perfectly on a native joomla install and does not work with a 3rd party extension installed is not the one in the wrong.
Billy, IMO... any extension or template that alters or hack the Joomla core code so it can function is not an extension or template I wish to build a client's website around. They are paying me to keep their site(s) 'live' and 'healthy'. I can't do this if an extension or template alters or hacks how Joomla is framed by it's developers.

Thanks for your comments and together we need to keep this conversation active!
Nicholas K. Dionysopoulos Saturday, 02 November 2013

Some developers do include their own jQuery libraries because some other developers write plugins which kill jQuery, either removing it completely from the page's source, or replacing it with a crappy version that doesn't work. Sticking with the line "we follow best practices for using core code, another extension is breaking your site's core features and kills ours" sadly doesn't bode well with the average user. I've been on the receiving end. I did find a workaround which doesn't involve loading my own copy of jQuery but I doubt many developers can do that.

I would say that you need to educate developers AND users, not just developers. If users would accept a technically sound explanation developers wouldn't have to resort to crappy coding techniques which worsen the overall problem.
Agree, Ed. The way for developers to "object" to development standards and directions is to participate in the process, testing, reporting issues, and sharing fixes.

Taking matters into ones own hands by hacking core, or overriding core assets, or packing a forked framework with the extension in order to avoid using the shared API is not community-minded.

That might fix the problem for that specific developer but it creates a bigger issue of collaboration and ends up making Joomla far less useful for everyone.

Thanks for speaking up.
There should be a place we can point these guys out besides the extensions directory because I feel that most of the reviews are false.

like the raxo extension. You have to pay for the k2 extension and for the joomla extension. And the templates are super expensive, almost the full cost of the extension and it won't work with the yootheme's widgetkit. Also the Cerontek facebook extension. Supercomplicated to install and there's a bug when I reported it the guy told me it was a normal behaviour... .huh?
Very nice outspoken write up, and one i wholeheartedly agree with.

Adding to the extension annoyances (you forgot about just adding jq.ui for the fun of it), i would like to add the framework fun.

It seems as if the developers have their own interpretation of joomla and just add (well that's ok) or leave out core joomla functions in their frameworks to a point that it becomes silly and tedious. There is not one, not one framework around that just supports all the new features of the j3 series out of the box. That's ok when you want to publish an article or 3, but when you add some functionality you are soon running into unsupported functions, strange loading order of files and the list goes on. So that means writing your own overrides and what have you not, surely not the way forward in making joomla more user friendly, and defeating the purpose of a framework.

Ok, this was a bit of a ramble, but the point is that the problems you are describing with extensions are also very true with regards to frameworks.
@joomla is finally saying it. If you want to code outside of joomla then don't write joomla extensions. Just learn those standards and follow them.
Very good article.

It is nice to read there are more people with the same look on using bought extension.
I to often buy plugins that are not fully operational.
For some reason this becomes normal after a while but it isn't.

Just one extra advise i can give;
Watch out with what you write in your review. Even when just being honest, creators will not like you and maybe not help you in the future. Some even seem to ban your subsriptions.
There should be a JED badge.
"Best J! practices respected" or something...
Thank you
This was a great article and your tips for dealing with an application that doesn't work is right on. Luckily, I haven't run into any issues like that YET. Most of the issue I have with applications are fixed immediately by the company. Well, make not always immediately, but in a fairly decent timeframe.

Thanks for sharing…..
Hi Ed

Thank you for this article. As a hobby-coder who is about to release the first commercial extension, I will try to heed your advice. I've already added the feature to disable the loading of the jQuery library of the extension. I will also add a refund possibility, should the extension not do what it was advertised to do. This seems only fair.
And now the 'but's... Because it is an extension to an already existing component, which in its latest version runs on Joomla! 2.5 and Joomla! 3, the component loads its own bootstrap files on Joomla! 2.5. My extension has to have a similar setting to load (its own/ the component's) bootstrap files as well, if I want to have a consistent bootstrap layout for my extension on both Joomla! versions.
I hope you do not count this as bad behavior... or what is the recommended way for extensions running on J2.5 and 3 regarding the loading of the bootstrap files?
The second 'but' is that I have to agree with Nicholas K. Dionysopoulos's statement: I know from experience that Joomla! has not the best javascript handling, and I know also from experience that users need to be educated as well! Sometimes users behave really, really odd to say the least. I've encountered lots of users (web designers, professionals as well as amateurs) that start building a site like this: The least important parts first, i.e. dozens(!) of blinking, rotating, sliding plug-ins and modules that do not contribute anything to the site. And then they move to the more important parts like the main component and other component and they wonder why they've got javascript conflicts and half of the site is not working. Sure, if every developer had heeded your advice and built perfect extensions, there would not have been any javascript conflicts. But we live in an imperfect world and the users need to know that and what it means with regard to the extensions they buy by the dozens.

To conclude this comment: You are certainly right with most of what you said and I respect your experience, but as a hobby-coder, I feel a bit discouraged by this article. You put a lot of pressure on the developers. And it would be sad, imho, if the Joomla! community were deprived of all the hobby-coders and their products, as imperfect as they may be. Most professionals also started once as hobby-coders, didn't they?