Mastering Joomla! 1.5 Extension and Framework Development Review
Posted on Jul 24, 2010 by james in Untagged
If you're interested in hiring me for a project, Contact me for more info.
Posted on Jul 24, 2010 by james in Untagged
When I began my freelancing career abruptly almost two years ago, I was immediately contacted by a friend who needed some Joomla! work done. Little did I know that I would be delving into the depths of Joomla!’s API with no idea what I was doing. After receiving some guidance from Andrew Eddie, one of Joomla!’s core developers, (to whom I still owe a beer) I picked up the first edition of Mastering Joomla! 1.5 by James Kennard. That’s where my experience with this book starts. I received a copy of Mastering Joomla! 1.5 Extension and Framework Development Second Edition by Chuck Lanham and got all nostalgic as soon as I began reading it.
Enough with the nostalgia. This is a great book if you have some background with Joomla! and are ready to increase your knowledge (quite a bit). It would also help if you’ve got a good handle on PHP before jumping into this book. After a quick intro into Joomla!’s framework, it gets right into the nitty-gritty of the API. If you’re not sure what a class in PHP is, or if you’re new to the ways of MVC design patterns, you may want to at least get your feet wet in the ways of object-oriented programming first.
Building on the great job James Kennard did in the first version of the book, Joomla! whiz-kid Chuck Lanham takes the concepts of the book and explains them gracefully and clearly. Joomla! at a framework level, as brilliant as it is, is a lot to wrap your brain around. Chuck’s great writing makes reading and understanding things a lot less tedious than other technical books in this class. I found his use of examples to be mostly thorough and well thought-out, though some examples lacked full explanation that might be beneficial to a brand-new reader.
The book, overall, was really well planned, and you can tell as soon as you begin reading. The chapters are broken up thoughtfully, and the sections within the chapters guide you through the concepts logically. I never found myself flipping around, trying to figure out the explanation of a concept that should have been explained before the concept I was in the middle of reading. But while the book is a great linear-read, the fact that you can flip to a section and get some immediate clarity on the subject is a testament to not only how great of a reference book this is, but also how well it was planned out. Kudos to Chuck for balancing the front-to-back readability with the jump-to-the-spot reference nature of this book.
Despite this book being geared towards PHP developers specifically, this book should be on the shelf of anyone who ever needs to modify a Joomla! extension. In my day-to-day work I have to modify a lot of third-party extensions to meet the needs of my clients. I’ve used the awesome reference in the appendix on many occasions to see what the original developer was doing. As well, the examples in the book provide great explanations on how to extend extensions to make them do what you need.
While some “geek books”, as I call them, help you learn concepts through various learning examples, Mastering Joomla 1.5 Extension and Framework Development doesn’t require you to dig through steps in a lesson to figure out what you opened that chapter to learn. It is more of a book full of explanations and answers. I’ve had many “Ah ha!” moments reading this and the first version of this book, and I’m sure you will too.
Check out a sample chapter of the book here on Packt’s website, and let me know what you think about the book in the comments.
Posted on Nov 10, 2009 by james2 in Untagged
So, this blog post will be a bit off the beaten (Joomla!) path, but I think it's important nonetheless. It's about the amount of paper the world uses on a daily basis.
We recently closed on a new house and had to sit through the fabled title closing meeting. You'd be amazed at how much paper is used for that single transaction! I'm pretty sure about a ream of paper was used during that meeting.
Deforestation is a horrible by-product of our technological revolution, but the technological revolution, itself, may be the saving grace. Lots of things are heading the way of bits and bytes, including document transfer, making the use of physical pieces of paper a thing of the past.
So, here's my promise to help the situation: I promise not to use a piece of paper for something or print something unnecessarily that I could have otherwise used a digital (PDF) version to accomplish the same thing.
I love checklists. And goals. But even more than both, I love checking off goals on my checklist.
One of this month's goals was to release the WhiteSpace 2.0 template. So as I check off this goal on my list, let me introduce you to some of the new things found in the WhiteSpace 2 template.
I got some really good feedback on the 1.0 version of the template. I got a few really good ideas from people; some made it in and some didn't. I even had a few ideas that didn't make it in. A good number of ideas came from the book Beginning Joomla! Web Site Development by Cory Webb. He's got a chapter in there (Chapter 8, to be specific) that had a lot of great ideas of things to stick in templates, so thank Cory by going and picking up his book.
Here's a rundown of some of the things that are new w/ this template:
Probably the coolest feature for the general Joomla user will be the new logo options in the Template Parameters. In WhiteSpace v1, you were on your own to change out the header logo. Now, you can choose to use either an image or some text in the logo spot.
If you navigate to 'Extensions' > 'Template Manager' > 'WhiteSpace', you'll see the parameters available for changing. The "Logo type" parameter will determine whether an image is used or whether text is used (the options are "Image" or "Text"). If you choose "Text", then the template will use the text entered into the "Logo text" parameter field. Pretty cool, huh?
Of course, if you wanted to use an image, upload a new image here:
/templates/whitespace/images/logo.png
As promised, I threw a few overrides into the mix as well:
There were quite a few more that I wanted to squeeze in but ran out of time. You know how that goes. For you developers out there, here are a few other things I included:
One thing you'll notice that's missing is the dropdown menu. Believe me when I say that I tried to implement a quick CSS dropdown menu system, but hit more bugs than I had time to squash. That will have to wait for the next version.
This template has a boatload of module positions making it pretty flexible. Here's a guide for you:
Drop me a note if you're able to put WhiteSpace v2 to good use. Feel free also to leave feedback here if you have suggestions for future releases. If you have trouble, I'll do my best to help out, but the template is released pretty much as-is.
Download the WhiteSpace v2 template.
Cheers.
In my last post I outlined a few things I wanted to do with the White Space template. I wanted to keep it as clean and un-complicated as possible, but I wanted to add the convenience of a few extra features that didn't make it into the last release.
Along the way, my goal for White Space v.2.0 has changed a bit. Digging into other commercial templates to see how things work has taught me a ton about template design and functionality. Looking at the various free 'starter' templates out there, I realized that there are very few bare-bones templates that have some of the more advanced whiz-bang features that some of the commercial templates have. So I've built in a few convenient starting points for other developers who want to take White Space and run with it.
Some of those features include template parameters and a params.ini file. I've also integrated a really easy example of how to use it effectively in a site. As well, there's a functions.php file that has a few tricks to make a template builder's life easier.
I have no intention of taking away anything from the commercial template builders out there. They are extending the limits of what Joomla can do with every new template they build. What I wanted though was a template that someone could learn the basics of 'the next step' when it comes to template building: not simply building the layout, but also building in some intelligence into the template.
I've got two more major things on the v2.0 to-do list, but I should be releasing it within the next week or two.
When I released the Whitespace template a few weeks ago, it was admittedly bare-bones. There wasn't much to either the design or the functionality of the template. I was okay with that. I'm a big fan of the Release Early/Release Often way of developing. I set a deadline for myself to get done what I could and released the result of that.
After some feedback (the whole point of the 'Release Early/Release Often' method) I've come up with a list of things I'd like to see in the v2.0 of the Whitespace template. Here's my list:
One of the things that threw me off when I tried Drupal out years ago was how there was no visual separation between the front end site that visitors saw and the back end site that administrators used. Joomla provided this nicely (though in a dated interface). This visual separation made a lot of sense to me as a new user. There were clearly-defined areas for doing totally different things. This separation gave me confidence as a new user.
However, one aspect of Joomla that still bugs me is the way frontend editing is handled. Frontend editing is a great feature that users (and many inexperienced clients) would much rather use, but I can’t tell you how many times I’ve seen editor boxes and option menus extend beyond (or complete break) a frontend template.
My personal view is that frontend editing should be abstracted completely from the frontend template to a layer “above” the template. I think that through the magic of modal boxes already built into the backend of Joomla, frontend editing can not only become more useful but also more powerful.
I am in no way a UI designer, but I made a few rough sketches of my ideas. Here’s what I propose:

The Super Admin and Admins have the right to turn on or off the Frontend Maintenance Menu (FMM, for lack of a better name) for any level of user. Additionally, menu items in the FMM can be enabled or disabled for a particular user group. If the FMM is enabled for a particular user, the menu will show up collapsed on the left or right side of the screen, unobtrusively and out of the way of the site content.
When it is clicked, it will slide out to reveal the options available to the user. Some handy menu options:

Choosing an option will open a modal box above the site. The modal box will serve more as a ‘window’ through which they can perform various administrative functions, rather than a feature that’s shoehorned into the front-end template.
Some advantages of moving in a direction like this:
I’d love to hear some thoughts or feedback on this. Thanks for reading.
One of the most requested types of sites I get these days is an E-Commerce site. With commerce shifting slowly but surely to the web, it's no wonder that everyone would like to have a store online where they can sell their wares. However, most e-business owners are grossly unprepared for what it takes to make an online store successful.
Usually the folks I talk to contact me needing a way to sell a few of their products. However, their train of thought stops there. They have no plan of how to go up against the competition, market their products, or provide excellent customer support. They just expect that as soon as they have a website online that people will find their store and purchase products from them. This rarely happens.
Running an e-commerce store is just like running a brick & mortar store in many waysAnother misconception I see all the time is that people expect their stores to run themselves once they're setup. After a few months of no sales, many of them realize that they have to actually put work into their e-commerce store, just like a brick-and-mortar store owner does. Unfortunately, I've seen far too many beautiful e-commerce stores become vacant once their owners find out the realities of the time commitment needed.
Unless an idea or product is truly unique or one-of-a-kind, chances are that competition is fierce out there for the very product that most people are trying to sell. This isn't meant to be a discouragement, but rather an honest look at the way online commerce works. Most people would have a hard time answering if they were asked about the ways by which their e-commerce store stood out from the competition.
Here are a few things to think about before jumping into the wide world of e-commerce:
There are lots of other things to consider before having an e-commerce website built for your e-business. But if you plan and work hard at making your business a success, e-commerce websites can be great sources of addidional income or a way to escape your 9-5.
Contact me if you have more questions about starting an e-commerce website and I'd love to chat with you and help you through the process. In the mean time, here's a website with a ton of resources for e-commerce owners.
Today I attended the Joomla Training session put on by Steve Burge of the Joomla Training and Alledia fame. Besides being a supremely nice guy, he was awesome at taking beginners through the Joomla ropes in a clear and concise way.
The majority of the class was made up of people who had used Joomla for less than a month, but there were a few of us that had more than a few Joomla sites under our belts. Even so, the way Steve presented many of the Joomla concepts were brilliant and gave me ideas of ways to better explain to a client how to work the website I just built for them.
My fellow Joomla freelancer, Cory Webb, came down from Waco to cameo during the section about managing templates. His presentation was equally thorough and bite-sized enough for the brand new users. I understand why Wrox picked him out of the sea of Joomla freelancers to write an awesome book for them.
Even though the Joomla Training wasn't geared towards me, I'm really glad I got to go, if for no other reason than to help some of the new people through the exercises we did during the class. If you're looking to learn more about Joomla, I highly recommend attending one of Steve's classes while you can. The ability to see someone walk through a demonstration and be able to ask questions right there is pretty invaluable to the learning process. However, if you can't swing the cash or the time to attend, definitely pick up one of Cory's books: Beginning Joomla Web Site Development.
I've been building websites for years using Open Source frameworks, components, templates, etc. The nice thing about Open Source projects for the most part is that they're free. 'Free', as in, getting something someone else has worked hard on for zilch. As sweet as this is, the other side of the 'Open Source' coin is the community aspect. People release open source projects and code for the greater good of the community.
Well, for years I've wanted to gain enough experience to start giving back to the open source community, especially the community I've gotten so much from: the Joomla community.
Without further ado, I present my first of many attempts to give back and enrich the Joomla community: the Whitespace 1.0 template for Joomla 1.5.
If you hadn't noticed, I'm not much for graphics or clutter. The goal of this template is stay out of the way of the content. Since there are only a handful of small graphics, this template happens to be blazing fast. Much of the CSS is compressed to shave some kbs from supporting files as well.
I built the template on the 960.gs CSS framework, and I have to say, I pretty much love the 960.gs framework. It definitely gave the template a professional edge with all the consistency.
The template is pretty simple as far as templates these days go. All of the module positions are collapsible and hopefully there are enough module positions to make the template pretty versitile.
In order of appearance, here are the available modules:
Hopefully I'll get a test site up soon to show it off. Until then, below are some screenshots for you.
Download Whitespace 1.0 For Free Here
I worked for years at a web company that built sites for organizations that wouldn't be considered the most technically-savvy. There's nothing wrong with that at all, but we'd usually have to spend a bit more time up front explaining the benefits of a good domain name that was less than 30 characters long. Just because "SouthsideHosannahChurchofGodMissionaryWorshipCenter.com" was very specific, (and, not surprisingly, not yet taken) didn't mean that it was a good choice for a domain name.
If you're still in the process of choosing a domain name, Christopher Johnson wrote a fantastic article over at Smashing Magazine about coming up with a domain name.
Here's a quick excerpt:
Forget the cliche of the crazy adverstising or marketing genius who’s struck by the perfect idea as if by lightning. Approach the naming process in a strategic, rational way, and look for elegant solutions to your particular naming challenge. Even as domain names become scarcer and scarcer, with the right strategy and enough attention to linguistic design principles, building a great name is still possible.
Read the rest of the article here.