General Actions:
Log-in
Wiki:
Courses
▼
:
Document Index
»
Space:
DSSF2008
▼
:
Document Index
»
Page:
SiteMap
Search
DSSF2008
:
Flash Sitemap
Page Actions:
Export
▼
:
Export as PDF
Export as RTF
Export as HTML
More actions
▼
:
Print preview
View Source
Flash Sitemap
Wiki source code of
Flash Sitemap
Last modified by
Hal Eden
on 2010/08/20 11:06
Content
·
Comments
(0)
·
Attachments
(8)
·
History
·
Information
Show line numbers
1 Flash Sitemap #macro(flashmap $mapname) <script type="text/javascript" src="$doc.getAttachmentURL('flashobject.js')"> </script> <div id="flashcontent_$mapname"> Flash plugin or Javascript are turned off. Activate both and reload to view the mindmap </div><script type="text/javascript"> var fo = new FlashObject("$doc.getAttachmentURL('visorFreemind.swf')","visorFreeMind", "100%", "600", 6, "#9999ff"); fo.addParam("quality", "high"); fo.addParam("bgcolor", "#ffffff"); fo.addVariable("openUrl", "_blank"); fo.addVariable("initLoadFile", "$doc.getAttachmentURL($mapname, "download")"); fo.addVariable("startCollapsedToLevel","1"); fo.addVariable("startFit","true") fo.write("flashcontent_$mapname"); </script> #end #flashmap("sitemap.mm") 1 Sitemap <% import java.io.StringReader import java.util.HashMap import com.xpn.xwiki.doc.XWikiAttachment import groovy.xml.MarkupBuilder def generateXmlForChildNode(nodeSpace, nodeName, xmlBuilder) { def fullNodeName = nodeSpace+"."+nodeName def attachExists = xwiki.getDocument(fullNodeName).getAttachment("pageicon.png") def attachment = xwiki.getDocument(fullNodeName).getAttachmentURL("pageicon.png", "download", "width=50") def nodeHtml = nodeName if (attachExists!=null) { nodeHtml = "<html>"+nodeName+"<img src=\""+attachment+"\" width=\"50px\"></html>" } xmlBuilder.node(LINK:xwiki.getURL(fullNodeName, "view"), TEXT:nodeHtml, STYLE:"bubble") { xmlBuilder.edge(STYLE:"sharp_bezier", WIDTH:"4") def sql = "select distinct doc.web, doc.name, doc.parent from XWikiDocument as doc where doc.parent='" + xwiki.sqlfilter(fullNodeName) + "'" + "and doc.space='" + nodeSpace + "'" def doclist = xwiki.search(sql) for(item in doclist) { generateXmlForChildNode(item[0], item[1], xmlBuilder) } } } def generateMap(firstNodeSpace, firstNodeName, xmlBuilder) { xmlBuilder.map() { generateXmlForChildNode(firstNodeSpace, firstNodeName, xmlBuilder) } } if (xwiki.hasAdminRights()) { println "[Update the Map>" + doc.fullName + "?update=1]" if (request.get("update") != null) { print "Start mindmap generation... " def writer = new StringWriter() def xmlBuilder = new MarkupBuilder(writer) generateMap("DSSF2008", "WebHome", xmlBuilder) def attachmentName = "sitemap.mm" def attachment = doc.getDocument().getAttachment(attachmentName) if (!attachment) { attachment = new XWikiAttachment(doc.getDocument(), attachmentName) doc.getDocument().getAttachmentList().add(attachment) } attachment.setContent(writer.toString().getBytes()) doc.getDocument().saveAttachmentContent(attachment, context.getContext()) doc.save() println "done" response.sendRedirect(xwiki.getURL(doc.getName(),"view")) } } %> #if ($doc.getAttachmentList().size() > 0) #mindmap("sitemap.mm" "100%" "500") #end 1 Current Users #flashmap("usermap.mm") <% if (xwiki.hasAdminRights()) { println "[Update the User Map>" + doc.fullName + "?updateum=1]" if (request.get("updateum") != null) { print "Start mindmap generation... " def sql = ", BaseObject as obj where obj.name=doc.fullName and obj.className='XWiki.XWikiUsers'" def writer = new StringWriter() def xmlBuilder = new MarkupBuilder(writer) def hgapcount = 0 def totalCount = xwiki.searchDocuments(sql).size()+0 xmlBuilder.map () { xmlBuilder.node (TEXT:"Users"){ for (item in xwiki.searchDocuments(sql)){ def userdoc = xwiki.getDocument(item) def attachCount = userdoc.attachmentList.size() def attachIndex = attachCount - 1 def nodeURL = userdoc.getURL() def nodeHtml = userdoc.getName() /* def obj = userdoc.getObject("XWiki.XWikiUsers") def lastname = obj.get("last_name") def firstname = obj.get('first_name') nodeHtml = firstname + ' ' + lastname */ if(attachCount >0){ def attach = userdoc.attachmentList.get(0) def attachURL = userdoc.getAttachmentURL(attach.filename,"download") + "?width=30" nodeHtml = "<html>"+userdoc.getName()+"<img src=\""+attachURL+"\" width=\"30px\"></html>" } def angle = (Math.floor(hgapcount/2.0))/(totalCount/2)*Math.PI if (angle < Math.PI/2) { angle = angle*(1.0+Math.abs(Math.cos(angle))*0.333) } else { angle = Math.PI - (Math.PI-angle)*(1.0+Math.abs(Math.cos(angle))*0.333) } def hgap = 350*Math.sin(angle) xmlBuilder.node(LINK:nodeURL, TEXT:nodeHtml, STYLE:"bubble", HGAP:hgap) { xmlBuilder.edge(STYLE:"sharp_bezier", WIDTH:"2") } hgapcount=hgapcount+1 } } } def attachmentName = "usermap.mm" def attachment = doc.getDocument().getAttachment(attachmentName) if (!attachment){ attachment = new XWikiAttachment(doc.getDocument(), attachmentName) doc.getDocument().getAttachmentList().add(attachment) } attachment.setContent(writer.toString().getBytes()) doc.getDocument().saveAttachmentContent(attachment, context.getContext()) doc.save() println "done" response.sendRedirect(xwiki.getURL(doc.getName(),"view")) } } %> 1 Current Users (by group) #flashmap("groupmap.mm") <% if (xwiki.hasAdminRights()) { println "[Update the Group Map>" + doc.fullName + "?updategm=1]" if (request.get("updategm") != null) { print "Start mindmap generation... " def sql = ", BaseObject as obj where obj.name=doc.fullName and obj.className='XWiki.XWikiGroups'" def writer = new StringWriter() def xmlBuilder = new MarkupBuilder(writer) xmlBuilder.map () { xmlBuilder.node (TEXT:"Groups"){ for (item in xwiki.searchDocuments(sql)) { def groupdoc = xwiki.getDocument(item) xmlBuilder.node(TEXT:groupdoc.getName(), STYLE:"bubble"){ def users = groupdoc.getObjects("XWiki.XWikiGroups") for (user in users) { def hgapcount = 0 def totalCount = users.size() def userName = xwiki.getUserName(user.getProperty("member").value) userName = user.getProperty("member").value def userdoc = xwiki.getDocument(userName) if (userdoc != null){ def attachCount = userdoc.attachmentList.size() def attachIndex = attachCount - 1 def nodeURL = userdoc.getURL() def nodeHtml = xwiki.getUserName(userName, false) def obj = userdoc.getObject("XWiki.XWikiUsers") if (obj != null) { def lastname = obj.get("last_name") def firstname = obj.get('first_name') nodeHtml = firstname + ' ' + lastname } if (attachCount >0){ def attach = userdoc.attachmentList.get(0) def attachURL = userdoc.getAttachmentURL(attach.filename,"download") + "?width=30" nodeHtml = "<html>"+nodeHtml+"<img src=\""+attachURL+"\" ></html>" } def angle = (Math.floor(hgapcount/2.0))/(totalCount/2)*Math.PI if (angle < Math.PI/2) { angle = angle*(1.0+Math.abs(Math.cos(angle))*0.333) } else { angle = Math.PI - (Math.PI-angle)*(1.0+Math.abs(Math.cos(angle))*0.333) } def hgap = 350*Math.sin(angle) xmlBuilder.node(LINK:nodeURL, TEXT:nodeHtml, STYLE:"bubble", HGAP:hgap) { xmlBuilder.edge(STYLE:"sharp_bezier", WIDTH:"2") } } hgapcount=hgapcount+1 } } } } } def attachmentName = "groupmap.mm" def attachment = doc.getDocument().getAttachment(attachmentName) if (!attachment){ attachment = new XWikiAttachment(doc.getDocument(), attachmentName) doc.getDocument().getAttachmentList().add(attachment) } attachment.setContent(writer.toString().getBytes()) doc.getDocument().saveAttachmentContent(attachment, context.getContext()) doc.save() println "done" response.sendRedirect(xwiki.getURL(doc.getName(),"view")) } } %>
Course Pages
Home
Roster
Assignments
Schedule and Syllabus
Course Announcement
Lecture Material
Relevant Resources
Questionnaires
Independent Research Projects
Blog
Recently Visited
All Members
Search
Search query
Recently Modified
MSC Final Project ...
MakeShiftCrew Proj...
Embedding Content
Human-Centered Com...
Assignment12KyleMa...
See More Changes
Recent Comments
Recently Created
WebPreferences
|
RatingStats
|
palen
|
ksiek
|
kena