2017 Women's Lacrosse Roster

There was a problem with a Velocity script
Pageheadlines-template
ErrorInvocation of method 'sortedBy' in class com.prestosports.content.HeadlinesSorter threw exception Only one : should be in a sort rule (first_name: :last_name) at headlines-template[line 155, column 37]
Page source:
1: ## PICK UP OPTIONS
2: $website.include("options")
3: #set ($options = $request.getAttribute("options"))
4: 
5: #if ($restriction.code == 2)
6: ## IMAGES (PHOTO GALLERY)
7: 
8:   $website.includeAgain("${page.url}?tmpl=photo-gallery-template")
9: 
10: #elseif ($restriction.code == 3)
11: ## Bios (roster)
12: 
13: #macro (printHeadshot $bioinfo)
14: 	#set ($bio = $bioinfo.getDataAsObject().getAttributes())
15: 	#set ($alt = "${bio.get('first_name')} ${bio.get('last_name')} full bio")
16: 	
17: 	
18:     #if ($bioinfo.publishedHeadshots.size() > 0)
19:     	#set ($src = $bioinfo.publishedHeadshots.get(0).url)
20:     #else
21:     	#if ($website.exists("/images/setup/headshot_default.jpg"))
22: 			#set ($src = "/images/setup/headshot_default.jpg")
23:     	#else
24: 			#set ($src = "/info/images/default_headshot.jpg")
25:     	#end
26: 	#end
27: 	
28: 	<img src="${src}?max_width=300" alt="$alt" class="headshot" />
29: #end ## macro printHeadshot
30: 
31: #set ($rosterLayout = "list")
32: #set ($showHeadshotView = false)
33: 
34: #if ($options.get("roster_show_headshot_view") == true && !($browser.getIphone() || $browser.getMobile()))
35: 	#set ($showHeadshotView = true)
36: 	
37:     #foreach ($cookie in $request.cookies)
38:         #if ($cookie.name == "roster_view")
39:         	#set ($rosterLayout = $cookie.value)
40:         #end
41:     #end	
42: #end
43: 
44: #if ($options.get("roster_default_view"))
45:   #set ($rosterLayout = $options.get("roster_default_view"))
46: #end
47: 
48: #if ($request.getParameter("view"))
49:   #set ($view = $request.getParameter("view"))
50:   #if ($view == "list" || $view == "headshot")
51:     #set ($rosterLayout = $view)
52:   #end
53: #end
54: 
55: #if ($request.getParameter("sort").length() > 0) ## when sort param is available, force the list layout
56:   #set ($rosterLayout = "list")
57: #end  
58:   
59: <div class="mod-roster">
60: 
61: #if ($options.get("archive_roster"))
62: 	#set ($archiveRosterString = $options.get("archive_roster"))
63: 	#set ($archiveRosterString = $archiveRosterString.split(","))
64: 	#set ($isArchivePage = false)
65: 	#if ($tool.list.size($archiveRosterString) > 0)
66: 		<div class="roster-archive clearfix">
67: 		<select aria-label="Change the season by selecting an option from the list below">
68: 			<option selected="selected">Archive Rosters</option>
69: 			#foreach ($string in $archiveRosterString)
70: 				#set ($archiveRoster = $string.split(":"))
71: 				#if ($tool.list.size($archiveRoster) == 2)
72: 					#set ($archiveUrl = $tool.list.get($archiveRoster, 0).trim())
73: 					#set ($archiveLabel = $tool.list.get($archiveRoster, 1).trim())
74: 					#if ($archiveUrl != $page.url)
75: 						<option value="$archiveUrl">$archiveLabel</option>
76: 					#else
77: 						#set ($isArchivePage = true)
78: 					#end
79: 				#end
80: 			#end
81: 		</select>
82: 		</div>
83: 		<script>
84:     (function($) {
85: 			$(function() {
86: 				$('.roster-archive select').change(function() {
87: 					window.location.href = $(this).val();
88: 				});
89: 			});
90:     })(jQuery);
91: 		</script>
92: 	#end
93: #end
94: 
95: <div class="align-center">
96: 	#if ($page.thumbnailURL)
97: 		#set ($rosterThumbSize = 600)
98:         #if ($tool.math.toInteger($options.get("roster_thumb_size")))
99:           #set ($rosterThumbSize = $tool.math.toInteger($options.get("roster_thumb_size")))
100:         #end
101: 		<div class="banner-img">
102: 			<img src="$page.thumbnailURL?max_width=${rosterThumbSize}" alt="page.thumbnailPage.altText" width="${rosterThumbSize}" />
103: 		</div>
104: 	#end
105: 	#if ($showHeadshotView)
106:     <div class="toggle-buttons">
107:       <ul class="clearfix">
108:         <li #if ($rosterLayout == "list") class="list active" #else class="list" #end>
109: 			<a href="${page.url}?view=list" class="btn" role="button" #if ($rosterLayout == "list") aria-pressed="true" #end>
110: 				<span class="icon gicon-menu"></span><span class="text">List View</span>
111: 			</a>
112: 		</li>
113:         <li #if ($rosterLayout == "headshot") class="headshot active" #else class="headshot" #end>
114: 			<a href="${page.url}?view=headshot" class="btn" role="button" #if ($rosterLayout == "headshot") aria-pressed="true" #end>
115: 				<span class="icon gicon-headshot"></span><span class="text">Headshot View</span>
116: 			</a>
117: 		</li>
118:       </ul>
119:     </div>
120: 	#end
121: 	#if ($page.title.length() > 0)
122: 		<h1>$page.title</h1>
123: 	#end
124: </div>
125: 
126: #if ($rosterLayout == "list")
127: 	#set ($rosterFields = ["number","first_name: :last_name","position","year","height","weight","hometown:/:highschool"])
128: 	#set ($rosterLabels = ["No.","Name","Pos.","Cl.","Ht.","Wt.","Hometown/High School"])
129: 	#set ($rosterSortables = ["number","last_name","year","position"])
130: 	
131: 	#if ($options.get("roster_fields") && $options.get("roster_labels"))
132:         #set ($rosterFieldsString = $options.get("roster_fields"))
133:         #set ($rosterLabelsString = $options.get("roster_labels"))
134:         
135: 		#set ($rosterFieldsString = $rosterFieldsString.split(","))
136:         #set ($rosterLabelsString = $rosterLabelsString.split(","))
137: 		
138: 		#set ($rosterFieldsSize = $tool.list.size($rosterFieldsString))
139: 		#set ($rosterLabelsSize = $tool.list.size($rosterLabelsString))
140: 
141: 		#if ($rosterFieldsSize > 0 && $rosterLabelsSize > 0 && $rosterFieldsSize == $rosterLabelsSize)
142: 			#set ($rosterFields = $rosterFieldsString)
143: 			#set ($rosterLabels = $rosterLabelsString)
144: 		#end
145: 	#end
146: 	
147: 	#if ($options.get("roster_sortable"))
148: 		#set ($rosterSortablesString = $options.get("roster_sortable"))
149: 		#set ($rosterSortables = $rosterSortablesString.split(","))
150: 	#end
151:     
152:     #set ($sortBy = "")
153:     #set($sortBy = $formatter.escapeXml($request.getParameter("sort")))
154:     #if ($sortBy.length() > 0)
155:       #set ($headlines = $headlines.sortedBy($sortBy))
156:     #end
157:     
158:     <div class="roster">
159:     	<table>
160:     		<thead>
161:     			<tr class="roster-header accent-bg">
162:     				##PRINTING LABELS
163:     				#foreach($field in $rosterFields)
164:     					#set ($fieldLabel = $tool.list.get($rosterLabels, $tool.math.sub($velocityCount, 1)))
165:     					#set ($isSortable = false)
166:     					#set ($sortableField = "")
167:     					
168:     					#if ($tool.list.size($rosterSortables) > 0)
169:     						#foreach ($sortable in $rosterSortables)
170:     							#if ($field.contains($sortable))
171:     								#set ($isSortable = true)
172:     								#set ($sortableField = $sortable)
173:     							#end
174:     						#end
175:     					#end
176:     					
177:     					<td class="col${velocityCount}">
178:     						#if ($isSortable)
179:     							<a href="$page.url?sort=${sortableField}" title="Sort using this column" class="sortable">$fieldLabel</a>
180:     						#else
181:     							$fieldLabel
182:     						#end
183:     					</td>
184:     				#end
185:     			</tr>
186:     		</thead>
187:     		<tbody>
188:     			#set ($row = $formatter.makeAlternator("row", "0", "1"))
189:     			#foreach ($bioinfo in $headlines)
190:     				#set ($bio = $bioinfo.getDataAsObject().getAttributes())
191:     				<tr class="roster-row${row}">
192:     				    
193:     					#foreach($field in $rosterFields)
194:     						#set ($fieldValue = "")
195:     						#if ($field.contains(": :"))
196:     							#set ($fieldParts = $field.split(": :"))
197:     							#foreach ($fieldPart in $fieldParts)
198:     								#set ($fieldPartValue = "")
199:     								#if ($fieldPart.contains(">"))
200:     									#set ($orderedFields = $fieldPart.split(">"))
201:     									#foreach ($orderedField in $orderedFields)
202:     										#set ($orderedField = $orderedField.trim())
203:     										#if ($bio.get($orderedField) && $fieldPartValue.length() == 0)
204:     											#set ($fieldPartValue = $bio.get($orderedField))
205:     										#end
206:     									#end
207:     								#else
208:     									#if ($bio.get($fieldPart))
209:     										#set ($fieldPartValue = $bio.get($fieldPart))
210:     									#end
211:     								#end
212:     								#if ($fieldPartValue.length() > 0)
213: 	    								#set ($fieldValue = "${fieldValue} ${fieldPartValue}")
214: 	    							#end
215:     							#end
216:     						#elseif ($field.contains(":/:"))
217:     							#set ($fieldParts = $field.split(":/:"))
218:     							#foreach ($fieldPart in $fieldParts)
219:     								#set ($fieldPart = $fieldPart.trim())
220:     								#set ($fieldPartValue = "-")
221:     							
222:     								#if ($fieldPart.contains(">"))
223:     									#set ($orderedFields = $fieldPart.split(">"))
224:     									#foreach ($orderedField in $orderedFields)
225:     										#set ($orderedField = $orderedField.trim())
226:     										#if ($bio.get($orderedField) && $fieldPartValue == "-")
227:     											#set ($fieldPartValue = $bio.get($orderedField))
228:     										#end
229:     									#end
230:     								#else
231:     									#if ($bio.get($fieldPart))
232:     										#set ($fieldPartValue = $bio.get($fieldPart))
233:     									#end
234:     								#end
235:     								
236:     								#if ($velocityCount > 1)
237:     									#set ($fieldValue = "${fieldValue} / $fieldPartValue")
238:     								#else
239:     									#set ($fieldValue = $fieldPartValue)
240:     								#end
241:     								
242:     							#end
243:     						#else
244:     							#if ($field.contains(">"))
245:     								#set ($orderedFields = $field.split(">"))
246:     								#foreach ($orderedField in $orderedFields)
247:     									#set ($orderedField = $orderedField.trim())
248:     									#if ($bio.get($orderedField) && $fieldValue.length() == 0)
249:     										#set ($fieldValue = $bio.get($orderedField))
250:     									#end
251:     								#end
252:     							#else
253:     								#if ($bio.get($field))
254:     									#set ($fieldValue = $bio.get($field))
255:     								#end
256:     							#end
257: 							#end
258: 							#set ($dataTitle = $tool.list.get($rosterLabels, $tool.math.sub($velocityCount, 1)))
259: 							#set ($class = "")
260: 							#if ($field.contains("first_name") || $field.contains("last_name") || $field.contains("full_name")) 
261: 								#set ($class = "name") 
262: 							#end
263: 							#if ($field.equals("number"))
264: 								#set ($class = "number")
265: 							#end
266:     						<td data-title="${dataTitle}" #if ($class.length() > 0) class="${class}" #end>
267:     							#set ($fieldValue = $fieldValue.trim())
268:     							#if ($fieldValue.length() > 0)
269:     								#if ($field.contains("first_name") || $field.contains("last_name") || $field.contains("full_name"))
270:     									<a href="$bioinfo.url">#printHeadshot($bioinfo) $fieldValue</a>
271:     								#elseif ($field.contains("email_address"))
272:     									<a href="mailto:$!bio.get("${value}")">$fieldValue</a>
273:     								#else
274:     									$fieldValue
275:     								#end
276:     							#else
277:     								&nbsp;
278:     							#end
279:     						</td>
280:     					#end
281:     				</tr>
282:     				$row.alternate
283:     			#end
284:     		</tbody>
285:     	</table>
286:     </div>
287: #elseif ($rosterLayout == "headshot")
288: 	
289: 	#set ($headshotSize = "medium")
290: 	#if ($options.get("roster_headshot_size"))
291:       #set ($headshotSize = $options.get("roster_headshot_size"))
292:     #end
293: 	
294: 	<div class="roster headshot-layout ${headshotSize}">
295:     <ul class="clearfix">
296:     	#foreach ($bioinfo in $headlines)
297:     	<li class="player">
298:     		<a href="$bioinfo.url">
299:     		
300:     		#set ($bio = $bioinfo.getDataAsObject().getAttributes())
301:     		#printHeadshot($bioinfo)
302: 
303:     		#if ($bio.get("number") && $!bio.get("number").length() > 0)<span class="number">$bio.get("number")</span>#end
304: 
305:     		#if ($bio.get("first_name") && $bio.get("last_name"))<span class="name"><span class="firstname">$bio.get("first_name")</span> <span class="lastname">$bio.get("last_name")</span></span>#end
306:     		</a>
307:     	</li>
308:     	#end ## outer-loop
309:     </ul>
310: 	</div>
311: #end ## roster-layout
312: 
313: #set ($rosterFooter = "${page.url}-footer")
314: 
315: #if ($website.exists($rosterFooter))
316:   <div class="roster-footer">$website.include($rosterFooter)</div>
317: #end
318: 
319: </div> ## mod-roster
320: 
321: #if ($showHeadshotView)
322:   <script src="$website.cdn("/info/cookie-handler.js")"></script>
323:   <script src="$website.cdn("/info/jquery.history.js")"></script>
324:   <script>
325:   (function($) {
326:   $(function() {
327:     var root = $('.mod-roster');
328:     var toggleButtons = $('.toggle-buttons li', root);
329:     
330:     var loadView = function(href, view) {
331:       root.addClass('loading');
332:       toggleButtons.filter('.' + view).addClass('loading').siblings().removeClass('active');
333:     
334:       jQuery.get(href, { ajax: true }, function(data) {
335:         var newRosterContent = $(data).find('.roster');
336:         $('.roster', root).replaceWith(newRosterContent);
337:         toggleButtons.filter('.' + view).removeClass('loading').addClass('active');
338:         root.removeClass('loading');
339:       });
340:     };
341:     
342:     History.Adapter.bind(window,'statechange',function(){ 
343:       var state = History.getState();
344:       loadView(state.url, state.data.view);
345:     });
346:     
347:     toggleButtons.on('click', function() {
348:       if (!$(this).hasClass('active') && !root.hasClass('loading')) {
349: 	  
350: 	  	$('a[role="button"]', toggleButtons).removeAttr('aria-pressed');
351: 		$('a[role="button"]', this).attr('aria-pressed', true);
352:       
353:         var href = $(this).children('a').attr('href');
354:         
355:         if ($(this).is('.list')) {
356:           createCookie('roster_view', "list", 14);
357:           History.pushState({ view: "list" }, null, href);
358:         } else {
359:           createCookie('roster_view', "headshot", 14);
360:           History.pushState({ view: "headshot" }, null, href);
361:         }
362:       }
363:       return false;
364:     });
365:     
366:     root.on('click', '.sortable', function() {
367:       History.pushState({ view: 'list' }, null, $(this).attr('href'));
368:       return false;
369:     });
370:   });
371:   })(jQuery);
372:   </script>
373: #end
374: 
375: #elseif ($restriction.code == 11) ## Video
376: 
377: #set ($inclURL = "${page.url}?tmpl=video-grid-template")
378: #if ($website.isIncluded() && (!$request.getParameter("playlist") || $request.getParameter("playlist") != false))
379:   #set ($inclURL = "${page.url}?tmpl=video-headline-template")
380: #end
381: 
382: $website.includeAgain($inclURL)
383: 
384: #elseif ($restriction.code == 12)
385:   ## Podcast
386: 
387: <h3>Podcast Feed#if ($page.title.length() > 0) For: $page.title #end</h3>
388: 
389: <p>
390: Please add the entire URL Below to your Podcast Software:
391: </p>
392: 
393: <input type="text" size="60" value="http://${request.serverName}${page.url}?feed=rss_2.0" name="searchterm"/>
394: 
395: <p>
396: How to Listen to this Podcast:
397: </p>
398: <ol>
399: <li>Download a Podcast Aggregator from <a href="http://juicereceiver.sourceforge.net/">here</a>.</li>
400: <li>Copy the entire link in the box above to the "URL" or "feed" field in your software.</li>
401: <li>Listen to, and enjoy!</li>
402: </ol>
403: 
404: #elseif ($restriction.code == 15)
405:   ## unkonwn
406: 
407: #set ($itemsRendered = 0)
408: <div class="store-wrapper">
409: <div class="store-items">
410: 
411: <table cellpadding="0" cellspacing="0">
412: #foreach ($article in $headlines)
413: 
414: #if ($itemsRendered > 0)<tr><td colspan="5" class="sep"></td></tr>#end
415: 
416: <tr #if ($velocityCount % 2 == 0) class="alternate-row" #end>
417: 
418: #set ($item = $article.dataAsObject)
419: 
420: ## This skips items where bidding has ended
421: #if ($item.endBidding.after($now))
422: 
423: <td style="width: 80px; padding: 10px 0;">
424: #if ($article.thumbnailURL.length() > 0)
425: <img src="$article.thumbnailURL?max_width=70&max_height=70&crop=true" />
426: #else
427:   <img src="$website.includeAgain("marketplace_thumbnail.jpg?print=src")?max_width=70&max_height=70&crop=true" /><br />
428:  #end
429: </td>
430: 
431: <td style="width: 35%;">
432: <a href="$article.url" class="title">$article.title#if (!($article.title.length() > 0))<i>No title</i>#end</a><br />
433: #if ($article.leadIn.length() > 0)
434: $article.leadIn
435: #end
436: </td>
437: <td align="center"><strong>Current bid:</strong><br />$formatter.formatCurrency($item.price)</td>
438: <td align="center"><strong># of bids:</strong><br /> #if ($item.history) $item.history.size() #else None #end</td>
439: <td align="center"><strong>Ends:</strong><br /> $formatter.formatDateSiteTimezone($item.endBidding, "EEE MMM  d, h:mm a")</td>
440: 
441: #set ($itemsRendered = $itemsRendered+1) 
442: 
443: #end
444: </tr>
445: #end ## foreach
446: </table>
447: 
448: #if ($itemsRendered == 0)
449: <h1>No Items Available</h1>
450: <p>Check back soon!</p>
451: #end
452: 
453: </div>
454: </div>
455: 
456: 
457: 
458: #elseif ($restriction.code == 16)
459:   ## Merchandise
460: 
461: 
462: #set ($totalItems = 0)
463: #set ($totalRows = 0)
464: #set ($itemsRead = 0)
465: #foreach ($article in $headlines)
466: #set ($totalItems = $totalItems + 1)
467: #if ($velocityCount % 4 == 1) #set ($totalRows = $totalRows + 1) #end
468: #end
469: 
470: 
471: <div class="store-wrapper">
472: 
473: #if ($page.title.length() > 0) <h1>$!page.title</h1>#end
474:  <div class="store-items">
475: 
476: <table cellpadding="0" cellspacing="0" border="0">
477: 
478: #foreach( $currentRow in [1..$totalRows] )
479: 
480: <tr>
481: 
482: ## 1st Loop for the image and caption
483: #foreach ($article in $headlines)
484: 
485: #if ( ($velocityCount > $itemsRead) and ($velocityCount <= ($currentRow * 4))   )
486: 
487: #set ($item = $article.dataAsObject)
488: 
489: <td align="center" width="25%">
490:   <a href="$article.url" class="container">
491:    #if ($article.thumbnailURL.length() > 0)
492:     <img src="$article.thumbnailURL?max_width=125&max_height=125&crop=true" /><br />
493:    #else
494:      <img src="$website.includeAgain("marketplace_thumbnail.jpg?print=src")?max_width=125&max_height=125&crop=true" /><br />
495:     #end
496:   <span class="caption">$formatter.formatCurrency($item.price)<br />Buy Now</span>
497:   </a>
498:  </td>
499: 
500: #end ## ends if check
501: 
502: #end ## ends foreach
503: 
504: </tr><tr>
505: 
506: ## Second Loop for the titles
507: #foreach ($article in $headlines)
508: 
509: #if ( ($velocityCount > $itemsRead) and ($velocityCount <= ($currentRow * 4))   )
510: 
511: #set ($item = $article.dataAsObject)
512: 
513: <td align="center" width="25%">
514:   <a href="$article.url">
515:   #if ($article.title.length() > 0)
516:     <strong class="item-title">$article.title</strong>
517:   #else
518:     <strong class="item-title" style="font-style: italic;">No title</strong>
519:   #end
520:   </a>
521:  </td>
522: 
523: #end ## ends if check
524: 
525: #end ## ends foreach
526: 
527: #set ($itemsRead = $itemsRead + 4)
528: 
529: </tr>
530: 
531: #end ## ends outerloop
532: 
533: </table>
534: 
535:  </div>
536: </div>
537: 
538: 
539: 
540: #elseif ($restriction.code == 17)
541:   ## Marketplace
542: <div class="store-wrapper">
543: 
544: ## BUYNOW / BIDNOW
545: #if ($page.title.length() > 0) <h1>$!page.title</h1>#end
546: 
547:    <div class="store-items">
548: 
549: <table cellpadding="0" cellspacing="5">
550:  <tr>
551: 
552: #set ($colCount = 0)
553: 
554: #foreach ($article in $headlines)
555: 
556: #set ($item = $article.dataAsObject)
557: 
558: #if ($formatter.isNull($item.endBidding, false))
559:   #set ($isStoreOrAuction = "auction")
560: #else
561:  #set ($isStoreOrAuction = "store")
562: #end
563: 
564: #if ($isStoreOrAuction == "auction" && $item.endBidding.before($now))
565: 
566: #else
567: 
568: #set ($colCount = $colCount + 1)
569: 
570: <td align="center" width="25%">
571: 
572: 
573:   <a href="$article.url" class="container">
574: ## THUMBNAIL
575:    #if ($article.thumbnailURL.length() > 0)
576:     <img src="$article.thumbnailURL?max_width=125&max_height=125&crop=true" />
577:    #else
578:      <img src="$website.includeAgain("marketplace_thumbnail.jpg?print=src")?max_width=125&max_height=125&crop=true" /><br />
579:     #end
580:   <span class="caption">
581: 
582:   ## WHETHER A STORE ITEM OR AUCTION ITEM
583:   #if ($isStoreOrAuction == "auction")
584:     Current Bid: $formatter.formatCurrency($item.price)<br />Bid Now
585:   #else
586:     Price: $formatter.formatCurrency($item.price)<br />Buy Now
587:   #end
588: 
589:   </span>
590: 
591: ## ITEM TITLE
592:   #if ($article.title.length() > 0)<strong class="item-title" style="margin-bottom: 5px;">$article.title</strong>#else<strong class="item-title" style="font-style: italic;">No title</strong>#end
593:   </a>
594: ## SHOW TIME REMAINING IF AUCTION ITEM
595:    #if ($isStoreOrAuction == "auction")
596:     <br />
597:      #if ($item.endBidding.after($now))
598:      Time Remaining: <br>
599:      <span class="value">$formatter.formatTimeRemaining($item.endBidding)</span>
600:      #else
601:      <span class="value">Bidding is Over!</span>
602:      #end
603:    #end
604: 
605:  </td>
606: 
607: #if ($colCount % 4 == 0 && $velocityCount < $headlines.size())
608:   #set ($colCount = 0)
609:     </tr><tr>
610: #end
611: 
612: #end ## end bidding check
613: 
614: #end ## foreach
615: </tr>
616: </table>
617: 
618: </div>
619: 
620: </div>
621: #elseif ($restriction.code == 18)
622:   ## Splash, do not print nothing.
623:   #foreach ($splash in $headlines)
624:   	#set ($item = $splash.dataAsObject)
625: 	## This skips items where bidding has ended
626:  	#if ($item.expirationDate.after($now) && $item.liveDate.before($now))
627: 		$website.include("$splash.url?from_headlines=true")
628: 		#stop
629: 	#end
630:   #end
631: #else
632: ## Default headlines rendering
633: 
634: $website.includeAgain("${page.url}?tmpl=news-template&showFilters=true")
635: 
636: #end ## Done with different types of headlines
637: 
638: #if ($request.getParameter("ajax") == "true")
639:   $website.decorate("")
640: #end
641: 
642: $rss
643: 
644: $wiki
645: 
646: <!-- from: generic theme -->