Monthly Archives: January 2009

TinyMCE for Plone: A quick review

I’m very excited about Products.TinyMCE, the new add-on product for Plone by Rob Gietema of Four Digits that integrates TinyMCE, the popular open-source graphical HTML, into Plone.

Background: Since Plone 2.1, released in 2006, Plone has shipped with an excellent graphical HTML editor called Kupu.  Kupu was a mature, capable product long before TinyMCE was a glimmer in its developers’ eyes, and Plone’s “batteries included” approach to bundling a high quality, cross-platform graphical editor is still a solid differentiating factor.

Of course, this being open-source, some people prefer alternative graphical editors.   There’s long been a decent integration of the unfortunately-named FCKEditor.  And the crew at OpenPlans have wrangled Xinha into Plone as well.  But, in my opinion, there’s never been a competitor to Kupu that equalled its features and improved on its usability.  Until now.

Here’s what I particularly like about Products.TinyMCE:

  • It gets the “Link” drawer right.  Kupu has two separate drawers, one for internal (inside your site) links, and one for external links.  That’s confusing and awkward for users.  TinyMCE combines these into a single drawer, and raises Kupu by adding point-and-click support for mailto: and https: links and control over whether links open a new window.  The overall design of the drawer is a lot cleaner and it feels a lot more responsive.
  • Similarly, Product.TinyMCE’s “Image” drawer is also a nice improvement.  Its features are basically equivalent to Kupu’s, although its support for image captioning is a bit cleaner.
  • Product.TinyMCE’s support for creating and editing HTML tables is pretty solid.  This was always a weak area for Kupu, and a very difficult task for any graphical HTML editor.
  • Products.TinyMCE handles Flash embedding in a clean and user-friendly way.  Flash embedding is possible in current versions of Kupu, but often feels a bit awkward and unreliable.
  • TinyMCE is a lot easier to extend with custom code than Kupu.  At least that what David Glick tells me.  ;-)

Nothing is perfect, though.  Here are a few areas where Products.TinyMCE is not quite up to Kupu’s high standard.  Some I know are already on Rob’s list, so I’m hoping to see them in the next release soon. :-)

UPDATE: TinyMCE 1.1RC is out, and addresses most of my suggestions below, except for Plone 2.x support. Try it, it rocks.

  • Search support in the Image and Link drawers.  Kupu lets you search your site content in the insert Image and Link drawers.  That’s an incredibly powerful and useful feature, and it’s not there in Products.TinyMCE.  I know it’s high on Rob’s to-do list, so I’m sure this oversight will be remedied soon.
  • Kupu has a nice feature where you can link directly to an anchor tag in a page your Plone site.  Products.TinyMCE can link to an anchor within the current page, but not to an anchor on another page.  This is not a feature I use often, but it can be handy.
  • Kupu has a nice feature for automatically assigning anchor tags to heading styles, and managing them.  Products.TinyMCE doesn’t seem to have equivalent functionality.   Again, this is not a very frequently used feature, IMHO.
  • Kupu works with both Plone 2.x and Plone 3; Products.TinyMCE only works with Plone 3.  That’s probably not a deal-breaker, but worth noting if you’re thinking about a switch.
  • There’s a “save” button to save your draft without leaving edit mode; it works, but there’s no visual feedback to the user.

We’re about to start testing Products.TinyMCE with some of our users, to see if, like us, they think it’s more pleasant and powerful than Kupu.  If that pans out, we’ll likely start rolling it out across our Plone 3 projects.

And, one more thing…

One thing that would really help deployment of Products.TinyMCE on exisitng sites would be a script that could be triggered by a site administrator that would walk through all users and change their preferred editor to TinyMCE (or change it back to Kupu).  This could allow site admins to roll out a new editor without having to ask every user to manually change their preferences.   That would be a really great convenience that could really boost adoption.

My favorite Obama quote

“With old friends and former foes, we will work tirelessly to lessen the nuclear threat, and roll back the specter of a warming planet.”

- President Barack Obama, Inaugural Address

Wow, he just drew a parallel between climate change and nuclear war.  And you know what, he’s right.  Both are fundamental, existential threats.

I’m so happy to have an administration that understands this and will act accordingly.

links for 2009-01-21

  • Michael Delli Carpini, a scholar of civic life and the dean of the University of Pennsylvania's Annenberg School for Communication, has noted, "Civic engagement has become defined as the one-on-one experience of working in a soup kitchen, clearing trash from a local river or tutoring a child once a week. What is missing is an awareness of the connection between the individual, isolated problems these actions are intended to address and the larger world of public policy." To enshrine what is in effect institutionalized volunteerism in a federal program could very well end up merely reinforcing the idea that acts of kindness, random or not, rather than governmental action, are the solution to society's ills.

ImageEditor 1.0 for Plone is out

Nathan Van Gheem has put out a 1.0 release candidate of ImageEditor, his fantastic image editing add-on product for Plone.  ImageEditor implements a slick, easy-to-use image editor inside of Plone.  ImageEditor lets Plone users quickly and easily resize, crop, sharpen and compress images they’ve uploaded without Photoshop.

A short screencast is worth a thousand words of description, so here you go: ImageEditor in 2 minutes.

Thanks, Nathan, for all the work you’ve put into making ImageEditor rock!  I can’t wait to start using it with all of our sites.

Obama starts a grassroots lobbying group via DNC

It will be very, very interesting to see how Obama’s new “Organizing For America” effort, run through the DNC, plays out.

The new group, called Organizing for America, will be a “special project” of the Democratic National Committee, according to Obama transition spokesman Ben LaBolt, and it appears to be the primary vehicle for issue advocacy for Obama’s agenda. It will also be the keeper of Obama’s e-mail list, which has 13 million addresses.


The DNC has not exactly been a hotbed of authentic grassroots organizing, but perhaps Obama can transform it.

In addition, I wonder whether this new effort will push independent progressive groups like MoveOn to the sidelines or starve them for resources/attention.

links for 2009-01-14

Brainstorm: Improving user management in Plone

The internals of Plone’s user & groups system got massively upgraded in Plone 2.5 with the inclusion of PAS (Plugabble Auth System).  Behind the scenes, we now have an impressively powerful, extremely flexible system for managing the entire authentication system.  It’s a great foundation. But while the foundation is sound, the more external-facing parts of the system could use some freshening up.

Here are what I see as the main problems facing site administrators and integrators:

  • Poor usability of user/group administration screens for site managers.  Think of how much we streamlined the “Sharing” tab from Plone 2.5 to Plone 3.  We need a similar effort here
  • It’s too hard to customize  member profiles — it requires changing lots of scattered forms & scripts.  Membrane and Remember offer a path to using Archtypes objects as member/group sources, which is a good idea.  But we can (I think) do even better soon.
  • User registration and user administration both use the same join_form.  That is somewhat inflexible.
  • Password confirmation/reminder messages have some rough usability edges.
  • Deleting users can orphan content they’ve created without an owner — need a way to reassign a user’s content objects when deleting the user.

Users & Groups in Plone 4: My vision

I think the key elements of Plone 4′s users & groups story could be:

  1. Dexterity-powered membership objects (“Membrane NG” if you will)  and reimplemented user management UI so it is powered by these Dexterity objects (“Remember NG”)  This should be Plone’s OOTB story.  This will give us easy user/group profile configurability.  Users are just content objects.
  2. Big usability cleanup to user management UI.
  3. Use PFG (or its Plone 4 successor) to create public user registration/profile forms

Other ideas

  • Include LDAP support out of the box (included but disabled) — review its usability so it is as easy as possible to configure.
  • We probably need a better story for attachig to a SQL source for user/group data.  (Problem with SqlPASPlugin is that it stores all newly created users in SQL, there’s no choice to store some users locally.)   Such a system probably needs to be made to use SQLAlchemy at its heart.
  • Password strength requirements w/ interactive feedback.
  • Through-the-web customization of registration confirmation and password reminder emails.
  • We need a really good tool for importing memberlists via CSV

Ok, that’s my first brain dump.  What’s on your mind?  How should Plone’s users & groups system be improved?  And more importantly, who can step forward as a champion for this important but often-neglected component?  This is a big opportunity to take ownership of a critical piece of Plone’s future.