Domain: joomla.org
Stories and comments across the archive that link to joomla.org.
Stories · 13
-
Joomla SQL-Injection Flaw Affects Millions of Websites (trustwave.com)
An anonymous reader writes: Joomla has just issued a patch that fixes a SQL-injection vulnerability discovered by a researcher at Trustwave SpiderLabs. The flaw allowed malicious users to extract a browser cookie assigned to a site's administrator, giving them access to restricted parts of the server. The flaw first appeared in Joomla 3.2, released in November, 2013. An estimated 2.8 million websites rely on Joomla. The Joomla team and the researcher who found the flaw recommend an immediate update to version 3.4.5. -
When GPL Becomes Almost-GPL — the CSS, Images and JavaScript Loophole
New submitter sobolwolf writes "It has been apparent for some time that many developers (mainly theme designers) are split-licensing PHP-based GPL distributions, releasing proprietary files alongside GPL files with the excuse that CSS, JavaScript and Images are 'immunized' from the GPL because they run in the browser and not on the server. This is almost always done to limit the distribution of the entire release, not just the proprietary items (most extensions will not function in any meaningful way without the accompanying CSS, Images and JavaScript). Some of the more popular PHP-based GPL projects, like WordPress, have gone as far as to apply sanctions to developers distributing split-licensed themes/plugins. Others, such as Joomla, have openly embraced the split-licensed model, even changing their extension directory submission rules to cater specifically to split-licensed distributions. In light of all this, I would like to ask the following question: While it seems to be legal to offer split-licensed GPL distributions, is it in the spirit of the GPL for a project such as Joomla (whose governing body has the motto 'Open Source Matters') to openly embrace such a practice when they can easily require that all CSS, Images and JavaScript be GPL (or GPL-compatible) for extensions that are listed on the Joomla Extensions Directory?" -
Celebrate Software Freedom Today
An anonymous reader writes "It's that time of the year again: when we all unite regardless of the (free) licenses we cherish and go out into the streets to let people know how Free Software has changed our lives. With over 425 events in 80+ countries, communities as diverse as Joomla!, FreeBSD and The OpenDisc, to name just a few, will be celebrating all over the world. Don't wait; grab your best arguments and join the wild masses of freedom lovers to the software freedom parties. Where will you be partying today?" -
Joomla! 1.5: A User's Guide, 2nd Edition
Michael J. Ross writes "There are countless content management systems (CMSs) available for building websites, and they offer varying levels of built-in functionality. But once a site developer has successfully installed any given CMS, a critical form of help (or hindrance) is the CMS's documentation, which for some CMSs is quite impressive, and for others absolutely atrocious. Joomla is a powerful and popular choice for Web developers, but can be daunting to newbies confused by its non-intuitive menu structure and restrictive content hierarchy. The documentation for Joomla is frequently criticized, for various reasons, and that may largely account for the popularity of third-party books — such as Barrie M. North's Joomla! 1.5: A User's Guide, now in its second edition." Read on for the rest of Michael and Ethelyn's review. Joomla! 1.5: A User's Guide, 2nd Edition author Barrie M. North pages 480 publisher Prentice Hall rating 9/10 reviewer Michael J. Ross and Ethelyn Holmes ISBN 978-0137012312 summary A comprehensive introduction to creating sites using Joomla. The book was published by Prentice Hall, on 1 June 2009, under the ISBN 978-0137012312. Just as with its predecessor, this updated edition spans 480 pages, and the material is grouped into 12 chapters: an introduction to CMSs in general and Joomla in particular; downloading and installing Joomla; basic Joomla administration; content management using Joomla; menus and navigation; enhancing Joomla functionality with extensions, components, modules, plug-ins, and templates; creation of content via the back-end and front-end; attracting Web traffic using SEO, referrals, and other techniques; how to create pure CSS templates; and building example websites for a school, a restaurant, and a blog. The book wraps up with four appendices on getting assistance with any Joomla development hurdles; four separate Joomla case studies; an introduction to SEO concepts; and installing WampServer.
On the book's Web page, the publisher makes available a description of the book, excerpts from Amazon.com reviews, the table of contents, and a sample chapter — "Creating Pure CSS Templates in Joomla!" — as both an online article and as a downloadable PDF file. There are also links for purchasing the print version, and for reading the Safari Books online version.
In conjunction with the book, Prentice Hall has published a DVD training course, titled Fundamentals of Joomla!, under the ISBN 978-0137017812. It consists of 13 lessons, spanning more than nine hours of video instruction. The DVD includes a bonus chapter explaining how to set up a membership site, not covered in the print book. The DVD disc is accompanied by a 128-page book, which includes all of the PHP and CSS code used in the training, plus additional material. As of this writing, Barnes & Noble is selling Joomla! 1.5: A User's Guide, 2nd Edition and the video training course bundled together. Anyone purchasing the video course should be aware that Lesson #6 on the DVD has a compression problem, which causes a small lag between the audio and video streams. In response to this, Prentice Hall uploaded that particular lesson as a free download to the product's site, under the "Updates" tab. A multimedia training course such as this may be the ideal tool for someone who finds printed technical books to be rather dry, and prefers learning from audiovisual material.
In this review, we will be examining both the book and the DVD training course, as the two complement one another.
Barrie North is well regarded in the Joomla community, and for good reason. He frequently blogs about Joomla on the website of Compass Design, a consulting firm specializing in Joomla Web design and SEO. Joomla developers consider Compass Design's site a source for some of the most up-to-date information on the subject. Barrie also founded Joomlashack, a noted provider of Joomla templates and customization services. He has more than 15 years of Internet experience as a Web designer, plus over a decade of classroom teaching experience and curriculum development expertise. He consults on Web marketing, search engine optimization, usability, and standards compliance for Joomla. He's also a former member of the Joomla Design and Documentation Working Groups.
The title of his book's first chapter, "Content Management Systems and an Introduction to Joomla!," fairly describes what the reader will find. As a CMS, Joomla's primary function is to organize and present all the content stored in a site's database, avoiding the problems in the past of static HTML files. This chapter presents Joomla's out-of-the-box features and delineates its various parts, templates, and modules. The DVD mentioned above shows the differences between constructing an ordinary Web page with Dreamweaver and constructing one with Joomla. People who learn best visually should be pleased with this demonstration, as well as Barrie North's teaching approach. He holds one's attention with a friendly yet informative conversational style. This first chapter provides an in-depth tutorial that explains how Joomla displays its content articles, and how the developer can organize them into a hierarchical structure. It details how to plan and organize the content and user experience for the site. It also explains the hierarchy structure currently used in Joomla — sections and categories — and how to best structure content into them for small and large sites.
The second chapter, "Downloading and Installing Joomla!," gives the reader a very detailed explanation on how to get up and running with Joomla. It explains where one can find the most current Joomla files; how to unpack these files on a home computer or into a remote Web hosting account; how to use the Joomla Installation Wizard; and how one can support the Joomla project. Barrie states that the worst part of the Joomla installation process is setting up the MySQL database, and uploading all the files to a remote server. But for anyone who has performed those tasks with other software technologies, the process should not pose a problem.
Chapter 3, "Joomla! Administration Basics," shows how the power of the Joomla site administration system, despite its simplicity. Compared to such site administration systems as those for WebLogic and Oracle AS, Joomla's system is a piece of cake. Reader should find the DVD especially helpful during the presentation of the back-end, front-end, control panels, and menus — especially the demonstration and explanation of such topics as articles, the front page, sections, categories, and modules. Barrie also gives tips on how to import and export users to Joomla, and about language extensions.
The fourth chapter, "Content Is King: Organizing Your Content," is a substantial and key chapter for those building a site with Joomla. It delves into Joomla's so-called "managers": the Article Manager, Frontpage Manager, Section Manager, Category Manager, and Module Manager. The author explains how to organize content logically, and the role of components and modules. Someone new to Joomla could otherwise find the many components and modules confusing. Of course, one can play around with them, but it is much more efficient to learn what one is doing from an expert. He demonstrates the Custom HTML module very well, and in the DVD walks the viewer through the development of a site using it.
Creating menus and navigation in a CMS is often perplexing to the uninitiated, and that's the topic of Chapter 5. It covers how to work with menu items, and clears up the issue about how to get rid of the dreaded "Welcome to the Frontpage." It also gets into managing modules (as opposed to Chapter 4's managing module content). Barrie North states that menus are perhaps the core of a Joomla site. In a static HTML site, they merely serve as navigation; in a Joomla site, they not only serve that purpose, but also determine the layout of what a dynamic page will look like and what content will appear on that page when the visitor navigates to it. The relationships among menus, menu items, pages, and modules, are perhaps the most confusing aspect of Joomla. Newbies can find daunting why some menu content shows up in articles, and then how to get rid of it. In this chapter, the reader learns how to create a navigation scheme that works for a new site.
Chapter 6, "Extending Joomla!," explains why extensions are essential to any well-functioning Joomla site. Rare is the Joomla-powered website that has no additional functionality, beyond the basics. In the world of Joomla, the term "extension" collectively describes components, modules, plugins, and languages. There are many hundreds available, both free and commercially from third-party providers. This chapter covers the Joomla 1.5 core templates — Khepri, Milkyway, JA Purity, and Beez — as well as how to use third-party templates.
In Chapter 7, "Expanding Your Content: Articles and Editors," the author returns to the critical topic of content management — specifically, WYSIWYG (what you see is what you get) editing, and how it relates to the backend with what Joomla refers to as Managers, Administrators, and Super Administrators. Barrie North then examines how authors, editors, and publishers can manage content through the front-end, as well as how administrators can set various permissions through the Menu Managers. This is critical for the site developer who wants users to be able to update content in a controlled manner, without breaking other things (inadvertently or otherwise!). Quite useful is Joomla's "global checkout" feature, which allows only one user at a time the ability to lock and then edit articles, and, if necessary, fix problems with checked-out articles.
The most attractive and powerful Joomla site in the world will be useless without visitors. Chapter 8, "Getting Traffic to Your Site," benefits from the author's knowledge and experience in online marketing and search engine optimization. For instance, he explains why the developer should discourage clients who ask for Flash-heavy sites, because pages loaded down with Flash elements can discourage traffic, for various reasons. In the DVD training material, he presents a step-by-step process of bringing traffic to an example site, using Wordtracker and Google tools. He also shows how to use Google advertising tools such as AdWords and AdSense. Interestingly, Barrie North does not put too much stock in keywords and metadata, but rather emphasizes the use of page titles as traffic magnets. He argues in both the DVD and the book that while email blasts may be effective and popular marketing tools, they should be used with caution. He also covers how blogs are another useful method for bringing traffic to one's sites.
The final four chapters in the book are all hands-on application of concepts and lessons covered in the earlier part of the book — specifically, how to create pure CSS templates, and how to create the three sample sites (for a school, a restaurant, and a blog).
Appendix A provides information on getting help with Joomla. If one is interested in seeing how Joomla is used in the real world, then Appendix B should prove valuable, because it offers information on Joomla's usage for commercial and government websites. Appendix C provides a quick overview of search engine optimization. Appendix D goes into detail on WampServer installation, with corresponding illustrations.
The book contains some errata: "Cpanel" (pages 25, 27, and 289), and "add fee" (should read "ad fee"; page 218). Those errata were present in the first edition, and even pointed out to the publisher in an earlier review.
The book's material is organized so that the reader can utilize it as a tutorial, reading from cover to cover, or skim through and take what is needed at the moment. The introductory ideas in the earlier chapters are developed and built upon to help the reader understand more advanced concepts later on. The book can also be used as a reference. For instance, if the reader desires a quick overview of what newsletter extensions are available, Chapter 6 provides that information. Lastly, the appendices contain valuable extra information about various aspects of Joomla. The target audience does not have to understand PHP in order to read this book or work through the many examples. Each example is presented in a clear step-by-step fashion. If a reader were to implement all of the examples in her development environment, then she would gain the skills to be able to build a substantial website. The DVD has an extra chapter on building a membership site. If the reader would like to go into the business of creating Joomla templates, the author even has a chapter showing how to do just that.
Joomla! 1.5: A User's Guide, 2nd Edition is to be recommended, particularly when matched with the DVD training course. Together they form a valuable reference guide and self-teaching tool, for newbies as well as seasoned website developers.
Michael J. Ross is a freelance website developer and writer. Ethelyn Holmes is a software and website developer — primarily using Java / J2EE and Joomla.
You can purchase Joomla! 1.5: A User's Guide, 2nd Edition from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Google Summer of Code Announces Mentor Projects
mithro writes "As everyone should already know, Google is running the Summer of Code again this year. For those who don't know, GSoC is where Google funds student's to participate in Open Source projects and has been running for 5 years, bringing together over 2600 students and 2500 mentors from nearly 100 countries worldwide. Google has just announced the projects which will be mentor organizations this year. It includes a great list of Open Source projects from a wide range of different genres, include content management systems, compilers, many programming languages and even a bunch of games!" -
Open Source Usability — Joomla! Vs. WordPress
An anonymous reader writes "PlayingWithWire profiles two open source tools for Web development, comparing Joomla! and WordPress through the lens of usability. The article has apparently upset a few people at the Joomla! forum, but it does bring up a good point. Many open source projects are developed by engineers for engineers — should they focus more on usability? PlayingWithWire makes a bold analogy: 'If Joomla! is Linux, then WordPress is Mac OS X. WordPress might offer only 90% of the features of Joomla!, but in most cases WordPress is both easier to use and faster to get up and running.'" The article repeatedly stresses that blogging platform WordPress and CMS harness Joomla! occupy different levels of the content hierarchy. How fair is it to twit Joomla! on usability? -
Joomla! Web Security
Stephen Brandon writes "It used to be that to set up a database-backed web site required at least a server guy, a database administrator, a programmer, and a designer. Joomla! and other modern CMS systems have opened the door to allow non-administrators to be able to set up complete e-commerce or informational sites, using great free software and easy-to-find commercial hosting. What then of security? A new book by Tom Canavan, Joomla Web Security, aims to bridge the knowledge gap, introducing Joomla! admins to a set of security tools, and skills sometimes found lacking in the Joomla! community." Read on for the rest of Stephen's review. Joomla! Web Security author Tom Canavan pages 248 publisher Packt Publishing rating 7 reviewer Stephen Brandon ISBN 1847194885 and 978-1-847194-88-6 summary Useful but needs more Joomla! 1.5-specific content Joomla! Web Security is Packt Publishing’s eighth Joomla! title, and they are to be congratulated for providing much-needed documentation for Open Source projects. Written by Tom Canavan and published in October 2008, it can be found under ISBN 1847194885 and 978-1-847194-88-6.
According to the back cover, this book is written for “anyone seriously using Joomla! for any kind of business With this book they will be able to secure their sites, understand the attackers, and more, without the drudging task of looking up in forums, only to be flamed, or not even find the answers.” Prior knowledge of Joomla is assumed, but prior knowledge of securing websites is not.
Why bother with a book on Joomla! security? In my experience, many people come to Joomla! from a design and content perspective. They are not server gurus, just people who know enough about design to select a good-looking template, then organize suitable content to meet the informational and marketing needs of the organization or business for whom they work.
Template – content – web host – the new site is up and running in short order. The first time the site goes down or the site is hacked however, such a site designer/administrator may well be struggling as the back cover quote suggests.
Although this volume is the only current one that I could find concentrating on Joomla! security, the Joomla! team does have a dedicated Security Task Force, and a fair amount of security information starting from http://docs.joomla.org/. The information on joomla.org, while comprehensive, is not as in-depth as most of the information in Joomla! Web Security.
Written in the author’s chatty, easy-to-read style, chapter 1 covers a lot of basics of Joomla! security, from checking that the installation files have not been tampered with, to choosing hosting, some php and apache settings, permissions, and setting up security metrics.
Given that the choice of hosting is one of the most crucial decisions determining site security and uptime, the author chooses to concentrate on some unexpected angles. Granted, the checklist of physical security is comprehensive (“Is there water detection under this raised floor? Do you have a man-trap entrance to the building?”), but the target audience might be better served by a similarly comprehensive checklist of how to choose safer shared hosting. Notable by its absence was any mention of suPHP, PhpSuExec (see tutorial) or any similar scheme for running PHP files under the ownership of the account-holder rather than the standard httpd or nobody user. Without this, any other client on your shared hosting can read your database credentials and almost certainly gain read-write access to your database — with it, clients on shared hosting are much more efficiently segregated, making shared hosting a more viable option for less security-critical installations.
Absent too was mention of Joomla! 1.5’s FTP layer. Whilst in Joomla! 1.0 you needed to set 777 permissions in order to install extensions or upload images and files via Joomla!, the FTP layer allows Joomla! to FTP these files to itself, maintaining a tighter permissions structure in the absence of suPHP or PhpSuExec.
The section “Setting Up Security Metrics” however shows the author’s strengths. This, chapter 2 “Test and Development” and chapter 10, “Incident Management”, prescribe a methodical approach to security, ensuring that you are well-prepared for any eventuality. For the more mission-critical of the sites that I administer, this has prompted me to review my procedures, but I suspect that these are chapters that will be glossed over by a majority of the target audience.
It’s this sort of dichotomy that mars the book slightly for me. What I would like to give to the Joomla! webmasters that I support as part of my day-job is a book that clearly explains common issues in the installation and administration of Joomla!. Joomla! Web Security seems to promise this, but isn’t willing to provide all the detail required by the less-experienced (no mention of what numerical file permissions actually mean, nor how to obtain the MD5 checksum of a file you downloaded), and seems a little too eager to jump up to higher-level management issues, as worthy as these topics are. And why is there a mini-tutorial on how to use the software development management system Lighthouse, when there are barely any step by step instructions with screenshots on specifically Joomla! topics anywhere in the book?
On a positive note, chapter 3’s “Tools” introduced me to some previously-unknown packages as well as some old friends. Every Joomla! administrator should become familiar with these: HISA (J! 1.0 only), the Joomla! Tools Suite (J!1.5 only in legacy mode), Joomla! Diagnostics (some problems on J!1.5), JCheck (J!1.5 only works in cron mode). The obvious issue is that many of these don’t operate fully or at all for Joomla! 1.5. The sections on NMAP, Wireshark, Metasploit and Nessus however are well written and relevant.
If anyone needs convincing that the threats to a Joomla! site are real, point them to the central chapters of this book. Here Tom Canavan lays out “How the Bad Guys Do It”, and details the anatomy of attacks. This is a real eye-opener and should be required reading for any budding site administrator. It’s good to see a checklist of further topics for study (p. 144).
Finally we return to more specifically Joomla! topics. A section of recipes for .htaccess and php.ini files covers such useful topics as apache’s mod_redirect, password protection and access control. The “Log Files” chapter is pleasingly Joomla!-specific and also covers some logfile analysis tools.
Joomla! Web Security is rounded off with an appendix summarizing some of the key points of the book, and listing port numbers, apache status codes and TLD domain codes. The list of critical settings for .htaccess and php.ini is prescriptive and useful in this format.
While writing this review I noticed that the author has written a previous volume on a similar topic: Dodging the Bullets — A Disaster Preparation Guide for Joomla! Based Websites. Critical reviews of that book suggested that it was aimed towards the larger corporate user of Joomla!, and held little for the Joomla! administrator who simply needed to know and understand the settings and tools required for site security. This volume redresses the balance somewhat, with more hands-on advice, and I would recommend it over Dodging the Bullets for the average Joomla! administrator.
Though Joomla! Web Security is a worthwhile addition to a Joomla! bookshelf, my wish would still be for an even more practical guide, particularly one addressing J!1.5 developments and going into much more detail about selecting a hosting partner. Even without this, however, there is a ton of good information here and I recommend the book.
Availability: On the publisher’s web page for this book you will find the TOC, general introduction, a link to the sample chapter, code download, and facilities for on-line purchase. Various discounts and bundles (including Adobe e-book) are offered on the site; hard copies are also available through Barnes and Noble and other usual channels.
Stephen Brandon is author of the popular MetaMod Joomla! module and web manager for an international non-profit organization."
You can purchase Joomla! Web Security from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Learning Joomla! 1.5 Extension Development
Michael J. Ross writes "Every major content management system (CMS) offers considerable functionality for building Web sites out of the box. But to get the most out of any CMS, its functionality must be extended through the addition of modules, most of which are created by third-party developers. For instance, a given CMS may need to be supplemented by an e-commerce module in order to use that CMS for building an online store. Joomla, one of the most widely used CMSs, is no exception. Web developers interested in creating their own Joomla extensions can read Learning Joomla! 1.5 Extension Development, authored by Joseph LeBlanc." Read below for the rest of Michael's review. Learning Joomla! 1.5 Extension Development author Joseph LeBlanc pages 284 publisher Packt Publishing rating 7/10 reviewer Michael J. Ross ISBN 978-1847196200 summary An introductory guide to creating Joomla extensions. Released by Packt Publishing on 11 December 2008, with the ISBN 978-1847196200, this book can be considered the second edition of LeBlanc's previous effort, Learning Joomla! 1.5 Extension Development: Creating Modules, Components, and Plugins with PHP, published almost exactly one year earlier. Oddly, this second edition has the same title as the first (though a different subtitle), and yet is not identified by the publisher as a second edition. This is not the first Packt Publishing book whose second edition was instead given a slightly different name — a practice that may prove confusing to readers who could be uncertain as to whether an older book by the same author contains different material and thus should be purchased as a supplement to the newer book.
Nonetheless, this revised edition strengthens Packt Publishing's position as a leading — if not the preeminent — publisher of technical books devoted to CMSs. The firm makes available a Web page for the book that offers a detailed description, the table of contents, all of the sample code used in the book, and a free sample chapter ("Using JavaScript Effects," Chapter 8). There are links for submitting feedback, contacting the publisher with a question, and ordering the electronic version of the book, which is now available at a reduced price — even more so when purchased with the print version. Errata are not available on this book-specific page, but instead can only be accessed through the Packt Publishing support page, where the visitor has to find the particular book again. The publisher should move the links for sample code, errata, and feedback, to each book's individual page. As of this writing, no errata have been reported for this second edition.
At 284 pages, Learning Joomla! 1.5 Extension Development is certainly not overwhelming in size. In fact, one of the most common complaints about the first edition was its small size (176 pages). The revised edition's material is organized into a dozen chapters, covering a range of topics: an overview of Joomla and extensions; starting to create the example extension; interfacing with the Joomla database, and MVC; creating a front-end interface; use of JavaScript classes; a module for listing pages; user interface enhancements to the extension; JavaScript effects; creating three example plug-ins; adding configuration parameters; adding e-mail and internationalization features; and bundling all of the created elements into a Joomla archive file for distribution.
As with most if not all similar Joomla books, Learning Joomla! 1.5 Extension Development assumes that the reader has a solid understanding of PHP and MySQL, as well as some familiarity with administering a Joomla site. Absolutely no prior knowledge of Joomla extension development is required, and as a consequence this book can be a guide for any PHP programmer who knows how to install and administer Joomla, and wishes to take it to the next level through the development of custom Joomla extensions.
In the book's first chapter, LeBlanc explains the purpose of extending Joomla, and the advantages of this approach over hacking the Joomla core code in order to customize a site's functionality — a principle that should be known by any developer familiar with CMSs. He briefly discusses how Joomla extensions fall into five categories: components, modules, plug-ins, templates, and languages. The chapter continues with brief descriptions of what the subsequent chapters will cover — much of which is redundant, since that is already covered in the preface. This unsubstantial chapter next presents a brief mention of the example project to be created throughout the book (a restaurant reviews site), but offers no project requirements, constraints, or design parameters. Also noted are the requisite technologies one will need for creating the project on one's own: a Web server, PHP, MySQL, and Joomla 1.5. This chapter, like all others, ends with a chapter summary.
With Chapter 2, the author and the reader get into the actual technical content of the book — and not a moment too soon, having at this point passed more than five percent of the pages that follow the table of contents. This chapter's material should be especially welcome to any reader completely unfamiliar with Joomla components, because it explains how they are structured, how to execute them, the separation of front-end and back-end (administrator) directories, and how to register a component in the database (thereby enabling navigation to that component's page). Code and examples are provided that show how to create primary and secondary toolbars for the example project, as well as the native toolbar buttons. On page 17, the use of '_JEXEC' to prevent direct access to a Joomla PHP file, is explained three times; once would be enough. In fact, most if not all times that this (recommendable) technique appears in code in later chapters, its purpose is explained all over again.
One of the essential chapters for getting started on the example project, is the third, which discusses back-end development for the project, beginning first with the database table and its corresponding JTable class, for holding the restaurant reviews information. The discussion of best practices for a table prefix is a good idea, but many readers would most likely have appreciated some illustrative use of the inherited JTable methods. Next, the author briefly describes how the model-view-controller (MVC) design pattern can be used to simplify the code that will be written for the example project, and then explains the basic ideas of MVC, even more briefly. Naturally, the order of these two discussions should have been reversed. The chapter concludes with coverage of the Joomla code for creating the project's forms, as well as processing and managing the data.
With the fourth chapter, LeBlanc temporarily switches to front-end development, and demonstrates the Joomla code that allows visitors to the example project site to see a list of restaurant reviews, view the details of each, read comments posted by other visitors, and post their own comments. In addition, the use of search-engine-friendly (SEF) links is explored, including how to create and parse the needed HTTP request variables' parts.
In the subsequent chapter, the author steps the reader through the process of implementing profiles of restaurant critics in the example project — and in turn illustrates how to override JTable methods, sort records comprising database query results, track how many times particular records are viewed, implement record check-out and check-in functionality (for collaborative editing), store user information, generate page elements using the JHTML class, and enable user ordering of displayed records by using the JPagination class.
Module development is the focus of the sixth chapter, which explains how to register a new module in the Joomla database, how to create and configure one, and how to build and use a helper class. In Chapter 7, the lengthiest of all, the author explains how to: modify a controller to publish and unpublish articles (with a nice example of making a function more generic), delete database records, prompt the user with a confirmation dialog box, redirect the user to an alternate page, require user input for form fields using JavaScript, paginate any large number of records when output, search all available records and display the results, place toolbars within views, and implement user comments. On page 133, when LeBlanc states that "the backend does not work with JavaScript turned off," he should clarify whether he is referring to the Joomla administrative back-end or the example project back-end.
As Web developers increasingly utilize JavaScript libraries within their Web-based applications, the same is happening within the major CMSs, including Joomla and Drupal. In Chapter 8, LeBlanc shows how Joomla programmers can use JavaScript for creating modal boxes (using either raw HTML or views), tool tips, sliding panes, and Google Maps integrated with one's Joomla site. In the discussion of configuring modal boxes, the height and width parameters in the sample code certainly do not match the appearance of the figure on page 167. While most of the chapter makes use of the (native) MooTools library, this portion of the book is capped off with an examination of an alternative, jQuery, which is becoming quite popular. The author wisely provides some valuable advice to any reader considering using both JavaScript libraries simultaneously.
In Chapter 9, the focus shifts back toward more conventional Joomla extension topics — specifically, plug-ins. The author shows how to register new plug-ins in a Joomla database, how to create them, and what events can be registered (as functions in your plug-in), such as a user logging in or content being output. This knowledge is applied to creating plug-ins for the example project in order to support advanced searching of content, and for content authors to be able to have an example site automatically generate an information box when it detects specially tagged text in the content, before outputting it.
PHP programmers new to creating their own Joomla extensions, oftentimes struggle with figuring out how best to specify configuration settings so they are not buried in the code itself nor need to be added manually through MySQL queries — and, in turn, how to make it as easy as possible for those settings to be specified by any developer or site administrator who is using the custom extension. Chapter 10 shows how to do just that, with the information divided among the three types of Joomla extensions that most commonly need this flexibility: modules, plug-ins, and components.
Chapter 11 is somewhat like a catch-all repository for some miscellaneous topics: Leveraging Joomla's native article e-mailing functionality, Joomla extensions can be further enhanced by allowing the user to e-mail component content to other people. Joomla has built-in internationalization, allowing you to supplement any installable language packs with phrases for your custom extension's front-end and back-end user interface text — for any of the languages you choose to support. LeBlanc shows how to do that, for his example project. He also shows how to safely allow users to upload files to your Joomla server.
The final chapter of the book demonstrates how to package up all of the code and other files that you have created, so anyone else who wants to leverage that functionality can install your extension in their own Joomla-based Web site.
The book has a number of small blemishes, including several errata, e.g., "can [be] defined" (page 20), "set these variables to whatever value[s]" (page 31), "it the function proceeds" (page 74), "!." (page 76), "existing/modules" (page 112), and "contain[s] newlines" (page 238). There is the occasional erroneous capitalization of words (witness the first sentence in the "About the Reviewer" section), incorrect use of hyphens for creating adjectives, and inconsistent spelling of words (such as "back-end" and "backend"). All of these should have been caught by the publisher's line editors.
In some passages there is a dearth of commas that would help the reader know when to pause. The code formatting, such as indentation and brace placement, is not always consistent (e.g., pages 81 and 116). The chapter subheads should be in title case, but are instead in sentence case. Some of the HTML example code suffers from "div-itis," such as the use of div tags instead of label tags where appropriate (e.g., page 66). The Joomla root URL on the reader's local Web server — assumed by the author in all of the subsequent project URLs throughout the book — should have been mentioned in the first chapter, when discussing the prerequisite technologies for creating the example project, because that is the point in the book at which the reader would most likely have installed Joomla on their server.
All of the chapter summaries simply add bulk but no value to the book, and should be chopped, because the chapters are short enough to not justify any summarization. Moreover, in at least one instance (Chapter 10), the summary contains higher-level perspective not presented in the chapter itself, where it would be far more timely to the reader. In addition, the book provides apparently no figure numbers or captions, which arguably saves space, since readers rarely refer to them if they are reading the text closely, though less so when skimming through a technical book. Compared to its predecessor, this edition would still benefit from a lay-flat binding, and it still has the pointless header and footer lines, as well as page number bracketing (which admittedly seems to be part of the publisher's branding).
None of the aforesaid problems are of any gravity. The main problem with the book is that far too many of the discussions are rather cursory and fast-paced, lacking in both clear explanations of critical concepts and also an empathy for readers struggling to understand those concepts. For instance, the marketing copy for the book claims that the reader will learn the Model-View-Controller design pattern, when in fact the book fails to teach it well — instead only offering two foodservice examples, which are inadequate, particularly for any reader unfamiliar with design patterns in general. In other words, there is adequate explanation as to the specific steps for creating the example project code and other needed elements, but there is not enough explanation as to how those steps fit into the bigger picture, and how they could be enlarged so that the budding Joomla developer could create his or her own extensions, quite different from the book's example project.
On the other hand, this new version has several notable improvements over the previous edition, such as greater emphasis on Joomla 1.5-style coding, as well as more attractive screenshots, with far less pixelation. More importantly, there are three new chapters, addressing JTable, JHTML, JUser, JavaScript, e-mail, languages, and file uploading. As in the first edition of the book, LeBlanc opts for a nice balance of exposition, example code, and illustrative figures — along with the bolding of any changes in code shown in multiple places. Scattered throughout the book are handy tips and warnings to Joomla developers. Joomla's online documentation for extension development is not much better than it was a year ago, and thus there is still a need for helpful books such as this one.
On balance, Learning Joomla! 1.5 Extension Development is an approachable and useful resource for any developer who wants to maximize the functionality of their own Joomla-based Web sites — and perhaps share that new functionality with other developers by contributing the resultant extensions to the Joomla community.
Michael J. Ross is a freelance Web developer and writer.
You can purchase Learning Joomla! 1.5 Extension Development from amazon.com. Slashdot welcomes readers' book reviews — to see your own review here, read the book review guidelines, then visit the submission page. -
Joomla! A User's Guide
Michael J. Ross writes "Of all the content management systems (CMSs) from which a Web developer can choose for creating a new Web site, Joomla is generally considered to be one of the top choices -- partly because an experienced developer can create an attractive site faster with Joomla than with the majority of other CMSs. However, Joomla's online documentation leaves much to be desired, as is true for most if not all CMSs. Intermediate and especially new developers need a clear and comprehensive resource that can explain the terminology, customization, administrative panel, and other aspects of Joomla. A promising candidate is a book written by Barrie M. North, titled Joomla! A User's Guide: Building a Successful Joomla! Powered Website." Keep reading for the rest of Michael's review. Joomla! A User's Guide author Barrie M. North pages 480 publisher Prentice Hall PTR rating 8 reviewer Michael J. Ross ISBN 0136135609 summary learn how to create and manage a website powered by Joomla! It was published by Prentice Hall, under the ISBNs 0136135609 and 978-0136135609, on 21 December 2007 (although page 233 confusingly suggests that the material was written in November 2006). The book is available not only in print, but in electronic form as well, as part of the Safari Books Online library. On the publisher's Web page for the book, visitors can read the table of contents, the preface, and the index. Also, they can download a sample chapter -- "Creating a Pure CSS Template" -- as a PDF file. Lastly, visitors can check for updates to the book's content, i.e., reported errata, of which there are more than half a dozen, as of this writing.
The majority of the book's 480 pages are organized into 12 chapters, covering a number of topics: an introduction to CMSs and Joomla; installing Joomla; administration basics; content management; menus; extensions; WYSIWYG editing of content; search engine optimization (SEO); building a table-less template; and how to build Joomla sites for a school, a restaurant, and a blog. Four appendices cover: getting help on your Joomla problems; case studies; SEO basics; and installing WAMP5. The book offers plenty of screenshots, which make it possible for someone to follow the discussion even when away from their computer. Sadly, much of the text shown in the illustrations is extremely small, and could prove very difficult to read for anyone with diminished vision. Even some of the captions are so small as to almost require the use of a magnifying glass. Moreover, the illustrations are printed in light gray, which makes the situation even worse.
The intended purpose of the book is "to guide a non-technical user step-by-step in learning how to create and manage a website powered by Joomla" (page 7). The book is definitely geared towards people new to Joomla, and even new to Web development, given the amount of elementary material covered, such as the author's explanation of Joomla's need for a Web server.
In the preface, the author touches upon the growing popularity of Joomla for a wide variety of Web sites. He also mentions that PHP and CSS are not prerequisites for understanding the book; however, readers not well experienced in those technologies will struggle in implementing everything described in the book -- especially templates -- and this is substantiated by readers' comments online. Admittedly, a book that provided adequate coverage of PHP, CSS, and then Joomla, would likely be overwhelming in length. Readers unfamiliar with PHP and CSS should first secure a basic grounding in those technologies, prior to trying to create their own templates or other Joomla extensions. On the other hand, if a reader has no intention of creating any extensions of their own, then they can still use Joomla to build a new Web site, and use this book to learn how to do so.
In the first chapter, the author provides a valuable introduction to CMSs and the advantages they offer in separating content from the Web pages themselves. However, he refers to Joomla as a rebranding of Mambo, while it would be much more accurate to characterize it as a derivative project, having forked from Mambo, which still exists (sort of). The author also lists Joomla's major features, and the basic elements of a Joomla-powered Web site. Installing and configuring a CMS -- particularly for the first time -- is oftentimes a major stumbling block for any Web development newbie. Chapter 2 steps the reader through the process of downloading and installing the latest version of Joomla (the book uses version 1.5 RC1).
In the third chapter, the author explains the most commonly used administrative tasks, and how to accomplish them in the Joomla 1.5 administrative panel. He intentionally does not cover all of the administrative settings, and this may prove frustrating to some readers who are looking for comprehensive coverage. Yet he does note that such readers should consult the official Joomla User Manual. Also available is the Administrator Manual. The fourth chapter describes in detail how Joomla displays content in pages, how it organizes that content in sections and categories, and the role played by the Front Page component. It concludes with a discussion of how to create menu items and how to connect them to components, as well as how to use module content. Especially valuable to Joomla beginners is the explanation of the two methods of deciding what content appears on a site's homepage.
As noted in the preface, the relationship among menus, menu items, pages, and modules, is one of the most confusing aspects of Joomla -- even after the improvements with version 1.5. In Chapter 5, the author explains this relationship, and then the major menu layouts and how to control them using the various sets of parameters. He mentions the overriding of global settings, and this points up how, prior to this, the book should have explained where to change those global settings, and recommended values. The index is of no help, because they are not mentioned. In Chapter 6, the author shows how to install and manage extensions, which comprise components, modules, plug-ins, templates, and languages. (Templates were missing from his list presented in the book's preface.) Chapter 7 examines the use of WYSIWYG editors for changing content on the back-end and front-end.
The most functional and attractive Joomla-powered Web site will be of little value if it receives few visitors. Thus, search engine marketing (SEM), discussed in the eighth chapter, is of critical importance, and the author's largely sensible advice is worth reading -- despite the nonsensical reference to cowboys and cowgirls (on page 198), and his reference to the "miserable failure" Google bomb, which was diffused back in January 2007. Note that the links provided to the SEM tools strongly recommended by the author -- WordTracker, PR Prowler, and Perry Marshall -- are affiliate referral links. Thus it seems disingenuous when he writes "...this might be the place I would have a few affiliate links!" (emphasis added). Speaking of emphasis, it seems as if too much weight is given to resources from which the author would receive affiliate compensation. This is not what readers typically expect in a book for which they have paid good money. Also discussed in the chapter are the important topics of Web standards, accessibility, keywords, referral traffic, pay-per-click traffic, Google AdWords, e-mail traffic, and common SEM mistakes. He correctly points out the low SEM value of Joomla's native "Read more..." anchor text. But his recommended solution, a mambot from Run Digital, does not appear to work with Joomla version 1.5.
Most of the templates written for Joomla and Mambo have used tables for page layout, instead of the more accessible and efficient CSS approach. CSS- based templates are only now becoming increasingly available, and Chapter 9 furthers this worthy goal by stepping the reader through the development of a pure CSS template. As noted earlier, readers unfamiliar with CSS will most likely find this chapter quite daunting, if not disheartening. The book's overall tutorial approach kicks into full gear in the last three chapters, in which the author shows in great detail how to create Web sites for a school, a restaurant, and a blog site. This material could prove very helpful to readers who wish to review and put into practice the more theoretical ideas introduced in the earlier chapters.
In general, readers should be pleased with this book. Even though the author is clearly a fan of Joomla, and the tone of the book is positive, he does not hesitate to point out Joomla's flaws, such as the misleading name of a module type. This is rare among technical authors nowadays, and for this Barrie North should be commended. Yet it is odd that he does not mention the obvious misspelling, "Imagess," in Extensions > Module Manager > module > Other Parameters.
Sprinkled throughout all of the chapters, the reader will find short paragraphs, with a dark background, labeled "The Least You Need to Know." These summarize the preceding paragraphs. This could perhaps be justified after a significant number of paragraphs, but unfortunately they also appear after just a couple paragraphs, which makes these "LYNTK" boxes redundant and unnecessary. Even worse, every chapter ends with a summary, which further repeats the boxes' content. With the book nearing 500 pages, the chapter summaries and even the LYNTK boxes should be excised, to good effect. Also, most of the chapters contain at least one footnote, which are not located at the bottom of the page or collected in a special section at the end of the book (as is traditional), but instead listed at the end of the chapter. Such material should instead be integrated into the text, if it is important enough to be included in the book, or left out entirely.
The writing quality of the book is generally solid, and the writing style is straightforward and friendly. Yet it does contain some blemishes that should have been caught by the publisher's editors, e.g., multi-word adjectives missing hyphens; misuse of the terms "that" versus "who"; inconsistent use of lowercase and title case for Joomla roles, even in the same paragraph; the same inconsistency in menu names, such as in Chapter 4; and the inexcusable "try and explain" (should read "try to explain"; page 19, among others). Thankfully, the author intentionally leaves off the silly exclamation mark from the Joomla name, starting after the preface, for greater readability. The book contains some misspellings/errata, such as "eXtensible" (page 2), "Wordpress" (pages 7 and 8), "over writing" (page 22), "Cpanel" (pages 27 and 29), "php html" (page 148), "api" (page 150), "flash" (page 209), "sight" (should read "site"; page 221), and "add fee" (should read "ad fee"; page 225). The author incorrectly states that the acronym PHP stands for only "Hypertext Preprocessor," but it actually is now a recursive acronym of "PHP Hypertext Preprocessor."
Overall, the book's production quality is up to snuff. The book stays open fairly well, despite the absence of any special lay-flat binding. The pages were produced using recycled paper, which is always encouraging to see. Unfortunately, the pages are thinner than in any other technical book I have ever seen, thereby allowing the text on the other side of each page to show through. This exacerbates the aforementioned problem of the text within the figures being difficult to read. Moreover, all of the copies that I have seen have an unusual diagonal ridge along the bottom edge, suggesting that the page cutting machinery was malfunctioning -- at least for one batch of copies produced, and perhaps more. In addition, some of the pages have small ink blotches. At a list price of almost $45, the book might seem a bit pricey. But online bookstores are fully discounting it, such as Amazon.com's current price of under $30.
The book may have some minor weaknesses, noted above, but otherwise, Joomla! A User's Guide is a logically organized and potentially quite valuable resource for beginning and intermediate Joomla developers -- perhaps the best Joomla book currently available.
Michael J. Ross is a Web developer, writer, and freelance editor.
You can purchase Joomla! A User's Guide from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Building Websites with Joomla! 1.5
Michael J. Ross writes "Web developers are oftentimes under pressure to build attractive sites as quickly as possible, and thus they are increasingly making use of content management systems (CMSs), which offer most of the functionality typically needed in a site, such as user authentication, site-wide styling, and of course managing content contributed by site owners and users. Joomla is an extremely popular and heavily-used CMS, partly because it is one of the easiest to install, configure, and use as a starting point for a new site. But with all CMSs, Joomla's online documentation and forums can prove frustrating to the new developer. Books such as the recently published Building Websites with Joomla! 1.5 are intended to fill that gap." Keep reading for the rest of Michael's review. Building Websites with Joomla! 1.5 author Hagen Graf pages 384 publisher Packt Publishing rating 7/10 reviewer Michael J. Ross ISBN 184719530X summary An introductory-level guide to the latest version of Joomla. Written by Hagen Graf, with a guest chapter by Angie Radtke, Building Websites with Joomla! 1.5 was published on 28 March 2008 by Packt Publishing, under the ISBNs 184719530X and 978-1847195302. It is an update of his earlier book, Building Websites with Joomla! v1.0, put out by the same publisher. Like the previous edition, this latest one is aimed at beginning and intermediate Web developers who wish to learn how to make the most of Joomla for building new sites or maintaining existing ones that they have inherited.
The author has organized the book's material into 17 chapters and seven appendices, covering the major topics of interest to Joomla developers: terms, concepts, and sample sites; Joomla installation; a site's major elements; customization of language, and by templates; the administrative interface; the primary menus (Site, Menus, Content, Components, and Extensions); some commonly used tools; some popular extensions; writing templates; accessibility; MVC, components, modules, and plug-ins; building a sample site; and analysis of some bonus templates. The book's 384 pages conclude with a rather sparse index.
On the publisher's Web page, visitors can read more about the book, download the sample code, post feedback or a question, read the online table of contents, and download a sample chapter, namely, the second one in the book, on Joomla installation. The publishers also make it possible to purchase an electronic version of the book, which could be especially handy for any reader who would like to reference the book while working off-site, and without lugging the print version along with their laptop.
The publisher's site characterizes it as a "fast paced tutorial," but the book gets off to a slow start, on a micro level and on a macro level. The first eight paragraphs are devoted to explaining the concept of a content management system, and its variations, which is essentially a waste of space for the typical reader of such a book. Any developer interested in reading a Joomla book certainly does not need such a lengthy explication. If the purpose is to enlighten people unfamiliar with how Web applications work, then more care should be devoted to clarifying phrases that would confuse such neophytes, such as "the net." In fact, most of the introductory material could be excised or summarized. In addition, Mac users will not be pleased with the PC centricity, unremedied until Chapter 2. The first chapter later bogs down in a wearisome comparison of a Web site with a piece of real estate. Throughout the chapter, the level of discussion alternates between quite simplistic — presumably for the complete neophyte — to intermediate. It is as if the author realizes that there is a tremendous amount of material to cover, and thus needs to move along at a decent pace — one that can be comprehensible to intermediate programmers — and yet occasionally interjects overly simple material, in the hopes of not leaving behind the newbies. Overall, it doesn't work, and the chapter in particular, and the book in general, should instead target Web developers who have some experience with CMSs, or at least basic Web site creation.
The second chapter explains what underlying technologies are needed in conjunction with Joomla, and how to install them for testing. Readers should note that page 31 may give the impression that XAMPP is the only available package that includes Apache, MySQL, and PHP — but it is not. The third chapter provides a nice overview of the various major components on the homepage of a brand new Joomla site. One minor flaw is in the image on page 52, in which the "Resources" menu should be placed above the "Key Concepts" menu, as seen on page 54 and as seen by the reader if they are following along using their own Joomla installation (a practice highly recommended by both the book's author and this author).
Chapter 4 demonstrates how to install a different language for the public site and the administrator site — in this case, German. Readers whose primary or only language is English may be confused as to why the author begins the detailed Joomla coverage with this more specialized topic, rather than starting with the material found at the beginning of the next chapter. It is possible that the author concluded that the rest of the reading audience would want to first install the language module for their primary language, which makes sense. On page 68, the author refers to the template named Kepri as "previously introduced," but I can't find where this was done, and the index is of no help (it does not even have a section for the letter K). Far more confusing, and irritating, is when authors make reference to some file that the reader cannot find. For example, Hagen Graf instructs the reader to "download the language files from the German translation team's website." Sure, but where? Four pages later, we are told to upload tmpl_bertrand.zip, but not where to find the file. It turns out that it is in 5302_Code/chapter 16/, in the downloadable sample code from the publisher's site.
The fifth chapter is almost as short as the fourth one, and briefly describes the configuration of the Joomla administration site. The author recommends that readers still using Internet Explorer switch over to Mozilla Firefox (amen), yet oddly describes Firefox as two different browsers. There are some other minor flaws: The list of 17 toolbar elements, on page 72, would be more efficient if it were alphabetized. The second illustration on page 73 supposedly shows the results of filtering for enabled modules only, and yet the drop-down menu does not reflect that. The version numbers stated in the text on page 77, do not match those shown in the illustration on that page. Yet none of these blemishes lessen the value of the material.
Chapter 6 covers the Site menu, whose components can be accessed directly from the menu items or from icons on the Control Panel page. The author asserts that the icons allow faster access, but actually the menu items are more direct. The chapter is informative, and would be more so if the author explained what is really happening with — and how to utilize — debug messages ("Debug Language").
Chapters 7 through 10 go into the details of the Menus, Content, Components, and Extensions menus. Most of the explanations are straightforward, except that on page 143, whose third paragraph is downright baffling; also, the "Default Section Layout" and "Archive Blog" display formats mentioned are not available or even shown in the illustration on the previous page. On the first page of the seventh chapter, the author begins to introduce "an example from joomlart.com," but apparently forgot to include the example itself. Also, in the discussion of "Parameters — Component," the last two options — Target and Icon — were neglected.
Chapter 11 briefly describes three of the built-in tools, and Chapter 12 shows the reader how to install some popular extensions for customizable message boards, document management, and image galleries. The coverage of the extensions is enough to get the reader started, but the author really should explain why the reader would need to reboot their computer after installing Fireboard (page 203), or even restart the Apache server, if that is what the author meant.
With Chapters 13 through 15, Hagen Graf shifts to Joomla topics that would be of most interest to veteran Web programmers: how to develop your own templates, components, modules, and plug-ins. Sadly, at this critical juncture, the narrative and sample code become noticeably more muddled and confusing than what is found in the earlier chapters (which mostly consist of explaining the individual controls within Joomla's administrative area, and are thus easier to get right). For instance, to readers unfamiliar with div tags (likely a minority), the author recommends "selfhtml," without explaining what or where it is; presumably it is the German site SELFHTML, which is of no value to the English language readers of this book. Further on, the template provided in the downloadable code styles one's Joomla site as if no template were even in use, and not like the preview thumbnail image. The author's reference on page 229 to "one command" is baffling, and the publisher's left-justification of all the CSS rules makes the template's CSS even less readable. By the time readers reach the section titled "Integration of the Joomla! Module," they may be quite frustrated, and asking themselves, "What Joomla module?!" — despite the author's self-congratulatory comment "this has worked so well."
Chapter 14 was written by Angie Radtke, co-creator of the increasingly popular Beez template, which offers a lot more flexibility than most if not all other Joomla templates. She discusses Web accessibility ("barrier freedom") in general, and as implemented in particular by her template. The general discussion would be of interest to anyone unfamiliar with how to make Web sites more accessible, and is more thorough than what is found in some other Web design books. The template discussion would primarily be valuable to anyone developing a new template — especially one based upon Beez — and who is otherwise not aware of accessibility considerations. However, in any future editions, the HTML and CSS code should certainly be formatted better. For more advanced Joomla developers, Chapter 15 may be the most compelling one of all, because it describes how to create your own components, modules, and plug-ins — starting with an overview of the Model-View-Controller (MVC) design pattern.
In the penultimate chapter, the author steps through the process of setting up a simple Web site (in this case, for a winery). Working through the example will help readers solidify the knowledge they gained in the earlier chapters. It would also be handy for someone proficient with CMSs who simply wants to try Joomla in the least amount of time — somewhat like a quick-start guide. The book states that Joomla does not have an e-commerce shop component. Presumably the author is referring to the fact that, at the time of his book's writing, VirtueMart did not yet support Joomla 1.5; the latest release apparently does. Lastly, much of the vintner story is superfluous and could be condensed or cut. The last chapter briefly discusses a number of available templates. The book concludes with seven appendices, most quite brief: online resources; jdoc details; two methods for changing a template logo; a link to the Joomla API; how to reset the admin password; how to migrate a Joomla version 1.0 site to 1.5; the PHP register_globals setting apropos of Joomla security.
Like so many technical books, this one certainly has its noticeable strengths and weaknesses. The author's high regard for Joomla, as well as his extensive experience with it, is truly evident throughout his book. Also, he does touch upon all the major areas that would be of interest to the Joomla programmer.
However, the book's writing could be cleaned up and clarified a great deal. It could certainly use a lot more well-placed commas to increase readability — especially for the many run-on sentences — and far fewer exclamation marks. On a larger scale, the chapter summaries add no value and should be cut. The book contains many compound adjectives lacking hyphens, just as there are a few complete statements incorrectly separated by commas and not semicolons. Many of the expressions are rather odd and puzzling; for instance, "graphic scripts" (page 250), "easiest solution nothing shifts" (page 258), and "barrier freedom" instead of the much more universal term "accessibility." Non-German readers may be turned off by the book's German centricity. Furthermore, readers don't need to be told, twice, that the German translations were done by the German translation team. The book contains at least 49 errata (which I have reported to the publisher). These do not include countless instances of the term "that" being used incorrectly in place of "who," by both the primary and guest authors. Given the considerable number of errors, the reader may begin to wonder whether the book was edited prior to production.
The book falters most when it veers away from Joomla administration toward marketing and business topics. For instance, eBay is characterized as a "flea market" (page 55), but it is more of an online auction. On the same page, the discussion on advertising, frozen spinach, etc., adds no value to the book, could easily puzzle readers, and is somewhat disjointed from the topic at hand — contradicting the author's assertion that the book is cohesive (same page). Overall, the book could use a fair amount of trimming.
In terms of the book's production, the quality is fine, but Packt Publishing is the only technical publisher that I know of that insists upon using a glossy ink, which makes the book's pages somewhat difficult to read depending upon the angle of one's reading light as it bounces off the page. Also, whoever set the text on the pages should have refrained from removing most of the indentation from the code.
From an editing perspective, Building Websites with Joomla! 1.5 is in need of considerable improvement — especially those passages that will prove most confusing to readers. But from a technical perspective, the book offers a lot of valuable information to new Joomla developers, and could easily become the preferred resource that they turn to when building their first Joomla Web sites.
Michael J. Ross is a Web developer, writer, and freelance editor.
You can purchase Building Websites with Joomla! 1.5 from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Publishing Documentaries on the Internet?
gehel asks: "While working in Rwanda as a computer engineer, I've had a discussion with a small NGO that produces video documentaries. Internews produces videos about Rwanda to raise the population awareness on different issues, mainly the Gacaca popular court for reconciliation. Those videos are the shown in public projections all over Rwanda. They would be interested in distributing this content to a larger audience: the internet. They have the rights to their documentaries, and are willing to distribute them under a Creative Common license, so we could use the Internet Archives to host the files, however we'd still have to find a good front end. I have been looking into a couple of solutions. Ourmedia is a bit too complicated to use, the Broadcast Machine doesn't seem ready for prime time, so I'm back to the standard Joomla!. I'm pretty sure there is the perfect solution somewhere, but I cant find it. Could you help me? "The perfect solution would be a Content Management System oriented toward video publishing, that can interact well with the Internet Archives. The ability to create RSS feeds for different media (French/English/Kinyarwanda with high/low quality versions) would be a plus.
Also, if anybody can help us with a good design, then suggestions are welcomed!" -
What Really Happened with Mambo?
Anonymous Coward writes "What Happened with Mambo? There is a good article about the recent events that resulted in a changing of the guard at Mambo. Jem Matzan does his best to objectively debunk what happened. It looks like much research was conducted to produce this article and it is very informative. Check it out!" In the interest of full disclosure as well, our corporate parent also hosts Joomlaforge. -
Mambo Changes its Name to Joomla!
Phil Shapiro writes "The popular open source content management system named Mambo has changed its name to Joomla! -- released under the GNU Public License. Some of the reasons for the name change are explained at MamboPortal.com. Joomla! is used by a very wide array of organizations and companies."