Joomla is a fantastic piece of software that has revolutionized the way I design websites and has exponentially increased the services I can offer my customers. Yet one of the first things I discovered while learning it was the absence of a simple way to define custom fields for content. Joomla is a content management system and as such, this would be one of its most logical next steps.
There are many uses for custom fields. One example would be an art gallery. Definable fields might be artist, medium (oil, watercolor…), size, date painted, exhibit location, etc., etc. Having these fields separate from the article body would allow non-designer content editors to add this information in a more logical, clear way. Furthermore, the information will populate into the template setup by the web developer without worry that a non-designer might not successfully follow a desired layout in the WYSIWYG (i.e. not screw things up). Lastly, the fields should be searchable, giving powerful new search possibilities.
There have been several discussions in the forums about adding custom content types, and it seems to be a popular request. Here’s an example of a thread: http://forum.joomla.org/viewtopic.php?f=38&t=200571
(don’t mind the slightly demanding title
There are several commercial components, but no GPL (that I’m aware of) that have this type of function. Joomsuite Content is one of them: http://extensions.joomla.org/component/option,com_mtree/task,viewlink/link_id,4021/Itemid,35/
The problem with these commercial components is twofold. First, they often violate the GPL and only allow only one installation per license. This can be very costly for a Joomla developer who develops multiple sites. Secondly they are proprietary and may or may not work together with other Joomla components/plugins. SEF URLS quickly come to mind here.
I believe that a good universal solution for custom fields/content types will bring Joomla! to a whole new level.OVERVIEW
As it stands right now, there is only one definable content area managed by a single editor, per article. It would be great to add an interface for adding new form elements into the back end that would be included with articles.
This will probably require its own mini-control panel. Different screens will be needed to create the content types and to define their available data (when appropriate). These content types could be defined as text areas, dates, dropdowns, etc. For each field, an administrator can define any available or default content as needed (for example choices in a dropdown menu, or a date range).
The current article interface will need to be modified to display the custom fields. Optionally but in the ideal world, the front end editor will also display the custom fields. Once the new content types are defined, they would be available in the article editor as available fields, separate from the main editor.
The ability to control their arrangement /order (at least in a limited way) for the front end is needed. This could be in the form of a “custom field manager”, which could function similarly to the article manager but for fields.
A plugin(s) would need to be created to make the custom content fields searchable.IMPLEMENTATION
In the above mentioned thread it is suggested that Drupal has an add-on called CCK which allows custom content. Perhaps the Joomla component can be modeled after it…?
This is a fairly complex component and may have to wait until Joomla 2.0, unless there is a lot clamoring for it (I hope so!!!). It will probably need to be developed as a whole and not divided into multiple releases, although functionality could be added over time. IMPACTS
As firstly a designer and secondly a programmer, impacts are not really in my department
. But I’ll theorize that this may add some SQL queries, though the performance overhead will be slight. It should depend mainly on how many fields are added.FINAL THOUGHTS
If you’re interested in this, please place a comment so the developers can tell how much you would love it. I'm sure especially for those of you that are more designer than hardcore programmer, you can see how many possibilities this can open up. Also, I’d be the first to concede that this white paper isn’t perfect. Feel free to add your thoughts.