<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>VijayKiran.com &#187; hippo</title>
	<atom:link href="http://www.vijaykiran.com/tags/hippo/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.vijaykiran.com</link>
	<description></description>
	<lastBuildDate>Wed, 01 Sep 2010 12:23:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Faceted Navigation with Hippo CMS and HST2</title>
		<link>http://www.vijaykiran.com/2010/06/02/building-faceted-navigation-with-hippo-cms-hst2/</link>
		<comments>http://www.vijaykiran.com/2010/06/02/building-faceted-navigation-with-hippo-cms-hst2/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 12:14:08 +0000</pubDate>
		<dc:creator>Vijay Kiran</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[content management]]></category>
		<category><![CDATA[faceted navigation]]></category>
		<category><![CDATA[facets]]></category>
		<category><![CDATA[hippo]]></category>
		<category><![CDATA[hst]]></category>

		<guid isPermaLink="false">http://www.vijaykiran.com/?p=2143</guid>
		<description><![CDATA[Categorizing and presenting large volumes of documents is a big challenge. Content can be organized into 3 different models - Using Hierarchies (organized into folders), Using Categories (attaching taxonomy category to a document) or by Using Tags. These three organization models in turn can serve as navigational models as well. When the content size grows larger these models hinder the accessibility of the content. This also affects the discoverability of the content, of course searching is an option but search itself cannot be considered as navigation since the users needs to be aware of what properties the content has and how to specify the criteria. Faceted Navigation solves this problem by providing a way to access the in series of refining queries. The users can drill down and access the content the way they want. Hippo CMS, along with HST provides excellent support for creating a faceted navigation of your content. In this article I'll try to explain how you can build your own faceted navigation in your website using Hippo CMS and HST.]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.vijaykiran.com/wp-content/uploads/2010/06/faceted-navigation-post.png" alt="" title="faceted-navigation" class="alignright wp-image-2148" /></a></p>
<h3>Introduction</h3>
<p>Categorizing and presenting large volumes of documents is a big challenge. Content can be organized by a combination of three different models &mdash; Using Hierarchies (organized into folders), Using Categories (attaching taxonomy category to a document) or by Using Tags. These three organization models can serve as navigational models for the content as well. </p>
<p>When the content size grows larger these models hinder the accessibility of the content. This also affects the discoverability of the content, of course searching is an option but search itself cannot be considered as navigation since the users needs to be aware of what properties the content has and how to specify the criteria. Faceted Navigation solves this problem by providing a way to access the in series of refining queries. The users can drill down and access the content the way they want. Hippo CMS, along with HST provides excellent support for creating a faceted navigation of your content. In this article I&#8217;ll try to explain how you can build your own faceted navigation in your website using <a href="http://www.onehippo.com/en/products/cms" target="_blank">Hippo CMS</a> and <a href="http://www.onehippo.org/site-toolkit">Hippo Site Toolkit</a>.</p>
<p><!-- more --></p>
<h3>Faceted Navigation</h3>
<p>Faceted Navigation allows the user to navigate through the content by a series of refined queries on the metadata. The main benefit of having a faceted navigation than a rigid hierarchical navigation is that the user navigate the content in multiple paths, thus saving the time for reaching the content. </p>
<div class="asideHeading superiorTitle">Faceted Classification : History</div>
<blockquote><p>
<a href="http://en.wikipedia.org/wiki/Colon_classification" target="_blank">The Colon Classification</a> was the first faceted classification implementation, which was developed by a noted Indian mathematician and librarian <a href="http://en.wikipedia.org/wiki/S._R._Ranganathan" target="_blank">S.R.Ranganathan</a>.  Ranganathan was also famous for his <a href="http://en.wikipedia.org/wiki/Five_laws_of_library_science" target="_blank">Five Laws of Library Science</a>:</p>
<ol>
<li>Books are for use.</li>
<li>Every reader his [or her] book.</li>
<li>Every book its reader.</li>
<li>Save the time of the reader.</li>
<li>The library is a growing organism.</li>
</ol>
<p>which I think can be applied not only to books but for any knowledge entities.
</p></blockquote>
<p>Faceted Navigation in Hippo Repository is built on top of document node&#8217;s properties. As you might already know Hippo CMS is a JCR (Java Content Repository) based. Each node( or document) will have various properties (or fields) in which the data is saved.  To design effective faceted navigation you may want to make sure that you <a href="http://wiki.onehippo.com/pages/viewpage.action?pageId=19563639" target="_blank">don&#8217;t have any implicit metadata</a> in the structure of the content. Suppose that you have a blog with posts that belong to various categories. You should put the category name as a field in the document rather than organizing the posts into a category folder hierarchy. </p>
<h3>Configuring Faceted Navigation in Repository</h3>
<p>Before we delve into creating faceted navigtion, let me explain the example scenario we are going to use for this article.</p>
<p>Imagine you are building a website for an online game shop which sells games for computers and digital gaming consoles likee XBOX, Wii, Play Station. The repository contains documents which represent a game. The node type definition for the product is shown below:</p>
<pre lang="">
[myshop:games] > myshop:basedocument
- myshop:title       (string)
+ myshop:description (hippostd:html)
- myshop:date        (string)
- myshop:price       (double)
- myshop:tags        (string) multiple
- myshop:genres      (string) multiple < 'Action', 'Adventure', 'Aracade', 'Board'
- myshop:consoles    (string) multiple< 'XBOX 360', 'Wii', 'Play Station', 'PC', 'Mac'
</pre>
<p><br/><br />
<i>In the following I used the default content of the Hippo CMS, so the namespace of the nodes will be defaultcontent rather than myshop. In your case, it will the name you use for your project</i><br />
<br/><br />
You can create the document using the CMS template builder. For the sake of simplicity I defined the genres as a multivalued property. You can of course use some advanced way of classifying the content, e.g., using Hippo Taxonomy plugin, to categorize it properly.The properties (or fields) of the game document are self-descriptive. All the game documents are saved under the folder /content/documents/myshop/games.</p>
<div class="asideHeading superiorTitle">Game Document &#038; Template</div>
<ul class="tile">
<li>
<figure><a href="http://www.vijaykiran.com/wp-content/uploads/2010/06/game-document.png" class="enlarge"><img src="http://www.vijaykiran.com/wp-content/uploads/2010/06/game-document-150x150.png" alt="" title="Game Document" width="150" height="150" class="alignright size-thumbnail wp-image-2224" /></a></figure>
</li>
<li>
<figure><a href="http://www.vijaykiran.com/wp-content/uploads/2010/06/game-document-template.png" class="enlarge"><img src="http://www.vijaykiran.com/wp-content/uploads/2010/06/game-document-template-150x150.png" alt="" title="Game Document Template" width="150" height="150" class="alignright size-thumbnail wp-image-2223" /></a></figure>
</li>
</ul>
<p>
Before creating any facet navigation nodes, make sure you have some content. Create a few documents in a folder called games with different values so that we can test our facets.
</p>
<h3>Simple Faceted Navigation</h3>
<p>
Let us start by a simple use case of building a faceted navigation for the <em>games by consoles</em>.  You can configure the faceted navigation node in the repository by creating a node of the type <em>hippofacnav:facetnavigation</em>. The facetnavigation nodes can be created anywhere in the content tree, but the ideal place for them would be under the content/documents/{your_project}. In this way you can access the entire faceted navigation tree using the HST and display them in your website.</p>
<p>
 First open the CMS console and navigate to <em>/content/documents/{your_project}</em> node. Create a new node of the type <em>hippofacnav:facetnavigation</em> and name it <em>games_by_console</em>. We want to display the list of game documents under the games folder. Take a note of the UUID of the games folder. Add a new string property with name <em>hippo:docbase</em> and give the UUID of the games folder as the value for the property. Now add a multi-values string property with name <em>hippofacnav:facets</em>. Facet is the property based on which we want to provide a dimension to the facet navigation. Since we want to have a list of documents based on consoles, add the value for the facets property as <em>{project_namespace}:consoles</em>. In my example the property name is <em>defaultcontent:consoles</em>.  On reloading the tree your facetnavigation node should show the results as shown below:</p>
<div class="asideHeading superiorTitle">Games by Console</div>
<div align="center">
<a href="http://www.vijaykiran.com/wp-content/uploads/2010/06/games_by_console.png" class="enlarge"><img src="http://www.vijaykiran.com/wp-content/uploads/2010/06/games_by_console-300x168.png" alt="" title="games_by_console" width="300" height="168" class="aligncenter size-medium wp-image-2235" /></a>
</div>
<h3>Facets with Ranges</h3>
<p>
    Specifying the range for a facet value is very easy. Let us create a navigation based on price range. First create a new <em>hippofacnav:facetnavigation</em> and name it <em>games_by_price_range</em>. Add the <em>hippo:docbase</em> property similar to the previous example and specify the <em>hippofacnav:facets</em> property with value <em>defaultcontent:price</em>. Alternatively, you can just copy the <em>games-by-consoles</em> node and rename it accordingly. When you refresh the node it will have the result of the facet already populated as shown below:</p>
<div class="asideHeading superiorTitle">Games by Price</div>
<div align="center">
<a href="http://www.vijaykiran.com/wp-content/uploads/2010/06/games-by-price-range-1.png" class="enlarge"><img src="http://www.vijaykiran.com/wp-content/uploads/2010/06/games-by-price-range-1-300x136.png" alt="" title="games-by-price-range-1" width="300" height="136" class="aligncenter size-medium wp-image-2240" /></a>
   </div>
<p>   You can specify a range of the facet/property value using JSON notation. Each of the range specifier will be similar to an object in JSON and they are wrapped into an array. To create a price range facet, replace the <em>defaultcontent:price</em> with</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">defaultcontent<span style="color: #339933;">:</span>price$<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#123;</span><span style="color: #000066;">name</span><span style="color: #339933;">:</span><span style="color: #3366CC;">'less 20.00'</span><span style="color: #339933;">,</span> resolution<span style="color: #339933;">:</span><span style="color: #3366CC;">'double'</span><span style="color: #339933;">,</span> end<span style="color: #339933;">:</span><span style="color: #CC0000;">20.00</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#93;</span></pre></div></div>

<p>Also to make the tree more readable add the <em>hippofacnav:facetnodenames</em> with value <em>price</em>. Now if you reload the tree you can see the documents that have the price range as specified.</p>
<div class="asideHeading superiorTitle">Games by Price Range</div>
<div align="center">
<a href="http://www.vijaykiran.com/wp-content/uploads/2010/06/games-by-price-range-2.png" class="enlarge"><img src="http://www.vijaykiran.com/wp-content/uploads/2010/06/games-by-price-range-2-300x144.png" alt="" title="games-by-price-range-2" width="300" height="144" class="aligncenter size-medium wp-image-2245" /></a>
</div>
<p>       You can add more ranges as shown below:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">           defaultcontent<span style="color: #339933;">:</span>price$<span style="color: #009900;">&#91;</span>
                <span style="color: #009900;">&#123;</span><span style="color: #000066;">name</span><span style="color: #339933;">:</span><span style="color: #3366CC;">'less 20.00'</span><span style="color: #339933;">,</span> resolution<span style="color: #339933;">:</span><span style="color: #3366CC;">'double'</span><span style="color: #339933;">,</span> end<span style="color: #339933;">:</span><span style="color: #CC0000;">20.00</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
                <span style="color: #009900;">&#123;</span><span style="color: #000066;">name</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">'20.00 - 30.00'</span><span style="color: #339933;">,</span> resolution<span style="color: #339933;">:</span><span style="color: #3366CC;">'double'</span><span style="color: #339933;">,</span> begin<span style="color: #339933;">:</span><span style="color: #CC0000;">20.00</span><span style="color: #339933;">,</span> end<span style="color: #339933;">:</span><span style="color: #CC0000;">30.00</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> 
                <span style="color: #009900;">&#123;</span><span style="color: #000066;">name</span><span style="color: #339933;">:</span><span style="color: #3366CC;">'more than 30.00'</span><span style="color: #339933;">,</span> resolution<span style="color: #339933;">:</span><span style="color: #3366CC;">'double'</span><span style="color: #339933;">,</span> begin<span style="color: #339933;">:</span><span style="color: #CC0000;">30.00</span><span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#93;</span></pre></div></div>

<p>        The <em>resolution</em> can be one of 'long', 'double', 'year', 'month', 'week', 'day', 'hour' or 'string'. The begin of the range is inclusive and the end is exclusive. So when you specify <em>begin:1,end:5</em> for a facet it is equivalent to [1,5). More information about the ranges is available on the <a href="http://wiki.onehippo.com/display/CMS7/Faceted+Navigation+Configuration" target="_blank">Hippo Wiki</a>.
</p>
<h3>Guided Navigation and Multiple Facets</h3>
<p>
    When you add multiple facets to a node, the resulting documents will show all the facets again. When you want to display the same navigational nodes in the website then this can be quite annoying for the user. To eliminate this problem you can configure the facets to be hidden and specify the order in which they are visible.
</p>
<div class="asideHeading superiorTitle">Before setting hide property</div>
<p>    <img src="http://www.vijaykiran.com/wp-content/uploads/2010/06/console_before_hide.png" alt="Console Before Hide" height="364" width="390"></p>
<p>
    First modify the <em>games-by-console</em> by adding another facet value <em>defaultcontent:genres</em>. Now if you reload the tree below you'll find that under each value of console the facet consoles is repeated again. Now just replace the facetnodename value of the consoles by ${hide:'consoles'} you can hide the genres using similar approach. After the hide property is added, the nodes will look like this:
</p>
<div class="asideHeading superiorTitle">After setting hide property</div>
<p>    <img src="http://www.vijaykiran.com/wp-content/uploads/2010/06/consoles_after_hide.png" alt="Consoles After Hide" height="420" width="310"></p>
<p>
        Using the same approach you can hide and show the different facets essentially creating a guided navigation for the user.
    </p>
<h3>Sorting and limiting the facet results</h3>
<p>
    To sort the result set of a facet you can use the <em>sortby</em> and <em>sortorder</em> for a facetnodename. To sort the game documents displayed under price range by increasing order of prices you can use the following code:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">        price$<span style="color: #009900;">&#123;</span>sortby<span style="color: #339933;">:</span><span style="color: #3366CC;">'facetvalue'</span><span style="color: #339933;">,</span> sortorder<span style="color: #339933;">:</span><span style="color: #3366CC;">'descending'</span><span style="color: #009900;">&#125;</span></pre></div></div>

<p>    The limit can be specified by using <em>count</em> as the <em>sortby</em> and setting <em>limit</em> to the desired value.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">        price$<span style="color: #009900;">&#123;</span>sortby<span style="color: #339933;">:</span><span style="color: #3366CC;">'count'</span><span style="color: #339933;">,</span> limit<span style="color: #339933;">:</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#125;</span></pre></div></div>

<p>    If you specify the limit the result set will still show the complete result, but the facet node's child node will only show 2 result nodes.
</p>
<p>
    There are many more options you can specify in Faceted Navigation nodes, check the <a href="http://wiki.onehippo.com/display/CMS7/Faceted+Navigation+Configuration" target="_blank">Wiki Page</a> for more information.
</p>
<h3>Faceted Navigation in Website</h3>
<p>
    So far we created the navagation completely in the repository. From the website perspective the facet result nodes are just regular mirror nodes. So you can fetch the data and display the nodes accordingly in your website. Another important thing to note is that the faceted navigation nodes respect the live and preview mode. So you don't need to worry about whether unpublished documents being visible in the live website.  HST also provides a utility tag <em>facetnavigationlink</em> that can generate a link to a Tag.</p>
<p>To see the Facet Navigation in action, you can always checkout the Demo Suite from  HST Subversion repository. Also you can see the facet navigation in  <a href="http://twitter.com/jashaj">@jashaj</a>'s <a href="http://www.jasha.eu/blogposts" target="_blank">blog posts</a> page.</p>
<p> Of course, you are always welcome to ask questions on our <a href="http://www.onehippo.org/" target="_blank">mailing lists</a> or send us feedback via <a href="http://feedback.onehippo.org/" target="_blank">feedback forum</a>. Stay tuned for more In-depth articles about Hippo product suite.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vijaykiran.com/2010/06/02/building-faceted-navigation-with-hippo-cms-hst2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Multi Channel Publishing with Hippo CMS and HST</title>
		<link>http://www.vijaykiran.com/2010/05/26/multi-channel-publishing-with-hippo-cms-hst/</link>
		<comments>http://www.vijaykiran.com/2010/05/26/multi-channel-publishing-with-hippo-cms-hst/#comments</comments>
		<pubDate>Wed, 26 May 2010 18:42:29 +0000</pubDate>
		<dc:creator>Vijay Kiran</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[hippo]]></category>
		<category><![CDATA[hst2]]></category>
		<category><![CDATA[ical]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[jqtouch]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[publishing]]></category>

		<guid isPermaLink="false">http://www.vijaykiran.com/?p=2051</guid>
		<description><![CDATA[When you are using Hippo CMS, the content and presentation logic are clearly separated. This cleaner approach to content management allows the developers to publish the content to various channels without much effort. In this post I'll try to explain how you can publish the same content from CMS  and serve it using HST2 to different channels -  Web Sites, Mobile (iPhone), iCal format and Layar (Augmented Reality Browser).  ]]></description>
			<content:encoded><![CDATA[<h3>
            Introduction<br />
        </h3>
<p>
            When you are using<a href="http://www.onehippo.com/en/products/cms" target="_blank">Hippo CMS</a>, the content and the presentation logic are clearly separated. This cleaner approach to content management allows the users to publish content to various channels with less or no effort. In this post I&#8217;ll try to explain how you can setup a multi channel publishing system using <a href="http://www.onehippo.com/en/products/cms" target="_blank">Hippo CMS</a> and Hippo Site Toolkit that can serve same content to different channels viz. Web Sites, Mobile (iPhone), iCalendar format and <a href="http://www.layar.com" target="_blank">Layar</a> (Augmented Reality Browser).<br />
            In this article, I assume that you are a bit familiar with developing a website using Hippo CMS and Hippo Site Toolkit.
        </p>
<h3>
            What is Multi Channel Publishing?<br />
        </h3>
<blockquote><p>
            Multi Channel Publishing represents the execution and/or deployment of communication(s) across any of the various channels (of communication), which includes print, email, mobile, web, podcasts or any other of the existing channels.<br />
                &#8211; <a href="http://en.wikipedia.org/wiki/Multi_Channel_Publishing" target="_blank">WikiPedia</a>
        </p></blockquote>
<p>
             As an example scenario, consider that you are building an events website with each event having a location, image, date and time etc. You may want to ensure the availability of the data in various channels:
        </p>
<h4>
            Web Page<br />
        </h4>
<p>
            The obvious channel to publish your content is a website where people can check the list of events and the details.
        </p>
<h4>
            iCalendar Format (ics)<br />
        </h4>
<p>
            You can provide the events calendar in an iCal format so that your site visitors can subscribe to the calendar using their calendar client (iCal, Outlook etc.)
        </p>
<h4>
            Mobile (iPhone)<br />
        </h4>
<p>
            You can optimize the site for best user experience by providing a customized version of the webpages specifically targeted for different mobile devices. In our case we will see how we can generate iPhone web application type of interface fort the site using <a href="http://www.jqtouch.com" target="_blank">jQTouch</a>.
        </p>
<h4>
            Augmented Reality Layer<br />
        </h4>
<p>
            If our events have location information added to them, you can also provide a Augmented Reality layer and publish using a third party service like <a href="http://www.layar.com" target="_blank">Layar</a>. Let us see how we can publish to these various outlets using CMS and Hippo Site Tookit.
        </p>
<h3>
            Content Model<br />
        </h3>
<p>
            The content model for the event is fairly simple. Each event will have a Title, Description, Date, Image and Location information. You can define the Event as a compound type in the CMS. The CND for the content type will be as follows:
        </p>

<div class="wp_syntax"><div class="code"><pre class="cnd" style="font-family:monospace;">[myproject:event] &gt; nt:base
- myproject:title (string)
- myproject:date (date)
+ myproject:location (myproject:location)
+ myproject:description (hippostd:html)
+ myproject:image  (hippogallerypicker:imagelink)</pre></div></div>

<p>
            The location type is just a compound type with longitude and latitude. We can use this for displaying the map and publishing the location information to Layar.
        </p>

<div class="wp_syntax"><div class="code"><pre class="cnd" style="font-family:monospace;">[myproject:location] &gt; nt:base
- myproject:longitude (double)
- myproject:latitude (double)</pre></div></div>

<div align="center">
<a href="http://www.vijaykiran.com/wp-content/uploads/2010/05/cms-gmaps.png" class="enlarge"><img src="http://www.vijaykiran.com/wp-content/uploads/2010/05/cms-gmaps-300x251.png" alt="" title="cms-gmaps" width="300" height="251" class="aligncenter size-medium wp-image-2112" /></a>
</div>
<blockquote><p>
            For adding the location to the document you can use the <a href="http://forge.onehippo.org/projects/gmaps" target="_blank">Google Maps Plugin</a>. This plugin provides a Google Maps widget that you can include in the document template. And allows the user to specify the location by right clicking on the map. I&#8217;ll explain how to install/use the plugin in a different blog post.
        </p></blockquote>
<p>
            You can optionally add the boolean fields whether the event is available for Augmented Reality (Layar) or iCal etc. The events page is the document which can have multiple events. The CND for the same is as follows:
        </p>

<div class="wp_syntax"><div class="code"><pre class="cnd" style="font-family:monospace;">[myproject:eventspage] &gt; myproject:basedocument
- myproject:title (string)
+ myproject:events (myproject:event) multiple</pre></div></div>

<p>
            As per the content storage structure, all the events documents will be stored under the myproject/events.
        </p>
<h3>
            Presentation of Data<br />
        </h3>
<p>
            If you are already acquainted with Hippo Site Toolkit, the next logical step to build your site is to create the Hippo Beans for your content model. I&#8217;ll leave out the Hippo Bean details for brevity&#8217;s sake.
        </p>
<h4>
            Web Page<br />
        </h4>
<p>
            Developing a web page to display the events using HST is very straight forward. You just need to define the sitemap item and a component with template. And link them up together. In our case, http://myproject.com/events/${eventdoc} will map to the myprojects/events/${eventdoc}. You can define the mapping using the HSTConfig Editor or the CMS console. As shown below, The component for retrieving the events is pretty simple.
        </p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.onehippo.beans.EventsPageBean</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.hippoecm.hst.component.support.bean.BaseHstComponent</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.hippoecm.hst.core.component.HstComponentException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.hippoecm.hst.core.component.HstRequest</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.hippoecm.hst.core.component.HstResponse</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> EventsPage <span style="color: #000000; font-weight: bold;">extends</span> BaseHstComponent <span style="color: #009900;">&#123;</span>
    @Override
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> doBeforeRender<span style="color: #009900;">&#40;</span>HstRequest request, HstResponse response<span style="color: #009900;">&#41;</span>
                       <span style="color: #000000; font-weight: bold;">throws</span> HstComponentException <span style="color: #009900;">&#123;</span>
        EventsPageBean eventsPageBean <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>EventsPageBean<span style="color: #009900;">&#41;</span> getContentBean<span style="color: #009900;">&#40;</span>request<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        request.<span style="color: #006633;">setAttribute</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;doc&quot;</span>, eventsPageBean<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>
            The template just iterates through the list fo events and displays them. We can use <a href="code.google.com/apis/maps/" target="_blank">Google Static Maps API</a> to render the a static map on the site. Here&#8217;s the relevant JSP snippet for the component&#8217;s template:
        </p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">    &lt;ul style=&quot;list-style: none;&quot;&gt;
        &lt;li&gt;
          &lt;ul style=&quot;list-style: none;&quot;&gt;
                    &lt;li&gt;
                        &lt;div class=&quot;eventWrapper&quot;&gt;
                            &lt;span class=&quot;eventTitle&quot;&gt;${event.title}&lt;/span&gt;, &lt;img style=&quot;padding: 5px; margin-left: 5px;&quot; src=&quot;http://maps.google.com/maps/api/staticmap?&amp;amp;zoom=10&amp;amp;size=150x150&amp;amp;maptype=roadmap&amp;amp;markers=color:green|${event.location.latitude},${event.location.longitude}&amp;amp;sensor=true&quot; alt=&quot;&quot; align=&quot;right&quot;&gt; &lt;img style=&quot;padding: 5px; margin-right: 5px;&quot; src=&quot;${imageLink}&quot; alt=&quot;&quot; width=&quot;200&quot; align=&quot;left&quot;&gt; ${event.description}
                        &lt;/div&gt;
                    &lt;/li&gt;
                &lt;/ul&gt;
            &lt;/li&gt;
        &lt;/ul&gt;</pre></div></div>

<p>
            As you can see this is pretty straightforward and simple. Now let us take a look at how we can publish the events in iCal Format
        </p>
<h4>
            iCal/ICS format<br />
        </h4>
<p>
            For the iCal file we can provide a link on the events page users can click and add it to their calendar software. In HST Sitemap you can define a new sitemap item with /events/_default_.ics and map it to the iCal component. For generating the iCal file I used <a href="http://ical4j.sourceforge.net/index.html" target="_blank">iCal4j</a> library. Here&#8217;s the complete code of the component that generates the iCal file.
        </p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.net.SocketException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.List</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.onehippo.beans.Event</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.onehippo.beans.EventsPageBean</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">net.fortuna.ical4j.model.Calendar</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">net.fortuna.ical4j.model.DateTime</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">net.fortuna.ical4j.model.component.VEvent</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">net.fortuna.ical4j.model.property.CalScale</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">net.fortuna.ical4j.model.property.ProdId</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">net.fortuna.ical4j.model.property.Uid</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">net.fortuna.ical4j.model.property.Version</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">net.fortuna.ical4j.util.UidGenerator</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.hippoecm.hst.component.support.bean.BaseHstComponent</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.hippoecm.hst.core.component.HstComponentException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.hippoecm.hst.core.component.HstRequest</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.hippoecm.hst.core.component.HstResponse</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.slf4j.Logger</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.slf4j.LoggerFactory</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> EventsPageICS <span style="color: #000000; font-weight: bold;">extends</span> BaseHstComponent <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> Logger LOGGER <span style="color: #339933;">=</span> LoggerFactory.<span style="color: #006633;">getLogger</span><span style="color: #009900;">&#40;</span>EventsPageICS.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    @Override
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> doBeforeRender<span style="color: #009900;">&#40;</span>HstRequest request, HstResponse response<span style="color: #009900;">&#41;</span>
                       <span style="color: #000000; font-weight: bold;">throws</span> HstComponentException <span style="color: #009900;">&#123;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #003399;">Calendar</span> calendar <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Calendar</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            calendar.<span style="color: #006633;">getProperties</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> ProdId<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;-//Ben Fortuna//iCal4j 1.0//EN&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            calendar.<span style="color: #006633;">getProperties</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>Version.<span style="color: #006633;">VERSION_2_0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            calendar.<span style="color: #006633;">getProperties</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>CalScale.<span style="color: #006633;">GREGORIAN</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
            EventsPageBean eventsPage <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>EventsPageBean<span style="color: #009900;">&#41;</span> getContentBean<span style="color: #009900;">&#40;</span>request<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #003399;">List</span> events <span style="color: #339933;">=</span> eventsPage.<span style="color: #006633;">getEvents</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
            <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Event</span> event <span style="color: #339933;">:</span> events<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                DateTime start <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> DateTime<span style="color: #009900;">&#40;</span>event.<span style="color: #006633;">getDate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getTime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                VEvent calendarEvent <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> VEvent<span style="color: #009900;">&#40;</span>start, event.<span style="color: #006633;">getTitle</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                UidGenerator ug <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> UidGenerator<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;uidGen&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                Uid uid <span style="color: #339933;">=</span> ug.<span style="color: #006633;">generateUid</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                calendarEvent.<span style="color: #006633;">getProperties</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>uid<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                calendar.<span style="color: #006633;">getComponents</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>calendarEvent<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
            request.<span style="color: #006633;">setAttribute</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;calendar&quot;</span>, calendar<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">SocketException</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            LOGGER.<span style="color: #006633;">error</span><span style="color: #009900;">&#40;</span>e.<span style="color: #006633;">getMessage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>
            The corresponding JSP template is just a simple one-liner, in which you specify the contentType to be <em>text/calendar</em>:
        </p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">            &lt;%@ page contentType=&quot;text/calendar; charset=utf-8&quot; %&gt;${calendar}</pre></div></div>

<p>
            Whenever users visit the http://myproject.com/events/${eventdoc}.ics the browser will automatically open the application that is bound to the mime type <a>text/calendar</a>.
        </p>
<h4>
            Mobile (iPhone using jQTouch)<br />
        </h4>
<div align="center">
           <a href="http://www.vijaykiran.com/wp-content/uploads/2010/05/iphone-version.png" class="enlarge"><img src="http://www.vijaykiran.com/wp-content/uploads/2010/05/iphone-version-172x300.png" alt="" title="iphone-version" width="172" height="300" class="aligncenter size-medium wp-image-2102"/></a>
       </div>
<p>You can create a mobile version of the events and make it simple, but using jQTouch the iPhone users will see your site as an application rather than a plain website. jQTouch is a really simple to use iPhone web app library built on top of jQuery. You can sniff the user agent and detect the iPhone browser and render the appropriate content. You can either have a different URL with different component, or you can use the JSP to conditionally render appropriate content if the client is an iPhone. I show how you can use the latter approach. In the EventsPage Component, just add this line:
        </p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">request.<span style="color: #006633;">setAttribute</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;iphone&quot;</span>, request.<span style="color: #006633;">getHeader</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;User-Agent&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">contains</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;iPhone&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>
            In the JSP Template you can check for the attribute and render the jQTouch. First in the header add the jQTouch library as follows:
        </p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">    &lt;c:if test=&quot;${iphone}&quot;&gt;
           &lt;script type=&quot;text/javascript&quot; charset=&quot;utf-8&quot; src=&quot;&lt;hst:link path='/jqtouch/jquery.1.3.2.min.js'/&gt;&quot;/&gt;
           &lt;script type=&quot;text/javascript&quot; charset=&quot;utf-8&quot; src=&quot;&lt;hst:link path='/jqtouch/jqtouch.js'/&gt;&quot;/&gt;
           &lt;link rel=&quot;stylesheet&quot; href=&quot;&lt;hst:link path='/jqtouch/jqtouch.css'/&gt;&quot; type=&quot;text/css&quot; media=&quot;screen&quot;
                 charset=&quot;UTF-8&quot;/&gt;
           &lt;link rel=&quot;stylesheet&quot; href=&quot;&lt;hst:link path='/themes/apple/theme.css'/&gt;&quot; type=&quot;text/css&quot; media=&quot;screen&quot;
                 charset=&quot;UTF-8&quot;/&gt;
           &lt;script type=&quot;text/javascript&quot;&gt;
               $.jQTouch({
                   statusBar: 'black'
               });
           &lt;/script&gt;
       &lt;/c:if&gt;</pre></div></div>

<p>
            And in the body use the display the events using jQTouch, Navigation bar, a table view etc.
        </p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">    &lt;c:if test=&quot;${iphone}&quot;&gt;
        &lt;div id=&quot;about&quot;&gt;
            &lt;div class=&quot;toolbar&quot;&gt;
                &lt;h1&gt;About&lt;/h1&gt;
                &lt;a class=&quot;button flip done&quot; href=&quot;#events&quot;&gt;Done&lt;/a&gt;
            &lt;/div&gt;
            &lt;ul&gt;
                &lt;li&gt;
                    Hippo CMS &amp; HST Based Website - Optimized for iPhone&amp;trade;
                &lt;/li&gt;
            &lt;/ul&gt;
        &lt;/div&gt;
        &lt;div id=&quot;events&quot; class=&quot;current&quot;&gt;
            &lt;div class=&quot;toolbar&quot;&gt;
                &lt;h1&gt;${doc.title}&lt;/h1&gt;
                &lt;a class=&quot;button flip&quot; href=&quot;#about&quot;&gt;About&lt;/a&gt;
            &lt;/div&gt;
            &lt;ul&gt;
                &lt;c:forEach items=&quot;${doc.events}&quot; var=&quot;event&quot; varStatus=&quot;st&quot;&gt;
                    &lt;li class=&quot;arrow&quot;&gt;&lt;a href=&quot;#event-${st.index}&quot;&gt;${event.title}&lt;/a&gt;&lt;/li&gt;
                &lt;/c:forEach&gt;
            &lt;/ul&gt;
        &lt;/div&gt;
        &lt;c:forEach items=&quot;${doc.events}&quot; var=&quot;event&quot; varStatus=&quot;st&quot;&gt;
        &lt;div id=&quot;event-${st.index}&quot;&gt;
            &lt;div class=&quot;toolbar&quot;&gt;
                &lt;h1&gt;${event.title}&lt;/h1&gt;
                &lt;a class=&quot;button back&quot; href=&quot;#events&quot;&gt;Events&lt;/a&gt;
            &lt;/div&gt;
            &lt;h2&gt;Title&lt;/h2&gt;
            &lt;ul&gt;
                &lt;li style=&quot;font-size:0.9em;&quot;&gt;${event.title}&lt;/li&gt;
            &lt;/ul&gt;
            &lt;h2&gt;Description&lt;/h2&gt;
            &lt;ul&gt;
                &lt;li style=&quot;font-size:0.7em;&quot;&gt;${event.description}&lt;/li&gt;
            &lt;/ul&gt;
            &lt;h2&gt;Date &amp; Time&lt;/h2&gt;
            &lt;ul&gt;
                &lt;li style=&quot;font-size:0.7em&quot;&gt;&lt;fmt:formatDate value=&quot;${event.date.time}&quot; pattern=&quot;dd MMM yyyy HH:mm&quot;/&gt;&lt;/li&gt;
            &lt;/ul&gt;
            &lt;h2&gt;Image&lt;/h2&gt;
            &lt;ul&gt;
                &lt;li&gt;
                    &lt;img src=&quot;&lt;hst:link hippobean='${event.image.picture}'/&gt;&quot; width=&quot;280&quot;/&gt;
                &lt;/li&gt;
            &lt;/ul&gt;
            &lt;h2&gt;Location&lt;/h2&gt;
            &lt;ul&gt;
                &lt;li&gt;
                    &lt;a target=&quot;_blank&quot;
                       href=&quot;http://maps.google.com/?ll=${event.location.latitude},${event.location.longitude}&quot;&gt;
                        &lt;img src=&quot;http://maps.google.com/maps/api/staticmap?&amp;zoom=10&amp;size=280x280&amp;maptype=roadmap&amp;markers=color:green|${event.location.latitude},${event.location.longitude}&amp;sensor=true&quot;/&gt;
                    &lt;/a&gt;
                &lt;/li&gt;
            &lt;/ul&gt;
        &lt;/div&gt;
        &lt;/c:forEach&gt;
        &lt;/c:if&gt;</pre></div></div>

<p>
    That&#8217;s it, now whenever a user visits the same URL with an iPhone the user will get the jQTouch application type of interface instead of a simple website. Of couse, you can extend and link to google maps application on the iPhone as well.
</p>
<h4>
    Augmented Reality Layer (<a href="http://www.layar.com" target="_blank">Layar</a>)<br />
</h4>
<p><a href="http://www.layar.com" target="_blank">Layar</a> is an Augmented Reality browser for iPhone and Android. To publish the events via the Augmented Reality application Layar, first you need to get a developer account for Layar. You can get the account for free by going to <a href="http://dev.layar.com" target="_blank">dev.layar.com</a>.  For each layer you want to dislay in Layar AR browser, you need to provide a JSON feed of Points Of Interest via a publicly available URL. The Layar application wll send a GET request along with several parameters, to the URL you provided. In our application, we will create a new Sitemap item that will publish the Layar JSON data for the URL format <em>http://myproject.com/events/${eventname}.poi</em>. You can use this URL in the Layar&#8217;s developer interface.</p>
<p>
We can create a different component or reuse the existing the events page component that will get all the events. If you use the same component, the only thing you need to do is create a simple JSP page that will render the JSON. You can use json-taglib for rendering the data as JSON.<br />
Here&#8217;s the JSP code that will render the data as JSON using <a href="http://json-taglib.sourceforge.net/" target="_blank">json-taglib</a>:
</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">    &lt;%@ page contentType=&quot;application/json; charset=utf-8&quot; %&gt;
    &lt;%@ taglib prefix=&quot;json&quot; uri=&quot;http://www.atg.com/taglibs/json&quot; %&gt;
    &lt;%@ taglib prefix=&quot;c&quot; uri=&quot;http://java.sun.com/jsp/jstl/core&quot; %&gt;
    &lt;%@ taglib prefix=&quot;fmt&quot; uri=&quot;http://java.sun.com/jsp/jstl/fmt&quot; %&gt;
    &lt;%@ taglib prefix=&quot;hst&quot; uri=&quot;http://www.hippoecm.org/jsp/hst/core&quot; %&gt;
&nbsp;
    &lt;json:object&gt;
        &lt;json:array name=&quot;hotspots&quot; items=&quot;${doc.events}&quot; var=&quot;event&quot;&gt;
            &lt;json:object&gt;
                &lt;json:property name=&quot;title&quot; value=&quot;${event.title}&quot;/&gt;
                &lt;json:property name=&quot;distance&quot; value=&quot;100&quot;/&gt;
                &lt;json:property name=&quot;attribution&quot; value=&quot;attribution&quot;/&gt;
                &lt;json:property name=&quot;lat&quot; value=&quot;${event.location.latitudeInt}&quot; /&gt;
                &lt;json:property name=&quot;lon&quot; value=&quot;${event.location.longitudeInt}&quot; /&gt;
                &lt;hst:link hippobean='${event.image.thumbnail}' var=&quot;imgPath&quot; /&gt;
                &lt;json:property name=&quot;imageURL&quot; value=&quot;http://myproject.com/${imgPath}&quot;/&gt;
                &lt;json:property name=&quot;line2&quot;&gt;
                    &lt;fmt:formatDate value=&quot;${event.date.time}&quot; pattern=&quot;dd-MMM-yyyy HH:mm&quot;/&gt;                
                &lt;/json:property&gt;
                &lt;json:property name=&quot;line3&quot; value=&quot;&quot;/&gt;
                &lt;json:property name=&quot;line4&quot; value=&quot;&quot;/&gt;
                &lt;json:property name=&quot;type&quot; value=&quot;0&quot;/&gt;
                &lt;json:property name=&quot;id&quot; value=&quot;${event}&quot;/&gt;
                &lt;json:array name=&quot;actions&quot;/&gt;
            &lt;/json:object&gt;
        &lt;/json:array&gt;
        &lt;json:property name=&quot;layer&quot; value=&quot;${doc.name}&quot; /&gt;      
        &lt;json:property name=&quot;errorString&quot; value=&quot;ok&quot; /&gt;
        &lt;json:property name=&quot;errorCode&quot; value=&quot;${0}&quot; /&gt;
        &lt;json:property name=&quot;morePages&quot; value=&quot;${false}&quot;/&gt;
        &lt;json:property name=&quot;nextPageKey&quot; value=&quot;${null}&quot; /&gt;
    &lt;/json:object&gt;</pre></div></div>

<p>
As explained, you&#8217;ll get different parameters from Layar request that you can use to process the data. For example, instead of returning all the events, you can just send only the events within the range. More information on these parameters is available in Layar&#8217;s documentation.</p>
<nav class="visualIndex" style="margin-top: 6em;">
<div class="asideHeading superiorTitle">Layar for iPhone</div>
<figure><a href="http://www.vijaykiran.com/wp-content/uploads/2010/05/layar-1.jpg" class="enlarge"><img src="http://www.vijaykiran.com/wp-content/uploads/2010/05/layar-1-200x300.jpg" alt="" title="layar-1" width="200" height="300" class="aligncenter size-medium wp-image-2116" /></a></figure>
<figure><a href="http://www.vijaykiran.com/wp-content/uploads/2010/05/layar-2.jpg" class="enlarge"><img src="http://www.vijaykiran.com/wp-content/uploads/2010/05/layar-2-300x200.jpg" alt="" title="layar-2" width="300" height="200" class="aligncenter size-medium wp-image-2117" /></a></figure>
</nav>
<h3>Conclusion</h3>
<p>As you can see, for publishing the data in different formats to different channels, we have not modified anything in the CMS. Using single HST component and different templates, we were able to publish the data. The decoupling in the content management, content retrieval and content prsentation of the Hippo CMS and HST, helps a lot in creating multi channel publishing systems. You can extend it to any kind of channel like RSS Feeds or may be even create a Podcast of the pages using a Robotic Overlord!</p>
<p>
    If you have any questions or need more explanation don&#8217;t hesitate to ask us in our <a href="http://www.onehippo.org/cms7/support/forums.html" target="_blank">forums</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vijaykiran.com/2010/05/26/multi-channel-publishing-with-hippo-cms-hst/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>&#8594; Hippo CMS 7 WebDAV Support</title>
		<link>http://www.vijaykiran.com/2010/05/24/hippo-cms-7-webdav-support/</link>
		<comments>http://www.vijaykiran.com/2010/05/24/hippo-cms-7-webdav-support/#comments</comments>
		<pubDate>Mon, 24 May 2010 21:54:58 +0000</pubDate>
		<dc:creator>Vijay Kiran</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[hippo]]></category>
		<category><![CDATA[hippo cms7]]></category>
		<category><![CDATA[webdav]]></category>

		<guid isPermaLink="false">http://www.vijaykiran.com/?p=2029</guid>
		<description><![CDATA[The current status is that the WebDAV addon has default support for the Hippo assets folder. This was actually quite easy to develop. This can also be used to copy all assets from a CMS 6 instance directly into a running CMS 7 instance. All other folders are not WebDAV enabled yet, but I have [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>The current status is that the WebDAV addon has default support for the Hippo assets folder. This was actually quite easy to develop. This can also be used to copy all assets from a CMS 6 instance directly into a running CMS 7 instance. All other folders are not WebDAV enabled yet, but I have some plans for the other folders in the future.</p></blockquote>
<p>via <a href="http://blog.jeroenreijn.com/2010/05/giving-hippo-cms-7-some-webdav-support.html">Giving Hippo CMS 7 some WebDAV support By Jeroen Reijn</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vijaykiran.com/2010/05/24/hippo-cms-7-webdav-support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Maps Plugin for Hippo CMS</title>
		<link>http://www.vijaykiran.com/2010/05/04/google-maps-plugin-for-hippo-cms/</link>
		<comments>http://www.vijaykiran.com/2010/05/04/google-maps-plugin-for-hippo-cms/#comments</comments>
		<pubDate>Mon, 03 May 2010 23:05:07 +0000</pubDate>
		<dc:creator>Vijay Kiran</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[hippo]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[wicket]]></category>

		<guid isPermaLink="false">http://www.vijaykiran.com/?p=1829</guid>
		<description><![CDATA[Almost done &#8211; will soon be on forge.]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;">Almost done &#8211; will soon be on forge.<a href="http://www.vijaykiran.com/wp-content/uploads/2010/05/CMS-GoogleMaps-Plugin.png" class="enlarge"><img class="aligncenter size-full wp-image-1830" title="CMS-GoogleMaps-Plugin" src="http://www.vijaykiran.com/wp-content/uploads/2010/05/CMS-GoogleMaps-Plugin.png" alt="" width="478" height="374" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vijaykiran.com/2010/05/04/google-maps-plugin-for-hippo-cms/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hippo CMS Image Browser Update</title>
		<link>http://www.vijaykiran.com/2010/04/09/hippo-cms-image-browser-update/</link>
		<comments>http://www.vijaykiran.com/2010/04/09/hippo-cms-image-browser-update/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 03:21:05 +0000</pubDate>
		<dc:creator>Vijay Kiran</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[hippo]]></category>
		<category><![CDATA[hippo cms]]></category>

		<guid isPermaLink="false">http://www.vijaykiran.com/?p=1753</guid>
		<description><![CDATA[The next tag/version of Hippo CMS will have an updated image browser. The images can now be displayed both as List or a Thumbnail Grid, see the screenshots below. The Grid View is implemented using simple css and ul tags. Here&#8217;s an example of the HTML/CSS that is used to convert a ul with images [...]]]></description>
			<content:encoded><![CDATA[<p>The next tag/version of Hippo CMS will have an updated image browser. The images can now be displayed both as List or a Thumbnail Grid, see the screenshots below.</p>
<div id="attachment_1760" class="wp-caption aligncenter" style="width: 494px"><a class="enlarge" href="http://www.vijaykiran.com/wp-content/uploads/2010/04/gridview.png"><img class="size-full wp-image-1760" title="gridview" src="http://www.vijaykiran.com/wp-content/uploads/2010/04/gridview.png" alt="" width="484" height="234" /></a><p class="wp-caption-text">Grid View</p></div>
<div id="attachment_1751" class="wp-caption aligncenter" style="width: 496px"><a class="enlarge" href="http://www.vijaykiran.com/wp-content/uploads/2010/04/listview.png"><img class="size-full wp-image-1751" title="listview" src="http://www.vijaykiran.com/wp-content/uploads/2010/04/listview.png" alt="" width="486" height="176" /></a><p class="wp-caption-text">List View</p></div>
<p>The Grid View is implemented using simple <i>css</i>  and <i>ul</i> tags. Here&#8217;s an example of the HTML/CSS that is used to convert a <i>ul</i> with images into a Grid:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ul</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;gallery-list&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;li</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;gallery-item&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;img</span> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">&quot;image.png&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
     <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/li<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
     <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;li</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;gallery-item&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;img</span> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">&quot;image2.png&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/li<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ul<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">ul<span style="color: #6666ff;">.gallery-list</span> <span style="color: #00AA00;">&#123;</span>
   <span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">block</span><span style="color: #00AA00;">;</span>
   <span style="color: #000000; font-weight: bold;">overflow</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">auto</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
ul<span style="color: #6666ff;">.gallery-list</span> li <span style="color: #00AA00;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">list-style</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">none</span> <span style="color: #993333;">outside</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">float</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">margin-right</span><span style="color: #00AA00;">:</span> <span style="color: #933;">5px</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">margin-bottom</span><span style="color: #00AA00;">:</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">margin-top</span><span style="color: #00AA00;">:</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">100px</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">100px</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">text-align</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">center</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
ul<span style="color: #6666ff;">.gallery-list</span> li img <span style="color: #00AA00;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">vertical-align</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">middle</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #933;">5px</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#eee</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">60px</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">60px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>There are some nice image management features planned for Hippo CMS, so stay tuned for the updates.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vijaykiran.com/2010/04/09/hippo-cms-image-browser-update/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Update: Easy Forms 2.0 for CMS 7.3</title>
		<link>http://www.vijaykiran.com/2010/03/19/update-easy-forms-2-0-for-cms-7-3/</link>
		<comments>http://www.vijaykiran.com/2010/03/19/update-easy-forms-2-0-for-cms-7-3/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 22:10:45 +0000</pubDate>
		<dc:creator>Vijay Kiran</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[easyforms]]></category>
		<category><![CDATA[hippo]]></category>
		<category><![CDATA[hippo cms 7.3]]></category>
		<category><![CDATA[plugins]]></category>

		<guid isPermaLink="false">http://www.vijaykiran.com/?p=1683</guid>
		<description><![CDATA[A quick update on Easy  Forms plugin for Hippo CMS &#8211; it is now updated and compatible with latest Hippo CMS Release 7.3. The 2.0 version artifacts are now available in the forge maven repository. I&#8217;ll provide the details on how to configure and create the Easy Forms in a following post, though it is [...]]]></description>
			<content:encoded><![CDATA[<p>A quick update on <a href="http://forge.onehippo.org/projects/easy-forms/" target="_blank">Easy  Forms plugin</a> for <a href="http://onehippo.org" target="_blank">Hippo CMS</a> &#8211; it is now updated and compatible with latest Hippo CMS Release 7.3. The 2.0 version artifacts are now available in the forge maven repository.</p>
<p>I&#8217;ll provide the details on how to configure and create the Easy Forms in a following post, though it is very simple to use!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vijaykiran.com/2010/03/19/update-easy-forms-2-0-for-cms-7-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updated: Related Documents Plugin for Hippo CMS 7.3</title>
		<link>http://www.vijaykiran.com/2010/03/08/relateddocs-plugin-hippo-cms-73/</link>
		<comments>http://www.vijaykiran.com/2010/03/08/relateddocs-plugin-hippo-cms-73/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 17:28:43 +0000</pubDate>
		<dc:creator>Vijay Kiran</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[hippo]]></category>
		<category><![CDATA[hippo cms]]></category>
		<category><![CDATA[hippo cms 7.3]]></category>
		<category><![CDATA[plugins]]></category>

		<guid isPermaLink="false">http://www.vijaykiran.com/?p=1660</guid>
		<description><![CDATA[The Related Documents plugin for Hippo CMS allows the editors of the documents to select &#8220;related&#8221; documents of the current document. The plugin provides automatic suggestions using Similarity Search and Referring documents. Also, the document editors/authors can hand-pick the related documents. The plugin is now updated for CMS 7.3(released last week). You can get the [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a class="enlarge" href="http://www.vijaykiran.com/wp-content/uploads/2010/03/realated-docs.png"><img class="aligncenter size-medium wp-image-1659" title="realated-docs" src="http://www.vijaykiran.com/wp-content/uploads/2010/03/realated-docs.png" alt="" width="450" height="150" /></a></p>
<p>The <a href="http://relateddocs.forge.onehippo.org/" target="_blank">Related Documents plugin</a> for Hippo CMS allows the editors of the documents to select &#8220;related&#8221; documents of the current document. The plugin provides automatic suggestions using Similarity Search and Referring documents. Also, the document editors/authors can hand-pick the related documents.</p>
<p>The plugin is now updated for <a href="http://www.onehippo.org/cms7/about/release_notes/Release+7.3.html" target="_blank">CMS 7.3</a>(released last week). You can get the plugin from the Hippo Forge, the demo project is also now updated to 7.3. If you are already using the plugin, then there are no changes required in the plugin configuration to make it work with 7.3. Just update the plugin version in your pom.xml to 2.05.00 and you&#8217;ll be good to go.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vijaykiran.com/2010/03/08/relateddocs-plugin-hippo-cms-73/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Smart Console now on Hippo Forge</title>
		<link>http://www.vijaykiran.com/2010/03/01/smart-console-now-on-hippo-forge/</link>
		<comments>http://www.vijaykiran.com/2010/03/01/smart-console-now-on-hippo-forge/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 23:52:06 +0000</pubDate>
		<dc:creator>Vijay Kiran</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[extjs]]></category>
		<category><![CDATA[hippo]]></category>
		<category><![CDATA[jcr]]></category>
		<category><![CDATA[rest]]></category>

		<guid isPermaLink="false">http://www.vijaykiran.com/?p=1623</guid>
		<description><![CDATA[Finally I got sometime to move the Smart Console project out of sandbox. The project is now hosted at Hippo Forge. There are two things that are aimed with this project . One &#8211; to provide a simple, user friendly JCR Explorer and Console for any repository. Obviously, I&#8217;ll add Hippo Repository specific features to [...]]]></description>
			<content:encoded><![CDATA[<p>Finally I got sometime to move the <a href="http://forge.onehippo.org/projects/smartconsole/" target="_blank">Smart Console</a> project out of sandbox. The project is now hosted at <a href="http://forge.onehippo.org" target="_blank">Hippo Forge</a>. There are two things that are aimed with this project . One &#8211; to provide a simple, user friendly JCR Explorer and Console for any repository. Obviously, I&#8217;ll add Hippo Repository specific features to the project soon. The second is experimenting with REST interface for the Repository. I&#8217;m using JBoss RESTEasy for providing the REST service implementation and ExtJS as the front end.</p>
<p style="text-align: center;"><a class="enlarge" href="http://www.vijaykiran.com/wp-content/uploads/2009/09/SafariScreenCapture001.jpg"><img class="aligncenter size-medium wp-image-1336" title="SafariScreenCapture001" src="http://www.vijaykiran.com/wp-content/uploads/2009/09/SafariScreenCapture001-300x210.jpg" alt="" width="300" height="210" /></a></p>
<p>Currenlty the project is in pre-alpha, and during the next couple of weekends I&#8217;ll try to add more features &#8211; most , if not all &#8211; buttons in the UI do nothing at the moment. But the application in its current state can connect to the repository and display the node tree, and node properties (in a tab) when clicked.</p>
<p>Stay tuned for updates, or if you want to help, just join the project at <a href="http://forge.onehippo.org/projects/smartconsole/" target="_blank">Forge</a>. Though the project is still in cowboy-coding phase, contributions are welcome, as always.</p>
<p>To see it action, check out the code and run mvn jetty:run. Make sure that your Hippo CMS/Repository is running on localhost.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vijaykiran.com/2010/03/01/smart-console-now-on-hippo-forge/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The First Golden Hippo</title>
		<link>http://www.vijaykiran.com/2010/02/27/the-first-golden-hippo/</link>
		<comments>http://www.vijaykiran.com/2010/02/27/the-first-golden-hippo/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 14:11:28 +0000</pubDate>
		<dc:creator>Vijay Kiran</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[hippo]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.vijaykiran.com/?p=1611</guid>
		<description><![CDATA[Yesterday I joined the hippo professional services team for a fun filled team event with go karting evening and the first ever Golden Hippo Award event. The evening started with go karting fun, we were competing with each other. This was the first time I ever did this, I failed miserably in the qualifiers. Clearly I&#8217;m [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I joined the hippo professional services team for a fun filled team event with go karting evening and the first ever Golden Hippo Award event. The evening started with go karting fun, we were competing with each other. This was the first time I ever did this, I failed miserably in the qualifiers. Clearly I&#8217;m much more efficient with cars with horns and plenty of people crossing the road and blocking.</p>
<p><a href="http://www.vijaykiran.com/wp-content/uploads/2010/02/go-kart-winners.jpg"><br />
<img class="aligncenter size-medium wp-image-1615" title="go-kart-winners" src="http://www.vijaykiran.com/wp-content/uploads/2010/02/go-kart-winners-300x226.jpg" alt="" width="300" height="226" /></a></p>
<p><a href="http://www.vijaykiran.com/wp-content/uploads/2010/02/go-kart-winners.jpg"></a>The competition was along the lines of F1 racing with one training lap, 3 Qualifier rounds. And the top 5 drivers from the qualifiers went on to compete in the grand finale. And  the winners of the evening were Tjeerd, Stefan and Kenan.</p>
<p>After the karting, the Golden Hippo award was announced &#8211; Starting this quarter, every quarter the one of the member of the professional services will be chosen by popular vote ( by peers and Hippo partners) and will be awarded with the Golden Hippo. That&#8217;s not all, at the end of the year, the team is also planning to give out yearly &#8220;Platinum Hippo Award&#8221; &#8211; for the best team member voted similarly. The awards also come with nice little bonus as well.</p>
<p style="text-align: center;"><img class="aligncenter size-medium wp-image-1620" title="goldenhippo" src="http://www.vijaykiran.com/wp-content/uploads/2010/02/goldenhippo-300x256.jpg" alt="" width="300" height="256" /></p>
<p>And the first Golden Hippo winner for Q1 this year is <a href="http://twitter.com/superhick" target="_blank">Marijan Milicevic</a>, he got the most number of votes for Q1. Marijan has also contributed to several projects on Hippo Forge  - <a href="http://forge.onehippo.org/projects/import-tool/" target="_blank">Import Tool</a>, <a href="http://forge.onehippo.org/projects/hstvalidation/" target="_blank">Simple Validation Framework</a> and <a href="http://forge.onehippo.org/projects/easy-forms/" target="_blank">Easy Forms HST Component</a> etc.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vijaykiran.com/2010/02/27/the-first-golden-hippo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>→ What&#8217;s Coming from Hippo in 2010</title>
		<link>http://www.vijaykiran.com/2009/12/22/whats-coming-from-hippo-in-2010/</link>
		<comments>http://www.vijaykiran.com/2009/12/22/whats-coming-from-hippo-in-2010/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 13:08:52 +0000</pubDate>
		<dc:creator>Vijay Kiran</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[hippo]]></category>

		<guid isPermaLink="false">http://www.vijaykiran.com/?p=1473</guid>
		<description><![CDATA[The Hippo CMS  team has big plans for 2010. Early in the year they intend to launch a new web 2.0 platform. This open source product is aimed at the enterprise, to ensure &#8220;improved communication, collaboration and knowledge retention while lowering the burden on IT resources.&#8221; Features include an integrated approach to user-generated content, an [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>The Hippo CMS  team has big plans for 2010. Early in the year they intend to launch a new web 2.0 platform. This open source product is aimed at the enterprise, to ensure &#8220;improved communication, collaboration and knowledge retention while lowering the burden on IT resources.&#8221;</p>
<p>Features include an integrated approach to user-generated content, an &#8220;enterprise mash-up&#8221; functionality that focuses on matching content and applications with the needs of individual employees. Each user will get a personalized window to &#8220;content and applications inside and (cl)outside the organization, while IT keeps (or regains?) central control over security &amp; access rights.&#8221;</p>
<p>Instead of aiming to reinvent popular applications such as Gmail, Zoho, Twitter and Evernote, this new product aims to let companies integrate such tools within their enterprise security umbrella.</p></blockquote>
<p>via <a href="http://www.cmswire.com/cms/web-cms/alert-whats-coming-in-open-source-cms-in-2010-006287.php">Alert: What&#8217;s Coming In Open Source CMS In 2010</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vijaykiran.com/2009/12/22/whats-coming-from-hippo-in-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
