Author Archive

Here are my most recent posts

Recipe for Success: The Joomla! Cookbook

joomlabook The holiday season is all about delicious foods and favorites, right? Well, this new recipe collection may not have your typical ingredients list and steps to preparing Grandma’s peach crumble, but the Joomla! 1.5 Development Cookbook by James Kennard is perfect for both beginner and more accomplished Joomla! “cooks.”

The cookbook is available via Packt Publishing.  Well-written and thorough, this reference book will not only help introduce new Joomla! developers to the Joomla! framework, but can also serve as a great reference for experienced developers needing to brush up on some best practices. Full disclosure: I was one of the technical reviewers of the book.

Check out the book online, and order it as a holiday gift for that Joomla! lover on your list, or for yourself!


PICnet Volunteer Series: Kevin debugs Joomla for you

Jamie Ozimek contributed to this blog post.

Today marks the first dedicated National Day of Service and Remembrance, on the 8th anniversary of the 9/11 terrorist attacks on the U.S. We though it fitting to start our PICnet Volunteer Series today. Every few weeks, we’ll be featuring another PICnet Team Member and his or her service efforts. To read more President Obama’s call for service and the introduction to this series, click here.

workgroups_bugsquadWho: Developer Kevin Devine How he serves: Joomla Bug Squad, maintains release series

When he’s not helping to develop websites for PICnet clients, Kevin takes even more hours out of his day (and night) to volunteer with the Joomla project, as a member of their Development Team. Currently, he is on their Joomla Bug Squad as the co-maintainer of the current release series. To break it down for you, Kevin tests for bugs reported by the community, writes patches, and reviews and commits patches added to the releases. He also serves as a member of the Joomla Security Team, for which he tests for security vulnerabilities in new releases of the open-source CMS and adds the appropriate patches.

Read more »


Basecamp and Joomla integration anyone?

Basecamp LogoWe PICnetters use Basecamp for project management and when we learned they had released an API and saw the interesting things people were doing with it, we thought, “hey let’s integrate”. Not because it’s cool (though the closer we get to Web 2.0 tools, the cooler we all seem here around the office), but because we saw a need, at least internally, for some extended functionality: easy time tracking and reporting.

Basecamp allows time tracking and it is very nice when checking off a task to record how many hours you spent getting it done. But sometimes we get so engrossed in our work we forget when we started. So, we built a sort of stop-watch application which allows us to punch-in, punch-out, write up a description then send it off to Basecamp.

Another pet peeve of ours is when we run over the number of hours we’ve dedicated to a project, and with several people contributing time to a project that can happen easily if the time isn’t closely monitored. So next up on the integration effort is to develop a warning system which will alert project managers when we’re nearing that limit.

Read more »


Search Engine Friendly URLs with Joom!Fish

JoomSEFOpenSEF seems to be the community preferred component for implementing search engine friendly links in Joomla! sites but unfortunately it’s not compatible with Joom!Fish. Which means if you’re using Joom!Fish to handle your mulit-language site you’ll have to find an alternative.

One option is to wait for OpenSEF 2.0.0 RC6 which is due out sometime soon or switch to using Artio JoomSEF (@Joomla Extensions). The current version of JoomSEF offers all the features of OpenSEF and is compatible with Joom!Fish.


Working with translations

JoomfishIf you want JomComment to work with Joom!Fish you’ll need to modify the components/com_jomcomment/jom_comment.php file in several places. Run a search for languages and you will find include statements which are loading the defined langauge file. First bring $mosConfig_lang into local scope by adding it to the line of global variables for the function you are editing. Then right before the include statement reset the $pc_language variable to equal $mosConfig_lang.’.php’ and you’re all good.


Should I use tables or divs

DivsI’ve been converting designs to Joomla templates for a lot of clients lately, and one question I’ve gotten from designers is whether to use tables or divs? We all know about the standards push for a pure CSS layout in our sites but currently there is no avoiding the dreaded tables in Joomla. Sure you can switch the output layout for modules but most components just don’t offer that option. So, what’s a designer to do?

Like most of the Joomla community we like to leave that up to the designer. After all, like some stop signs, that standard is just a recommendation, right? (PICnet does not advocate running stop signs) CSS layout is a great idea but there are some myths right now concerning accessibility and search engine optimization. It is still possible with tables to be 508 compliant and Google will not ignore the web site.

So for now, until the Joomla core is upgraded, don’t lose sleep over tables in your template. They’re going to show up in your output anyway.


Want to use the main menu module with images?

If you have ever wanted to use images as menu items without hacking the main menu module this is for you. You can do this all in the template. First turn on output buffering, then send the buffer to a callback function which will find the menu links and swap them out for your image links.

Here are the steps. Open the index.php file for the template you want to use and right before the HTML tag put in the php function ob_start(“callback”) – callback being the name of the function you will use – and at the very end of the file put in ob_end_flush(). Now just include the callback function somewhere before you start the buffer and you’re done.

Here’s what the function does: First it will load info on every menu item. Then for each menu item it will check the parameters to see if a menu image has been assigned – in the administrator, choose to edit the menu item and under parameters assign an image from the images/stories directory. Usually if an image is assigned to that parameter it will show up to either the left or right of the link. This changes that. If an image is assigned the function will create the text link to search for and the new image link then it executes the swap. After it runs through every menu item it just returns the buffer which prints out to the browser. Pretty basic and you’ll probably have to do some tweaking to get it just right for yourself but it’s a nice way to use images without hacking any core files. Oh, and if you’re just looking to use non web safe fonts then couple this method with a text-to-image conversion script and dynamically generate images from the menu item name. You could also use this with content headings or module headings or just about anything. Have fun.

Here’s the callback function, put it above ob_start(): Download


Squirrel Cart and Paypal: Working Together

If you’re using Squirrel Cart as your shopping cart and PayPal to handle payment transactions you might be interested in this. I did some research the other day and found out how to set up a Payment Data Transfer so now after PayPal receives a payment a confirmation will be sent to Squirrel Cart to complete the order, making life a bit easier.