Custom widgets for IBM Connections v.5.5 and what the “themes” attribute mean

Starting with IBM Connections v. 5.5 a new required attribute was added to the widgets-config.xml file that controls how widgets are rendered for Profiles and Communities. IBM addresses the issue by referring to a technote (Custom widgets not displaying correctly after migrating to IBM Connections 5.5) that mentions just adding an attribute. The fact that simply requiring customers to add static text is lunacy for a product – if you need something where a static text will do for most cases and it’s not there then simply assume the value. Don’t break installations because some developer or product manager didn’t think… End rant…

Anyways – I looked into this for the OnTime widgets and it turns out that the “themes” attribute actually points to WebSphere Portal themes and control where a user may drop widgets. Starting with IBM Connections v. 5.5 users may not only drag’n’drop widgets up and down in the center column but also move widgets to the left and right column. Furthermore with the addition of custom layouts (“Change Layout” for the community owners) a new “banner” location has been added. The banner location stretches from left to right above the right column giving the widget as much horizontal space as an iWidget shown in fullpage mode gets. The value of the “themes” attribute is described by IBM to contain the following values: wpthemeThin, wpthemeNarrow, wpthemeWide and wpthemeBanner, The image below describes there locations in the UI (click the image for a larger image):

So the attribute is actually quite interesting. Adding the “themes” attribute and setting it to “wpthemeWide wpwhemeBanner” I can actually control what the OnTime Group Calendar widget (shown center in the image above) may only be in the “wpthemeWide” and “wpthemeBanner” locations but not in the “wpthemeThin” or “wpthemeNarrow” locations as they are too — well — narrow and thin. Sweet!

It’s a shame that you can still drop a widget in an unsupported configuration. The user will see a explanation of this not being possible after the fact (and the widget will not render) but being blocked all together would be better. The image below shows the OnTime widget in an unsupported location. A widget which is mandated in Profiles or Communities may still not be moved around and the “themes” attribute does not apply which again is why mandating the attribute be defined is crazy…