Archive for the Joomla Category

We are ready for Joomla 2.5!

Joomla 2.5

Joomla has announced the immediate availability of Joomla 2.5. This new major version comes with a host of new features including new search functionality, multi-database support, and update notifications.

Our extensions are ready

We are pleased to announce that DOCman 1.6.x and our upcoming FILEman 1.0 and LOGman 1.0 extensions are Joomla 2.5 ready!

Our team has been extensively testing the latest version of DOCman 1.6 since the early beta releases of Joomla 2.5. Results of the tests showed that DOCman is fully functional and compatible. Minor issues found have been reported to the Joomla development teams and fixed during the beta process.

If you are running DOCman on Joomla 1.7, you can upgrade right away. DOCman will continue working as expected.

Upgrading to Joomla 2.5

Joomla 2.5 is a long term stability release (LTS) and will be supported until December 2013 by the Joomla project. Joomla 1.6 and 1.7 are short term releases (STR) and their support ends immediately after the release of a new version. (release cycle infographic)

At Joomlatools, we will support both long and short term releases for 3 more months after their end of life. This means that we will offer support for Joomla 1.7 until the 30th of April 2012.

This gives you the needed time to upgrade your sites to the latest version. If you are running a Joomla site on 1.6 or 1.7, we advice you to upgrade to Joomla 2.5 in the coming weeks. Moving from 1.7 to 2.5 can be done with the one-click upgrade within Joomla.

DOCman on Joomla 2.5

Screenshot of DOCman 1.6.3 running on Joomla 2.5

Advising to NOT upgrade to Joomla 1.5.16/1.5.17

We are officially advising all our users and customers to NOT upgrade to Joomla 1.5.16/1.5.17. The new Joomla release includes a auto-plugin disable feature which can lead to a site experiencing unexpected behavior or worst case the site could go down.

The auto-plugin disable feature was introduced to quote :

I’d like to try to write a patch to Joomla core so it doesn’t die with fatal error when it can’t include a plugin file (in other words: plugin exists in DB but filesystem entry is deleted).

Source : Graceful handling of missing plugins

The introduced solution for this problem is that Joomla 1.5.16 and 1.5.17 now disables any plugin that triggers an error during initialisation.

The behavior assumes that a plugin would always throw an error, being a missing file, however the error could be conditional and only thrown under certain circumstances. Depending on how the plugin works the conditions could be rare. Instead of throwing an error the plugin is disabled and prevented from executing under normal conditions. This can lead to a site visitor experiencing unexpected behavior or worse the site could go down.

We have requested the change in 1.5.17 to be rolled-back.(See Tracker #19859).
In the mean time we strongly advise you to not upgrade to Joomla 1.5.16/1.5.17.

If you are using 1.5.16/1.5.17 and you are experiencing problem with plugins magically disabling themselves please let us know.

Read the rest of this entry »

How People See Joomla

Sometimes a simple diagram says it better than a thousand words:

Many people see Joomla as the core product, with various extensions surrounding it as 'small' addons. In reality, more and more sites rely primarily on the extensions, and use Joomla simply as the glue that holds them together.

Update: This picture triggered a little game on Twitter. People are making their own versions of ‘How people see Joomla’. Wanna play? Send your picture to @mathiasverraes or post in the comments.

The creations so far:

Security in third party addons

Last week, two security reports caught our attention. Even though they are not directly about any of our products, they are relevant to our users. That is why we have opened a new forum to announce vulnerabilities. Please subscribe to the Joomlatools security RSS feed, or to the security forum (you need a forum account).

1. DOCman Seller

This extension allows you to sell documents through DOCman. So far the developer of this extension has not responded to this vulnerability report. As the extension’s web page doesn’t show any activity, we suspect it has been abandoned.

If you are using this extension, we advise you to uninstall it completely, until an update is released. The AEC extension might be a good alternative.

UPDATE: The entry on the extensions directory states that the component was updated to v2.2. However, the download link is broken, I couldn’t find any information on Ossolution’s site, and the site’s support page appears to have been hacked.

UPDATE 2: In the meantime the links on the JED have been updated to point to Ossolution’s new site. However, in the meantime Ossolution claims to have made a completely new version 2.5 of the extension, which no longer depends on DOCman. They refused to send us a copy, so we have no idea at all how secure it is.

2. Com_alfresco

We have investigated this report, and it does not concern the Joomla:Alfresco integration that was published through Joomlatools Labs over a year ago. We have been unable to find the developer of this extension, so we believe it might be a custom extension that is not available on the JED. If you have more information, please let us know.

If you have an Alfresco extension installed, you can identify it by opening /administrator/components/com_alfresco/manifest.xml. If it starts with the following header, you are using our secure extension. If it doesn’t, you might be using the vulnerable extension.

<name>Alfresco</name>
<author>Joomlatools</author>
<copyright>Copyright (C) 2008 Joomlatools. All rights reserved.</copyright>
<creationdate>December 2008</creationdate>
<license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license>
<authoremail>info@joomlatools.org</authoremail>
<authorurl>www.joomlatools.org</authorurl>
<version>1.0.0</version>
<description>This component displays an Alfresco repository using CMIS</description>

Best JED response ever

I don’t usually repost stuff on this blog (we have the “What we’ve been reading“-feed for that in the sidebar). But this is so well written, that I feel everyone who ever used GPL software should read it: Best JED response ever (hat tip to ninjatheme for the find).

Speaking as a developer of GPL software myself: when faced with (however few) users who demand your full undivided attention because they feel you owe it to them, it can be very tempting to relicense your software under a more restrictive proprietary license.
Dear user: If you care about Free Software (as in Freedom), allow GPL developers to make a living. If we can’t build viable GPL-based business models, open source software will never amount to more than mere hobby projects.

From the Free Software Foundation website:

Free software is software that gives you the user the freedom to share, study and modify it. We call this free software because the user is free.

Joomla, meet Alfresco

Today, after a year of hard work, we are proud to announce the release of our Joomla 1.5 integration for Alfresco. In case you don’t know Alfresco, it’s an open source enterprise content management system solution written in Java.

There are hundreds of thousands of Alfresco users worldwide and millions of Joomla sites. Alfresco and Joomlatools both believe that it is important to collaborate on building open source solutions that work together. So we teamed up, and here’s the result: you can now use your Joomla site as a front-end for Alfresco document repository!

What can it do ?

Our integration enables you to access the powerful back-end content repository services of Alfresco, directly from your Joomla site. The integration allows you to manage, preview and track content and digital assets on collaborative Joomla web sites, using Alfresco’s content library. Similarly Alfresco users will be able to search, publish, share, download, and edit content directly on Joomla sites.

How does it work ?

This integration uses the new CMIS standard. It’s an Atom-based software interoperability protocol, that was created by EMC, IBM, Microsoft, Alfresco, Open Text, Oracle, and SAP. It was developed especially for this purpose: connecting different CMS systems, using a single protocol. CMIS is brand new, so here at Joomlatools we are very excited to be among the first to ever implement it.

Seeing is believing: you can try it for yourself on the demo site, or you can download it at Joomlatools Labs. We opened a new forum to hear your thoughts.

Joomla 1.6 SEF: Smarter than humans

(This is the second part of a little case study on usability. Read “Deconstructing Joomla 1.6 SEF Settings” first.)

Here’s the table from part 1 again:

Option
Tooltip message
1. Search Engine Friendly URLs Select whether or not the URLs are optimised for Search Engines
2. Add suffix to URLs If yes, the system will add a suffix to the URL based on the document type
3. Use Apache mod_rewrite Select to use the Apache Rewrite Module to catch URLs that meet specific conditions and rewrite them as directed
Warning: Apache users only! Rename htaccess.txt to .htaccess before activating.

Let’s try to come up with some ways to make it easier to understand.

1. SEF URLs

A user expects Joomla to output a ‘good’ site, and a good site has SEF URL’s. The historical reasons to have a configuration option for this, are no longer relevant in 1.6. My suggestion: turn SEF on in all installations and remove the option.

2. Add suffix to URLs

This feature adds .html, .feed, .pdf… It looks a lot better than adding ?format=pdf. It fits in nicely with the idea that a website has a /my/folder/myfile.html structure, which is a concept everyone gets. So again: let’s turn it on permanently and remove the option.

3. Use Apache mod_rewrite

This is the most difficult one, and not entirely solvable. For starters, we could rename the option to “Remove ‘index.php’ from URLs“. This makes a direct mental connection between the setting and the intended effect. The users can see index.php in their URL’s, they click the button, and index.php is gone.

Back to our question from part 1: “Can the system decide this without user interaction?” Joomla could:

  • check whether .htaccess is present,
  • check whether it contains the correct codes, and
  • check whether mod_rewrite is present.

If all checks succeed, Joomla removes the index.php.

Alternatively, Joomla could rename the htaccess.txt file automatically. As an extra failsafe, it could do a HTTP request against the frontend, and revert the changes if a 500 error is returned.

In a third approach, the .htaccess file could wrap the rewrite codes inside <IfModule mod_rewrite> … </IfModule>.This automatic handling of htaccess might be a bit too risky, because depending on apache config, it can crash your frontend. Further testing and brainstorming is required.

Conclusion

By keeping an open mind and coming up with creative ways, I’m sure it’s possible to remove half the options in Joomla, in the configuration as well as all core and 3PD extensions. Joomla can be smarter than the humans using it, by analyzing it’s environment and making informed decisions. We need to step down from the idea that having more buttons means that the software is better.

So what do you think? Which options or buttons would you drop from J!1.6?

Deconstructing Joomla 1.6 SEF Settings

Most people don’t read manuals. All we can do is make sure our applications are easy and intuitive for everybody. Joomla does pretty well in that area, hence it’s success, but the work is never done. And many third party developers seem to confuse ‘options’ with ‘features’, and ‘configurability’ with ‘power’.

When working on Nooku, we constantly ask ourselves: “Do we really want the user to make a decision here? Can the system decide this without user interaction?” For each configuration option, users will need to understand

  • what it does,
  • how it will affect their site, and
  • whether that is a good thing or not.

To illustrate the process of making an application easier, let’s do a small case study of the SEF feature that is in J!1.5. There are three Yes/No options in the Global Configuration:

Option
Tooltip message
1. Search Engine Friendly URLs Select whether or not the URLs are optimised for Search Engines
2. Add suffix to URLs If yes, the system will add a suffix to the URL based on the document type
3. Use Apache mod_rewrite Select to use the Apache Rewrite Module to catch URLs that meet specific conditions and rewrite them as directed
Warning: Apache users only! Rename htaccess.txt to .htaccess before activating.

Even though a user knows what a search engine is, that doesn’t mean he knows what search engine optimization is. The user might interpret it as “Optimizing the search box in my Joomla site”. Let’s look at the options again. Concepts that all users can be expected to understand are green, technical terms are red, and orange is in between.

Option
Tooltip message
1. Search Engine Friendly URLs Select whether or not the URLs are optimised for Search Engines
2. Add suffix to URLs If yes, the system will add a suffix to the URL based on the document type
3. Use Apache mod_rewrite Select to use the Apache Rewrite Module to catch URLs that meet specific conditions and rewrite them as directed
Warning: Apache users only! Rename htaccess.txt to .htaccess before activating.

For a newbie, each red block is a question that needs to be answered before he can make a decision. “What is Apache?”, “What is a document type?”,… And even a professional CMS integrator, who’s testing different solutions and quickly wants to assess if Joomla fits his purposes, will want to answer as little questions as possible.

In part 2 we have a look at how we can make this easier. And for everybody who’s in web design or development, read “Don’t make me think” by Steve Krug.

Solution for the Developers Challenge

(Last week I posted a little challenge for PHP developers. You might want to give it a try for yourself before reading the solution below.)

I received about 15 e-mails. Most of them were a variation of the same theme: get the id’s from the database, and update each row — which usually meant having the update query inside a foreach loop. To limit the number of queries,some people worked out a way to only update the rows that actually needed updating. One person used a stored procedure in MySql, which was then called from the function.

The winners

These people sent in the best solution (ordered!):

  1. Richard Greset
  2. Thomas Kahl
  3. Shayne Bartlett

They win eternal Joomla glory, and a spot in Open Source Heaven (which is just as good as regular heaven, but there’s no entrance fee and you get to make your own changes!)

The solution

My solution only requires a single query:

SET @order = 0;
UPDATE jos_products SET ordering = (@order := @order + 1) ORDER BY ordering ASC;

Setting the variable in the first line obviously doesn’t count as a query. The intent should be very clear: the rows are ordered, and each row get’s a new value. The winners had some small variations, but the way it’s written above is the one that’s most readable. To see the solution as a Joomla method, download the attached zip. Of course, if you have a better solution, let’s us know.

PHP’s little brother

The reason for this little challenge, was to get an idea of what MySQL features people actually know how to use. Joomla 1.5, nor most of the code from 3PD extensions I’ve seen, make full use of MySQL. That’s a pity, because there is plenty of opportunity there to make your code faster, and more stable. There are of course the historical reasons: Joomla 1.5 still has to run on MySQL 4. But I believe many people regard MySQL as PHP’s little brother: you drag it along because you have to, but you don’t really know it all that well.

Blast from the past

Past October I was invited by DOP, one of our Nooku partners for a friendly ‘Clash of the Titans’, aka Drupal vs Joomla. The Drupal project was represented by Bert Boerland, Drupal evangelist and a personal friend.

Mathias already wrote about this little get together a few weeks ago. One of the things that came up during my talk was the presentation that I gave about Joomla at the second DrupalCon in Amsterdam in 2005. A historical event, it was in Amsterdam that Dries gave his first State of Drupal talk… I promised Bert I would try to dig up the slides of my presentation. Took me a while but here they are …

This is probably the first public presentation that was given about Joomla, only a mere 2 months after it’s birth. Looking back at this 3 years later, all I can say is that things have changed quite a lot. Some goals mentioned where met, others are still being worked on, others will never happen. I will try to look back some of the things mentioned in this presentation in a next post. Stay tuned.