Skip to content

Profile of the GB4k.com launch -- Joomla reborn

I've been helping out Scott McGinnis with a revamp of his web-videos-for-kids and tweens site, Global Broadcast 4 Kids, aka GB4K.com.

Scott was a pretty successful actor in the 1980's, who transitioned to directing in the 90's, and like a lot of directors in Hollywood, got his first chance behind the camera courtesy of Roger Corman. After a stint making low budget features, he went on to direct episodes of "Angel" and the TV series "Honey I Shrunk the Kids", and for the last few years, has been producing educational webisodes using Prosumer video equipment, and editing the episodes on a Mac with Final Cut Pro.

The subject matter and production values aren't that much different from what you might expect to find on basic cable networks like The History Channel or Disney Channel. The GB4K "twist" is that all the segments feature kids and teens as the newscasters, reporters and narrators. GB4K has already proven to be a great training ground for a number of its young "stars", as GB4K alumni have gone on to success at the Disney Channel, and in feature films. There's lots of material in the archive, and he creates a number of new episodes each week, from sports and entertainment news, movie premier "red carpet" interviews, how-to videos on dancing and skateboarding, history channel-esq features on subjects like Guitars and Merry-go-rounds, and environmental science and the latest in Green living practices and Green news. The site also includes music videos he directed and produced for Amber Lily and Jadagrace Berry. A great example of what Scott is able to accomplish as a one-man directing, production and post production crew, is the Jadagrace "Express Yourself" video, which in my opinion compares favorably with music videos costing 10-20x as much.

Despite having a substantial library of video content, frequent updates, and a clear cut audience, problems with the website had put GB4K into a holding pattern.

Rebuilding the site


Globalbroadcast4kids was launched in 2007, using Joomla 1.0, and a custom flash video player that had integrated channels, and a fancy animated player skin. Over the years, the Joomla install had gotten badly out of date, and the player had begun to exhibit problems loading some of the channels. Worse yet, despite having a substantial library of content, search engines were not picking up the individual episodes trapped inside the player's category system, and globalbroadcast4kids.com (as the site was known at the time) was virtually invisible to search engines.

The first thing I tell people who are interested in using web publishing packages like Wordpress, Joomla, Drupal or phpBB, is that you have to upgrade those packages during the lifetime of your website, or risk routine security exploits. While these packages can jumpstart a website and provide lots of great features, they also are targeted by crackers precisely because once an exploit is found, they can use web spiders to automatically find and crack them. When the system includes a plugin architecture, you also need to stay current with releases of any of the plugins you use, as these often are the source of security holes.

GB4K had gotten badly out of date, and was missing a number of security related upgrades that had lead to a site defacement exploit and an ongoing battle with scripted attackers. After a failed attempt to upgrade the existing site, we agreed that the best course of action was to start fresh. I setup a new Joomla install using the latest and greatest Joomla 1.5 release, installed an inexpensive 1.5 native Joomla template Scott bought from JoomlaDesigns, and a few Joomla plugins I identified as the project developed.

We agreed that for this pass, our goal would be to use Joomla's publishing system as much as possible, uploading videos and images through the media manager rather than ftp, using the Joomla admin to configure the site and add content, and having Scott do most of the content work himself, so that he'd be able to add and change things whenever he needed to -- which is the entire point of using a CMS. I also wanted to avoid hacking anything inside Joomla, although I did end up having to make a couple of modifications to the K2 files, and a few updates to some strings in the K2 language file. With Joomla 1.5 there is no way to override these strings other than editing the language file directly, requiring that these changes will need to be made again anytime there's an upgrade. However, in the scheme of things, having to do a few edits on a file or two is a small price to pay in comparison to developing a site from scratch.

We agreed that we would try and improve on the weaknesses of the original site, by getting more descriptive information about the videos into each entry, adopting a multi-channel Vblog format which would make the library more visible, and use tags to highlight individual elements and link similar videos together. I also felt it was important to migrate to a system where individual episodes could be found and linked to easily. Joomla also provides a nice SEF module that dates back to the Mambo days based on mod_rewrite, but for reasons unknown, it had previously proven to be unusable. For the new site I turned SEF support on immediately, which is as simple as setting a switch in the configuration file, and renaming the joomla provided htaccess.txt file to ".htaccess".

The JoomlaDesigns template had a number of eye catching features we wanted, to update the look and feel of the site, but as it turned out, the most valuable ingredient was integration work they included to support the K2 plugin. Primarily this existed as an included css that styled the numerous K2 elements.

Prior to this project, I wasn't much of a Joomla fan, having developed a rather negative opinion of the CMS in my days leading the PonyGallery project around the time of the Joomla 1.0 release. Joomla 1.0 component development was an absolute mess, and Joomla badly needed improvements to its internals and API, as well as standards for plugin developers to follow, particularly in the areas of security and uniformity. Writing a plugin in those days was pretty much like writing your own php application that only needed to have the right type of manifest file. If developers wanted to support other popular plugins they would hardwire checks for them in the kludgiest way conceivable. In the process of developing GB4K.com, I ended up taking a fresh look at Joomla 1.5, and I can see that many of the problems that turned me off Joomla have been addressed, including a vastly improved and well documented developers API, structural standards and helper functions allowing plugin developers to support each other and provide integration in a systematic and predictable fashion. There is now a form of MVC system, with built in override mechanics that let template developers reskin and tweak output.

As it turned out, JoomlaDesign's template had some missing documentation and a number of bugs I had to trace down and correct. Getting support from them on these issues was too much of a hassle to pursue. Given the low cost Scott paid, I can't take much issue with them, but if you do buy a template from them piecemeal, rather than via their "club membership" it's not as easy as it should be to get support for issues. I guess if you're going to buy a template from JoomlaDesign, you are better off joining their template club for 3 months, if for no other reason than you can use their ticket system to get support. With that said, we owe them a debt of gratitude for including K2 in their template, and providing a lot of functionality and features that were relatively easy to customize.

K2 Rocks


K2 is often compared to Drupal's Content Construction Kit (CCK) component, and can act as a drop in replacement for Joomla's article system. It provides nested category trees, user defined fields, and Tags to start. There are K2 plugins that extend its features, or allow it to be integrated with other well known Joomla components, and you can create your own overridden templates by copying the default K2 output templates to a location in your template directory, where you can tweak and restyle to your hearts content. K2 will even let you assign a customized template to a category or individual K2 item, allowing for a lot of flexibility and customization of your output. There are some examples you can find at the K2 community site, that approach the level of codeless customization I've seen people do with CCK.

We took the approach of defining a few core Channels and adding subchannel categories, with 99% of the work done through the K2 administration system. Along the way we stubbed our toes on a few K2 issues. For example, you can setup K2 content blocks using its included mod_k2_content module, controlling the number of entries, and display of associated fields by configuring the category within K2's admin. You can then nest additional child categories, and tell them to inherit their settings, however we found out that inheritance doesn't cascade. Since we had a master "Channels" category that was the parent for all the other content categories, we were able to associate each category with the master, and this got around the lack of cascading inheritance, but I had to discover this limitation through experimentation. K2 has a load of switches and variables but very little documentation, and there were times I just had to try it to see what the separate features did. There are several supplied modules with a daunting number of options and switches, that let you populate modules with differing views of the K2 content. In particular, the mod_k2_tools module is a veritable Swiss army knife, providing a tag cloud, calender, author's list, and categories list to name just a few of its modes of operation. For any category K2 has 3 groupings of videos, each of which can be configured as to the number of items it will show, the size of an associated image, and number of columns to make, along with an option to show a list of additional items.

The Tag cloud works pretty much out of the box, with a neat ajax tag lookup in the K2 item editor that makes assigning tags incredibly simple and efficient, but we discovered that it doesn't trim the tags, and it's easy to end up with multiple tags for the same word. Although it was simple enough to patch, the K2 developers have already fixed this problem in their google code subversion repo. It's also pretty easy to get several tags for the same phrase, especially when you're adding someone's name and mispell it slightly, or mix case. The editor lets you delete tags, and it will cascade those deletions from tagged items, but the system could benefit from a "Combine tags" feature. I had to go in and run SQL statements to do this manually in a few places.
A component like K2 has been sorely needed in the Joomla community, and goes a long way towards bringing the capabilities of Joomla closer to that of Drupal with CCK, while at the same time, retaining Joomla's ease of use.

Tweaking the Video Player


I installed the Allvideos plugin which is a Joomla content filter that converts simple tags into javascript and embedding for the free version of the JW Flash Player. Along with videos, you can easily embed other types of flash content using custom tags it provides, for example:

CODE:
{flash width="550" height="420"}games/Hungry_Space/hungry_space{/flash}



could be used to publish the videos in each K2 item, without having to add an html embed tag, javascript or even an allvideo tag. The video panel is a K2 built-in, that lets Scott find a video within the joomla media manager, and select it using a panel on the K2 item interface. It would be better if K2 also supported AVReloaded directly, but I found I could trick K2 into inserting the Allvideo tag, and let AVRleoaded take care of rendering the final output, since it was originally designed to provide allvideos tag compatibility. I had to hack the K2 admin files slightly in order to associates cover images with the videos.
It's easy to embed other types of media, whether local or remoter, since AVReloaded installs it's own addon to Joomla's bundled TinyMCE editor. This button launches a popup screen that allows you to locate your media file, set the size, and then inserts the required tag and parameters for you. People needing to embed flash movies or advertisements will find that AVReloaded makes what was once a complicated process, trivial even for neophyte publishers. You upload the flash movie to the media manager, make a new joomla html module, and use the AVR button to find and embed the flash movie.

Conclusions


I wouldn't be surprised to see K2 make its way into the standard Joomla distribution, just as CCK eventually did with Drupal. Having achieved most of our goals for the GB4K project, I'm really impressed with the improvements in Joomla over the last few years, and once again see it as a viable CMS platform for small to medium businesses, especially with the help of high quality plugins like K2 and AVReloaded.

Defined tags for this entry: , , , , , ,

Trackbacks

No Trackbacks

Comments

Display comments as Linear | Threaded

No comments

Add Comment

Pavatar, Gravatar, Favatar, MyBlogLog, Pavatar author images supported.
BBCode format allowed
E-Mail addresses will not be displayed and will only be used for E-Mail notifications.
Form options