Back

Show a page and content as JSON

Description

This code allows you to display the page information, template information and content on the page as a json object.  If you add this to the top of your template and pass a ?json=1 to your page, it will display your page information as a json object.

Code

#[[

#if($request.getParameter("json"))
	$response.setContentType("application/json")
	#set($pageMap = $contents.getEmptyMap())
	#set($dummy = $pageMap.put("dotPageContent", $dotPageContent.getContentObject().getMap()))
	#set($dummy = $pageMap.put("dotTheme", $dotTheme))
	#set($dummy = $pageMap.put("dotThemeLayout", $dotThemeLayout))
	#foreach($key in $context.getKeys())
		#if($key.startsWith("contentletList"))
			#set($cons = $contents.getEmptyList())
			#set($contentIds=$context.get("$key"))
			#foreach($id in $contentIds)
				#set($con = $dotcontent.find($id))
				#if($con)
					#set($dummy = $cons.add($con.getContentObject().getMap()))
				#end

			#end
			#set($dummy = $pageMap.put("container-$key", $cons))
		#end
	#end
	$json.generate($pageMap)
	#stop
#end

]]#

.