<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:clearspace="http://www.jivesoftware.com/xmlns/clearspace/rss" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Jivespace Community Blog</title>
    <link>http://www.jivesoftware.com/jivespace/blogs/jivespace</link>
    <description>Jivespace Developer Community Blog</description>
    <pubDate>Sat, 28 Jun 2008 14:37:36 GMT</pubDate>
    <generator>Clearspace 2.5.3 (http://jivesoftware.com/products/clearspace/)</generator>
    <dc:date>2008-06-28T14:37:36Z</dc:date>
    <item>
      <title>Customization Part 3: Widgets</title>
      <link>http://www.jivesoftware.com/jivespace/blogs/jivespace/2008/06/30/customization-part-3-widgets</link>
      <description>&lt;!-- [DocumentBodyStart:c388bf73-9c02-4bf5-899c-392fb5ae8299] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;This post is the third in a series of blog posts about customizing for Clearspace 2.x. The previous posts covered general information about &lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/community/blogs/clearspace/2008/06/24/customizations-in-clearspace-2x-part-one/"&gt;Customizations in Clearspace 2.x&lt;/a&gt; and &lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/community/blogs/clearspace/2008/06/26/customization-part-2-upgrading-themes-and-ftl-files/"&gt;upgrading themes and FTL files&lt;/a&gt;. This post continues the series with more information about widgets.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Widgets can be used much more broadly in version 2 than previously, so most of your widget-specific upgrade changes are related to this broader support. In version 1 a system or space administrator could use widgets only to assemble a space or community overview page. In version 2 both administrators and users can customize page layouts in several areas. Widgets can be used on the Clearspace instance home page (which has been rendered from main.ftl), a user's personal home page, a community/space overview page, a project overview page.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Note that unless your widget is extremely simple, you're likely to also need to keep in mind API changes and FreeMarker changes. For example, version 2 requires that widgets acquire references to Clearspace manager beans using Spring. The rest of widget development model&amp;nbsp; -- artifacts involved, how you deploy them, and so on&amp;nbsp; -- is unchanged from version 1.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;When upgrading a widget (or developing a new one on version 2), you use the @WidgetTypeMarker annotation to specify which of the display contexts your widget is allowed in. Deciding which contexts to allow is an important part of your widget's design. For example, you might decide that a widget that takes a very individual-oriented set of property values (such as the Tag widget, which displays content associated with a particular tag) isn't useful in high-level contexts such as the instance or space home pages (where the broad set of people viewing might want views on a large variety of tags).&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The @WidgetTypeMarker annotation supports values from the WidgetType enumeration. Here's an example that includes all of those values:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:bbb75626-b728-4a58-9530-8ad06a378dfa]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;@WidgetTypeMarker({WidgetType.HOMEPAGE, WidgetType.PERSONALIZEDHOMEPAGE, 
&amp;nbsp;&amp;nbsp;&amp;nbsp; WidgetType.COMMUNITY, WidgetType.PROJECT})
@PropertyNames("myProperty")
public class MyWidget extends BaseWidget {
&amp;nbsp;&amp;nbsp;&amp;nbsp; // Implementation code omitted.
}&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:bbb75626-b728-4a58-9530-8ad06a378dfa]--&gt;&lt;p&gt;In order to reduce the tight coupling between the widget views (which are typically built using FreeMarker) and the rest of the Clearspace application, the widget context that was previously populated with a reference to the current context via a JiveContext instance has been modified so that the widget view no longer has access to that instance. That means that you'll need to provide everything that your widget view needs through the properties that the widget interface requires. Typically you'll create a widget class that extends BaseWidget and then you'll override this method:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:fcd66a6f-b366-4be9-9c4f-3beeb649ab29]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;protected Map&amp;lt;String, Object&amp;gt; loadProperties(WidgetContext widgetContext, ContainerSize size)
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:fcd66a6f-b366-4be9-9c4f-3beeb649ab29]--&gt;&lt;p&gt;So in the previous version of Clearspace, you might have had something like this in the FTL file that's your widget's view:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:afa9ad8c-81ec-4dd2-90c5-abb3db3cff57]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;${widgetContext.jiveContext.communityManager.rootCommunity.ID?c}&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:afa9ad8c-81ec-4dd2-90c5-abb3db3cff57]--&gt;&lt;p&gt;Because the JiveContext instance has been removed from the WidgetContext class, you'll need to provide your view with the properties it needs explicitly in your widget. Here's an example:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:f0132ef1-d602-4b83-9db0-47aee9195f58]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;public class MyWidget extends BaseWidget {

&amp;nbsp;&amp;nbsp;&amp;nbsp; // Declare a property variable and setter for injection by Spring.
&amp;nbsp;&amp;nbsp;&amp;nbsp; private CommunityManager communityManager;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setCommunityManager(CommunityManager cm) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.communityManager = cm;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; protected Map&amp;lt;String, Object&amp;gt; loadProperties(WidgetContext widgetContext, 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ContainerSize size)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Map&amp;lt;String, Object&amp;gt; properties = super.loadProperties(widgetContext, size);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Implementation code omitted.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; properties.put("rootCommunityID", communityManager.getRootCommunity().getID());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return properties;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:f0132ef1-d602-4b83-9db0-47aee9195f58]--&gt;&lt;p&gt;Finally, because you can create a widget that exists in multiple parts of the application (the homepage, a personalized homepage, a community, a project), you'll sometimes want to change the behavior of your widget based on where the widget is being rendered. You can determine the render context of your widget by checking the type of the WidgetContext class that you're given in the loadProperties method. Here's some example code that shows how you can determine what context the widget is in:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:5f353f74-4fc0-4570-9a74-2610d2f8b85b]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;public class MyWidget extends BaseWidget {
&amp;nbsp;&amp;nbsp;&amp;nbsp; protected Map&amp;lt;String, Object&amp;gt; loadProperties(WidgetContext widgetContext, ContainerSize size) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Map&amp;lt;String, Object&amp;gt; properties = super.loadProperties(widgetContext, size);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (widgetContext.getWidgetType() == WidgetType.COMMUNITY) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CommunityWidgetContext cwc = (CommunityWidgetContext)widgetContext;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Do something specific for the community
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (widgetContext.getWidgetType() == WidgetType.HOMEPAGE) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HomepageWidgetContext hwc = (HomepageWidgetContext)widgetContext;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Do something specific for the homepage
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (widgetContext.getWidgetType() == WidgetType.PERSONALIZEDHOMEPAGE) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PersonalizedHomepageWidgetContext phwc = 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (PersonalizedHomepageWidgetContext)widgetContext;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Do something specific for the personalized homepage&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (widgetContext.getWidgetType() == WidgetType.PROJECT) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ProjectWidgetContext wwc = (ProjectWidgetContext)widgetContext;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Do something specific for the project
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; properties.put("rootCommunityID", communityManager.getRootCommunity().getID());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return properties;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:5f353f74-4fc0-4570-9a74-2610d2f8b85b]--&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The information above along with more details can be found in the &lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/community/docs/DOC-2060/"&gt;Upgrading Extensions to 2.0 documentation&lt;/a&gt;.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;You can also &lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/community/blogs/podcasts/2008/06/05/more-widget-development-in-clearspace-20"&gt;watch a video and download a presentation&lt;/a&gt; to learn more about how to write new widgets for Clearspace 2.0 from Aaron Johnson, Engineering Manager at Jive.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:c388bf73-9c02-4bf5-899c-392fb5ae8299] --&gt;</description>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">widget</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">clearspace</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">2.0</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">widgets</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">widget</category>
      <pubDate>Mon, 30 Jun 2008 15:12:39 GMT</pubDate>
      <author>dawn</author>
      <guid>http://www.jivesoftware.com/jivespace/blogs/jivespace/2008/06/30/customization-part-3-widgets</guid>
      <dc:date>2008-06-30T15:12:39Z</dc:date>
      <clearspace:dateToText>4 months, 3 weeks ago</clearspace:dateToText>
      <wfw:comment>http://www.jivesoftware.com/jivespace/blogs/jivespace/comment/customization-part-3-widgets</wfw:comment>
      <wfw:commentRss>http://www.jivesoftware.com/jivespace/blogs/jivespace/feeds/comments?blogPost=1545</wfw:commentRss>
    </item>
    <item>
      <title>More Widget Development in Clearspace 2.0</title>
      <link>http://www.jivesoftware.com/jivespace/blogs/jivespace/2008/06/05/more-widget-development-in-clearspace-20</link>
      <description>&lt;!-- [DocumentBodyStart:34de3468-621f-41b6-909b-9c09003c47bc] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;Learn all about how to write new widgets for Clearspace 2.0 from &lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/community/people/ajohnson1200/"&gt;Aaron Johnson&lt;/a&gt;, Engineering Manager at Jive.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;object data="http://blip.tv/scripts/flash/blipplayer.swf?autoStart=false&amp;amp;file=http://blip.tv/file/get/Samjive-WidgetsForClearspace20404.flv&amp;amp;source=" height="294" type="application/x-shockwave-flash" width="400" wmode="transparent"&gt;&lt;param name="movie" value="http://blip.tv/scripts/flash/blipplayer.swf?autoStart=false&amp;amp;file=http://blip.tv/file/get/Samjive-WidgetsForClearspace20404.flv&amp;amp;source="/&gt;&lt;/object&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;You can also download the &lt;a class="jive-link-external-small" href="http://blip.tv/file/get/Samjive-WidgetsForClearspace20404.mov"&gt;Quicktime version&lt;/a&gt; (Caution: file is ~285MB), or you can &lt;a class="jive-link-external-small" href="http://blip.tv/file/963811/"&gt;watch a larger version&lt;/a&gt; online, which will improve readability of embedded screenshots (&lt;strong&gt;recommended&lt;/strong&gt;).&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The entire presentation is also attached below as a PDF file.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;You can also watch an earlier video about &lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/community/blogs/podcasts/2008/03/17/widget-development-in-clearspace-20/"&gt;developing widgets for Clearspace 2.0&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:34de3468-621f-41b6-909b-9c09003c47bc] --&gt;</description>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">jivespace</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">widget</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">plugin</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">clearspace</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">jivespace</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">video</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">podcast</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">2.0</category>
      <pubDate>Thu, 05 Jun 2008 15:45:45 GMT</pubDate>
      <author>dawn</author>
      <guid>http://www.jivesoftware.com/jivespace/blogs/jivespace/2008/06/05/more-widget-development-in-clearspace-20</guid>
      <dc:date>2008-06-05T15:45:45Z</dc:date>
      <clearspace:dateToText>5 months, 2 weeks ago</clearspace:dateToText>
      <wfw:comment>http://www.jivesoftware.com/jivespace/blogs/jivespace/comment/more-widget-development-in-clearspace-20</wfw:comment>
      <wfw:commentRss>http://www.jivesoftware.com/jivespace/blogs/jivespace/feeds/comments?blogPost=1535</wfw:commentRss>
    </item>
    <item>
      <title>New Widget: Community Navigation</title>
      <link>http://www.jivesoftware.com/jivespace/blogs/jivespace/2008/05/19/new-widget-community-navigation</link>
      <description>&lt;!-- [DocumentBodyStart:1b352f0c-6565-4af7-b6df-98513ff61f17] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;&lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/community/people/samee/"&gt;Samee&lt;/a&gt; from SourceN just published a new widget that can be used to add an expandable tree view of communities to any customized space. The &lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/community/docs/DOC-2140/"&gt;Community Navigation Widget&lt;/a&gt; was created at the request of another community member, &lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/community/people/brasicano/"&gt;Eric Tufts&lt;/a&gt; who wanted to replicate the functionality of the browse drop-down menu embedded in a space.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Please try it out and provide feedback in the &lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/community/docs/DOC-2140/"&gt;comments area&lt;/a&gt; of the plugin.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Don't forget that we have many more plugins and widgets available for download on the &lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/community/community/developer/clearspace/plugins?view=overview/"&gt;Plugins page&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:1b352f0c-6565-4af7-b6df-98513ff61f17] --&gt;</description>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">sourcen</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">navigation</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">widget</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">plugin</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">sourcen</category>
      <pubDate>Mon, 19 May 2008 15:57:57 GMT</pubDate>
      <author>dawn</author>
      <guid>http://www.jivesoftware.com/jivespace/blogs/jivespace/2008/05/19/new-widget-community-navigation</guid>
      <dc:date>2008-05-19T15:57:57Z</dc:date>
      <clearspace:dateToText>6 months, 4 days ago</clearspace:dateToText>
      <wfw:comment>http://www.jivesoftware.com/jivespace/blogs/jivespace/comment/new-widget-community-navigation</wfw:comment>
      <wfw:commentRss>http://www.jivesoftware.com/jivespace/blogs/jivespace/feeds/comments?blogPost=1528</wfw:commentRss>
    </item>
    <item>
      <title>Want to Display a Calendar in Clearspace?</title>
      <link>http://www.jivesoftware.com/jivespace/blogs/jivespace/2008/04/18/want-to-display-a-calendar-in-clearspace</link>
      <description>&lt;!-- [DocumentBodyStart:e6acc4ed-9a35-4149-9788-f979de7ee35f] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;We've had requests for Calendar functionality in Clearspace, but so far, we haven't had an easy way to add a Calendar. Now, with Jive's &lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/community/blogs/jivetalks/2008/04/06/jive-acquires-jotlet"&gt;recent Jotlet.net acquisition&lt;/a&gt;, we have a way for people to add calendars to Clearspace customized space pages with the Jotlet.net Calendar Plugin!&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;This simple Jotlet.net Calendar Widget is a plugin that contains a widget that lets you show and edit any or all of your Jotlet.net calendars on your Clearspace community, homepage, or project pages.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Or if you just want to see how Adam Wulf created this widget, you can find the source code in our &lt;a class="jive-link-external-small" href="https://svn.jivesoftware.com/svn/dev/repos/jive/clearspace_2_0/jotlet/"&gt;svn repository&lt;/a&gt;. You can also find the Jotlet.net Calendar widget and more plugins for Clearspace in our &lt;a class="jive-link-external-small" href="community/developer/clearspace/plugins?view=overview"&gt;Jivespace plugin space&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:e6acc4ed-9a35-4149-9788-f979de7ee35f] --&gt;</description>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">widget</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">jotlet</category>
      <pubDate>Fri, 18 Apr 2008 16:41:03 GMT</pubDate>
      <author>dawn</author>
      <guid>http://www.jivesoftware.com/jivespace/blogs/jivespace/2008/04/18/want-to-display-a-calendar-in-clearspace</guid>
      <dc:date>2008-04-18T16:41:03Z</dc:date>
      <clearspace:dateToText>7 months, 5 days ago</clearspace:dateToText>
      <clearspace:replyCount>5</clearspace:replyCount>
      <wfw:comment>http://www.jivesoftware.com/jivespace/blogs/jivespace/comment/want-to-display-a-calendar-in-clearspace</wfw:comment>
      <wfw:commentRss>http://www.jivesoftware.com/jivespace/blogs/jivespace/feeds/comments?blogPost=1513</wfw:commentRss>
    </item>
    <item>
      <title>Widget Development in Clearspace 2.0</title>
      <link>http://www.jivesoftware.com/jivespace/blogs/jivespace/2008/03/17/widget-development-in-clearspace-20</link>
      <description>&lt;!-- [DocumentBodyStart:a867c6ee-76c0-4908-aae4-e75338ce95cc] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;I took the best 6 minutes out of a presentation that Fred Brock of Jive Software delivered to our engineering teams to teach all of us about the best ways to develop widgets for Clearspace 2.0. This is a must-see for anyone wanting to write widgets for Clearspace 2.0! I've also attached a PDF version of the slides from Fred's presentation.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;object data="http://blip.tv/scripts/flash/blipplayer.swf?autoStart=false&amp;amp;file=http://blip.tv/file/get/Samjive-WidgetDevelopmentInClearspace20847.flv&amp;amp;source=" height="294" type="application/x-shockwave-flash" width="400" wmode="transparent"&gt;&lt;param name="movie" value="http://blip.tv/scripts/flash/blipplayer.swf?autoStart=false&amp;amp;file=http://blip.tv/file/get/Samjive-WidgetDevelopmentInClearspace20847.flv&amp;amp;source="/&gt;&lt;/object&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Or you can download the &lt;a class="jive-link-external-small" href="http://blip.tv/file/get/Samjive-WidgetDevelopmentInClearspace20847.mov"&gt;Quicktime movie&lt;/a&gt; (Caution: ~85MB file)&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:a867c6ee-76c0-4908-aae4-e75338ce95cc] --&gt;</description>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">video</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">clearspace</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">jivespace</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">podcast</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">video</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">widget</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">beta</category>
      <pubDate>Mon, 17 Mar 2008 20:53:27 GMT</pubDate>
      <author>dawn</author>
      <guid>http://www.jivesoftware.com/jivespace/blogs/jivespace/2008/03/17/widget-development-in-clearspace-20</guid>
      <dc:date>2008-03-17T20:53:27Z</dc:date>
      <clearspace:dateToText>8 months, 1 week ago</clearspace:dateToText>
      <clearspace:replyCount>1</clearspace:replyCount>
      <wfw:comment>http://www.jivesoftware.com/jivespace/blogs/jivespace/comment/widget-development-in-clearspace-20</wfw:comment>
      <wfw:commentRss>http://www.jivesoftware.com/jivespace/blogs/jivespace/feeds/comments?blogPost=1490</wfw:commentRss>
    </item>
    <item>
      <title>User Stats Widget Plugin Video</title>
      <link>http://www.jivesoftware.com/jivespace/blogs/jivespace/2007/12/07/user-stats-widget-plugin-video</link>
      <description>&lt;!-- [DocumentBodyStart:c144360f-5c27-4802-b4a7-b57b0be55edf] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;Watch this video to learn more about how Rick Palmer from Jive Software created a widget for Clearspace to display more information about users. You can also get more information about the &lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/community/docs/DOC-1339"&gt;User Stats Widget Plugin&lt;/a&gt;, download it, or &lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/dev/svn/repos/jive/clearspace/userstats/"&gt;view the source code&lt;/a&gt; on Jivespace.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;object data="http://blip.tv/scripts/flash/blipplayer.swf?autoStart=false&amp;amp;file=http://blip.tv/file/get/Samjive-DevelopingClearspaceWidgets378.flv&amp;amp;source=" height="294" type="application/x-shockwave-flash" width="400" wmode="transparent"&gt;&lt;param name="movie" value="http://blip.tv/scripts/flash/blipplayer.swf?autoStart=false&amp;amp;file=http://blip.tv/file/get/Samjive-DevelopingClearspaceWidgets378.flv&amp;amp;source="/&gt;&lt;/object&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Or you can download the &lt;a class="jive-link-external-small" href="http://blip.tv/file/get/Samjive-DevelopingClearspaceWidgets378.mov"&gt;Quicktime version&lt;/a&gt; (Caution! ~250 MB file!)&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:c144360f-5c27-4802-b4a7-b57b0be55edf] --&gt;</description>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">plugins</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">clearspace</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">podcast</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">video</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">plugins</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">widget</category>
      <pubDate>Sat, 08 Dec 2007 00:07:54 GMT</pubDate>
      <author>dawn</author>
      <guid>http://www.jivesoftware.com/jivespace/blogs/jivespace/2007/12/07/user-stats-widget-plugin-video</guid>
      <dc:date>2007-12-08T00:07:54Z</dc:date>
      <clearspace:dateToText>11 months, 2 weeks ago</clearspace:dateToText>
      <wfw:comment>http://www.jivesoftware.com/jivespace/blogs/jivespace/comment/user-stats-widget-plugin-video</wfw:comment>
      <wfw:commentRss>http://www.jivesoftware.com/jivespace/blogs/jivespace/feeds/comments?blogPost=1329</wfw:commentRss>
    </item>
  </channel>
</rss>

