On 11/2/07, Roller-User <[EMAIL PROTECTED]> wrote:
> -- start javascript.vm --
> $myCustomModel.setContentType("text/javascript")
> #set($page = $model.weblog.getPageByName("layout") )
> #set($content = #parse($page.id))
> #set($content = $myCustomModel.prepareForJavascript($content) )
> document.write($content);
> -- end javascript.vm ---
>
> Line 3 in above file obviously returns an error due to the way Velocity
> works. My question however is, whetever there is another way to do
> something similiar within the Roller API(s)?
Seems like the method prepareForJavascript() would be pretty complex,
why not simply have javascript.vm generate the Javascript data?
For example, here's a template that returns entries in JSON format
with a next/prev link so you can get the next batch of data.
#if($model.getRequestParameter("columns") == "true")
[{field:"pubTime"}, {field:"title"}]
#else
#set($pager = $model.getWeblogEntriesPager())
#set($map = $pager.getEntries()) {
#if($pager.nextLink) nextLink:"$pager.nextLink", #end
#if($pager.prevLink) prevLink:"$pager.prevLink", #end
data: [
#foreach($day in $map.keySet())
#set($entries = $map.get($day))
#foreach($entry in $entries)
#if($comma),#else#set($comma = true)#end
{id: "$entry.website.handle:$entry.anchor",
pubTime: "$entry.pubTime", title:"$entry.title" }
#end
#end ] }
#end
You can see it in action here:
http://rollerweblogger.org/roller/page/dojoentries
- Dave