<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
<!-- Generated by Apache Maven Doxia at $dateFormat.format( $currentDate ) ( $Revision: 1074931 $ ) --> | |
<!-- $HeadURL: https://svn.apache.org/repos/asf/commons/proper/commons-skin/trunk/src/main/resources/META-INF/maven/site.vm $ --> | |
## | |
## | |
## Special processing: | |
## - allows relative URLs to be processed by the template by removing http://dummy.invalid/ from the start of any URL | |
## - resolves $relativePath in banner and head elements | |
## - allows absolute URLs in banner elements by removing '.remove.invalid' from hrefs | |
## - adds <custom><footer> content after Copyright, replacing @project.name@ with current ${project.name} | |
## i.e. delays resolution of the Maven variable so it is processed in the current site context, not wherever | |
## site.xml is located. | |
## - add trademark overlay if the POM property banner[Left|Right]TradePos is defined - should be a style value. | |
##Following is currently disabled: | |
## - add trademark overlay if <custom><bannerLeft|Right><tradePos> is defined, using the value as the style | |
## | |
## Resolve relativePath in context of current project | |
#set ( $dummy = 'http://dummy.invalid/' ) | |
#set ( $dummylen = $dummy.length() ) | |
#macro ( relreplace $text ) | |
## Workround to allow site.xml to use $relativePath in URLs | |
#if ( $text.startsWith($dummy) )#set ( $text = $text.substring($dummylen) )#end | |
$StringUtils.replace( $text, '$relativePath', $relativePath )## | |
#end | |
## | |
## Remove extraneous header from custom entries | |
## See DOXIA-150 | |
#set ( $documentHeader = '<?xml version="1.0" encoding="UTF-8"?>' ) | |
#macro ( removeheader $text ) | |
#set ( $text = $StringUtils.replace( $text, $documentHeader, '' ) ) | |
#end | |
## | |
#macro ( link $href $name $target $img $position $alt $border $width $height ) | |
#set ( $linkTitle = ' title="' + $name + '"' ) | |
#if( $target ) | |
#set ( $linkTarget = ' target="' + $target + '"' ) | |
#else | |
#set ( $linkTarget = "" ) | |
#end | |
#if ( $href.toLowerCase().startsWith("http:/") || $href.toLowerCase().startsWith("https:/") || | |
$href.toLowerCase().startsWith("ftp:/") || $href.toLowerCase().startsWith("mailto:/") || | |
$href.toLowerCase().startsWith("file:/") || ($href.toLowerCase().indexOf("://") != -1) ) | |
#set ( $linkClass = ' class="externalLink"' ) | |
#else | |
#set ( $linkClass = "" ) | |
#end | |
#if ( $img ) | |
#if ( $position == "left" ) | |
<a href="$href"$linkClass$linkTarget$linkTitle>#image($img $alt $border $width $height)$name</a> | |
#else | |
<a href="$href"$linkClass$linkTarget$linkTitle>$name #image($img $alt $border $width $height)</a> | |
#end | |
#else | |
<a href="$href"$linkClass$linkTarget$linkTitle>$name</a> | |
#end | |
#end | |
## | |
#macro ( image $img $alt $border $width $height ) | |
#if( $img ) | |
#if ( ! ( $img.toLowerCase().startsWith("http:/") || $img.toLowerCase().startsWith("https:/") || | |
$img.toLowerCase().startsWith("ftp:/") || $img.toLowerCase().startsWith("mailto:/") || | |
$img.toLowerCase().startsWith("file:/") || ($img.toLowerCase().indexOf("://") != -1) ) ) | |
#set ( $imgSrc = $PathTool.calculateLink( $img, $relativePath ) ) | |
#set ( $imgSrc = $imgSrc.replaceAll( '\\', '/' ) ) | |
#set ( $imgSrc = ' src="' + $imgSrc + '"' ) | |
#else | |
#set ( $imgSrc = ' src="' + $img + '"' ) | |
#end | |
#if( $alt ) | |
#set ( $imgAlt = ' alt="' + $alt + '"' ) | |
#else | |
#set ( $imgAlt = ' alt=""' ) | |
#end | |
#if( $border ) | |
#set ( $imgBorder = ' border="' + $border + '"' ) | |
#else | |
#set ( $imgBorder = "" ) | |
#end | |
#if( $width ) | |
#set ( $imgWidth = ' width="' + $width + '"' ) | |
#else | |
#set ( $imgWidth = "" ) | |
#end | |
#if( $height ) | |
#set ( $imgHeight = ' height="' + $height + '"' ) | |
#else | |
#set ( $imgHeight = "" ) | |
#end | |
<img class="imageLink"$imgSrc$imgAlt$imgBorder$imgWidth$imgHeight/> | |
#end | |
#end | |
#macro ( banner $banner $id ) | |
#if ( $banner ) | |
<div id="$id"> | |
#set ( $trade = $null ) | |
## Cannot use #evaluate in this version of velocity, so have to do it the hard way | |
## Check for property overrides | |
#if ( $id eq "bannerLeft" ) | |
#set ( $trade = $!bannerLeftTradePos ) | |
#end | |
#if ( $id eq "bannerRight" ) | |
#set ( $trade = $!bannerRightTradePos ) | |
#end | |
## Disabled. site.xml custom section cannot be selectively overridden, so easier to use pom properties in component. | |
## #if ( $decoration.custom.getChild($id).getChild("tradePos") ) | |
## #set ( $trade = $decoration.custom.getChild($id).getChild("tradePos").value ) | |
## #end | |
#if ( $trade ) | |
<div class="overlay_wrapper"> | |
#end | |
#if( $banner.href ) | |
#set ( $hrf = $banner.href.replace('.remove.invalid' ,'') ) | |
#if ( ! ( $hrf.toLowerCase().startsWith("http:/") || $hrf.toLowerCase().startsWith("https:/") || | |
$hrf.toLowerCase().startsWith("ftp:/") || $hrf.toLowerCase().startsWith("mailto:/") || | |
$hrf.toLowerCase().startsWith("file:/") || ($hrf.toLowerCase().indexOf("://") != -1) ) ) | |
#set ( $hrf = $PathTool.calculateLink( $hrf, $relativePath ) ) | |
#set ( $hrf = $hrf.replaceAll( '\\', '/' ) ) | |
#if ( ( $hrf == '' ) ) | |
#set ( $hrf = './' ) | |
#end | |
#end | |
<a href="$hrf"#if( $banner.alt ) title="$banner.alt"#end> | |
#end | |
## | |
#if( $banner.src ) | |
#set ( $src = $banner.src ) | |
#if ( ! ( $src.toLowerCase().startsWith("http:/") || $src.toLowerCase().startsWith("https:/") || | |
$src.toLowerCase().startsWith("ftp:/") || $src.toLowerCase().startsWith("mailto:/") || | |
$src.toLowerCase().startsWith("file:/") || ($src.toLowerCase().indexOf("://") != -1) ) ) | |
#set ( $src = $PathTool.calculateLink( $src, $relativePath ) ) | |
#set ( $src = $src.replaceAll( '\\', '/' ) ) | |
#end | |
#if ( $banner.alt ) | |
#set ( $alt = $banner.alt ) | |
#else | |
#set ( $alt = $banner.name ) | |
#end | |
<img src="#relreplace($src)" alt="$alt"/> | |
#else | |
$banner.name | |
#end | |
#if( $banner.href ) | |
</a> | |
#end | |
#if ( $trade ) | |
<div class="overlay" style="$trade"><span>™</span></div> | |
</div><!-- class="overlay_wrapper" --> | |
#end | |
</div><!-- id="$id" --> | |
#end | |
#end | |
## | |
#macro ( links $links ) | |
#set ( $counter = 0 ) | |
#foreach( $item in $links ) | |
#set ( $counter = $counter + 1 ) | |
#set ( $currentItemHref = $PathTool.calculateLink( $item.href, $relativePath ) ) | |
#set ( $currentItemHref = $currentItemHref.replaceAll( '\\', '/' ) ) | |
#link( $currentItemHref $item.name $item.target $item.img $item.position $item.alt $item.border $item.width $item.height ) | |
#if ( $links.size() > $counter ) | |
| | |
#end | |
#end | |
#end | |
## | |
#macro ( breadcrumbs $breadcrumbs ) | |
#foreach( $item in $breadcrumbs ) | |
#set ( $currentItemHref = $PathTool.calculateLink( $item.href, $relativePath ) ) | |
#set ( $currentItemHref = $currentItemHref.replaceAll( '\\', '/' ) ) | |
#if ( ( $currentItemHref == '' ) ) | |
#set ( $currentItemHref = './' ) | |
#end | |
## | |
#link( $currentItemHref $item.name $item.target $item.img $item.position $item.alt $item.border $item.width $item.height ) | |
> | |
#end | |
$title | |
#end | |
## | |
#macro ( displayTree $display $item ) | |
#if ( $item && $item.items && $item.items.size() > 0 ) | |
#foreach( $subitem in $item.items ) | |
#set ( $subitemHref = $PathTool.calculateLink( $subitem.href, $relativePath ) ) | |
#set ( $subitemHref = $subitemHref.replaceAll( '\\', '/' ) ) | |
## | |
#if ( $alignedFileName == $subitemHref ) | |
#set ( $display = true ) | |
#end | |
## | |
#displayTree( $display $subitem ) | |
#end | |
#end | |
#end | |
## | |
#macro ( menuItem $item ) | |
#set ( $collapse = "none" ) | |
#set ( $currentItemHref = $PathTool.calculateLink( $item.href, $relativePath ) ) | |
#set ( $currentItemHref = $currentItemHref.replaceAll( '\\', '/' ) ) | |
## | |
#if ( $item && $item.items && $item.items.size() > 0 ) | |
#if ( $item.collapse == false ) | |
#set ( $collapse = "expanded" ) | |
#else | |
## By default collapsed | |
#set ( $collapse = "collapsed" ) | |
#end | |
## | |
#set ( $display = false ) | |
#displayTree( $display $item ) | |
## | |
#if ( $alignedFileName == $currentItemHref || $display ) | |
#set ( $collapse = "expanded" ) | |
#end | |
#end | |
<li class="$collapse"> | |
#if ( $item.img ) | |
#if ( $item.position == "left" ) | |
#if ( $alignedFileName == $currentItemHref ) | |
<strong>#image($item.img $item.alt $item.border $item.width $item.height) $item.name</strong> | |
#else | |
#link($currentItemHref $item.name $item.target $item.img $item.position $item.alt $item.border $item.width $item.height) | |
#end | |
#else | |
#if ( $alignedFileName == $currentItemHref ) | |
<strong>$item.name #image($item.img $item.alt $item.border $item.width $item.height)</strong> | |
#else | |
#link($currentItemHref $item.name $item.target $item.img $item.position $item.alt $item.border $item.width $item.height) | |
#end | |
#end | |
#else | |
#if ( $alignedFileName == $currentItemHref ) | |
<strong>$item.name</strong> | |
#else | |
#link( $currentItemHref $item.name $item.target $item.img $item.position $item.alt $item.border $item.width $item.height ) | |
#end | |
#end | |
#if ( $item && $item.items && $item.items.size() > 0 ) | |
#if ( $collapse == "expanded" ) | |
<ul> | |
#foreach( $subitem in $item.items ) | |
#menuItem( $subitem ) | |
#end | |
</ul> | |
#end | |
#end | |
</li> | |
#end | |
## | |
#macro ( mainMenu $menus ) | |
#foreach( $menu in $menus ) | |
#if ( $menu.name ) | |
#if ( $menu.img ) | |
#if( $menu.position ) | |
#set ( $position = $menu.position ) | |
#else | |
#set ( $position = "left" ) | |
#end | |
## | |
#if ( ! ( $menu.img.toLowerCase().startsWith("http:/") || $menu.img.toLowerCase().startsWith("https:/") || | |
$menu.img.toLowerCase().startsWith("ftp:/") || $menu.img.toLowerCase().startsWith("mailto:/") || | |
$menu.img.toLowerCase().startsWith("file:/") || ($menu.img.toLowerCase().indexOf("://") != -1) ) ) | |
#set ( $src = $PathTool.calculateLink( $menu.img, $relativePath ) ) | |
#set ( $src = $src.replaceAll( '\\', '/' ) ) | |
#set ( $src = ' src="' + $src + '"' ) | |
#else | |
#set ( $src = ' src="' + $menu.img + '"' ) | |
#end | |
## | |
#if( $menu.alt ) | |
#set ( $alt = ' alt="' + $menu.alt + '"' ) | |
#else | |
#set ( $alt = ' alt="' + $menu.name + '"' ) | |
#end | |
## | |
#if( $menu.border ) | |
#set ( $border = ' border="' + $menu.border + '"' ) | |
#else | |
#set ( $border = ' border="0"' ) | |
#end | |
## | |
#if( $menu.width ) | |
#set ( $width = ' width="' + $menu.width + '"' ) | |
#else | |
#set ( $width = "" ) | |
#end | |
#if( $menu.height ) | |
#set ( $height = ' height="' + $menu.height + '"' ) | |
#else | |
#set ( $height = "" ) | |
#end | |
## | |
#set ( $img = '<img class="imageLink"' + $src + $alt + $border + $width + $height + "/>" ) | |
## | |
#if ( $position == "left" ) | |
<h5>$img $menu.name</h5> | |
#else | |
<h5>$menu.name $img</h5> | |
#end | |
#else | |
<h5>$menu.name</h5> | |
#end | |
#end | |
#if ( $menu.items && $menu.items.size() > 0 ) | |
<ul> | |
#foreach( $item in $menu.items ) | |
#menuItem( $item ) | |
#end | |
</ul> | |
#end | |
#end | |
#end | |
## | |
#macro ( copyright ) | |
#if ( $project ) | |
#if ( ${project.organization} && ${project.organization.name} ) | |
#set ( $period = "" ) | |
#else | |
#set ( $period = "." ) | |
#end | |
## | |
#set ( $currentYear = ${currentDate.year} + 1900 ) | |
## | |
#if ( ${project.inceptionYear} && ( ${project.inceptionYear} != ${currentYear.toString()} ) ) | |
${project.inceptionYear}-${currentYear}${period} | |
#else | |
${currentYear}${period} | |
#end | |
## | |
#if ( ${project.organization} ) | |
#if ( ${project.organization.name} && ${project.organization.url} ) | |
<a href="$project.organization.url">${project.organization.name}</a>. | |
#elseif ( ${project.organization.name} ) | |
${project.organization.name}. | |
#end | |
#end | |
#end | |
#end | |
## | |
#macro ( publishDate $position $publishDate $version ) | |
#if ( $publishDate && $publishDate.format ) | |
#set ( $format = $publishDate.format ) | |
#else | |
#set ( $format = "yyyy-MM-dd" ) | |
#end | |
## | |
$dateFormat.applyPattern( $format ) | |
## | |
#set ( $dateToday = $dateFormat.format( $currentDate ) ) | |
## | |
#if ( $publishDate && $publishDate.position ) | |
#set ( $datePosition = $publishDate.position ) | |
#else | |
#set ( $datePosition = "left" ) | |
#end | |
## | |
#if ( $version ) | |
#if ( $version.position ) | |
#set ( $versionPosition = $version.position ) | |
#else | |
#set ( $versionPosition = "left" ) | |
#end | |
#else | |
#set ( $version = "" ) | |
#set ( $versionPosition = "left" ) | |
#end | |
## | |
#set ( $breadcrumbs = $decoration.body.breadcrumbs ) | |
#set ( $links = $decoration.body.links ) | |
#if ( $datePosition.equalsIgnoreCase( "right" ) && $links && $links.size() > 0 ) | |
#set ( $prefix = " |" ) | |
#else | |
#set ( $prefix = "" ) | |
#end | |
## | |
#if ( $datePosition.equalsIgnoreCase( $position ) ) | |
#if ( ( $datePosition.equalsIgnoreCase( "right" ) ) || ( $datePosition.equalsIgnoreCase( "bottom" ) ) ) | |
$prefix <span id="publishDate">$i18n.getString( "site-renderer", $locale, "template.lastpublished" ): $dateToday</span> | |
#if ( $versionPosition.equalsIgnoreCase( $position ) ) | |
| <span id="projectVersion">$i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}</span> | |
#end | |
#elseif ( ( $datePosition.equalsIgnoreCase( "navigation-bottom" ) ) || ( $datePosition.equalsIgnoreCase( "navigation-top" ) ) ) | |
<div id="lastPublished"> | |
<span id="publishDate">$i18n.getString( "site-renderer", $locale, "template.lastpublished" ): $dateToday</span> | |
#if ( $versionPosition.equalsIgnoreCase( $position ) ) | |
| <span id="projectVersion">$i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}</span> | |
#end | |
</div> | |
#elseif ( $datePosition.equalsIgnoreCase("left") ) | |
<div class="xleft"> | |
<span id="publishDate">$i18n.getString( "site-renderer", $locale, "template.lastpublished" ): $dateToday</span> | |
#if ( $versionPosition.equalsIgnoreCase( $position ) ) | |
| <span id="projectVersion">$i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}</span> | |
#end | |
#if ( $breadcrumbs && $breadcrumbs.size() > 0 ) | |
| #breadcrumbs( $breadcrumbs ) | |
#end | |
</div> | |
#end | |
#elseif ( $versionPosition.equalsIgnoreCase( $position ) ) | |
#if ( ( $versionPosition.equalsIgnoreCase( "right" ) ) || ( $versionPosition.equalsIgnoreCase( "bottom" ) ) ) | |
$prefix <span id="projectVersion">$i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}</span> | |
#elseif ( ( $versionPosition.equalsIgnoreCase( "navigation-bottom" ) ) || ( $versionPosition.equalsIgnoreCase( "navigation-top" ) ) ) | |
<div id="lastPublished"> | |
<span id="projectVersion">$i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}</span> | |
</div> | |
#elseif ( $versionPosition.equalsIgnoreCase("left") ) | |
<div class="xleft"> | |
<span id="projectVersion">$i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}</span> | |
#if ( $breadcrumbs && $breadcrumbs.size() > 0 ) | |
| #breadcrumbs( $breadcrumbs ) | |
#end | |
</div> | |
#end | |
#elseif ( $position.equalsIgnoreCase( "left" ) ) | |
#if ( $breadcrumbs && $breadcrumbs.size() > 0 ) | |
<div class="xleft"> | |
#breadcrumbs( $breadcrumbs ) | |
</div> | |
#end | |
#end | |
#end | |
## | |
#macro ( poweredByLogo $poweredBy ) | |
#if( $poweredBy ) | |
#foreach ($item in $poweredBy) | |
#if( $item.href ) | |
#set ( $href = $PathTool.calculateLink( $item.href, $relativePath ) ) | |
#set ( $href = $href.replaceAll( '\\', '/' ) ) | |
#else | |
#set ( $href="http://maven.apache.org/" ) | |
#end | |
## | |
#if( $item.name ) | |
#set ( $name = $item.name ) | |
#else | |
#set ( $name = $i18n.getString( "site-renderer", $locale, "template.builtby" ) ) | |
#set ( $name = "${name} Maven" ) | |
#end | |
## | |
#if( $item.img ) | |
#set ( $img = $item.img ) | |
#else | |
#set ( $img = "images/logos/maven-feather.png" ) | |
#end | |
## | |
#if ( ! ( $img.toLowerCase().startsWith("http:/") || $img.toLowerCase().startsWith("https:/") || | |
$img.toLowerCase().startsWith("ftp:/") || $img.toLowerCase().startsWith("mailto:/") || | |
$img.toLowerCase().startsWith("file:/") || ($img.toLowerCase().indexOf("://") != -1) ) ) | |
#set ( $img = $PathTool.calculateLink( $img, $relativePath ) ) | |
#set ( $img = $src.replaceAll( '\\', '/' ) ) | |
#end | |
## | |
#if( $item.alt ) | |
#set ( $alt = ' alt="' + $item.alt + '"' ) | |
#else | |
#set ( $alt = ' alt="' + $name + '"' ) | |
#end | |
## | |
#if( $item.border ) | |
#set ( $border = ' border="' + $item.border + '"' ) | |
#else | |
#set ( $border = "" ) | |
#end | |
## | |
#if( $item.width ) | |
#set ( $width = ' width="' + $item.width + '"' ) | |
#else | |
#set ( $width = "" ) | |
#end | |
#if( $item.height ) | |
#set ( $height = ' height="' + $item.height + '"' ) | |
#else | |
#set ( $height = "" ) | |
#end | |
## | |
<a href="$href" title="$name" class="poweredBy"> | |
<img class="poweredBy" $alt src="$img" $border $width $height /> | |
</a> | |
#end | |
#if( $poweredBy.isEmpty() ) | |
<a href="http://maven.apache.org/" title="$i18n.getString( "site-renderer", $locale, "template.builtby" ) Maven" class="poweredBy"> | |
<img class="poweredBy" alt="$i18n.getString( "site-renderer", $locale, "template.builtby" ) Maven" src="$relativePath/images/logos/maven-feather.png" /> | |
</a> | |
#end | |
#else | |
<a href="http://maven.apache.org/" title="$i18n.getString( "site-renderer", $locale, "template.builtby" ) Maven" class="poweredBy"> | |
<img class="poweredBy" alt="$i18n.getString( "site-renderer", $locale, "template.builtby" ) Maven" src="$relativePath/images/logos/maven-feather.png" /> | |
</a> | |
#end | |
#end | |
## | |
#macro ( googleAnalytics $accountId ) | |
#if( $accountId && $accountId != "" ) | |
<!-- Google Analytics --> | |
<script type="text/javascript"> | |
var _gaq = _gaq || []; | |
_gaq.push(['_setAccount', '$accountId']); | |
_gaq.push(['_trackPageview']); | |
(function() { | |
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; | |
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; | |
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); | |
})(); | |
</script> | |
#end | |
#end | |
## | |
<html xmlns="http://www.w3.org/1999/xhtml"#if ( $locale ) xml:lang="$locale.language" lang="$locale.language"#end> | |
<head> | |
<meta http-equiv="Content-Type" content="text/html; charset=${outputEncoding}" /> | |
<title>$title</title> | |
<style type="text/css" media="all"> | |
@import url("$relativePath/css/maven-base.css"); | |
@import url("$relativePath/css/maven-theme.css"); | |
@import url("$relativePath/css/site.css"); | |
</style> | |
<link rel="stylesheet" href="$relativePath/css/print.css" type="text/css" media="print" /> | |
#foreach( $author in $authors ) | |
<meta name="author" content="$author" /> | |
#end | |
#if ( $dateCreation ) | |
<meta name="Date-Creation-yyyymmdd" content="$dateCreation" /> | |
#end | |
#if ( $dateRevision ) | |
<meta name="Date-Revision-yyyymmdd" content="$dateRevision" /> | |
#end | |
#if ( $locale ) | |
<meta http-equiv="Content-Language" content="$locale.language" /> | |
#end | |
#if ( $decoration.body.head ) | |
#foreach( $item in $decoration.body.head.getChildren() ) | |
## Workaround for DOXIA-150 due to a non-desired behaviour in p-u | |
## @see org.codehaus.plexus.util.xml.Xpp3Dom#toString() | |
## @see org.codehaus.plexus.util.xml.Xpp3Dom#toUnescapedString() | |
#set ( $documentHeader = '<?xml version="1.0" encoding="UTF-8"?>' ) | |
#if ( $item.name == "script" ) | |
#relreplace( $StringUtils.replace( $item.toUnescapedString(), $documentHeader, "" ) ) | |
#else | |
#relreplace( $StringUtils.replace( $item.toString(), $documentHeader, "" ) ) | |
#end | |
#end | |
#end | |
$headContent | |
#googleAnalytics( $decoration.googleAnalyticsAccountId ) | |
</head> | |
<body class="composite"> | |
<div id="banner"> | |
#banner( $decoration.bannerLeft "bannerLeft" ) | |
#banner( $decoration.bannerRight "bannerRight" ) | |
<div class="clear"> | |
<hr/> | |
</div> | |
</div> | |
<div id="breadcrumbs"> | |
#publishDate( "left" $decoration.publishDate $decoration.version ) | |
<div class="xright">#links( $decoration.body.links )#publishDate( "right" $decoration.publishDate $decoration.version )</div> | |
<div class="clear"> | |
<hr/> | |
</div> | |
</div> | |
<div id="leftColumn"> | |
<div id="navcolumn"> | |
#publishDate( "navigation-top" $decoration.publishDate $decoration.version ) | |
#mainMenu( $decoration.body.menus ) | |
#poweredByLogo( $decoration.poweredBy ) | |
#publishDate( "navigation-bottom" $decoration.publishDate $decoration.version ) | |
</div> | |
</div> | |
<div id="bodyColumn"> | |
<div id="contentBox"> | |
$bodyContent | |
</div> | |
</div> | |
<div class="clear"> | |
<hr/> | |
</div> | |
<div id="footer"> | |
<div class="center">Copyright ©#copyright()All Rights Reserved.#publishDate( "bottom" $decoration.publishDate $decoration.version )</div> | |
#if ( $decoration.custom.getChild("footer") ) | |
#foreach( $item in $decoration.custom.getChild("footer").getChildren() ) | |
#set ( $foot = $item.toString().trim() ) | |
#removeheader ( $foot ) | |
$StringUtils.replace( $foot, '@project.name@', ${project.name} ) | |
#end | |
#end | |
<div class="clear"> | |
<hr/> | |
</div> | |
</div> | |
</body> | |
</html> |