lunedì 11 gennaio 2010

Our joomla setup: how a web-dummy did setup a website from scratch

have been thinking of posting this for a while... the purpose of this post is try and share what I learnt in roughly 8 months moving from 0-level-web-newbie to wannabe-webmaster :-)

Why Joomla? 

As I started looking for a CMS I had (for obvious reason) PHP + MySQL + Open Source in mind. Maurizio (my partner in crime) has been working with ASP .NET, and my brother developed his own CMS in PHP (which btw kicks powers huuuuge sites including one selling plane tickets). Since the website was supposed to be my baby from day 1, then I just thought I needed to find something I could handle 100% by myself (and I can't code at all...).

The dilemma was initially between Joomla and Drupal. Later on I also discover (or re-discovered) that you can do pretty much everything with Wordpress as well. After spending a few days googling (in february 2009) I made myself an opinion based on rumors, late me summarize:


  • lots of extensions and skins available
  • no-multisite support
  • used for small sites and e-ecommerces
  • the Administration panel takes a while to figure out

  • developer-friendly and larger development community
  • multisite support
  • (a bit) less extensions available
  • skinning reportedly more difficult
  • no default wysiwyg editor (!)
  • used mainly in large sites

There are several well-done comparison on the web (e.g.: 1,2), what comes out is that both Joomla and Drupal (and Wordpress) can serve your purposes equally well if you have something small in mind and maybe  in that case Joomla is a bit less expensive/time consuming to set-up.
I went for Joomla and still I'm pretty happy about it since whenever I needed some new functionalities, in most cases I did just browse the Joomla extensions directory and found what I needed + had the site updated within minutes (and again, I can't php, no Visual Basic...nothing :-))

The Joomla extensions we can't live without


1) JCE, wysiwyg editor: Joomla comes with TinyMCE built-in. I can't recall what was the issue with it, but I couldn't quite like it...therefore I browsed a bit the joomla extension directory and immediately realised that JCE was by far the most popular wysiwyg editor, based on the amount of plugins available for it.

- Now guys, let me share a basic tip: you can quickly smell the quality of a joomla extension based on how many plugins it has available. While this is might not always be true, it was true in this case and helped a lot in most other cases -

Anyway, I installed JCE and had initially a bit of pain in having my css used and googling around (apparently!) didn't help... I eventually found out how to get it right: I made a copy of the .css and told JCE to use that one instead, using a path formatted as showed in the pic below. As this was achieved by pure trial&error, I'm not 100% sure about what really happened, all I can tell is that this one worked :-)

Now, I'm not only incapable to code, I was also 100% HTML un-savvy when I began working with joomla (now I'm only 90%! :-D) to the point that I had no-idea what a table was...obviously moving from Word 2007 to a web-based wysiwyg has been a nightmare. After banging my head on the wall for a few months, and getting to learn some HTML, I realized that JCE is not that bad considering how complicated its job is.

JCE still has some weekpoints such as:
- it doesn't format the code decently nor keeps the handmade formatting
- pressing "return" while you're editing can have different results depending on where you are on the page, while all I always want would be a to have a < br / >
(instead of a bunch of  < p > < / p > )
- sometimes the code gets nested&messed and you need to dig into it to fix the formatting...

But still I can't say that JCE does a bad job, and most important I found it considerably better than the alternatives (browse to the end of the post to find out) :-)

2) Joomlapack, site backup suite: Joomlapack is AMAAAAAZING! It's one of the few applications that surprised me for the both functionalities, stabilty and even the creativity one can see in the app.
I hear you say: "oh come on, it's just a backup tool!"...

Well, using Joomlapack I did, within 20 mins:
I) backup my site and download the backup
II) edit the backup on my desktop using the Kickstart tools (available for free on the Joomlapack site)
III) upload the site on a different server (I use a dummy account to make tests)
IV) get a perfect mirror of my site (include the forum and wiki!) up and running on the dummy account, with absolutely 0 problems/warnings!!!

Well, that's a big WOW for me anyway :-)

3) PollXT a tool to create customized polls: this one did totally blow my mind...when I realized it was working for real and doing all those things as promised, I couldn't help but cried.

Why we needed PollXT: 
following this article on the excellent Jason Cohen's blog, we figured out we needed to know what happened to all the people who were trying Tabbles and then disappeared (i.e. did not buy it). We figured out we needed to track installations (as an opposite to track downloads, to see how many downloaders did actually install and try the software) and find a way to ask the users a few questions when they were uninstalling it (where uninstall = giving up).

We started tracking installations by automatically opening a "Welcome page" the first time the user would run the app, and then counting the visitors to that page and comparing these figures with the downloads.
And using a similar principle, we send users to this page when they're uninstalling...the poll you see in this page is power by PollXT and works like a charm! The configuration is relatively easy, specially considering the amount of options available. PollXT sends us an email each time someone fills up the poll.

- Whenever I think about PollXT I get emotional, I can't help it! :-D

4) Xmap creates sitemaps for all your needs: (New 27/01/2010)

Alright, I guess we all use google/webmaster and therefore we all need a sitemap.xml. Being a complete lazy-dummy, what I did was google sitemap generator and pick the first on the list and that would be xml-sitemaps.
The xml-sitemap works quite ok, still I can't help mentioning 2 relatively large sources of annoyance:
I) the site indexes until 500 pages (ok, not an issue by itself) and it offers no chance to filter out pages (or at least I couldn't find any...). The reall issue is that we have on the same domain both the forum and the wiki  and not being able to prevent the site to look into those 2, we hit the 500 pages wall and got an error message.
II) the second annoyance is that (obviously...) the xml-sitemaps sites doesn't check my site everyonce in a while to see what changed, meaning that each time I move/rename a page or menu, then I have to redo the sitemap.xml... just in case.

Both the issues are gone with XMAP! Plus:
- It has no page limit (read: it's 100% free)
- It has options to not include some pages in the list, and by default it doesn't go and dig into the forum...
- it updates the sitemaps automatically!!! YEAH!
- at least in our case it needed 0,0

...on top of this - surprise surprise! - it provides both a 100% google-friendly sitemap.xml AND a visitor targeted sitemap which is even customizable via CSS! Amazing :-D - Check out what it spits out for our site:
sitemap.xml for google
sitemap for human fellows


1) Multithumb, a dumb-proof plugin to generate a simple gallery.  Everyone needs a gallery at some point. If you have no clue whatsoever and don't even know what lightbox is, then things may get a bit confusing :-)
I tried a bunch of different gallery tools, at least 4-5 of them, including the well known Phoca Gallery and no-one was simple enough for my 2 neurons to get it to work. Plus, I needed something really simple, so why looking for a monster-size tool?

How it works: it couldn't be easier, just write once the text {multithumb} somewhere on the page where you want the gallery to be. The screenshot shows exactly what the page looks like in JCE... could it be easier? :-)

3) Lazybackup2, backs-up your db and emails it to you automatically. I'm a bit histerical about our db...since we have also have phpbb, MediaWiki and Mantis on it, one could think that something could go wrong screw the db and take the whole site down... isn't it? Well, with lazybackup2 I can sleep a bit tighter, as I know that whatever happens, I always have a backup of my db (not older than 24h) in my email.

4) Sourcerer, allows you to write custom code in a Joomla article. 
The story: At some point I needed to copy&paste some Javascript on some pages (not on the whole site) to track some stuff (I guess it was something related to tracking downloads with Google Analytics, which of course ended up not working in the end :-D), at as I tried writing the code in the Joomla editor I found out that Joomla doesn't recognize that text as code (obviously!) and the code would be visible in the page and do nothing. After googling I understood the problem and found that Sourcerer is the solution. The instructions are here and are really straightforward.


S5 Quick contact, simple and efficient contact form. Having a friendly contact form on your site is very important. Of course you need to have a proper contact page with all your email addresses nicely written, but you have to consider that opening a mail client and typing in an email address can be perceived as a lot of work by some people and they may even miss-spell the email address...most of the first contact messages from prospects do indeed come from the contact form, I wonder if these people would still write us if the contact form wasn't there? :-)

I tried several of those and with most of them the problem was integrating it into our existing skin. S5 Quick contact is easy install, easy to configure, it blended better with our existing template and works just fine.

Changing the spam check: the only limitation I found is the fact that the spam check is static and not configurable from the plugin configuration...not a tragedy  though as all you need to do is manually editing 2 lines in 2 different files.

  1. Find the folder where S5 Quick Contact is install, it's probably something like /your_www_root/modules/mod_s5_quick_contact, you'll find a php file and an xml file, download them both.
  2. Open the file mod_s5_quick_contact.xml, find the line   and change both the fileds where you read "Spam Check: 12345-1=?" to whatever you want your anti-spam question to be. You can write for example "what is the capital of Italy?"
  3. Open the file mod_s5_quick_contact.php, find the line:  if (document.getElementById("spambox").value != "12344") and change the "12344" to the answer to your previous question... if you asked for the capital of Italy, then you should write "Rome".
  4. Upload the 2 files back (backup the previous ones if you're not sure)...and that's it! :-)

The Joomla extensions we could so far live without

1) Artio Joomsef, advanced SEF engine for joomla. Joomla 1.5 comes with SEO/SEF support built in. You enable it from the general configuration and it should work straight ahead  (as long as you have the RewriteEngine On in you .htaccess file). To be honest I don't think we need anything more than that at this point...Artio Joomsef can help you if you need to work more with SEO/SEF stuff i.e. you have a large/complex site and need to enhanhce the searchability of some areas.

2) Joomfish, website localization management. Joomfish makes your site localizeable: if you need to have your site in several languages, it's gonna handle the administrative part, meaning that it will keep track of the parent article and all its localization. Basically what you have to do is enable the target language with Joomla (e.g.: German) and Joomfish will graciously add a button on top of each article to let you translate it. It will also handle the change among the languages in the frontend. If you're looking to localize your site, Joomfish is the tool to go!

3) Virtuemart, the largest joomla e-cart. Virtuemart is a monster application that has the horsepower to handle a big e-shop with thousands of SKUs/producers/resellers. It is also discouraging complicated, the documentation is sub-optimal and skinning it is a pain. We were planning to go for Virtuemart in the beginning (and even had a look at other e-carts), but we made a U-turn and chose to sell through avangate (great choice, they deserve a blog post just for themselves :-)
The reasons where:
I) It's just our products: We are not planning to have 100 SKUs anytime soon, and we're not planning to sell other people's stuff...therefore we don't need anythign that complicated.
II) Security: we're currently 3 guys working from home and none of us knows anything about web security, and whenever there are credit cards involved you definitely need to know what's going on on your website.
III) Payment providers: you can go for Paypal, google checkout or any of the 10-15 payment providers out there, they'll always charge some 3%-5% per transaction...why not paying a little more and get a more taylored service?
IV) Sending the serial number: this was probably the most critical issue at all. We sell software = we sell serial numbers. Serial numbers need to be unique, trackable, and their creation and sending needs to be automatized. Well, I spent several days looking for a viable solution to have this done in Virtuemart and just couldn't find any...The closest thing is PHP-KeyCodes, a php app that handle the e-purchase through paypal and then sends an email with a serial number in it - probably a good-enough solution, but you still have to pay the payapl fees.

4) Vemod, newsletter software. I hate to be negative about things, but I got really disappointed by this software. I actually tried several emailing tools and none did meet my requirements. As a pennyless self-employed I'm looking for a solution that works decently and is free. One day I'll be a rich enough to pay for a service or even a consultant to take care of this, but until that day, I would have loved something that:
I) works decently well
II) is free
III) preferably integrated with joomla (and phpbb through Jfusion)

Well, I couldn't find such a solution and in the end I installed the excellent phplist.

5) Jfusion, integration between the joomla users db and other software. When we initially were planning to use virtuemart for the sales (and have phpbb as forum), we thought that it would have been cool to  have everything integrated together, where resellers would have special accounts allowing them to both use protected parts of the forum and to buy with special rates. As we're not using Virtuemart (yet?), and it doesn't really make sense to have integration between the user db of the forum and of Joomla, then I simply turned it off... but it works fine and it may come in handy one day!

6) FCK - XStandardlite - TinyMCE, alternative wysiwyg editors: as mentioned above i'm using JCE as editor in joomla, but I tried pretty much everything else. FCK is a very popular one outside the joomla world (I installed it on our wiki and is the default editor in phplist) but imho JCE is still the best.

The Joomla extensions we'd die to have

1) a decent, simple and clean download counter: we need a piece of software that counts how many people downloaded a certain file and shows a graph... am I asking too much? Is there something I'm missing??? I browsed the 7 seas of the web and all I found was complicated stuff, hard to configure and with the few or too many functionalities. Tracking downloads with analytics is a pain and doesn't work with direct downloads (often requested by PAD!!!). Currently we're counting (not even tracking!) downloads using this little script which works fine but has some limits.

2) A real blog component with comments and stuff.  Ok, I admit that probably it's me who didn't do my homework as joomla can for sure be configured to work as a blog (not sure about the comments though)... but still I had hard time finding a fully featured blog that is also free...therefore here we are on blogspot :-)

wow, that was a long post, I hope someone can find it useful! :-)

4 commenti:

  1. Modern web development applications often contain three or more tiers, and depending on the size of the team a developer works on, they are specialize in one or more of these tiers - or may take a more interdisciplinary role. For example, in a two person team, one developer may focus on the technologies sent to the client such as HTML, JavaScript, CSS, and on the server-side frameworks used to deliver content and scripts to the client.

  2. JoomlaWorks has an extension called K2 that works beautifully as a blogging component. Everything is built in and just works - including comments.

  3. Welcome to Joomla. We use Joomla exclusively to develop all of our clients sites ( &

    Regarding JCE. One thing to remember about JCE, is that it uses TinyMCE and all the niggles you discuss are from TinyMCE. JCE just adds Joomla specific plugins and installation to TinyMCE.

    So far, JCE is the best Free WYSIWYG editor compared to WYSIWYG Pro (really nice but very expensive for companies with lots of sites like ours).

  4. @webdevelopment: thanks for the hint, but we don't do websites -> is what we do.

    @BNR Design: thanks! I'll definitely check it out.

    @Web-JIVE: thanks, I see...JCE works well enough for us.


Nota. Solo i membri di questo blog possono postare un commento.