56 lines
1.9 KiB
Text
56 lines
1.9 KiB
Text
res.contentType = "text/xml";
|
|
res.dependsOn(this.lastupdate);
|
|
res.digest();
|
|
|
|
var now = new Date();
|
|
var systitle = root.getSysTitle();
|
|
var w3fmt = "yyyy-MM-dd'T'HH:mm:ss'+01:00'";
|
|
|
|
var collection = this.allstories;
|
|
if (req.data.show == "all")
|
|
collection = this.allcontent;
|
|
var size = collection.size();
|
|
var max = req.data.max ? parseInt(req.data.max) : 7;
|
|
max = Math.min(max, size);
|
|
max = Math.min(max, 10);
|
|
|
|
var param = new Object();
|
|
if (max > 0 && this.online) {
|
|
var items = "";
|
|
var resources = "";
|
|
collection.prefetchChildren(0, max);
|
|
for (var i=0; i<max; i++) {
|
|
var story = collection.get(i);
|
|
param.url = story.href();
|
|
param.title = clipText(story.getRenderedContentPart("title"), 50);
|
|
param.text = clipText(story.getRenderedContentPart("text"), 500);
|
|
// shit happens: if a content part contains a markup
|
|
// element only clipText() will return nothing...
|
|
if (!param.text && !param.title)
|
|
param.title = "...";
|
|
param.publisher = systitle;
|
|
param.creator = story.creator.name;
|
|
param.email = "";
|
|
if (story.creator.publishemail)
|
|
param.email = translateToEntities(story.creator.email);
|
|
param.date = story.modifytime.format(w3fmt);
|
|
param.subject = story.topic ? story.topic : "";
|
|
param.year = story.modifytime.getYear();
|
|
items += story.renderSkinAsString("rssItem", param);
|
|
resources += story.renderSkinAsString("rssResource", param);
|
|
}
|
|
|
|
param = new Object();
|
|
param.url = this.href();
|
|
param.title = systitle;
|
|
param.creator = this.creator.name
|
|
if (this.creator.publishemail)
|
|
param.email = translateToEntities(this.creator.email);
|
|
param.year = now.getYear();
|
|
param.lastupdate = max > 0 ? this.lastUpdate.format(w3fmt): this.createtime.format(w3fmt);
|
|
|
|
param.items = items;
|
|
param.resources = resources;
|
|
|
|
this.renderSkin("rss", param);
|
|
}
|