Archive for Web

dotCMS 1.9 Upgrade Preview

// October 23rd, 2009 // 8 Comments » // Software, Tech, Web

The upcoming dotCMS 1.9 update is still at least about a couple months away from release (give or take), but the current SVN trunk code is already starting to shape up with a lot of the upcoming enhancements.  After testing out some of the new code, I thought it’d be worthwhile to share some screenshots and descriptions of what to expect, because it’s not a little change by any means.  The current release of dotCMS is 1.7a, with a 1.7b maintenance patch currently on the roadmap sometime soon.  1.8 is not being skipped, but instead, because of the number of changes that were slated for 1.8 and how they tied to 1.9, they’ve just rolled the whole series of updates into one big 1.9 upgrade rather than have two important updates come close together.  1.9 is likely to be the final big update before 2.0 (at least according to JIRA currently).  So, the future currently looks like 1.7a -> 1.7b -> 1.9 -> 2.0.

If you want to try out what I’m describing below, the code is available in SVN (linked above, username and password both dotCMSUser).  I recommend using it with a PostgreSQL database, as that’s what they develop on, and other databases might not be fully tested yet.  I want to serve up an initial warning too, that this code is absolutely not ready for a live environment.  I don’t mean that from a casual, you might hit an esoteric bug here and there way – I mean it in a you can’t run a web site on this code yet way.  There are a number of features coming that I couldn’t preview yet (like binary content fields in structures and some permissions options), because they flat out aren’t working yet.  I hit a number of areas with those kinds of problems, so keep that in mind if you want to try it out; still very alpha and still very under construction.  But, it doesn’t hurt to familiarize yourself with upcoming changes, since if you’re like me and running a huge site in it, it can be helpful for planning your upgrade path.

One of the big, less visible changes was moving to the Dojo framework for all the Javascript stuff done in the back end.  This is readily visible when you go to log in, as the login block is now a modal window, and you get a nice login progress bar as the back end loads.  This is just shouting for the addition of Google Gears support (a  la WordPress. I actually started work trying to build in Gears to an earlier release, but had trouble with the amount of Javascript used in the back end).  Even lacking Gears, the back end is noticeably faster and more responsive to the user.  This may have other repercussions if you’re a heavy Scriptaculous user, but I don’t know yet, so just be aware that they are moving on to a different framework for the future.  But more to the point…

Website Browser…holy crap it’s different!  Indeed, the whole admin interface has been redesigned and also made i18n compliant (that should make you international folks really happy).  This is similar to the change that took place when the page preview area was redesigned for 1.6.5.  Navigation wise, everything is still very much the same, so you don’t have to anticipate relearning everything luckily.  Basically it’s just got a new skin over the top to make everything look nicer and navigate better.  But, if you have a lot of lower level users, you’ll certainly want to brace them for the change, since just looking different might confuse them, even if stuff is relatively in the same place.

Content SearchThe content search page is a good example of the updated look, but it’s still very much familiar when compared to the old layout.  Same search boxes, same basic results table.  Some things like the “Show Query” button have moved to a more useful location.

Syntax HighlighterSo,  you can add content the same old way, and the familiar TinyMCE interface is there.  But gone are the Text and WYSIWYG tabs at the bottom edge of the field, replaced by a WYSIWYG toggle button.  Click it.  Do it.  I DARE you.  Yes, that is just what you think it is, the old, plain “text” mode has been updated to include a syntax highlighter and line numbers.  I think I’m crying right now, I’m so happy.  This definitely ramps up the usefulness of the text editor several degrees, and will make editing VTL files so much nicer.  Hopefully this is implemented everywhere you have code editing fields.

PermissionsStructure PermissionsRole Permissions

One of the most substantial changes was to the permissions system.  Gone are groups.  Instead, roles now control everything, and they are hierarchical.  The role manager has been completely updated to reflect the changes, and allows you to list users by role (yes!).  You’ll also see improvements to how permissions work related to different parts of the system.  The 3 factor (view/modify/publish) permissions have been dropped in favor of task specific permissions, and also user specific permissions as well.  One thing that I’ll be interested to see is how the upgrade process handles converting groups into roles and maintaining things coming from 1.7a sites, especially large, complex ones.  I envision this being an opportunity though to redo permissions in a much more efficient way.  It’ll be a lot of work I expect, but well worth it.  Be sure you keep this change in mind when upgrading, since it will have probably the most profound and widespread impacts to how you work in the CMS (Content Management System).

Form ManagerOne of the other big changes is the addition of a form manager.  Instead of the complicated, inflexible form submission process used currently, a new structure type has been added that combines with front end content submission.  That makes three different structure types (content, widgets, forms) to choose from now, and greatly enhances the collection of data from users to repurpose elsewhere.  Now you also can leverage all the power of structures for data collection.  Like permissions, converting to the new system will involve a lot of work, especially if you have a lot of forms, but it will likely be well worth it, since it makes nearly every process of form use easier and more powerful.

That’s your initial look at the system.  I’ll do a more thorough review once the code gets closer to a beta release and is more functional.  For now though, I think it’s clear that this coming update is one of the biggest, if not the biggest update that we’ve seen for dotCMS to date.

dotCMS Cheat Sheet Released

// September 16th, 2009 // 4 Comments » // Software, Web

dotcmscheatsheetHey everyone.  Just a quick hello to let you know that I’ve put some work into releasing a dotCMS Cheat Sheet for everyone to print off and use as a quick reference for a lot of basic tasks and variables.  This is up to date with the latest 1.7a open source release.  I hope to do a more advanced cheat sheet later to follow up this one.

If you like the cheat sheet and want to say thanks, please consider buying me something from my Amazon Wishlist or making a donation via PayPal below. Thank you very much those of you who have been supporting the effort I put in to dotCMS!


Download v1.0 of the sheet here

Follow me on Twitter for more updates! Also feel free to leave comments and suggestions for modifications to the sheet. I’m already working on revisions to the current sheet, and a more advanced sheet.

Two dotCMS Plugins Released

// March 11th, 2009 // 5 Comments » // Software, Web

With the plugin architecture in dotCMS launched with the release of the version 1.7 release candidates, several of us are getting started testing out the water.  To get things started, I’ve released two plugins this week you can download and install.  Nothing huge, but hopefully helpful to some folks.

XMLTool Plugin

Example of the reCAPTCHA

Example of the reCAPTCHA

The XMLTool plugin creates a view tool that gives you access to the Apache XMLTool class so that you can import and parse XML data into an HTML page.  This allows behavior similar to XSLT (eXtensible Stylesheet Language Transformation), so that you can manipulate and transform the data in an XML document into XHTML.  All you have to do is drop it in and deploy it to get access.  Full details, download, and an example can be found in the forums.

reCAPTCHA Form Verification Plugin

The second plugin is integration of the reCAPTCHA API (Application Program Interface) into the form handler so that if you don’t like the built in captcha generator, or prefer reCAPTCHA’s, you can use it with this.  It creates a new Struts action and macro, combined with a modified version of the submitWebFormAction class.  As with the XMLTool, download, example, etc at the forums.  This takes just a couple changes to a form to use: you need to point the form action to /dotCMS/submitFormRecaptcha and drop the recaptcha() macro somewhere inside the <form> tag.  Additional documentation is in Macro Help after you deploy it.

If you’re using dotCMS, give the plugins a download and try, and let me know what you think.  Also let me know if you have problems.  I am aware that the XMLTool complains about its scope at startup.  It will run normally though, but I am trying to see what’s up with the scope to correct that warning.

dotCMS Plugin Joyfulness

// February 6th, 2009 // 2 Comments » // Software, Tech, Web

After some trouble fighting wih OpenJDK vs the Sun JDK, I’m ready to get my brain soaked with information on the upcoming plugin architecture in the 1.6.5c patch here at dotCMS Boot Camp.  Note on the previous comment: don’t use Open JDK, save yourself some trouble.  If you are interested in plugin development, be sure you’ve taken some time to familiarize yourself with Eclipse, and obviously you need to be familiar with coding in Java.  Plugins in dotCMS finally allow customization of the codebase without having to go in and edit core files for your system.  This will help make updates in the future substantially easier, as the core engine never has to be changed.  This is the same model most other open source systems use (think WordPress, Joomla, Drupal, etc).  These other systems can be extended through plugins without ever doing anything to the system itself, so when you update, you don’t have to worry about needing to merge hundreds of lines of different code.

If you want to get started until the C patch is out, just grab the codebase from the testing branch on SVN.  Also, if you use Ant in Linux, make sure you get the ant-optional package as well.  The Ant tasks are smart with the new setup, allowing you to completely override default actions in the system, like if you want to create your own form action that uses /dotCMS/submitWebForm, the process of building out the plugin will override the default actions in that Struts path.  If you want information on all the Ant tasks available within dotCMS, just run ant -p.

So, what can you extend with the plugins? Plan on being able to mess with macros, Struts actions, viewtools, language files, web.xml, Hibernate, and property files.  Create tables, add fields to structures, and allow for plugin version checking.  Basically all in all, a tool that’s gonna see a ton of use.  You’ll also be able to tie into hooks for content.  Right now that’s the only one, but more will be added as needed.  Something else that will be very useful is deploying all your server settings as a plugin, instead of changing config files and having to update the settings every time you do an upgrade.  Or, if you were moving servers, or going from a test to a live server, you can just lift the settings plugin you create and drop it right where you need it.

Plugin functionality can be downloaded over SVN from https://svn.dotcms.org/branches/releases/1.6.5 if you want to get in and start playing with it.

AJAX (Asynchronous Javascript And XML).  There was a session on using AJAX with dotCMS involving DWR and EXTjs.  Really, the most important thing I came away with is that I’m not doing AJAX that way.  It’s simply too involved and I don’t personally have the time for it.  But that’s just my opinion.  Chris Falzone of Edinboro had a pretty simple solution involving jQuery tied to a page that just processed queries with the SQL macro.  That is a pretty painless, and easy method of essentially accomplishing the same functionality, and do so with far less JavaScript.

Okay, everything gets rounded out today with a talk on the future plans for dotCMS.   Some of the 2008 milestones: 1.6.0 and 1.6.5, the calendar, widgets, eCommerce, low level optimizations, simplified install, starter site, and the documentation site.  For 2009, some of the goals are: release of enterprise vs. open source branches, plugins, and release 1.7 (which will debut the plugin architecture and officially fork the enterprise and OS branches) and 1.8 (another note, dotMarketing is aiming on 2-3 version updates a year, with 6 months being the longest they plan on having between releases). 1.8 will introduce binary content for structures, improve functionality of the owner field, automatic content saving/drafting (in case your computer crashes in the middle of editing, etc).  Another goal: permission simplification.  It will, of course, retain the power and granularity, but adds in the power to group edit and improve the UI for working with them.  Look for improvements to multi-site hosting, mostly in terms of UI for people who might be hosting hundreds of sites in one instance of dotCMS.  They are working on push publishing, which will add the ability to send rendered pages off to other servers, as well as do things like clone one dotCMS server to another.  There are plans for several improvements to forms: new handling options, action chaining, etc.  Expect improvements to web services to extend the system.

Oh hai gaiz, Im in Myamee!

// February 5th, 2009 // No Comments » // Software, Tech, Web

Guess what?  It’s dotCMS conference time again.  Good times.  I have traveled well, and am ready to do some liveblogging.  For what it’s worth, this year it’s more of a training conference, and I’ll be in the developer sessions.  I’ll pass on info as it’s useful, and will follow up in the end with some of the most useful things they showed.  They also changed the format this year, it’s a little smaller, and rather than being more of a show and tell conference, they’re trying to cater to more of us returning users with this involved how-to stuff.  Looking forward to it.  And to give you a taste of what’s to come, tomorrow is all about the plugin architecture.

PICT1754

I’d like to take a second to remind everyone that you can always join us in the IRC room, or on the mailing list, and there’s also the forum if you ever need help.  I’ll have a Flickr set started soon too.

Getting started this morning in the structures and relationships session.  I’ll try to limit updates to the time when we’re in breaks.

There are three different types of structures to be aware of: content, system, and widget structures.  Content structures are your normal, regular use structures.  System structures are ones that are built into the system, like Web Page Content, and Events, that tie into how the CMS (Content Management System) actually functions, so you can’t delete them.  Widget structures allow custom, dynamic elements, and are frequently used for creating a UI for macros (and as a result, are awesome).

Setting up a structure gives you the ability to tell the system what page to use for a detail page.  This detail page should be designed to pull in the content inode to display it.  This is important for use of things like the permalink macro (or trackback macro).  You can also set up a default review time on content.  This is good for anything that can be time sensitive, but should be used sparingly in my opinion, lest you get inundated with alerts to review content.

Some notes on fields: text fields are limited to 255 characters.  Text fields are the standard, one line fields, similar to what you use on forms for names and addreses.

Ate lunch.  Chili’s sucked, as normal.  I’m pretty sure I’ve never eaten at a Chili’s and been the least bit impressed.  Andres is going to go over setting up dotCMS an the Amazon EC2.  Basically, this is a way to host or set up a dev instance that can be a cheap alternative to a hosted site.  The pricing can be cheaper or more expensive than normal hosting, mostly depending on usage.  If you are looking into this, the ElasticFox plugin for Firefox is a must have for managing your servers once you’ve signed up for an account.  It is not recommended to run a site using a small instance to run anything besides a basic test server.  Small instances run ten cents an hour.  Any real site should look into large instances.  Using elastic IPs, you can point a domain name at your instance to use an actual domain name with the hosting on EC2.

For interested parties, I got a set up on Flickr for photos from the conference.  I totally have to give them credit on the conference swag too, the duffel bag was an awesome touch.