[
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.