You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Lars Trieloff (JIRA)" <ji...@apache.org> on 2009/05/26 21:08:45 UTC
[jira] Updated: (SLING-985) Allow ATOM Syndication Format output
[ https://issues.apache.org/jira/browse/SLING-985?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Lars Trieloff updated SLING-985:
--------------------------------
Attachment: SLING-985.patch
This patch provides an atom taglib that covers the atom core vocabulary plus the opensearch and mediarss extensions. Bound to a
namespace prefix like atom you can create a feed using:
<%@ page session="false" %><%
%><%@ page import="
javax.jcr.*,
java.util.Iterator"
%><%@ taglib prefix="sling" uri="http://sling.apache.org/taglibs/sling/1.0" %><%
%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><%
%><%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %><%
%><%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %><%
%><%@ taglib prefix="atom" uri="http://sling.apache.org/taglibs/atom/1.0" %>
<sling:defineObjects />
<atom:feed id="${currentNode.path}">
<%
NodeIterator i = currentNode.getNodes();
while (i.hasNext()) {
Node n = i.nextNode();
pageContext.setAttribute("n", n);
%>
<sling:include path="${n.path}.entry" />
<%
}
%>
</atom:feed>
This example can be used as the default jsp for the .feed extension. With following default JSP for the .entry extension, it becomes possible to generate a feed out of any JCR node. The feed would simply list the child entries.
A possible entry.jsp would look like this:
<%@ page session="false" %><%
%><%@include file="/libs/wcm/global.jsp"%><%
%><%@ taglib prefix="sling" uri="http://sling.apache.org/taglibs/sling/1.0" %><%
%><%@ taglib prefix="atom" uri="http://sling.apache.org/taglibs/atom/1.0" %>
<atom:entry id="${currentNode.path}">
<atom:link href="${currentNode.path}"/>
<atom:title>
<%
if (currentNode.hasProperty("jcr:title")) {
%><%=currentNode.getProperty("jcr:title").getString() %><%
} else if (currentNode.hasProperty("cq:title")) {
%><%=currentNode.getProperty("cq:title").getString() %><%
} else if (currentNode.hasProperty("title")) {
%><%=currentNode.getProperty("title").getString() %><%
} else {
%><%=currentNode.getPath() %><%
}
%>
</atom:title>
<%
if (currentNode.hasProperty("jcr:description")) {
%><atom:summary><%=currentNode.getProperty("jcr:description").getString() %></atom:summary><%
}
%>
</atom:entry>
> Allow ATOM Syndication Format output
> ------------------------------------
>
> Key: SLING-985
> URL: https://issues.apache.org/jira/browse/SLING-985
> Project: Sling
> Issue Type: New Feature
> Reporter: Lars Trieloff
> Priority: Minor
> Attachments: SLING-985.patch
>
>
> Having a JSON output for Sling is quite nice, but many web applications require RSS/Atom support these days. Having an extension module that provides a tag library for creating Atom feeds and atom entries out of JCR nodes would be very helpful.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.