Daniel is the owner & lead developer at compojoom.com.

Working with Javascript in Joomla - Part 1

As Douglas Crockford puts it: “Javascript is the world’s most misunderstood language” . I think that in the Joomla universe this statement is 200% accurate. Most of the extension developers out there are good with PHP, but when it comes to javascript one wants to just find that snippet online, copy & paste it and forget about it - code quality here is not that important! And I say doh! It is important!

Joomla extensions are installed on 1000s of websites. But the thing is – users don’t install just 1 extension. They install a lot of them! Modules, plugins, and components – everything is thrown into the mix. And out of one small JS mess we get one big mess! Javascript is mixed with html, global variables are all over the place, there is no trace of modularity, no trace of good design patterns and it is just painful to watch. If you are lucky enough – your component will work and you won’t have to do any support, but as it happens most of the time – your extensions are not going to work because of other peoples copy and pasting!

Continue reading
Rate this blog entry:
3
24083 Hits
0 Comments

How to use JDate

Few days ago I decided to help Yves with a datetime bug in Matukio (dating back to its "Seminar" roots). Everything seemed to be straight forward. I've worked with JDate in the past and had some experience with timezones. So I took the challenge thinking that I'll spend 2h and everything would be fine. Well, as it often happens a 2h job turned to be a one and a half day job... (this could make a very good blog post about estimates, but I'll do that another time...)

Let us examine the problem at hand. User A fills out a form, which has a field that stores a date. The best thing to do when you store the date in the db is to convert it to UTC. Why to UTC? Well this way you can have always a starting point and when you present the output to the user you can add different timezones depending on the users position. The trick here is to convert the date back to UTC. Fortunately JDate can help us with that. If you look at the JDate class in libraries/joomla/utilities/date.php you will see that the constructor actually expects 2 parameters -> the date and the timezone. So when you save a date you would generally want to do something like this:

Continue reading
Rate this blog entry:
6
39021 Hits
3 Comments

Mandrill for Joomla! Say hello to transactional emails!

In the beginning of the month Mailchimp unveiled a new service called Mandrill. Mandrill is a service that allows you to send transactional emails.

The core features of it can be summarized in the following lines:

Continue reading
Rate this blog entry:
6
35374 Hits
7 Comments

CMigrator version 0.2 stable released

I'm really excited to announce that today we finalized the new CMigrator 0.2 release. To get you excited as well I'll jump directly to the new features:

Drupal migrationMigration to K2

Yes, believe it! You can migrate your Drupal categories and articles in no time! If you migrate your content to K2, then you can even import your tags! (the wordpress to K2 migrator also support tag migration)

Continue reading
Rate this blog entry:
2
3530 Hits
0 Comments

Rapleaf for Joomla - discontinued on the 31st of March 2012

I've received a mail from Rapleaf few weeks ago with the following content:

Early in 2011, we decided to offer age and gender data, FOR FREE. You said to yourself, ‘these Rapleaf guys, they are loco, but hey, sign me up!’14 months, 30 billion free data points, and 15 billion personalized interactions later… The time has come to say farewell to free data. Thus, we are no longer offering free data as of 3/31/2012.The good news: please continue to enjoy data on the house, for the next 1+ month. New price: $0.005 per data point, per match. To ballpark cost, that's about $600 for age and gender on 100,000 email addresses. Not too bad, right?! The scoop: the plan was to offer these data points for free, on a limited basis, for a 3-month period. We kept pushing the free trial end date back, and back, and back… Call us too nice. It's been a great ride, and we had a terrific time working with all of you. Here's to more good times in the future.Currently our extension queries only the free data provided by Rapleaf and since there won't be anymore free data

Because of those changes I've decided to discontinue the development of the extension as of 31 of March. If we have enough inquiries to support the paid Rapleaf API, then we might change our mind.

Continue reading
Rate this blog entry:
0
20752 Hits
1 Comment

Hotspots3 - first developer preview release available!

Hotspots3 - first developer preview release available!

It has been a long time since the last Hotspots release. I haven't really anticipated this, but clustering and preparing the component to work with large databases proved to be a hard task. I'm happy to say that this 1st development release finally manages to overcome most of the problems related to large database sets. I've made several tests with 10 000 locations and 100 000 locations and things look really good. Your browser is not going to crash and your server is not going to tell you that it is out of memory either!

After I've experimented with several clustering algorithms, I've decided to use the server side boundary method. It is a really simple approach that works fine most of the time. When you open the map and it is centered over New York, USA - the component will make an Ajax request sending the boundaries of the map (the furthest northeast and southwest points) to the server and the server will search the database for locations in those boundaries. This is the first difference with Hotspots2. In Hotspots 2.0 the mysql query takes all hotspots in a specific category. Now the new query will return only the results in the viewable area. When the user moves around a new query is executed and we retrieve the results for the new area. But what happens when we have a lot of locations in a specific area? Well, the query will return the first 100 hotspots, but the user will be able to move to the next page which will show the next 100 hotspots etc. Now the list on the right is directly related to the hotspots in the viewable map area. Moving to the second page will change the hotspots on the map. Zooming in, will change the hotspots in the list, etc.

Continue reading
Rate this blog entry:
1
4739 Hits
5 Comments

CUpdater - get yourself notified about new updates

CUpdater - get yourself notified about new updates

You really like the update functionality in the joomla 2.5 installer? We do too, but we got kinda bored. Each time we wanted to check if there are any new extensions updates we had to login into our website, go to the extension manager -> click update -> click find updates -> wait 5sec -> if there is nothing - well done dear, but you'll have to come again tomorrow...

O. Schwab got really bored by this routine and spoke with me about that 3 days ago. Then we thought - wouldn't it be great if there was a joomla plugin that could check for updates for us and send us a mail if there are! Well, there is one now!

Continue reading
Rate this blog entry:
7
30583 Hits
18 Comments

Translate our extensions with opentranslators!

After the initial setup problems we finally made it to transifex! All our extensions translations are now hosted there and all our current translators are advised to use the transifex platform to make the translations from now on.

For those of you who don't understand why the title of the blog is "Translate our components with opentranslators" and now suddenly in the first paragraph of it I start to talk again about transifex here is the short explanation

Continue reading
Rate this blog entry:
4
11998 Hits
6 Comments

Transifex - the tutorial for Joomla developers

Transifex - the tutorial for Joomla developers

After 3 days of fight with Transifex my ordeal seems to be over! First a big thank you to Ratnadeep Debnath from transifex for working with me and fixing those bugs... And a big thank you for Peter van Westen for helping with my baby steps.

This tutorial is for Joomla developers that are considering the switch to transifex to manage their extension translations. Read on and I think that you will be up and running in no time.

Continue reading
Rate this blog entry:
8
41745 Hits
21 Comments

Transifex - a developer experience

Disappointing. I didn't think for a second that I'll say it, but so far my experience with transifex is really disappointing. If it wasn't for opentranslators.org I would not bother with them actually.

First of all let me say that I value what they try to do! I know that it is not easy to satisfy everyone and I also understand that my disappointment is largely connected with the fact that I'm new to the platform. In the next few paragraphs I'll share my experience hoping that I can save you from losing 2 days in trying to upload your extension translation files to transifex. I also hope that this blog post will be of use to transifex and it will help them improve their system.

Continue reading
Rate this blog entry:
4
25820 Hits
4 Comments