Beta

Slashdot: News for Nerds

×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Learning Joomla! 1.5 Extension Development

samzenpus posted more than 5 years ago | from the read-all-about-it dept.

Programming 73

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.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.

cancel ×

73 comments

Your official guide to the Jiagboo presidency (-1, Troll)

Anonymous Coward | more than 5 years ago | (#26728803)

Congratulations on your purchase of a brand new nigger! If handled properly, your apeman will give years of valuable, if reluctant, service.

INSTALLING YOUR NIGGER.
You should install your nigger differently according to whether you have purchased the field or house model. Field niggers work best in a serial configuration, i.e. chained together. Chain your nigger to another nigger immediately after unpacking it, and don't even think about taking that chain off, ever. Many niggers start singing as soon as you put a chain on them. This habit can usually be thrashed out of them if nipped in the bud. House niggers work best as standalone units, but should be hobbled or hamstrung to prevent attempts at escape. At this stage, your nigger can also be given a name. Most owners use the same names over and over, since niggers become confused by too much data. Rufus, Rastus, Remus, Toby, Carslisle, Carlton, Hey-You!-Yes-you!, Yeller, Blackstar, and Sambo are all effective names for your new buck nigger. If your nigger is a ho, it should be called Latrelle, L'Tanya, or Jemima. Some owners call their nigger hoes Latrine for a joke. Pearl, Blossom, and Ivory are also righteous names for nigger hoes. These names go straight over your nigger's head, by the way.

CONFIGURING YOUR NIGGER
Owing to a design error, your nigger comes equipped with a tongue and vocal chords. Most niggers can master only a few basic human phrases with this apparatus - "muh dick" being the most popular. However, others make barking, yelping, yapping noises and appear to be in some pain, so you should probably call a vet and have him remove your nigger's tongue. Once de-tongued your nigger will be a lot happier - at least, you won't hear it complaining anywhere near as much. Niggers have nothing interesting to say, anyway. Many owners also castrate their niggers for health reasons (yours, mine, and that of women, not the nigger's). This is strongly recommended, and frankly, it's a mystery why this is not done on the boat

HOUSING YOUR NIGGER.
Your nigger can be accommodated in cages with stout iron bars. Make sure, however, that the bars are wide enough to push pieces of nigger food through. The rule of thumb is, four niggers per square yard of cage. So a fifteen foot by thirty foot nigger cage can accommodate two hundred niggers. You can site a nigger cage anywhere, even on soft ground. Don't worry about your nigger fashioning makeshift shovels out of odd pieces of wood and digging an escape tunnel under the bars of the cage. Niggers never invented the shovel before and they're not about to now. In any case, your nigger is certainly too lazy to attempt escape. As long as the free food holds out, your nigger is living better than it did in Africa, so it will stay put. Buck niggers and hoe niggers can be safely accommodated in the same cage, as bucks never attempt sex with black hoes.

FEEDING YOUR NIGGER.
Your Nigger likes fried chicken, corn bread, and watermelon. You should therefore give it none of these things because its lazy ass almost certainly doesn't deserve it. Instead, feed it on porridge with salt, and creek water. Your nigger will supplement its diet with whatever it finds in the fields, other niggers, etc. Experienced nigger owners sometimes push watermelon slices through the bars of the nigger cage at the end of the day as a treat, but only if all niggers have worked well and nothing has been stolen that day. Mike of the Old Ranch Plantation reports that this last one is a killer, since all niggers steal something almost every single day of their lives. He reports he doesn't have to spend much on free watermelon for his niggers as a result. You should never allow your nigger meal breaks while at work, since if it stops work for more than ten minutes it will need to be retrained. You would be surprised how long it takes to teach a nigger to pick cotton. You really would. Coffee beans? Don't ask. You have no idea.

MAKING YOUR NIGGER WORK.
Niggers are very, very averse to work of any kind. The nigger's most prominent anatomical feature, after all, its oversized buttocks, which have evolved to make it more comfortable for your nigger to sit around all day doing nothing for its entire life. Niggers are often good runners, too, to enable them to sprint quickly in the opposite direction if they see work heading their way. The solution to this is to *dupe* your nigger into working. After installation, encourage it towards the cotton field with blows of a wooden club, fence post, baseball bat, etc., and then tell it that all that cotton belongs to a white man, who won't be back until tomorrow. Your nigger will then frantically compete with the other field niggers to steal as much of that cotton as it can before the white man returns. At the end of the day, return your nigger to its cage and laugh at its stupidity, then repeat the same trick every day indefinitely. Your nigger comes equipped with the standard nigger IQ of 75 and a memory to match, so it will forget this trick overnight. Niggers can start work at around 5am. You should then return to bed and come back at around 10am. Your niggers can then work through until around 10pm or whenever the light fades.

ENTERTAINING YOUR NIGGER.
Your nigger enjoys play, like most animals, so you should play with it regularly. A happy smiling nigger works best. Games niggers enjoy include: 1) A good thrashing: every few days, take your nigger's pants down, hang it up by its heels, and have some of your other niggers thrash it with a club or whip. Your nigger will signal its intense enjoyment by shrieking and sobbing. 2) Lynch the nigger: niggers are cheap and there are millions more where yours came from. So every now and then, push the boat out a bit and lynch a nigger.

Lynchings are best done with a rope over the branch of a tree, and niggers just love to be lynched. It makes them feel special. Make your other niggers watch. They'll be so grateful, they'll work harder for a day or two (and then you can lynch another one). 3) Nigger dragging: Tie your nigger by one wrist to the tow bar on the back of suitable vehicle, then drive away at approximately 50mph. Your nigger's shrieks of enjoyment will be heard for miles. It will shriek until it falls apart. To prolong the fun for the nigger, do *NOT* drag him by his feet, as his head comes off too soon. This is painless for the nigger, but spoils the fun. Always wear a seatbelt and never exceed the speed limit. 4) Playing on the PNL: a variation on (2), except you can lynch your nigger out in the fields, thus saving work time. Niggers enjoy this game best if the PNL is operated by a man in a tall white hood. 5) Hunt the nigger: a variation of Hunt the Slipper, but played outdoors, with Dobermans. WARNING: do not let your Dobermans bite a nigger, as they are highly toxic.

DISPOSAL OF DEAD NIGGERS.
Niggers die on average at around 40, which some might say is 40 years too late, but there you go. Most people prefer their niggers dead, in fact. When yours dies, report the license number of the car that did the drive-by shooting of your nigger. The police will collect the nigger and dispose of it for you.

COMMON PROBLEMS WITH NIGGERS - MY NIGGER IS VERY AGGRESIVE
Have it put down, for god's sake. Who needs an uppity nigger? What are we, short of niggers or something?

MY NIGGER KEEPS RAPING WHITE WOMEN
They all do this. Shorten your nigger's chain so it can't reach any white women, and arm heavily any white women who might go near it.

WILL MY NIGGER ATTACK ME?
Not unless it outnumbers you 20 to 1, and even then, it's not likely. If niggers successfully overthrew their owners, they'd have to sort out their own food. This is probably why nigger uprisings were nonexistent (until some fool gave them rights).

MY NIGGER BITCHES ABOUT ITS "RIGHTS" AND "RACISM".
Yeah, well, it would. Tell it to shut the fuck up.

MY NIGGER'S HIDE IS A FUNNY COLOR. - WHAT IS THE CORRECT SHADE FOR A NIGGER?
A nigger's skin is actually more or less transparent. That brown color you can see is the shit your nigger is full of. This is why some models of nigger are sold as "The Shitskin".

MY NIGGER ACTS LIKE A NIGGER, BUT IS WHITE.
What you have there is a "wigger". Rough crowd. WOW!

IS THAT LIKE AN ALBINO? ARE THEY RARE?
They're as common as dog shit and about as valuable. In fact, one of them was President between 1992 and 2000. Put your wigger in a cage with a few hundred genuine niggers and you'll soon find it stops acting like a nigger. However, leave it in the cage and let the niggers dispose of it. The best thing for any wigger is a dose of TNB.

MY NIGGER SMELLS REALLY BAD
And you were expecting what?

SHOULD I STORE MY DEAD NIGGER?
When you came in here, did you see a sign that said "Dead nigger storage"? .That's because there ain't no goddamn sign.

Re:Your official guide to the Jiagboo presidency (1)

wiberg (1163465) | more than 5 years ago | (#26729029)

wtf

Joomla: Stuff That DOESNT Matter: +4 (-1)

Anonymous Coward | more than 5 years ago | (#26728981)

better learn to work for about U.S. $ 4.50 / hr. while the
U.S.A. collapses [youtube.com] .

Good luck in YOUR Gulag.

Cheers,
Kilgore Trout

Can the bang (1, Insightful)

Nimey (114278) | more than 5 years ago | (#26729009)

When you write Joomla with the exclamation point, you look like such a wanker. We don't do it for Yahoo, don't do it for this either.

Re:Can the bang (4, Insightful)

Archangel Michael (180766) | more than 5 years ago | (#26729263)

When criticizing people for using a Exclamation Point, when it is used in a title of a book being reviewed, it is YOU who look like a Wanker. Especially since the only time the reviewer used "Joomla!" was when quoting the book title, which is entirely appropriate and to NOT do so is bad form.

If you have an issue with the "Joomla!", write the author of the book. Of course I doubt you'd do that being the wanker you are.

Re:Can the bang (0)

Anonymous Coward | more than 5 years ago | (#26729435)

Heh, nice flamebait.
Can we have a flame war now?

Re:Can the bang (4, Insightful)

thetoadwarrior (1268702) | more than 5 years ago | (#26729727)

I write Joomla but I like internet porn so I'm still a wanker.

Re:Can the bang (1)

edittard (805475) | more than 5 years ago | (#26730431)

When criticizing people for using a Exclamation Point, when it is used in a title of a book being reviewed, it is YOU who look like a Wanker.

Surely the real wanker is the pretentious tossbag who put it there in the first place? It's almost as stupid as a pop star renaming himself to $squigglything.

Obligatory (1)

Dekortage (697532) | more than 5 years ago | (#26731851)

I write music for $squigglything, you insensitive clod!

Re:Can the bang (1)

dimethylxanthine (946092) | more than 5 years ago | (#26730321)

The ! is actually part of the Joomla's name, so that makes you the wanker!

....ummmm what? (1)

Gagek (1230792) | more than 5 years ago | (#26729167)

I have gone cross eyed.

Joomla amazing but I can guarantee I am not running out to get this book!

Gagek
Impostor Magazine

Jooma best practices (5, Funny)

Anonymous Coward | more than 5 years ago | (#26729209)

1) Avoid Joomla
2) Profit!

Re:Jooma best practices (3, Informative)

ceejayoz (567949) | more than 5 years ago | (#26729401)

Amen to that. Mod parent up, please.

Re:Jooma best practices (3, Funny)

Anonymous Coward | more than 5 years ago | (#26729837)

I'm still trying to learn BASIC. You mean there's a new programming language out?

More details please (2, Interesting)

snowwrestler (896305) | more than 5 years ago | (#26730077)

Can either of you provide more details on this? I'm considering Joomla for a pretty substantial site. Preferred alternatives? (Drupal?)

Ok I'll start (1)

snowwrestler (896305) | more than 5 years ago | (#26730829)

The site will be almost entirely content. It will need to be updated by non-technical staff, specifically uploading PDFs, creating new pages, and applying tags from a set taxonomy. It will need to handle user accounts and control access permissions down to the page level. This doesn't seem to call for much more than a standard CMS.

We do not want to spend a lot of money on a license. We want a system that we can host and for which we can easily outsource work (no vendor lock-in). We want a system that we can customize pretty easily; bonus if there is a large community creating extensions. We want a system that is proven stable under millions of page views/month.

Hope that helps, any feedback appreciated.

Re:Ok I'll start (2, Informative)

Swampash (1131503) | more than 5 years ago | (#26731657)

Joomla is evil. That's all there is to it. The only way to get the functionality you would ever really need beyond basic content management is to pay large sums of money for commercial modules. The community is huge in the worst possible way. There are a million modules for one problem and it is near impossible to find the right one.

The interface is deplorable. None of the methods of content management make any sense, and it is obviously not meant to be user friendly considering the top dollar training offered for the system. If there were ever a CMS to avoid, this would be it.

"How to Choose the Right CMS" - http://www.webdesignerdepot.com/2009/01/how-to-choose-the-right-cms/ [webdesignerdepot.com]

Re:Ok I'll start (1)

Narcocide (102829) | more than 5 years ago | (#26731863)

I'll second that. Joomla is evil. Its designed to be bad so that you get stuck in it like quicksand then have to pay to get yourself out. Comments on their website claiming excitement about how its "good" should carefully be examined for age of post and reply count.

Re:Ok I'll start (2, Informative)

omuls are tasty (1321759) | more than 5 years ago | (#26735707)

The site will be almost entirely content. It will need to be updated by non-technical staff, specifically uploading PDFs, creating new pages, and applying tags from a set taxonomy. It will need to handle user accounts and control access permissions down to the page level. This doesn't seem to call for much more than a standard CMS.

We do not want to spend a lot of money on a license. We want a system that we can host and for which we can easily outsource work (no vendor lock-in).

So far so good. Joomla might fit the bill (the permissions bit might be problematic depending on your exact needs).

We want a system that we can customize pretty easily; bonus if there is a large community creating extensions.

That's where it starts to get interesting. Customizing Joomla is a pain. The "core" is not designed in a very modular/extensible way, and the quality of the code itself is generally low. Joomla provides nothing which would resemble a framework (think Cake, Symphony, etc) making you re-invent the wheel for every component (or create a framework of your own).

The quality of third-party extensions (or "components" in the parlance) ranges, with some exceptions, from bad to dowright attrocious. To be fair most of them do their job, but customizing them? Forget it. Security-wise, you're lucky if they escape their SQL, forget about XSS or heaven forbid CSRF prevention. Not to mention that they tend to follow the time-honored PHP tradition of "notices are OK".

Also, because of the lack of extensibility in Joomla, components often include so-called "core hacks", which comprise of replacing the original Joomla files with their own version. You can imagine that because of this some components don't play very well with each other, and don't play well with Joomla upgrades at all

Search-engine friendly links are also a problem. Joomla comes with a SEF URL rewriter, but often that doesn't cover all the needs. So you need to install yet another component (openSEF or 404sef), which also tends to step on toes of some other things.

The low cost IMHO is a red herring. I used to do contract work for a small company specialized in customizing Joomla for clients. The process would generally go like this:

  • The client wants to install Joomla - hey it's free, and has all these great features out of the box. He needs the template and some extra functionality, for which we can find 3rd party components.
  • The designers create the template.
  • We install the components and customize their appearance to match the site
  • With very simple sites, this is where it would end. More often than not, the process continues
  • The customer decides that he needs some more functionality. Install more components
  • Somewhere along the line, interoperability issues start to pop up, work on fixing those. Also, upon detailed inspection, it turns out that functionality of the Joomla core/components is missing/inadequate, so the programmers (i.e. me) start looking for ways to customize them and/or write new code. Without a proper Web framework (and the popular PHP frameworks tend not to work inside Joomla) this takes much more time than with one.

By the time the process is finished, the original project has stretched from weeks to months, and the price has gone up from $1-2k to $10k+

The funny thing is, if we developed the CMS from scratch using a proper framework (or better, started by customizing a CMS that utilizes one):

  • Duplicating the functionality of Joomla/needed components would most likely take a week or two - realistically, 95% of it little more than a thin interface layer over the database. Developement of new functionality would be orders of magnituted faster.
  • Customizing the appearance would take about the same time as with Joomla

So please, do yourself a favor. Find a decent Web development company that works using a decent framework. I'm a Python fanboy so I'd suggest something like Django or TurboGears but RoR is generally more popular and it should be easier to find developers later on.

If you absolutely insist on a CMS, Drupal might be worth looking into. Some people like it a lot (but you can find some differing opinions in the comments below). Plone/Zope is another popular option, but developers might be in short supply.

Big fat disclaimer: my opinion is one from a developer's perspective and might be skewed. What I wrote is based on experience with Joomla 1.0.x series. Things may have changed with 1.5, but I honestly doubt it.

Re:More details please (1)

sabernet (751826) | more than 5 years ago | (#26730849)

In the time it will take you to learn to use Joomla to it's maximum, you'll have learned Perl or PHP(or Python, if you must) yourself, gotten a decent understanding of a certain brand of SQL and made a site custom tailored to you needs, as well as pick up an invaluable skill or two while doing it.

I find CMS', especially humongous ones like Joomla, to just be huge, kldugey, one-size-fits-all things without even the benefit of quick launch(unless you want the default content they include, at which point your site just looks like a template anyways).

Personal opinion, of course. It's free, try it out for yourself. But every time I've tried using it, I've ended up deleting it and just writing from scratch.

Re:More details please (1)

Dekortage (697532) | more than 5 years ago | (#26731951)

Like you say, it's free, try it out for yourself.

However, from experience I can tell you that hiring a good expert in the CMS of your choice, can really save you lots of headaches. Whether it's Typo3, or Drupal, or Plone, or Joomla, a good expert can set up the templates, organize the pages, and give you advice/support on managing the site. I am not an expert in any of these CMSs, but have worked on projects involving them enough times that I recognize the value of a good expert. It can be like hiring a magician, and far better than trying to learn a programming and coding your own CMS. (I have coded my own CMS's for custom situations, but an off-the-shelf system generally does what most people need.)

(My current CMS of choice is Cascade [hannonhill.com] , which is a commercial product and based almost entirely on XML/XSL to output just about any data you want: XML, XHTML, PHP, JSP, ASP, PDF, whatever. Really powerful, although XSL is a cruel lover if you aren't careful.)

Having said all that, I'll share this advice about Joomla:

  • The built-in text editor is junk. Find and install JCE. The core JCE functionality is free, though the commercial add-ons for image management are worthwhile if you manage a lot of graphics in the site. Like a lot of things about Joomla, JCE adds features that should have been there in the first place.
  • You need the Extended Menu plug-in if you want to do any useful CSS menuing like Suckerfish. Even though it doesn't handle SSL links right (they get menued as HTTP instead of HTTPS), it's still totally worthwhile. You can fix some of the HTTPS stuff via an htaccess file if necessary. As above, this adds a feature that should be already part of Joomla.
  • I have never, ever, ever been able to get any of Joomla's community extensions working right. None of them. It's a good thing that I don't run any community sites and have only experimented with them for family or clubs I'm in.

I've written Typo3 extensions before (in PHP obviously), but must admit that I detest TypoScript. It always feels like a hack.

Re:More details please (1)

Darkk (1296127) | more than 5 years ago | (#26733215)

I've got like two production sites running Joomla! and I can tell you it's not for the novice. Luckily Turnkey Linux created a self contained ISOs for something like this making it a breeze to manage and install. Thank goodness for webmin!

http://www.turnkeylinux.org/ [turnkeylinux.org]

Re:More details please (1)

snowwrestler (896305) | more than 5 years ago | (#26733203)

In the time it will take you to learn to use Joomla to it's maximum, you'll have learned Perl or PHP(or Python, if you must) yourself, gotten a decent understanding of a certain brand of SQL and made a site custom tailored to you needs, as well as pick up an invaluable skill or two while doing it.

This sounds fun but it's not a good idea for me professionally. I lead an internal corporate Web team and while there's no doubt in my mind that we could create a CMS from scratch, every hour we spend coding that up would be an hour we are not executing a communication strategy. We try to avoid reinventing wheels. So we use existing CMS systems and spend our time doing original design, original content, and occasional technical tweaks or extensions when we can't find a product to do what we want. Sometimes we come to a conclusion that we just have to write something ourselves to be effective. But that's getting more and more rare as open source and low-cost software continue to improve. Thanks.

Re:More details please (3, Informative)

ceejayoz (567949) | more than 5 years ago | (#26733075)

Joomla comes out-of-the-box as a quite powerful but extremely restrictive system. If your site needs to work exactly as Joomla's developers intended, great.

If your site doesn't exactly fit their cookie-cutter mold, though, you are screwed. Most tweaks to the way the site works will have to be done by either a) hacking core code (and thus meaning upgrades are a nightmare) or b) replacing core modules wholesale.

An example: I was an intern and the project specs called for Joomla. The project also required articles to be categorised in more than one category - i.e. it might be in the 'nightlife' category and the 'downtown' category. Joomla's categorisation system, however, allows only one category for a content item.

To have multiple categorisation, I had two options - hack apart much of Joomla's core code to wedge that functionality in, or buy commercial replacements to the main com_content module. Plus, if we'd decided we wanted a second feature that commercial replacement didn't have, we'd then have to hack apart that component too.

Add in the heavily pay-to-play nature of Joomla extensions - an oddity for a GPL project - and getting a site set up can be a nasty, nasty proposition.

If a PHP CMS is what you're looking for, my favourite is indeed Drupal. The key in Drupal is its API - you can alter essentially every bit of Drupal, even core components, without having to hack core code. As an example, API hooks like hook_nodeapi [drupal.org] and hook_form_alter [drupal.org] allow developers to modify any form in the Drupal installation. Want to change the username field in the signup form to a checkbox? You can do that.

Modules like CCK (allows web-based configuration of content types) and Views (lets you easily set up, via a web interface, filters and criteria for displaying content) are wonderful helps, and include their own APIs so you can extend them, again without hacking their code. There's a vibrant developer community with well over a thousand contributed modules - and all free, and (in my opinion) of higher quality than most of the ones I came across in Joomla.

It's a bit longer of a learning curve than Joomla, but the result is a far less frustrating development experience.

Awesome--thanks (1)

snowwrestler (896305) | more than 5 years ago | (#26733291)

That is exactly the sort of detailed feedback I was looking for, and it gives me some things to check out and test on the Joomla sites we've stood up for testing. Thanks.

I'm not married to a PHP CMS, but we often have more work to do than time or staff to do it, so it's important for us to get a CMS for which it's easy to find capable, professional consultant support. So far the best options along those lines seem to be Wordpress, Drupal, and Joomla.

Re:More details please (1)

squoozer (730327) | more than 5 years ago | (#26735479)

Many thanks for providing exactly the review of Drupal and Joomla that I have been looking for. I run a site with a few hundred pages in a CMS that I wrote myself. While it's pretty powerful and does what I want I can't be bothered to maintain the code any more and would rather switch to an open source CMS. I've played with Plone and really like the way it works but I can't help feeling it will always be playing catch-up to Drupal and Joomla (I've also played with Word Press but I want a CMS not a blog). Do you have any views on Plone and other CMS's?

Re:More details please (1)

FishWithAHammer (957772) | more than 5 years ago | (#26748489)

Excellent post. Drupal is the bee's knees, the ant's elbow, and the major arthroscopic joint of every other insect species in existence when it comes to open source content management systems.

Re:More details please (1)

specific_pacific (904746) | more than 5 years ago | (#26821663)

Whilst there are restictions in place, if you're using it for the right job then this should never have happened in the first place.

There are bonuses to using Joomla which outweight Drupal in a very strong way. The most important one is how the client will actually be editing content. Drupal doesn't come with a WYSIWYG editor, and it is not integrated in anyway with the CMS itself. Joomla does come with TinyMCE standard and image inserting tools (mambots). Joomla is more for actually putting the content in.

Plone is far superior in this, but Plone developers are expensive, rare and hosting is the same (although perhaps not that expensive?)

Sometimes (most times) more time is spent actually training a client on the inadequacies if inserting content into Drupal rather than teaching them about how to tweak the look and feel of the site. You need a handful of modules added on just give the basic functionality of editing content. Drupal houses have this as part of their workflow, but why should it be? I know there are some heated debates on the forums on it anyway.

The chances of a client who uses a Joomla solution, which is albiet, wanting a vertical brochure website, will pay for updates when exactly? They will only pay for updates when someone tells them it's insecure or perhaps they get hacked. The chances of this actually happening in the 4 years I've been developing websites for customers in both solutions is exactly: 0... they're all still running too.

At the end of the day, think of the client and your costs. Drupal isn't a paradise for designers or developers (but you can argue this), nor is it a paradise for the client. Joomla is better for the client because it's completely logical, and piss easy to include a Pakt book on managing content in your fees for the job. Sure there might be some core hacks, but the job is finished quickly and the client is happy (and you will get recommendations because they actually ENJOY managing their website).

Re:More details please (1)

ceejayoz (567949) | more than 5 years ago | (#26912213)

Drupal doesn't come with a WYSIWYG editor, and it is not integrated in anyway with the CMS itself. Joomla does come with TinyMCE standard and image inserting tools (mambots).

Yes, these come as separate modules in Drupal. This is a Good Thing(TM). I can choose any WYSIWYG editor to hook into Drupal - there are modules for all of the big ones, and you can write your own if you like. Same thing for image inserting - there are a number of ways. I'm not locked into one way of setting a site up for a client, which allows me to meet their actual needs instead of telling them how they're going to have to run their site.

You need a handful of modules added on just give the basic functionality of editing content. Drupal houses have this as part of their workflow, but why should it be?

First off, you can edit content in plain text or HTML out-of-the-box. As for things like WYSIWYG, they're left to modules because it gives you much greater flexibility. The truly universal modules get absorbed into core when it becomes obvious they're vital (happening to CCK and Views, for example).

Your approach is like saying "Windows has everything you need, there's no reason for third party apps! It has games! Image editor! Text editor! Web browser!" Drupal's approach is "Minesweeper, MS Paint, Notepad and IE might not be the perfect solution for everyone...".

At the end of the day, think of the client and your costs.

I do, and that's why I avoid Joomla like the plague.

and you will get recommendations because they actually ENJOY managing their website

I get plenty of those from my Drupal work, thanks.

Re:More details please (0)

Anonymous Coward | more than 5 years ago | (#26847303)

Coming from someone that has used drupal...it is a pain in the butt too. I wanted to back out of it after spending 4 months trying to get the site up and running the way people wanted it.

Re:More details please (1)

The Benj (1478973) | more than 5 years ago | (#26873055)

I use joomla for my a web site in the past. I used to write web sites manually but spent more time developing the sites infrastructure than the actual content. Once you get around Joomla's functionality, its easy to use.

Re:Jooma best practices (1, Informative)

Anonymous Coward | more than 5 years ago | (#26729597)

Damn right. Joomla is not a CMS. It's an idiot portal for updating column based POS sites.

Re:Jooma best practices (1)

CompMD (522020) | more than 5 years ago | (#26730103)

AC is right, its fact. Just because you don't like it doesn't make it a troll.

Re:Jooma best practices (1)

dimethylxanthine (946092) | more than 5 years ago | (#26730343)

Do some research before you flamebait. Saying Skoda still sucks as a car would make you Troll. And don't you dare ask why. Do some research.

Shitty PL, shitty CMS, yeah? (1)

Qbertino (265505) | more than 5 years ago | (#26730257)

I find these kind of comments amusing. How lowly PHP is, how crappy Typo3, Joomla, Drupal, whatever is. Meanwhile PHP applications are slowly but surely taking over the web. And Joomla scores somewhere around 130 Million hits on Google. About 100 Million more that any other CMS/Web Framework. [google.com]

Oh, and btw., I'm currently profiting by actually *using* Joomla. And selling it to very happy customers. And helping out in the Joomla Bugsquad.

Re:Shitty PL, shitty CMS, yeah? (1)

Swampash (1131503) | more than 5 years ago | (#26731503)

Joomla scores somewhere around 130 Million hits on Google. About 100 Million more that any other CMS/Web Framework. [google.com]

That's because there's 100 million sites out there proclaiming "Joomla is evil", "Joomla: worst CMS ever", and "Joomla: friends don't let friends use it".

Worst CMS I've ever used. I start grinding my teeth just remembering it.

Re:Shitty PL, shitty CMS, yeah? (2, Funny)

Darkk (1296127) | more than 5 years ago | (#26733429)

Joomla! isn't bad. Just awkward on how to set the site up to my liking. My boss and I actually set one up for internal employee website to share company information and tips. Very helpful in our environment.

We hope to keep improving it by adding new modules and features.

I have another site I run for personal use to share my gallery pictures. It's working great for me after about two months of working with Joomla at work.

Took me an hour or so to setup Joomla on my personal website and added the modules I like. Thanks for Microsoft's failure to continue support for FrontPage which allowed me to set Joomla up in short amount of time and for free!

A Letter To Richard B. Cheney: (-1, Offtopic)

Anonymous Coward | more than 5 years ago | (#26729253)

Dear Dick:

Are you with us or against [huffingtonpost.com] us. From your statement, you appear to be against us.

Kindly Fuck Off.

Thanks For Nothing,
Philmore Studge

migrating from Joomla.. (1)

Keruo (771880) | more than 5 years ago | (#26729305)

Whats good CMS to migrate from Joomla?
Our corporate website is about to get full overhaul and I'd perfer to switch away from the ancient Joomla we're running now.

I won't touch the design of the site, I'll leave that to the advertising company, but what I'm looking for is easy way to create and manage content on multilingual web page.
Can someone suggest good alternative?

Re:migrating from Joomla.. (2, Insightful)

brandaman (1136955) | more than 5 years ago | (#26729397)

Drupal [drupal.org]

Re:migrating from Joomla.. (2, Informative)

theskipper (461997) | more than 5 years ago | (#26729463)

Probably start with Drupal on top of the evaluation list. Yeah the usual PHP gripes apply. But coming from a programmer's mindset, the framework always seems to make sense to me. The others felt kludgy in one way or another. YMMV.

Re:migrating from Joomla.. (-1, Redundant)

Anonymous Coward | more than 5 years ago | (#26729551)

Another vote for Drupal.

Movable Type (1)

MikeRT (947531) | more than 5 years ago | (#26729697)

Movable Type Enterprise Edition is probably your best bet. Even Movable Type Open Source is "good enough" for most users, but if you want a CMS that can be integrated into a mostly LAMP stack with the possibility of integrating into a corporate LDAP and Oracle or MS SQL Server, it's the way to go. If you take the time to read over all of the new capabilities for optimizing performance, it can produce some very fast websites and the plugin API is very robust and object-oriented.

In all fairness, I've heard mostly good things about Joomla, so upgrading to the latest version is probably a good move too. I admit that I'm a big fan of Movable Type, but I'm not going to tell you that you shouldn't first investigate whether or not the newest version of Joomla makes more sense before you upgrade something as important as your company website.

Re:Movable Type (1)

Darkk (1296127) | more than 5 years ago | (#26733485)

Latest version of Joomla do support LDAP logins is what we use at work. We even found a template that we like and works well with the overall design.

It's not as robust as the big name websites but for internal employee website use it's good enough for us. I even replaced the crappy default editor with JCK editor which works very well, even sports direct file uploads within the editor! Very nice.

I think with Joomla most people figured it's plug and play. Not entirely true. You have to learn how it really works to get the most out of it. Yes, some cases even hack the code or templates. That's the fun part my boss and I had with it. It really taught us on how to modify code to suit our needs.

Only problem with that if we ever decide to upgrade to version 1.6 we'd have to start from scratch as the hacks we did won't work with it.

We're actually looking forward to 1.6 because we heard it adds more control on who gets to see what in groups as opposed to "registered and non-registered".

Re:migrating from Joomla.. (1)

pembo13 (770295) | more than 5 years ago | (#26729717)

CMS Made Simple really lives up to its name. Much easier to get stuff done than in Joomla.

Re:migrating from Joomla.. (1)

brantondaveperson (1023687) | more than 5 years ago | (#26729725)

www.silverstripe.com - complete with multilingual support as requested.

Re:migrating from Joomla.. (1)

AlXtreme (223728) | more than 5 years ago | (#26729775)

Personally, I really like MODx (did a big deployment some time ago, very flexible and efficient framework) and for very small sites Wordpress still is a good choice. Drupal is nice. If you can't find a CMS that fits the problem, don't be afraid to turn to a framework like Django or CakePHP and roll your own.

A CMS or web framework is useful as long as it doesn't get in the way of the users and developers. IMHO, Joomla gets in your way very easily. Kudos on wanting to do the job properly.

Re:migrating from Joomla.. (1)

brantondaveperson (1023687) | more than 5 years ago | (#26729831)

Modx is great, I love it too and have used it for a fairly large site. However it has two big problems that made me move to silverstripe instead.

1) It stores the php code for the plugins in the database, and forces you to edit them in the browser. This is *horrible* and means you can't use source control with them unless you hack your way out of this insanity with a require statement.

2) The documentation is hopeless.

Oh and (3) the permissions model is weird (but you do get used to it).

Re:migrating from Joomla.. (3, Informative)

Gizzmonic (412910) | more than 5 years ago | (#26729883)

I like Drupal and I'm running it at my job. I am not much of a programmer, more of an admin, but I can make it look the way I want by hacking around with the CSS and such. So far, no one has needed to do anything that can't be handled by modules. Those are easy to install, and they usually play nicely with other modules as well. It's a fine CMS.

Re:migrating from Joomla.. (3, Informative)

siDDis (961791) | more than 5 years ago | (#26730161)

A good CMS to migrate to is Plone. I've been working the last few months with Plone and I love it! Plone is well structured and easy to develop for, the documentation on their site is a bit thin, and the documentation you can google is often outdated. However their IRC channel has plenty of nice peeps willing to help.

Plone has a lot of freely available products which can improve your website and save hours of work.

The application structure in Plone is easily structured. Everything is a module/plugin/product, like for example themes, archetypes, portlets/widgets. Setting up a Plone site is also very easy with the new buildout scripts, they're so advanced that you can build a *clone* a Plone site with all the add-on products without copying/moving any files(except the database). This also includes code you've written and commited to subversion.

Developing html templates in Plone is a joyride. TAL is by far the nicest html template language I've ever developed in. Creating html templates that can be 100% perfectly validated is not very common in other template languages. You write html as you're used to and use html attributes to define where you want to repeat/loop code. Your html code will look like pure html, and not like a mixbag with regular programming code every second line(Django developers are you listening?).

Not to mention that you get to program in a solid well designed programming language and not in a C/Perl inspired template language hack.

But Plone isn't a solution for everything, especially if you need to modify it upside down or you're dealing with enormous amounts of data in the database.

I highly recommend looking into Plone, if you're really stuck in the PHP world then the Midgard Project is also a good world to develop in, except that it's so tied to only MySQL.

Re:migrating from Joomla.. (1)

kidphoton (575170) | more than 5 years ago | (#26744391)

A good CMS to migrate to is Plone. I've been working the last few months with Plone and I love it! Plone is well structured and easy to develop for, the documentation on their site is a bit thin, and the documentation you can google is often outdated. However their IRC channel has plenty of nice peeps willing to help.

Plone is somewhat of a hairball, multiplied by the bits of Zope3 that have been included. If you look up "overengineering" or "java envy" in the dictionary, you will see the Zope3 logo. This is unfortunate because Plone has by far the best UI of any CMS that I've seen. And Zope2, while somewhat wooly, had some very interesting ideas in it. I would really like to like Plone, but even creating a new skin is a major undertaking, requiring the special buildout tools, and learning their special dictionary of CSS tags. It's very "One True Way". I'm not building a cathedral, just a website. I think a better tool in most cases is Django. The chief advantage is that it is less tightly coupled, making it easier to integrate other python products and just generally making it more approachable. YMMV.

Ancient Joomla? How about 1.5? (1)

Qbertino (265505) | more than 5 years ago | (#26730199)

You say its ancient, so I presume it's a 1.0.x variant. How about just migrating to the 1.5 branch. It is a complete redo from the ground up.

Re:migrating from Joomla.. (2, Informative)

micheas (231635) | more than 5 years ago | (#26730361)

You might look at Joomla 1.5. Unless the migration is going to take a while in which case look at Joomla 1.6.

The amount of shared code between Joomla 1.0.x and 1.5.x is extremely small.

Joomla 1.5 has a very nice MVC framework that was written because of the performance problems they were having with cake. (Cake does somethings really well, but the rewrite that would be needed for Joomla to work well on Cake inspired the Joomla developers to write their own framework.)

The foundation of Joomla 1.5 is really nice. Don't let the 1.0 code scare you away from migrating to 1.5.

Plone is really nice if you have the hardware and are willing to deal with the smallish community.

Drupal is really nice to code on althought the difference between joomla 1.5 and drupal 6 is not that huge, Drupal does use jQuery as it's native javascript library which is nice.

Look at wordpress just because if it meets your needs it will save so much time.

My favorite for multilingual sites are plone and Joomla.

Joomla! big strength is complete control of the view with template overrides.

Mediawiki works, but it is a bit of a pain to do graft the template on.

Personally I would advise porting to joomla 1.5 on a test server taking note of everything that doesn't work as you would like, and then feature shop other content management systems.

Drupal, Joomla, and Plone can all do more or less everything with custom extensions. The question is which one is closest to your needs out of the box.

Re:migrating from Joomla.. (0)

Anonymous Coward | more than 5 years ago | (#26734993)

"Joomla! is evil" type of comments aren't very informative for people trying to find the correct CMS for their needs.

Apparently Joomla! is more of a problem for designers than it is to developers? If the UI isn't intuitive, then gut it to suit your needs?

Large user base might also mean that you might actually get outside support (commercial or free) if the need arises?

And the large amounts of extensions is also good, if you don't have the time to do everything by yourself. (Though some of the extensions seemed to be of a bit bad quality on a brief glance.)

So, it doesn't seem to be a simple task to find the correct CMS. But if something is supposed to be bad for you, please explain exactly WHY it is 'evil'. :P ...and why your pet system is better. Like the comment above

Re:migrating from Joomla.. (1)

Swampash (1131503) | more than 5 years ago | (#26731617)

Whats good CMS to migrate from Joomla? Our corporate website is about to get full overhaul and I'd perfer to switch away from the ancient Joomla we're running now. I won't touch the design of the site, I'll leave that to the advertising company, but what I'm looking for is easy way to create and manage content on multilingual web page. Can someone suggest good alternative? Of course, it depends what your requirements and what your capabilities are. Based on my own experiences I'd go with either Wordpress, Movable Type, or Drupal depending on which worked best for the project at hand. Wordpress is insanely easy to set up and style; some of the best-looking sites I've ever seen are Movable Type installations (e.g., barackobama.com) and it's super-easy to administer; Drupal has all the bells and whistles and can be modified to do almost anything. I guess the best thing to do is set up a dev box, install lots of CMSs, and get familiar with a range.

Good Book (2, Informative)

Frosty Piss (770223) | more than 5 years ago | (#26729531)

This is a good book (which I have) that walks you though building a complex multi-part Joomla component. All the code works and is non-trivial. My only complaint is how LeBlanc deals with interacting with the core Joomla classes. Joomla recommends building components with classes that extend the core classes, while LeBlanc does not do it this way, he builds his own functions outside that structure. But if you're looking for a great learning tool that doesn't dumb down the subject and has copious code samples, this is it. A more general reference that is also comprehensive is Mastering Joomla! 1.5 Extension and Framework Development [packtpub.com] , by James Kennard, same publisher.

WARNING: LeBlanc has a previous edition of this book, same title, which is WAY WAY WAY out of date, but still on sale at Amazon and the publisher Web site. You have been warned...

Re:Good Book (1)

DiegoBravo (324012) | more than 5 years ago | (#26731797)

> . In fact, one of the most common complaints about the first edition was its small size (176 pages).

I'm not telling the reviewer is lying, but it seems pretty strange to me why people would want to read an 800-page-brick for something like Joomla. One of the things I found more value in a well written book is when it can provide a lot in less pages (for the rest, there is the Internet.)

100 pages (with references to the web for the details) are more than enough for most software topics. I think that's the main reason for the software book/magazine debacle usually commented: people goes to the web because of up to date 5-page quick tutorials that get you running (albeit with bad writing style or other minor caveats.)

Yeeehaw (0)

Anonymous Coward | more than 5 years ago | (#26729827)

First :p

no security, no thanks (4, Insightful)

Eil (82413) | more than 5 years ago | (#26730201)

I'm dismayed to hear that there's not a chapter on how to write your extensions securely.

I work for a web hosting company with tens of thousands of customers and whenever I investigate a server that's been successfully attacked (and thereafter vandalized or used for spamming), about 50% of the time I can trace back the intrusion to an exploit in an insecure Joomla or Mambo extension.

Seriously, if you're going to use Joomla, do your web host a favor and NEVER use any third-party extension with it unless you can personally vouch for the competency of the programmer who wrote it. Of course, this advice is applicable to about any code you would run that has privileged access to your site or data, but so many people just throw caution to the wind when it comes web applications add-ons.

Re:no security, no thanks (1)

Darkk (1296127) | more than 5 years ago | (#26733583)

My site is being hosted by powweb.com and I've used their installer to install Joomla for me. Problem is the installer contains an outdated version of Joomla so what I did was I simply FTP the updated files over to my home directory and made sure the file permissions are correct. This allowed me to update from 1.5.6 to 1.5.9

I only have one module running to run my gallery and locked down the module access to only myself can admin it. Nobody can upload anything unless they e-mail me the pics to me so I can post it.

Pretty secure to me.

I think your company should post some examples on how to secure their website from attacks. Have them ask for help if they need it.

Re:no security, no thanks (1)

Eil (82413) | more than 5 years ago | (#26760769)

I only have one module running to run my gallery and locked down the module access to only myself can admin it. Nobody can upload anything unless they e-mail me the pics to me so I can post it.

Pretty secure to me.

Not necessarily. What you did was secure it through configuration. When I talk about exploits, I mean bugs or bad coding in the extensions that attackers use to gain access to the whole account. Mambo and Joomla themselves are moderately secure themselves (as long as you keep them up to date) due to the "many eyeballs" effect. The third-party extensions, however, tend to be far less widespread and are therefore a favorite target of scripts kiddies. The code is popular enough to be easily located by Google or crawling, but not popular enough to have been seen by enough PHP experts.

I think your company should post some examples on how to secure their website from attacks. Have them ask for help if they need it.

Most of our customers are the types who want flashy websites for their businesses and barely have the minimum required technical skill to configure a site and post content to it, let alone figure out how all the stuff underneath works. Understanding good security practices is just way out of their reach. For all intents and purposes, our support team act as surrogate webmasters for these customers.

Re:no security, no thanks (0)

Anonymous Coward | more than 5 years ago | (#26734547)

Just adding a "me too":

I also work as a sysadmin for a hosting company, and joomla/mambo with dodgy extensions make up a very large percentage of the sites we see successfully exploited.

Joomla! (0)

Anonymous Coward | more than 5 years ago | (#26730389)

WTF is a joomla.
Slashvertising strikes again.
Web 2.0 can suck it.

Re:Joomla! (0)

Anonymous Coward | more than 5 years ago | (#26731839)

Hmmmm.... If only there was a website that I could type things like "joomla" into and get links to other pages that would have information on it.

Some way of searching websites. A search "engine" if you will.

Use Wordpress instead (2, Interesting)

exhilaration (587191) | more than 5 years ago | (#26730589)

So I was building a website for a local organization and I decided to use Wordpress [wordpress.org] , which is generally known as a blogging tool. Installation took a few minutes, browsing through the themes to find something really cool took about an hour. Then I found that when I created a page, it would automatically get added to the top menu. When I added subpage, it would automatically create a dropdown menu, with the subpage. So not only do you get the best blogging platform out there with Wordpress, you're also getting an easy to use CMS.

Re:Use Wordpress instead (1)

Anonymous Showered (1443719) | more than 5 years ago | (#26730779)

I second this. Add the caching plugin to your site and you're ready to serve Slashdot.

Are you people crazy? (1, Interesting)

Anonymous Coward | more than 5 years ago | (#26734509)

Joomla! is terrible, and you're recommending Drupal as an alternative? Drupal is just as bad, if not worse. A CMS should never generate or prescribe it's own markup. EVER. If you're working with designers, they give their own semantic labels to ids and classes in their HTML/CSS deliverables and when you have a content management system that wants to call everything node-2 or node-3 you're screwed. Unless you're an auteur (developer/designer) who has good visual skills and can work with horrid PHP at the same time, you're screwed. NO. Hate Drupal. And Plone? Just as bad. Portal systems are designed by developers and completely kill good website design by virtue of their everything's a goddamn portlet mentality.

You want a good CMS? Such a thing doesn't exist. You want a good content management framework? Pick Django. It's as good as you'll get. I've been in this industry twelve years and it's the closest we've come to a decent starting point. Full disclosure: I have no affiliation with Django at all, it just rocks. Hard.

Re:Are you people crazy? (1)

Monoman (8745) | more than 5 years ago | (#26735655)

Django looks very cool but it is not a CMS and should not really be compared to them. From the Django FAQ:

Is Django a content-management-system (CMS)?

No, Django is not a CMS, or any sort of "turnkey product" in and of itself. It's a Web framework; it's a programming tool that lets you build Web sites.

For example, it doesn't make much sense to compare Django to something like Drupal, because Django is something you use to create things like Drupal.

Of course, Django's automatic admin site is fantastic and timesaving - but the admin site is one module of Django the framework. Furthermore, although Django has special conveniences for building "CMS-y" apps, that doesn't mean it's not just as appropriate for building "non-CMS-y" apps (whatever that means!).

Lack of skill (0)

Anonymous Coward | more than 5 years ago | (#26734609)

It's simply lack of skill and motivation if you can't get Joomla to work. Nothing else.

I've been building dozens of Joomla sites and dozens of custom extensions for it and i wouldn't even consider myself as a programming nerd.

You can build everything with Joomla. But you need to get a good understanding of CSS, PHP and actually the motivation to devote the time to learng the Joomla framework and the extension directory.

If you just want to build a website for your gaming clan or something like that you will find other CMS that are 100 times easier to set up. But if you want to build something professional then Joomla just gets better and better.

My advise would be to invest the time getting the hang of Joomla and then start earning money with it!

Even the premise of the post is wrong. (0)

Anonymous Coward | more than 5 years ago | (#26737545)

"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."

There are some great CMS' out there that give you "the kitchen sink". Sure they also give you API's and there are third-party plugins available, but who wants to deal with that mess, unless I suppose you're a huge company with lots of $$$ to waste developing/integrating all that code. One of the better ones I've seen is WebGUI [webgui.org] . It has content publishing features, community features, e-commerce features, intranet features, and a whole lot more out of the box. And what's more, you can template every one of those features right from the user interface...no programming necessary.

Joomla Extensions Development Progressing fast. (1)

hamanaka (894048) | more than 5 years ago | (#26742391)

I think that Joomla has incredible capabilities with component and 3rd party integrations. I disagree with wordpress, plone, or drupal being better platforms in most cases. Joomla is extremely extensible, and security is manageable. Joomla 1.6 is soon to be a reality and many users will have incredible tools available with just the need to implement anything to acoomplish nearly any information based goal. Extension development is definitely in it's infancy having the last 25% of the extensions developed in the last 8 months or so. by the end of 2009, it wouldn't surprise me to see 10,000 open-source extensions. The true money-maker for extension developers is to find customers who need even more functionality in already existing modules, plugins, components, etc. In the coming years we should begin to see a higher quality of extension integration with site content. As well as the increase in extension specific addons.

Joomla is great... just one "small" issue... (0)

Anonymous Coward | more than 5 years ago | (#26745667)

Its written in PHP... Personal Home Page pseudo imitation of Perl. Why not using the original Perl script? Eg. like her on shashdot, http://www.metadot.org or http://www.web-app.net

Perl is safer, faster, more serious for professional applications and usage and not to mention the unbeaten collection of addons on http://www.cpan.org Perl has been out there longer, it is therefore challenged longer, with better documentations and less bugs!

Check for New Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Create a Slashdot Account

Loading...