**
* Render a complex document in the results list *#
## Load Mime-Type List and Mapping parse('mime_type_lists.vm') ## Sets: ## * supportedMimeTypes, AKA supportedtypes ## * mimeExtensionsMap, AKA extMap
## Title if($doc.getFieldValue('title'))
#set($title = $esc.html($doc.getFirstValue('title')))
else
#set($title = "["+$doc.getFieldValue('id')+"]")
end
## URL if($doc.getFieldValue('url'))
#set($url = $doc.getFieldValue('url'))
elseif($doc.getFieldValue('resourcename'))
#set($url = "file:///$doc.getFieldValue('resourcename')")
else
#set($url = "$doc.getFieldValue('id')")
end
## Sort out Mime-Type set($ct = $list.get($doc.getFirstValue('content_type').split(“;”),0)) set($filename = $doc.getFieldValue('resourcename')) set($filetype = false) set($filetype = $mimeExtensionsMap.get($ct))
## TODO: falling back to file extension is convenient, ## except when you don't have an icon for that extension ## example “application/vnd.openxmlformats-officedocument.wordprocessingml.document” ## document with a .docx extension. ## It'd be nice to fall back to an “unknown” or the existing “file” type ## We sort of do this below, but only if the filename has no extension ## (anything after the last dot).
if(!$filetype)
#set($filetype = $filename.substring($filename.lastIndexOf(".")).substring(1))
end
## if(!$filetype) ## set($filetype = “file”) ## end ## if(!$supportedMimeTypes.contains($filetype)) ## set($filetype = “file”) ## end
## Row 1: Icon and Title and mlt link <div class=“result-title”>
## Icon ## Small file type icons from http://www.splitbrain.org/projects/file_icons (public domain) <img src="#{url_root}/img/filetypes/${filetype}.png" align="center"> ## Title, hyperlinked <a href="${url}" target="_blank"> <b>$title</b></a> ## Link for MLT / More Like This / Find Similar <span class="mlt"> #if($params.getBool('mlt', false) == false) <a href="#lensNoQ&q=id:%22$docId%22&mlt=true"> More Like This</a> #end </span>
</div>
## Row 2?: ID / URL <div>
Id: #field('id')
</div>
## Resource Name <div>
#if($doc.getFieldValue('resourcename')) Resource name: $filename #elseif($url) URL: $url #end #if($ct) ($ct) #end
</div>
## Author if($doc.getFieldValue('author'))
<div> Author: #field('author') </div>
end
## Last_Modified Date if($doc.getFieldValue('last_modified'))
<div> last-modified: #field('last_modified') </div>
end
## Main content of doc <div class=“result-body”>
#field('content')
</div>
## Display Similar Documents / MLT = More Like This <div class=“mlt”>
#set($mlt = $mltResults.get($docId)) #set($mltOn = $params.getBool('mlt')) #if($mltOn == true) <div class="field-name"> Similar Items </div> #end ## If has MLT enabled An Entries to show #if ($mltOn && $mlt && $mlt.size() > 0) <ul> #foreach($mltHit in $mlt) #set($mltId = $mltHit.getFieldValue('id')) <li> <div> <a href="#url_for_home?q=id:$mltId"> $mltId</a> </div> <div> <span class="field-name"> Title: </span> $mltHit.getFieldValue('title') </div> <div> <span class="field-name"> Author: </span> $mltHit.getFieldValue('author') <span class="field-name"> Description: </span> $mltHit.getFieldValue('description') </div> </li> #end ## end for each mltHit in $mlt </ul> ## Else MLT Enabled but no mlt results for this query #elseif($mltOn && $mlt.size() == 0) <div>No Similar Items Found</div> #end
</div> ## div class=mlt
parse('debug.vm')