The attached plugin builds on the Google Map plugin developed by Jay Allen. The plugin displays the location of members of a community based on their addresses. The plugin employs Google's Map API for both the display of the map as well as the geocoding of addresses. As such, the address may be as general as a zip code or state; or as specific as a full address including street address.
A couple of these features were suggested by Jay Allen.
Members of a community are determined by users membership in Clearspace groups associated with a community. The plugin was developed for a corporate wellness program in which users would select a wellness group to join when they register. The plugin places the member in that group (see the description in the attached admin guide.
Members have control over whether their address location is shown on the member map (A feature suggested by Jay Allen) via a boolean profile field.
The information presented by the Member Map in the pop-up info window is configurable by the administrator (another Jay Allen suggested feature).
The plugin has an administration page that allows the administrator to enter th Google Map Key (started with Jay Allen's admin page). The admin page also allows the administrator to select the address profile field, the show address location profile fields, and the profile fields to display in InfoWindows.
The Member Map tab is only displayed for communities that have the appropriate extended properties that govern the placement of users into the Clearspace groups associated with the community. In the wellness portal, there were communities (a help community and program administration community) that we did not want to have Member Map displays. Thanks to Aaron Johnson of Jive for his guidance on how to accomplish this. Guidance received on the Thursday Clearspace Chat (Dawn, how was that for advertising!!). See the administration guide for how to configure communities to display the Member Map.
Last Minute Modification
I made a modification in the last minute that has not been described in the attached administration guide. I decided that I wanted users who join a wellness community to be able to write entries to the Blogs associated with the community. As such, the User extended property that use to point to the Clearspace Group of which the user was a member now point to the Community of which the user is a member. This allows changes in a user's membership to be reflected in the blogs the user can write to (I tried not to end in a dangling participle - it's just too hard. As suggested users can change their membership at any time.
The source for the plugin can be found at http://code.google.com/p/wellatwork/. There are no restrictions on its use.
While the plugin.xml file indicates that the minimum version of Clearspace / ClearspaceX is 1.10.0, this is only because I was using that version for my development.
Also, there may be paths (e.g., paths to avatar images) that may be wrong for your deployment of Clearspace / ClearspaceX. The paths start ClearspaceX/people/.... I meant to fix that.....
There are two attachments to this posting. The JAR is the plugin JAR. The Word document is the administration guide to the plugin.
The first acknowledgement goes to Jay Allen whose Google Maps plugin was the starting point for this one. Jay will recognize stolen admin page layout and code structure.
The second ackowledgement goes to Jason Burkhardt who responded to my question about conditional display of community tabs.
The third acknowledgement goes to Aaron Johnson who also answered my question about conditional display of community tabs.
A Clearspace Feature Request based on Plugin
I have a feature request based on the development of this plugin and the wellness portal. It would nice to be able to display help on profile / registration edits. For example, I would have liked to explain the options associated with the address field, the impact of the display address location field, and the impact of changing your wellness community membership. An added help property for Profile Fields (or display of the description property) would be nice.
I would appreciate hearing your reaction to the plugin. I enjoyed developing it and in the process of understanding the Clearspace architecture (nice).
My journey could have been made a bit easier with some better developer guidance. Jive - spend some time here. I spent too much time reading the product's FTL files (e.g., community-header.ftl, view-profile-header.ftl) to understand their behaviors and requirements on calling applications. Plus, the JavaDocs did not include all of the code in the code base (...community.action package includes only the JiveSupportAction when there are a bunch of others).
That said, my overall impression of Clearspace is it is an excellent product with great hooks for extensibility.