Tag cloud by Structure and Categories
#set($tagMap = {}) #foreach($con in $dotcontent.pull("+structureName:Blogentry +live:true +($catQueryforTagCloud)",0,"modDate desc")) #foreach($tag in $con.tag) #if(! $tagMap.get($tag)) #set($dummy = $tagMap.put($tag,1)) #else #set( $count = $tagMap.get($tag) + 1) #set($dummy = $tagMap.put($tag,$count)) #end #end #end ##Sort tag count alpha, sortAlpha is a dotcms macro from DotCMSMacroWebApi #set($tagSorted = $macro.sortAlpha($tagMap.keySet())) <style type="text/css" media="all"> .tagCloud .xSmallTag { font-size: .75em; } .tagCloud .smallTag { font-size: .95em; } .tagCloud .mediumTag { font-size: 1.25em; } .tagCloud .largeTag{ font-size: 2.0em; } .tagCloud .xLargeTag{ font-size: 3.5em; } </style> <div class="tagCloud"> #foreach($tag in $tagSorted) #set($tagCount = $tagMap.get($tag)) #set($class = "xSmallTag") #if($tagCount > 15) #set($class = "xLargeTag") #elseif($tagCount > 10) #set($class = "largeTag") #elseif($tagCount > 5) #set($class = "mediumTag") #elseif($tagCount >=2) #set($class = "smallTag") #end <a href="&tagCount=${tagCount}" class="$class">$tag</a> #end </div>