You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by sn...@apache.org on 2005/06/09 05:19:20 UTC
svn commit: r189695 [55/67] - in /incubator/roller/trunk: ./ contrib/
contrib/lib/ contrib/plugins/ contrib/plugins/src/ contrib/plugins/src/org/
contrib/plugins/src/org/roller/ contrib/plugins/src/org/roller/presentation/
contrib/plugins/src/org/roller/presentation/velocity/
contrib/plugins/src/org/roller/presentation/velocity/plugins/
contrib/plugins/src/org/roller/presentation/velocity/plugins/acronyms/
contrib/plugins/src/org/roller/presentation/velocity/plugins/bookmarks/
contrib/plugins/src/org/roller/presentation/velocity/plugins/email/
contrib/plugins/src/org/roller/presentation/velocity/plugins/jspwiki/
contrib/plugins/src/org/roller/presentation/velocity/plugins/radeox/
contrib/plugins/src/org/roller/presentation/velocity/plugins/readmore/
contrib/plugins/src/org/roller/presentation/velocity/plugins/smileys/
contrib/plugins/src/org/roller/presentation/velocity/plugins/textile/
contrib/plugins/src/org/roller/presentation/velocity/plugins/topictag/
custom/ custom/src/ custom/web/ docs/ docs/images/ docs/installguide/
docs/installguide/old/ docs/userguide/ docs/userguide/images/
docs/userguide/old/ metadata/ metadata/database/
metadata/database/hibernate/ metadata/xdoclet/ nbproject/ personal/
personal/eclipse/ personal/testing/ sandbox/ sandbox/planetroller/
sandbox/planetroller/metadata/ sandbox/planetroller/metadata/database/
sandbox/planetroller/src/ sandbox/planetroller/src/org/
sandbox/planetroller/src/org/roller/
sandbox/planetroller/src/org/roller/tools/
sandbox/planetroller/src/org/roller/tools/planet/
sandbox/planetroller/templates/ sandbox/planetroller/test/
sandbox/planetroller/test/org/ sandbox/planetroller/test/org/roller/
sandbox/planetroller/test/org/roller/model/
sandbox/planetroller/test/org/roller/tools/
sandbox/planetroller/test/org/roller/tools/planet/
sandbox/planetroller/testdata/ sandbox/planetroller/testdata/cache/
sandbox/planetroller/testdata/output/ sandbox/standalone/
sandbox/standalone/jspwiki/ sandbox/standalone/jspwiki/default/
sandbox/standalone/jspwiki/default/images/ sandbox/standalone/lib/
sandbox/standalone/src/ sandbox/standalone/src/org/
sandbox/standalone/src/org/roller/ sandbox/standalone/src/org/roller/jspwiki/
sandbox/standalone/src/org/roller/tomcat/
sandbox/standalone/src/org/roller/util/ sandbox/standalone/tests/
sandbox/standalone/tests/org/ sandbox/standalone/tests/org/roller/
sandbox/standalone/tests/org/roller/util/ sandbox/standalone/tomcat/ src/
src/org/ src/org/roller/ src/org/roller/business/
src/org/roller/business/hibernate/ src/org/roller/business/search/
src/org/roller/business/search/operations/ src/org/roller/business/utils/
src/org/roller/config/ src/org/roller/config/runtime/ src/org/roller/model/
src/org/roller/pojos/ src/org/roller/presentation/
src/org/roller/presentation/atomapi/ src/org/roller/presentation/bookmarks/
src/org/roller/presentation/bookmarks/actions/
src/org/roller/presentation/bookmarks/formbeans/
src/org/roller/presentation/bookmarks/tags/
src/org/roller/presentation/filters/ src/org/roller/presentation/forms/
src/org/roller/presentation/newsfeeds/ src/org/roller/presentation/pagecache/
src/org/roller/presentation/pagecache/rollercache/
src/org/roller/presentation/pings/ src/org/roller/presentation/planet/
src/org/roller/presentation/tags/ src/org/roller/presentation/tags/calendar/
src/org/roller/presentation/tags/menu/ src/org/roller/presentation/util/
src/org/roller/presentation/velocity/ src/org/roller/presentation/weblog/
src/org/roller/presentation/weblog/actions/
src/org/roller/presentation/weblog/formbeans/
src/org/roller/presentation/weblog/tags/ src/org/roller/presentation/website/
src/org/roller/presentation/website/actions/
src/org/roller/presentation/website/formbeans/
src/org/roller/presentation/website/tags/
src/org/roller/presentation/xmlrpc/ src/org/roller/util/
src/org/roller/util/rome/ tests/ tests/org/ tests/org/roller/
tests/org/roller/ant/ tests/org/roller/business/
tests/org/roller/presentation/ tests/org/roller/presentation/atomapi/
tests/org/roller/presentation/bookmarks/
tests/org/roller/presentation/filters/
tests/org/roller/presentation/velocity/
tests/org/roller/presentation/velocity/plugins/
tests/org/roller/presentation/velocity/plugins/smileys/
tests/org/roller/presentation/velocity/plugins/textile/
tests/org/roller/presentation/weblog/ tests/org/roller/presentation/xmlrpc/
tests/org/roller/util/ tests/org/roller/util/rome/ tools/ tools/buildtime/
tools/buildtime/ant-1.6.2/ tools/buildtime/findbugs/
tools/buildtime/findbugs/lib/ tools/buildtime/findbugs/plugin/
tools/buildtime/mockrunner-0.3/ tools/buildtime/mockrunner-0.3/lib/
tools/buildtime/mockrunner-0.35/ tools/buildtime/mockrunner-0.35/lib/
tools/buildtime/tomcat-4.1.24/ tools/buildtime/xdoclet-1.2/
tools/buildtime/xdoclet-1.2/lib/ tools/hibernate-2.1/
tools/hibernate-2.1/lib/ tools/lib/ tools/standard-1.0.3/
tools/standard-1.0.3/lib/ tools/standard-1.0.3/tld/ tools/struts-1.2.4/
tools/struts-1.2.4/lib/ web/ web/WEB-INF/ web/WEB-INF/classes/
web/WEB-INF/classes/flavors/ web/WEB-INF/classes/themes/ web/bookmarks/
web/editor/ web/editor/images/ web/images/ web/images/editor/
web/images/midas/ web/images/preview/ web/images/smileys/ web/planet/
web/tags/ web/templates/ web/theme/ web/theme/images/ web/theme/lavender/
web/theme/scripts/ web/theme/scripts/classes/ web/themes/ web/themes/basic/
web/themes/berkley/ web/themes/berkley/images/ web/themes/brushedmetal/
web/themes/brushedmetal/images/ web/themes/cheb/ web/themes/cheb/images/
web/themes/cheb/scripts/ web/themes/clean/ web/themes/currency-i18n/
web/themes/currency-i18n/images/ web/themes/currency/
web/themes/currency/images/ web/themes/grey2/ web/themes/moonshine/
web/themes/movablemanila/ web/themes/movablemanila/images/
web/themes/pacifica/ web/themes/robot/ web/themes/rolling/
web/themes/rolling/images/ web/themes/sotto/ web/themes/sotto/images/
web/themes/sotto/styles/ web/themes/sunsets/ web/themes/sunsets/images/
web/themes/sunsets/scripts/ web/themes/sunsets/styles/ web/themes/werner/
web/themes/x2/ web/themes/x2/images/ web/themes/x2/scripts/
web/themes/x2/styles/ web/weblog/ web/website/
Added: incubator/roller/trunk/web/WEB-INF/classes/weblog.vm
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/WEB-INF/classes/weblog.vm?rev=189695&view=auto
==============================================================================
--- incubator/roller/trunk/web/WEB-INF/classes/weblog.vm (added)
+++ incubator/roller/trunk/web/WEB-INF/classes/weblog.vm Wed Jun 8 20:18:46 2005
@@ -0,0 +1,479 @@
+#**
+ * Macros for displaying weblog entries, comments, and related links.
+ * @author Lance Lavandowska (conversion to Velocimacros)
+ * @author David M Johnson (comment macros)
+ *#
+
+#**
+ * Print status/error message if exists.
+ * Note: "error" and "status" styles should be moved out into
+ * invididual Themes' theme.css files.
+ **#
+#macro( showStatusMessage )
+ #if( $errorMessage )
+ <span class="error">$errorMessage</span>
+ #end
+ #if( $statusMessage )
+ <span class="status">$statusMessage</span>
+ #end
+#end
+
+#**
+ * Sets content type header for page, must be first line in template.
+**#
+#macro( setContentType $ctype )
+$pageHelper.setContentType($ctype)## comment here kills trailing whitespace
+#end
+
+#**
+ * Set the META tag for ContentType. We do this in addition to
+ * setting the Response header because the header does not get
+ * cached. So in order to maintain the ContentType we must present
+ * it inside the rendered page itself.
+**#
+#macro( showContentType $ctype )
+ <meta http-equiv="Content-Type" content="$ctype">
+#end
+
+#**
+ * Set the META tag for ContentLanguage. We do this rather than
+ * setting the Response header because the header does not get
+ * cached. So in order to maintain the ContentType we must present
+ * it inside the rendered page itself.
+**#
+#macro( showContentLanguage $lang )
+ <meta http-equiv="Content-Language" content="$lang">
+#end
+
+#**
+ * Use this macro in your day template if you want to override
+ * entry rendering in both your HTML and RSS weblog output by defining
+ * a page template named _entry.
+ *
+ * <p>It is no longer necessary to use a page template named _entry
+ * if you want to override entry rendering in both your
+ * HTML and RSS weblog output (for support of PagePlugins).
+ * However, backwards compatibility for such use is still included,
+ * or if you have some other need to override entry rendering.
+ * The _entry page is now loaded by ContextLoader as $entryPage.</p>
+ *#
+#macro( showEntryText $entry )
+ #if( $entryPage )
+ #parse($entryPage.id)
+ #else
+ #if ( $entry.plugins )
+ #set( $entryText = $pageHelper.renderPlugins( $entry ) )
+ #else
+ #set( $entryText = $entry.text )
+ #end
+ #if( $entryLength == -1 )
+ $utilities.textToCDATA($entryText)
+ #else
+ #set( $entryText = $utilities.textToCDATA($utilities.removeHTML($entryText)) )
+ $stringUtils.left( $entryText, $entryLength )... [$entryText.length() characters]
+ #end
+ #end
+#end
+
+#**
+ * Use this macro in your day template if you want to override
+ * entry rendering in both your HTML and RSS weblog output by defining
+ * a page template named _desc.
+ *
+ * <p>It is no longer necessary to use a page template named _desc
+ * if you want to override entry rendering in both your
+ * HTML and RSS weblog output (for support of PagePlugins).
+ * However, backwards compatibility for such use is still included,
+ * or if you have some other need to override entry rendering.
+ * The _desc page is now loaded by ContextLoader as $descPage.</p>
+ *#
+#macro( showEntryDescription $entry )
+ #if( $descPage )
+ #parse($descPage.id)
+ #else
+ #if ( $entry.plugins )
+ #set( $entryText = $pageHelper.renderPlugins( $entry ) )
+ #else
+ #set( $entryText = $entry.text )
+ #end
+ #if( $entryLength == -1 )
+ $utilities.textToXML($entryText)
+ #else
+ #set( $entryText = $stringUtils.left( $entryText, $entryLength ) )
+ #set( $entryText = $utilities.textToXML($utilities.removeHTML($entryText)) )
+ $entryText... [$entryText.length() characters]
+ #end
+ #end
+#end
+
+#**
+ * Display Permalink for Date.
+ * @param day Date object that specifies day (type java.util.Date).
+ *#
+#macro( showDayPermalink $day )
+ <a href="$baseURL/page/$userName/#formatDate($plainFormat $day )"><img
+ class="daypermalink"
+ src="$ctxPath/images/permalink.gif"
+ title="$text.get( "macro.weblog.daypermalink.title" )"
+ alt="#formatDate( $plainFormat $day )" /></a>
+#end
+
+#**
+ * Display the default Date.toString for date using the 'macro.weblog.date.toStringFormat'
+ * format as defined in the resource bundle.
+ * @param toStringFormat Format string (see java.text.SimpleDateFormat).
+ * @param day Date object that specifies day (type java.util.Date).
+ *#
+#macro( showEntryDate $day )
+ #set( $format=$text.get("macro.weblog.date.toStringFormat") )
+ #formatDate( $format $day )
+ ##formatDate( $toStringFormat $day )
+#end
+
+#**
+ * Display the timestamp for the $day using the 'macro.weblog.date.timestampFormat'
+ * format as defined in the resource bundle.
+ *
+ * @param timestampFormat Format string (see java.text.SimpleDateFormat).
+ * @param day Date object that specifies day (type java.util.Date).
+ *#
+#macro( showTimestamp $day )
+ #set( $format = $text.get("macro.weblog.date.timestampFormat") )
+ #formatDate( $format $day )
+ ##formatDate( $timestampFormat $day )
+#end
+
+#**
+ * Display the Permalink for a weblog entry.
+ * @param entry WeblogEntry object.
+ *#
+#macro( showEntryPermalink $entry )
+ <a href="$baseURL$entry.permaLink"
+ title="$text.get( "macro.weblog.entrypermalink.title" )"
+ class="entrypermalink">Permalink</a>
+ #if ($pageHelper.isUserAuthorizedToEdit())
+ [<a href="$pageHelper.getEntryEditUrl($entry)">$text.get( "macro.weblog.entrypermalink.edit" )</a>]
+ #end
+#end
+
+#**
+ * Display the Trackback URL for a weblog entry.
+ * @param entry WeblogEntry object.
+ *#
+#macro( showTrackbackURL $entry )
+$absBaseURL/trackback/$userName/$page.link/$utilities.encode($entry.anchor)#end
+
+#**
+ * Display search form for searching a weblog. This is only a form, no div
+ * or anything around it.
+ *#
+#macro( showSearchForm )
+ <form id="searchForm" method="get" action="$ctxPath/search/$userName"
+ style="margin: 0; padding: 0" onsubmit="return validateSearch(this)">
+ <p>
+ <input type="text" id="q" name="q" size="20"
+ maxlength="255" value="#if($term)$term#end" />
+ #set( $cats = $pageModel.getWeblogCategories("nil") )
+ <select name="c">
+ <option value="">- In Category -</option>
+ #foreach( $cat in $cats )
+ <option #if($cat.name == $req.getParameter('c'))selected="selected"#end>$cat.name</option>
+ #end
+ </select>
+ <input type="submit" value="$text.get( "macro.weblog.searchbutton" )" />
+ </p>
+ </form>
+ <script type="text/javascript">
+ function validateSearch(form) {
+ if (form.q.value == "") {
+ alert("$text.get( "macro.weblog.searchalert" )");
+ form.q.focus();
+ return false;
+ }
+ return true;
+ }
+ </script>
+#end
+
+#**
+ * Display search again form
+ *#
+#macro( showSearchAgainForm )
+ <div id="searchAgain">
+ $text.get( "macro.weblog.searchdictionary", [$term, $term, $term] )
+
+ $text.get( "macro.weblog.searchhits", [$hits])
+
+ <form method="get" action="$ctxPath/search/$userName"
+ style="margin: 5px">
+ <input type="text" id="q" name="q" size="31"
+ maxlength="255" value="$term"
+ style="padding-left: 1px" />
+ #set( $cats = $pageModel.getWeblogCategories("nil") )
+ <select name="c">
+ <option value="">- Restrict By Category -</option>
+ #foreach( $cat in $cats )
+ <option #if($cat.name == $req.getParameter('c'))selected="selected"#end>$cat.name</option>
+ #end
+ </select>
+ <input type="submit" value="$text.get( "macro.weblog.searchagain" )" />
+ </form>
+
+ $text.get( "macro.weblog.searchgoogle", [$term, $absBaseURL, $ctxPath, $userName] )
+ </div>
+ <script type="text/javascript"
+ src="$ctxPath/theme/scripts/searchhi.js"></script>
+#end
+
+#**
+ * Displays header like "1 - 10 of 20 found.".
+**#
+#macro( showSearchSummary )
+ #set( $min = $offset + 1 )
+ #set( $max = $offset + $limit )
+ #if( $max > $hits )#set( $max = $hits )#end
+ <h3>
+ $min - $max of $hits found.
+ </h3>
+#end
+
+#**
+ * Display list of search result pages (for pagination).
+**#
+#macro( showSearchPager )
+ <h3 style="text-align:center;">
+ #set( $numPages = $hits / $limit )
+ #set( $remainder = $hits % $limit )
+ #if( $remainder > 0 )#set( $numPages = $numPages + 1 )#end
+ #if( $numPages > 1 )
+ #foreach( $pageNum in [1..$numPages] )
+ #set( $i = $pageNum - 1 )
+ #set( $start = $limit * $i )
+ <a href="?q=${utilities.encode($term)}&${USERNAME_KEY}=$!{username}&n=${limit}&o=${start}"
+ >$pageNum</a>#if( $pageNum != $numPages) | #end
+ #end
+ #end
+ </h3>
+#end
+
+#**
+ * Display link to chronologically previous entry in the
+ * same category (if specified).
+**#
+#macro( showPreviousEntryLink $category)
+ <span id="previousEntry">
+ #if( $pageModel.previousEntry )
+ #if ( $category != 'nil' )#set( $catPath = $category )#end ## was a category supplied?
+ #set( $previousEntry = $pageModel.previousEntry )
+ <a href="$ctxPath$previousEntry.getPermaLink($catPath)"
+ title="Previous Entries"
+ >« $utilities.truncateNicely($previousEntry.title, 30, 30, "...")</a>
+ #end
+ </span>
+#end
+
+#**
+ * Display link to chronologically next entry in the
+ * same category (if specified).
+**#
+#macro( showNextEntryLink $category)
+ <span id="nextEntry">
+ #if( $pageModel.nextEntry )
+ #if ( $category != 'nil' )#set( $catPath = $category )#end ## was a category supplied?
+ #set( $nextEntry = $pageModel.nextEntry )
+ <a href="$ctxPath$nextEntry.getPermaLink($catPath)"
+ title="Next Entries"
+ >$utilities.truncateNicely($nextEntry.title, 30, 30, "...") »</a>
+ #end
+ </span>
+#end
+
+#**
+ * Shows weblog entries from specified category
+ * using specified page as a "day template" for the display of each day.
+ * If a specific weblog entry is specified by the current request (using
+ * the anchor tag), then shows the only the specified entry (using the day
+ * template) along with the comments associated with that entry.
+ *
+ * @param pageName Page name of page to serve as day template.
+ * @param maxEntries Maximum number of entries to be shown.
+ * @param category Only display weblog entries from this category.
+ *#
+#macro( showWeblogEntriesInCategory $pageName $maxEntries $category )
+ #if ( $pageModel.getWeblogEntry() )
+ #set( $entry = $pageModel.getWeblogEntry() )
+ #end
+ #set( $dayTemplateId = $pageModel.getPageIdByName($pageName) )
+ #if ( !$dayTemplateId ) ## if no page name, try Preview space
+ #set ( $dayTemplateId = $pageName )
+ #end
+ #if( $entry )
+ #set( $day = $entry.pubTime )
+ #set( $entries = [ $entry ] )
+ #parse( $dayTemplateId )
+ <div class="trackbackUrl">
+ $text.get( "macro.weblog.trackback" ) #showTrackbackURL($entry)
+ </div>
+ #showComments($entry)
+ #if($website.allowComments && $entry.commentsStillAllowed)
+ #showCommentForm($entry)
+ #else
+ $text.get("comments.disabled")
+ #end
+ #else
+ #if( $searchResults )
+ #set( $map = $searchResults )
+ #showSearchAgainForm()
+ #showSearchSummary()
+ #else
+ #set( $map = $pageModel.getRecentWeblogEntries($maxEntries, $category) )
+ #end
+ #foreach( $day in $map.keySet() )
+ #set( $entries = $map.get($day) )
+ #parse( $dayTemplateId )
+ #end
+ #if( $searchResults )
+ #showSearchPager()
+ #end
+
+ <div class="next-previous">
+ #showPreviousEntryLink($category)
+ #showNextEntryLink($category)
+ </div>
+ #end
+#end
+
+#**
+ * Shows weblog entries using specified page as a "day template" for
+ * the display of each day. If a specific weblog entry is specified
+ * by the current request (using the anchor tag), then shows the only
+ * the specified entry (using the day template) along with the comments
+ * associated with that entry.
+ *
+ * @param pageName Page name of page to serve as day template.
+ * @param maxEntries Maximum number of entries to be shown.
+ *#
+#macro( showWeblogEntries $pageName $maxEntries )
+#showWeblogEntriesInCategory($pageName $maxEntries 'nil')
+#end
+
+#**
+ * Show the last $maxEntries number of weblogentry titles in a category,
+ * as links to the individual posts. Names of fields
+ * must be different than in showWeblogEntries (those
+ * values take precedence for some reason).
+**#
+#macro( showRecentEntriesInCategory $entryCount $catPath )
+ #set( $xmap = $pageModel.getRecentWeblogEntries($entryCount,$catPath) )
+ <ul class="recentposts">
+ #foreach( $day in $xmap.keySet() )
+ #set( $recentEntries = $xmap.get($day) )
+ #foreach ($var in $recentEntries)
+ <li class="recentposts"><a href="$baseURL/page/$userName/?anchor=$utilities.encode($var.anchor)">$var.title</a></li>
+ #end
+ #end
+ </ul>
+#end
+
+#**
+ * Show the last $maxEntries number of weblogentry titles,
+ * as links to the individual posts. Names of fields
+ * must be different than in showWeblogEntries (those
+ * values take precedence for some reason).
+**#
+#macro( showRecentEntries $entryCount )
+#showRecentEntriesInCategory($entryCount "nil")
+#end
+
+#**
+ * Show the last $maxEntries number of weblogentry titles, as links to
+ * entry links. Names of fields must be different than in showWeblogEntries
+ * (those values take precedence for some reason).
+**#
+#macro( showRecentEntryLinksInCategory $numEntries $cat)
+ #set( $xmap = $pageModel.getRecentWeblogEntries($numEntries, $cat) )
+ <ul class="linkblog">
+ #foreach( $day in $xmap.keySet() )
+ #set( $recentEntries = $xmap.get($day) )
+ #foreach ($var in $recentEntries)
+ <li class="linkblog">
+ #if ($var.link)
+ <a href="$var.link" title="$utilities.removeAndEscapeHTML($var.text)">$var.title</a>
+ #else
+ $var.title
+ #end
+ #if ($pageHelper.isUserAuthorizedToEdit())
+ [<a href="$pageHelper.getEntryEditUrl($var)">$text.get( "macro.weblog.editentry" )</a>]
+ #end
+ </li>
+ #end
+ #end
+ </ul>
+#end
+
+#**
+ * Show the last $maxEntries number of weblogentry titles, as links to
+ * entry links. Names of fields must be different than in showWeblogEntries
+ * (those values take precedence for some reason).
+**#
+#macro( showRecentEntryLinks $numEntries )
+#showRecentEntryLinksInCategory($numEntries "nil")
+#end
+
+#**
+ * Display language form for selection a different language. This is only a form, no div
+ * or anything around it.
+ *#
+#macro( showLanguageForm )
+ ## first check for errors during possible previous langauge change
+ #if ($languageError)
+ <p>$languageError</p>
+ #end
+
+ #set( $locales = $pageHelper.getSupportedLanguages() )
+ #if ($locales)
+ #foreach($locale in $locales)
+ <a class="imageLink" href="$ctxPath/language${pageHelper.getPathInfo()}?language=${locale}">
+ <img src="$ctxPath/images/flag_${locale.toString().toLowerCase()}.gif" alt="${locale.getDisplayLanguage()}" />
+ </a>
+ <br />
+ #end
+ #else
+ <p>$text.get("macro.weblog.nolanguages")</p>
+ #end
+#end
+
+#**
+ * Display links to Previous and/or Next chronological Entry. Also
+ * display link to "main" page if either is present.
+**#
+#macro( showNextPreviousLinks )
+ #set( $catLink = "" )
+ #if ( $catPath ) #set( $catLink = "?catname=$catPath" ) #end
+ <div class="next-previous">
+ #if ($pageModel.previousEntry)
+ #set( $previousEntry = $pageModel.previousEntry )
+ <a href="$ctxPath/page/$userName/$page.link/$utilities.encode($previousEntry.anchor)$catLink"
+ title="$previousEntry.title"
+ >« $utilities.truncateNicely($previousEntry.title, 30, 30, "...")</a> |
+ #end
+
+ #if ( $pageModel.previousEntry || $pageModel.nextEntry)
+ <a href="$ctxPath/page/$userName/$page.link$catLink">$page.name</a>
+ #end
+
+ #if ($pageModel.nextEntry)
+ #set( $nextEntry = $pageModel.nextEntry )
+ | <a href="$ctxPath/page/$userName/$page.link/$utilities.encode($nextEntry.anchor)$catLink"
+ title="$nextEntry.title"
+ >$utilities.truncateNicely($nextEntry.title, 30, 30, "...") »</a>
+ #end
+ </div>
+#end
+
+#**
+ * Method to retrieve a full encoded anchor tag for a WeblogEntry.
+**#
+#macro( showAnchorTag $entry )
+ <a name="$utilities.encode($entry.anchor)" id="$utilities.encode($entry.anchor)"></a>
+#end
\ No newline at end of file
Added: incubator/roller/trunk/web/WEB-INF/classes/website.vm
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/WEB-INF/classes/website.vm?rev=189695&view=auto
==============================================================================
--- incubator/roller/trunk/web/WEB-INF/classes/website.vm (added)
+++ incubator/roller/trunk/web/WEB-INF/classes/website.vm Wed Jun 8 20:18:46 2005
@@ -0,0 +1,118 @@
+#**
+ * Website and Page macros.
+ * @author Lance Lavandowska (conversion to Velocimacros)
+ *#
+
+#**
+ * Display website title.
+ *#
+#macro( showWebsiteTitle )$website.Name#end
+
+#**
+ * Display website description.
+ *#
+#macro( showWebsiteDescription )$website.Description#end
+
+#**
+ * Include a page and evaluate it as a template.
+ * @param pageName Name of page to be included.
+ *#
+#macro( includePage $pageName )
+ #set( $iPageId = false )## This is required for such constructs; see velocity docs and ROL-689
+ #set( $iPageId = $pageModel.getPageIdByName( $pageName ) )
+ #if ( !$iPageId ) ## no page found, parse pageName
+ #set( $iPageId = $pageName )
+ #end
+ #parse( $iPageId )
+#end
+
+#**
+ * Show name of current page.
+ *#
+#macro( showPageName )$page.Name#end
+
+#**
+ * Show current page's description.
+ *#
+#macro( showPageDescription )$page.Description#end
+
+#**
+ * Show current page's update time.
+ *#
+#macro( showPageUpdateTime )$page.UpdateTime#end
+
+#**
+ * Display weblog calandar.
+ * @param big True to display a BIG calendar, good for an archive page.
+ *#
+#macro( displayWeblogCalendar $big $cat)
+ $pageHelper.showWeblogCalendar( $big, $cat )
+#end
+
+#**
+ * Shows weblog category chooser.
+ * To style completely with CSS, set $divider to "" (empty string).
+ * @param parentCategory The top level Category to display.
+ * @param divider The text to place between each Category.
+ *#
+#macro( showWeblogSubcategoryChooser2 $parentCategory $divider )
+ #set( $rawUrl = "$ctxPath/page/$userName/$page.link" )
+
+ <div class="rWeblogCategoryChooser">
+ #set( $weblogUrl = $rawUrl )
+ #set( $chosenCat = "" )
+ #if( $req.getParameter( $WEBLOGCATEGORYNAME_KEY ) )
+ #set( $chosenCat = $req.getParameter( $WEBLOGCATEGORYNAME_KEY ) )
+ <span class="rUnchosenCategory"><a href="$weblogUrl">$text.get( "macro.weblog.allcategories" )</a></span>
+ #else
+ <span class="rChosenCategory">$text.get( "macro.weblog.allcategories" )</span>
+ #end
+
+ #if ( $req.getParameter($PAGEID_KEY) )
+ #set( $pageParam = "&$PAGEID_KEY=$req.getParameter($PAGEID_KEY)" )
+ #end
+ #set( $cats = $pageModel.getWeblogCategories($parentCategory) )
+ #foreach( $cat in $cats )
+ ## $pageHelper.strutsUrlHelper() wasn't working, so do it manually
+ #set( $catParam = "?$WEBLOGCATEGORYNAME_KEY=$utilities.encode($cat.path)" )
+ #set( $weblogUrl = "$rawUrl$catParam$!pageParam" )
+ $divider
+ #if( $chosenCat == $cat.path )
+ <span class="rChosenCategory">$cat.Name</span>
+ #else
+ <span class="rUnchosenCategory"><a href="$weblogUrl">$cat.Name</a></span>
+ #end
+ #end
+ </div>
+#end
+## backwards compatibility
+#macro( showWeblogSubcategoryChooser $parentCategory )
+ #showWeblogSubcategoryChooser2( $parentCategory "|" )
+#end
+
+#**
+ * Shows weblog category chooser.
+ *#
+#macro( showWeblogCategoryChooser )#showWeblogSubcategoryChooser2("nil" "|")#end
+
+#**
+ * Display weblog calandar.
+ * @param big True to display a BIG calendar, good for an archive page.
+ *#
+#macro( displayWeblogCalendar $big $cat)
+ $pageHelper.showWeblogCalendar( $big, $cat )
+#end
+
+#**
+ * Display weblog calandar.
+ *#
+#macro( showWeblogCalendar )
+ #displayWeblogCalendar( false 'nil' )
+#end
+
+#**
+ * Display a BIG weblog calendar, good for an archive page.
+ *#
+#macro( showBigWeblogCalendar )
+ #displayWeblogCalendar( true 'nil' )
+#end
Added: incubator/roller/trunk/web/WEB-INF/editor-menu.xml
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/WEB-INF/editor-menu.xml?rev=189695&view=auto
==============================================================================
--- incubator/roller/trunk/web/WEB-INF/editor-menu.xml (added)
+++ incubator/roller/trunk/web/WEB-INF/editor-menu.xml Wed Jun 8 20:18:46 2005
@@ -0,0 +1,55 @@
+
+<!-- Defines the Roller Editor GUI menu and roles allowed to use each menu. -->
+
+<menu-bar>
+
+ <menu name="tabbedmenu.main">
+ <menu-item name="tabbedmenu.planet" forward="planet"
+ enabledProperty="planet.aggregator.enabled" />
+ <menu-item name="tabbedmenu.main" forward="main"
+ disabledProperty="planet.aggregator.enabled" />
+ </menu>
+
+ <menu name="tabbedmenu.weblog" roles="editor,admin">
+ <menu-item name="tabbedmenu.weblog.newEntry" forward="weblogCreate" />
+ <menu-item name="tabbedmenu.weblog.archives" forward="weblogQuery" />
+ <menu-item name="tabbedmenu.weblog.categories" forward="categories" />
+ <menu-item name="tabbedmenu.weblog.referers" forward="referers" />
+ <menu-item name="tabbedmenu.weblog.pingSetup" forward="pingSetup"
+ disabledProperty="pings.disablePingUsage"/>
+ <menu-item name="tabbedmenu.weblog.customPingTargets" forward="customPingTargets"
+ disabledProperty="pings.disallowCustomTargets"/>
+ <!-- I haven't tested these yet...
+ <menu-item name="tabbedmenu.weblog.export" forward="exportEntries" />
+ <menu-item name="tabbedmenu.weblog.import" forward="importEntries" />
+ -->
+ </menu>
+
+ <menu name="tabbedmenu.bookmarks" roles="editor,admin">
+ <menu-item name="tabbedmenu.bookmarks.allFolders" forward="bookmarks" />
+ <menu-item name="tabbedmenu.bookmarks.import" forward="importBookmarks" />
+ </menu>
+
+ <menu name="tabbedmenu.website" roles="editor,admin">
+ <menu-item name="tabbedmenu.website.settings" forward="editWebsite" />
+ <menu-item name="tabbedmenu.website.themes" forward="editTheme" />
+ <menu-item name="tabbedmenu.website.pages" forward="editPages" />
+ <menu-item name="tabbedmenu.website.files" forward="uploadFiles" />
+ <menu-item name="tabbedmenu.website.user" forward="editUser" />
+ <menu-item name="tabbedmenu.website.maintenance" forward="maintenance" />
+ </menu>
+
+ <menu name="tabbedmenu.admin" roles="admin">
+ <menu-item name="tabbedmenu.admin.config" forward="rollerConfig" />
+ <menu-item name="tabbedmenu.admin.userAdmin" forward="adminUser" />
+ <menu-item name="tabbedmenu.admin.createUser" forward="createUser" />
+ <menu-item name="tabbedmenu.admin.pingTargets" forward="commonPingTargets"/>
+ </menu>
+
+ <menu name="tabbedmenu.planet" roles="admin" enabledProperty="planet.aggregator.enabled">
+ <menu-item name="tabbedmenu.admin.planetConfig" forward="planetConfig" />
+ <menu-item name="tabbedmenu.admin.planetSubscriptions" forward="planetSubscriptions" />
+ <menu-item name="tabbedmenu.admin.planetGroups" forward="planetGroups" />
+ </menu>
+
+</menu-bar>