| #** |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. The ASF licenses this file to You |
| under the Apache License, Version 2.0 (the "License"); you may not |
| use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. For additional information regarding |
| copyright in this work, please see the NOTICE file in the top level |
| directory of this distribution. |
| *# |
| |
| #** macros for use with SitePageModel |
| |
| Contents |
| #showEnriesPager($pager) |
| #showWeblogProfile($weblog) |
| #showWeblogDirectory() |
| #showUserProfile($user) |
| #showUserDirectory() |
| #showCommentsPager($pager) |
| *# |
| |
| |
| #** |
| Show pager and next/prev control for site-wide or planet entries. |
| *# |
| #macro(showSiteEntriesPager $pager) |
| #if($pager.items.size() > 0) |
| #set($entryCount = $pager.items.size() - 1) |
| #set($startDate = $pager.items.get(0).pubTime) |
| #set($endDate = $entries.get($entryCount).pubTime) |
| #end |
| #foreach($entry in $pager.items) |
| #if($velocityCount <= $maxResults) |
| |
| <div class="entry"> |
| <p class="entryDetails"> |
| <a href="$utils.escapeHTML($entry.permalink)"> |
| <b>$utils.truncateNicely($utils.removeHTML($entry.title), 50, 50, "...")</b></a><br /> |
| <a href="$utils.escapeHTML($entry.website.URL)">$entry.website.name</a> |
| #if($entry.category.name)| $entry.category.name #end |
| #if($entry.pubTime)| $utils.formatDate($entry.pubTime, $text.get("macro.weblog.date.toStringFormat")) #end |
| #if($entry.creator.userName)| By $entry.creator.userName #end |
| <br/> |
| </p> |
| <p class="entryDescription"> |
| #if(!$utils.isEmpty($entry.summary)) |
| $utils.truncateNicely($utils.removeHTML($entry.transformedSummary), 240, 260, "...") |
| #else |
| $utils.truncateNicely($utils.removeHTML($entry.transformedText), 240, 260, "...") |
| #end |
| </p> |
| </div> |
| |
| #end |
| #end |
| <div class="pagingcontrols"> |
| #if($pager.nextLink) |
| <a href="$pager.nextLink">< $pager.nextName</a> |
| #end |
| #if($pager.nextLink && $pager.prevLink) |
| | |
| #end |
| #if($pager.prevLink) |
| <a href="$pager.prevLink">$pager.prevName ></a> |
| #end |
| </div> |
| #end |
| |
| |
| #** |
| Show weblog profile for specified weblog |
| *# |
| #macro(showWeblogProfile $weblog) |
| <h2 class="pageTitle">Weblog: $weblog.name</h2> |
| <table> |
| <tr> |
| <td>Handle</td> |
| <td>$weblog.handle</td> |
| </tr> |
| <tr> |
| <td>Description</td> |
| <td>$weblog.description</td> |
| </tr> |
| <tr> |
| <td>Created by</td> |
| <td><$weblog.creator.fullName/td> |
| </tr> |
| <tr> |
| <td>Last modified</td> |
| <td>$weblog.lastModified</td> |
| </tr> |
| <tr> |
| <td>Locale</td> |
| <td>$!weblog.locale</td> |
| </tr> |
| <tr> |
| <td>Timezone</td> |
| <td>$weblog.timeZone</td> |
| </tr> |
| </table> |
| |
| <h2 class="pageTitle">Weblog users</h2> |
| #set($users = $site.getWeblogsUsers($weblog.handle)) |
| <table class="rollertable"> |
| <thead> |
| <tr> |
| <th>Username</th> |
| <th>Full name</th> |
| </tr> |
| </thead> |
| #foreach($user in $users) |
| <tr> |
| <td>$user.userName</td> |
| <td>$user.fullName</td> |
| </tr> |
| #end |
| </table> |
| |
| <h2 class="pageTitle">Recent posts</h2> |
| #set($entriesPager = $site.getWeblogEntriesPager($weblog, $null, $null, 90, 5)) |
| #if($entriesPager.items.size() > 0) |
| <table class="rollertable"> |
| <thead> |
| <tr> |
| <th>User</th> |
| <th>Pub. time</th> |
| <th>Title</th> |
| </tr> |
| </thead> |
| #foreach($entry in $entriesPager.items) |
| <tr> |
| <td>$entry.creator.userName</td> |
| <td>$utils.formatDate($entry.pubTime, $text.get("macro.weblog.date.toStringFormat"))</td> |
| <td><a href="$utils.escapeHTML($entry.permaLink)"> |
| $utils.removeHTML($entry.title)</a></td> |
| </tr> |
| #end |
| </table> |
| #else |
| No posts in past 90 days |
| #end |
| |
| #end |
| |
| |
| #** |
| Show weblog directory, sensitive to letter specified in request. |
| *# |
| #macro(showWeblogDirectory $pageLength) |
| #if($model.getRequestParameter("letter")) |
| #set($chosenLetter = $model.getRequestParameter("letter")) |
| #end |
| |
| #set($weblogLetterMap = $site.getWeblogHandleLetterMap()) |
| <div class="letterMap"> |
| <p> |
| #set($firstLetterDone = 0) |
| #foreach($letter in $weblogLetterMap.keySet()) |
| #if($firstLetterDone == 1) - #end |
| #set($firstLetterDone = 1) |
| #set($letterCount = $weblogLetterMap.get($letter)) |
| #if($letter == $chosenLetter)<span style="font-size:120%; font-weight:bold">#end |
| #if($letterCount > 0) |
| <a href="?letter=$letter" title="$letterCount weblogs">$letter</a> |
| #else |
| $letter |
| #end |
| #if($letter == $chosenLetter)</span>#end |
| #end |
| </p> |
| </div> |
| |
| #if($chosenLetter) |
| <h2 class="pageTitle">Weblogs starting with $chosenLetter</h2> |
| #else |
| <h2 class="pageTitle">All weblogs</h2> |
| #end |
| |
| #set($weblogsPager = $site.getWeblogsByLetterPager($chosenLetter, -1, $pageLength)) |
| <table class="blogdirectory data"> |
| <thead> |
| <tr> |
| <th scope="col" class="name">Blog Name</th> |
| <th scope="col" class="description">Description</th> |
| </tr> |
| </thead> |
| <tbody> |
| #foreach($weblog in $weblogsPager.items) |
| <tr> |
| <th scope="row" class="name"><a href="$url.absoluteSite/$weblog.handle">$weblog.handle</a></th> |
| <td class="description">$weblog.name</td> |
| </tr> |
| #end |
| </tbody> |
| <tfoot> |
| <tr class="pagingcontrols"> |
| <td class="pagingtext"></td> |
| <td class="paginglinks"> |
| |
| #if($chosenLetter) |
| #if($weblogsPager.prevLink) |
| <a href="$weblogsPager.prevLink"><$weblogsPager.prevName</a> |
| #end |
| #if($weblogsPager.nextLink && $weblogsPager.prevLink()) |
| | |
| #end |
| #if($weblogsPager.nextLink) |
| <a href="$weblogsPager.nextLink">$weblogsPager.nextName ></a> |
| #end |
| #else |
| #if($weblogsPager.prevLink) |
| <a href="$weblogsPager.prevLink"><$weblogsPager.prevName</a> |
| #end |
| #if($weblogsPager.nextLink && $weblogsPager.prevLink()) |
| | |
| #end |
| #if($weblogsPager.nextLink) |
| <a href="$weblogsPager.nextLink">$weblogsPager.nextName ></a> |
| #end |
| #end |
| |
| </td> |
| </tr> |
| </tfoot> |
| </table> |
| #end |
| |
| |
| #** |
| Show user profile of specified user. |
| *# |
| #macro(showUserProfile $user) |
| <h2 class="pageTitle">User: $user.fullName</h2> |
| <table class="blogprofile data"> |
| <tr> |
| <th scope="row">Username</td> |
| <td>$user.userName</td> |
| </tr> |
| <tr> |
| <th scope="row">Created</td> |
| <td>$user.dateCreated</td> |
| </tr> |
| <tr> |
| <th scope="row">Locale</td> |
| <td>$user.locale</td> |
| </tr> |
| <tr> |
| <th scope="row">Timezone</td> |
| <td>$user.timeZone</td> |
| </tr> |
| </table> |
| |
| <h2 class="pageTitle">User's weblogs</h2> |
| #set($weblogs = $site.getUsersWeblogs($user.userName)) |
| #if($perms.size() > 0) |
| <table class="rollertable"> |
| <thead> |
| <tr> |
| <th>Handle</th> |
| <th>Name</th> |
| </tr> |
| </thead> |
| #foreach($weblog in $weblogs) |
| <tr> |
| <td><a href="$baseURL/page/$weblog.handle">$weblog.handle</a></td> |
| <td>$weblog.name</td> |
| </tr> |
| #end |
| </table> |
| #else |
| User does not belong to any weblogs |
| #end |
| |
| <h2 class="pageTitle">User's recent posts</h2> |
| #set($entriesPager = $site.getWeblogEntriesPager($null, $user, $null, 90, 5)) |
| #if($entriesPager.items.size() > 0) |
| <table class="rollertable"> |
| <thead> |
| <tr> |
| <th>Blog</th> |
| <th>Pub. time</th> |
| <th>Title</th> |
| </tr> |
| </thead> |
| #foreach($entry in $entriesPager.items) |
| <tr> |
| <td><a href="$entry.website.url">$entry.website.handle</a></td> |
| <td>$utils.formatDate($entry.pubTime, $text.get("macro.weblog.date.toStringFormat"))</td> |
| <td><a href="$utils.textToHTML($entry.permaLink)"> |
| $utils.removeHTML($entry.title)</a></td> |
| </tr> |
| #end |
| </table> |
| #else |
| No posts in past 90 days |
| #end |
| #end |
| |
| |
| #** |
| Show user directory, sensitive to letter specified in request. |
| *# |
| #macro(showUserDirectory $pageLength) |
| #if($model.getRequestParameter("letter")) |
| #set($chosenLetter = $model.getRequestParameter("letter")) |
| #end |
| |
| #set($userLetterMap = $site.getUserNameLetterMap()) |
| <div class="letterMap"> |
| #foreach($letter in $userLetterMap.keySet()) |
| #if($firstLetterDone == 1) - #end |
| #set($firstLetterDone = 1) |
| #set($letterCount = $userLetterMap.get($letter)) |
| #if($letter == $chosenLetter)<span style="font-size:120%; font-weight:bold">#end |
| #if($letterCount > 0) |
| <a href="?letter=$letter" title="$letterCount users">$letter</a> |
| #else |
| $letter |
| #end |
| </span> |
| #end |
| </div> |
| |
| #if($chosenLetter) |
| <h2 class="pageTitle">Users starting with $chosenLetter</h2> |
| #else |
| <h2 class="pageTitle">All users</h2> |
| #end |
| |
| #set($usersPager= $site.getUsersByLetterPager($chosenLetter, -1, $pageLength)) |
| <table class="blogdirectory data"> |
| <thead> |
| <tr> |
| <th scope="col" class="username">Username</th> |
| <th scope="col" class="profile">Profile</th> |
| <th scope="col" class="fullname">Full name</th> |
| </tr> |
| </thead> |
| <tbody> |
| #foreach($u in $usersPager.items) |
| <tr> |
| <th scope="row" class="name">$u.userName</th> |
| <td><a href="?userName=$u.userName">Profile</a></td> |
| <td>$u.fullName</td> |
| </tr> |
| #end |
| </tbody> |
| <tfoot> |
| <tr class="pagingcontrols"> |
| <td class="pagingtext"></td> |
| <td class="paginglinks"> |
| |
| #if($chosenLetter) |
| #if($usersPager.prevLink) |
| <a href="$usersPager.prevLink"><$usersPager.prevName</a> |
| #end |
| #if($usersPager.nextLink && $usersPager.prevLink()) |
| | |
| #end |
| #if($usersPager.nextLink) |
| <a href="$usersPager.nextLink">$usersPager.nextName ></a> |
| #end |
| #else |
| #if($usersPager.prevLink) |
| <a href="$usersPager.prevLink"><$usersPager.prevName</a> |
| #end |
| #if($usersPager.nextLink && $usersPager.prevLink()) |
| | |
| #end |
| #if($usersPager.nextLink) |
| <a href="$usersPager.nextLink">$usersPager.nextName ></a> |
| #end |
| #end |
| |
| </td> |
| </tr> |
| </tfoot> |
| </table> |
| #end |
| |
| |
| #** |
| Show pager and next/prev control for a collection of comments |
| *# |
| #macro(showCommentsPager $commentsPager) |
| #if($commentsPager.items.size() > 0) |
| #set($commentCount = $commentsPager.items.size() - 1) |
| #set($startDate = $commentsPager.items.get(0).postTime) |
| #set($endDate = $commentsPager.items.get($commentCount).postTime) |
| #end |
| |
| #foreach($comment in $commentsPager.items) |
| <div class="entry"> |
| <span class="entryDetails"> |
| <a href="${baseURL}$utils.escapeHTML($comment.weblogEntry.permaLink)"> |
| <b>Re: $utils.removeHTML($comment.weblogEntry.title)</b></a><br /> |
| Posted on <a href="$baseURL/$comment.weblogEntry.website.handle"> |
| $utils.removeHTML($comment.weblogEntry.website.name)</a> |
| #if($comment.name) | Posted by $comment.name #end |
| | $comment.postTime<br/> |
| </span> |
| <span class="entryDescription"> |
| #set($content = $utils.removeHTML($comment.content)) |
| $utils.truncateNicely($content, 240, 260, "...") |
| </span> |
| </div> |
| #end |
| |
| <div class="nextPrev"> |
| #if($commentsPager.prevLink) |
| <a href="$commentsPager.prevLink">< $commentsPager.prevName</a> |
| #end |
| #if($commentsPager.nextLink && $commentsPager.prevLink) |
| | |
| #end |
| #if($commentsPager.nextLink) |
| <a href="$commentsPager.nextLink">$commentsPager.nextName ></a> |
| #end |
| </div> |
| |
| #end |