You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by el...@apache.org on 2006/10/04 06:33:34 UTC
svn commit: r452723 - in /incubator/roller/trunk:
src/org/apache/roller/business/hibernate/ src/org/apache/roller/model/
src/org/apache/roller/pojos/
src/org/apache/roller/ui/authoring/struts/actions/
src/org/apache/roller/ui/authoring/struts/formbeans...
Author: eliast
Date: Tue Oct 3 21:33:33 2006
New Revision: 452723
URL: http://svn.apache.org/viewvc?view=rev&rev=452723
Log:
Added support for tag aggregate table by adding getAddedTags() and getRemovedTags() to WeblogEntryData bean.
- Refactored getTags() method in WeblogManager to reflect latest design.
- Added support for keeping track of tag changes to WeblogEntryData
- Added support for filtering based on tags in Entry Management UI
- Added getTags() and getHotTags() to Site and Page Model
- Added #showTagCloud and #showEntryTags($entry) macros to weblog.vm
- Updated frontpage theme to use new macros
Also tested to make sure we support unicode in all aspects of tagging.
Modified:
incubator/roller/trunk/src/org/apache/roller/business/hibernate/HibernateWeblogManagerImpl.java
incubator/roller/trunk/src/org/apache/roller/model/WeblogManager.java
incubator/roller/trunk/src/org/apache/roller/pojos/WeblogEntryData.java
incubator/roller/trunk/src/org/apache/roller/pojos/WeblogTagAggregateData.java
incubator/roller/trunk/src/org/apache/roller/ui/authoring/struts/actions/WeblogEntryManagementAction.java
incubator/roller/trunk/src/org/apache/roller/ui/authoring/struts/formbeans/WeblogEntryManagementForm.java
incubator/roller/trunk/src/org/apache/roller/ui/rendering/model/PageModel.java
incubator/roller/trunk/src/org/apache/roller/ui/rendering/model/SiteModel.java
incubator/roller/trunk/web/WEB-INF/velocity/weblog.vm
incubator/roller/trunk/web/themes/basic/_day.vm
incubator/roller/trunk/web/themes/frontpage/Weblog.vm
incubator/roller/trunk/web/themes/frontpage/tags.vm
Modified: incubator/roller/trunk/src/org/apache/roller/business/hibernate/HibernateWeblogManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/business/hibernate/HibernateWeblogManagerImpl.java?view=diff&rev=452723&r1=452722&r2=452723
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/business/hibernate/HibernateWeblogManagerImpl.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/business/hibernate/HibernateWeblogManagerImpl.java Tue Oct 3 21:33:33 2006
@@ -46,6 +46,8 @@
import org.apache.roller.pojos.WeblogCategoryAssoc;
import org.apache.roller.pojos.WeblogCategoryData;
import org.apache.roller.pojos.WeblogEntryData;
+import org.apache.roller.pojos.WeblogEntryTagData;
+import org.apache.roller.pojos.WeblogTagAggregateData;
import org.apache.roller.pojos.WebsiteData;
import org.apache.roller.util.DateUtil;
import org.apache.roller.util.Utilities;
@@ -57,6 +59,7 @@
import org.hibernate.criterion.Junction;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Order;
+import org.hibernate.criterion.Restrictions;
/**
@@ -193,8 +196,18 @@
if (entry.getAnchor() == null || entry.getAnchor().trim().equals("")) {
entry.setAnchor(this.createAnchor(entry));
}
+
+ for(Iterator it = entry.getAddedTags().iterator(); it.hasNext();) {
+ String name = (String) it.next();
+ updateTagCount(name, entry.getWebsite(), 1);
+ }
- this.strategy.store(entry);
+ for(Iterator it = entry.getRemovedTags().iterator(); it.hasNext();) {
+ String name = (String) it.next();
+ updateTagCount(name, entry.getWebsite(), -1);
+ }
+
+ this.strategy.store(entry);
// update weblog last modified date. date updated by saveWebsite()
if(entry.isPublished()) {
@@ -239,6 +252,14 @@
this.strategy.remove((CommentData) commentsIT.next());
}
+ // remove tags aggregates
+ if(entry.getTagSet() != null) {
+ for(Iterator it = entry.getTagSet().iterator(); it.hasNext(); ) {
+ WeblogEntryTagData tag = (WeblogEntryTagData) it.next();
+ updateTagCount(tag.getName(), entry.getWebsite(), -1);
+ }
+ }
+
// remove entry
this.strategy.remove(entry);
@@ -1201,8 +1222,7 @@
}
}
- public List getTags(Date startDate, Date endDate, WebsiteData website,
- UserData user, String sortBy, int limit)
+ public List getTags(WebsiteData website, String sortBy, String startsWith, int limit)
throws RollerException {
try {
List results = new ArrayList();
@@ -1211,26 +1231,24 @@
.getSession();
if (sortBy != null && sortBy.equals("count")) {
- sortBy = "col_1_0_ desc";
+ sortBy = "a.count desc";
} else {
- sortBy = "t.name";
+ sortBy = "a.name";
}
-
+
StringBuffer queryString = new StringBuffer();
- queryString.append("select t.name, count(t.name) ");
- queryString.append("from WeblogEntryTagData t ");
- queryString.append("where t.time between ? and ? ");
+ queryString.append("select a.name, a.count ");
+ queryString.append("from WeblogTagAggregateData a where ");
if (website != null)
- queryString.append("and t.website.id = '" + website.getId()
- + "' ");
- if (user != null)
- queryString.append("and t.user.id = '" + user.getId() + "' ");
- queryString.append("group by t.name ");
+ queryString.append("a.website.id = '" + website.getId() + "' ");
+ else
+ queryString.append("a.website = NULL ");
+ if (startsWith != null && startsWith.length() > 0)
+ queryString.append("and a.name like '" + startsWith + "%' ");
+
queryString.append("order by " + sortBy);
Query query = session.createQuery(queryString.toString());
- query.setTimestamp(0, DateUtil.getStartOfDay(startDate));
- query.setTimestamp(1, DateUtil.getEndOfDay(endDate));
if (limit > 0)
query.setMaxResults(limit);
@@ -1251,4 +1269,66 @@
}
+ public void updateTagCount(String name, WebsiteData website, int amount) throws RollerException {
+
+ Session session = ((HibernatePersistenceStrategy) strategy)
+ .getSession();
+
+ if(amount == 0) {
+ throw new RollerException("Tag increment amount cannot be zero.");
+ }
+
+ if(website == null) {
+ throw new RollerException("Website cannot be NULL.");
+ }
+
+ Junction conjunction = Expression.conjunction();
+ conjunction.add(Expression.eq("name", name));
+ conjunction.add(Expression.eq("website", website));
+
+ Criteria criteria = session.createCriteria(WeblogTagAggregateData.class)
+ .add(conjunction);
+
+ WeblogTagAggregateData weblogTagData = (WeblogTagAggregateData) criteria.uniqueResult();
+
+ conjunction = Expression.conjunction();
+ conjunction.add(Restrictions.eq("name", name));
+ conjunction.add(Restrictions.isNull("website"));
+
+ criteria = session.createCriteria(WeblogTagAggregateData.class)
+ .add(conjunction);
+
+ WeblogTagAggregateData siteTagData = (WeblogTagAggregateData) criteria.uniqueResult();
+
+ // create it only if we are going to need it.
+ if(weblogTagData == null && amount > 0) {
+ weblogTagData = new WeblogTagAggregateData(null, website, name, 0);
+ }
+
+ // create it only if we are going to need it.
+ if(siteTagData == null && amount > 0) {
+ siteTagData = new WeblogTagAggregateData(null, null, name, 0);
+ }
+
+ //
+ if(weblogTagData != null) {
+ if ((amount + weblogTagData.getCount()) <= 0) {
+ if(weblogTagData.getId() != null)
+ session.delete(weblogTagData);
+ } else {
+ weblogTagData.setCount(weblogTagData.getCount() + amount);
+ session.save(weblogTagData);
+ }
+ }
+
+ if(siteTagData != null) {
+ if ((amount + siteTagData.getCount()) <= 0) {
+ if(siteTagData.getId() != null)
+ session.delete(siteTagData);
+ } else {
+ siteTagData.setCount(siteTagData.getCount() + amount);
+ session.save(siteTagData);
+ }
+ }
+ }
}
Modified: incubator/roller/trunk/src/org/apache/roller/model/WeblogManager.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/model/WeblogManager.java?view=diff&rev=452723&r1=452722&r2=452723
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/model/WeblogManager.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/model/WeblogManager.java Tue Oct 3 21:33:33 2006
@@ -27,6 +27,7 @@
import org.apache.roller.pojos.UserData;
import org.apache.roller.pojos.WeblogCategoryData;
import org.apache.roller.pojos.WeblogEntryData;
+import org.apache.roller.pojos.WeblogEntryTagData;
import org.apache.roller.pojos.WebsiteData;
@@ -383,16 +384,28 @@
/**
* Get list of TagStat. There's no offset/length params just a limit.
- * @param startDate Start date or null for not start date.
- * @param endDate End date or null for no end date.
* @param website Weblog or null to get for all weblogs.
- * @param user User or null to get for all users.
- * @param sortBy Sort by either 'name' or 'count' (null for name)
+ * @param sortBy Sort by either 'name' or 'count' (null for name)
+ * @param startsWith Prefix for tags to be returned (null or a string of length > 0)
* @param limit Max TagStats to return (or -1 for no limit)
* @return
* @throws RollerException
*/
- public List getTags(Date startDate, Date endDate, WebsiteData website,
- UserData user, String sortBy, int limit)
- throws RollerException;
+ public List getTags(WebsiteData website, String sortBy,
+ String startsWith, int limit)
+ throws RollerException;
+
+ /**
+ * This method maintains the tag aggregate table up-to-date with total counts. More
+ * specifically every time this method is called it will act upon exactly two rows
+ * in the database (tag,website,count), one with website matching the argument passed
+ * and one where website is null. If the count ever reaches zero, the row must be deleted.
+ *
+ * @param name The tag name
+ * @param website The website to used when updating the stats.
+ * @param amount The amount to increment the tag count (it can be positive or negative).
+ * @throws RollerException
+ */
+ public void updateTagCount(String name, WebsiteData website, int amount)
+ throws RollerException;
}
Modified: incubator/roller/trunk/src/org/apache/roller/pojos/WeblogEntryData.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/pojos/WeblogEntryData.java?view=diff&rev=452723&r1=452722&r2=452723
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/pojos/WeblogEntryData.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/pojos/WeblogEntryData.java Tue Oct 3 21:33:33 2006
@@ -99,6 +99,8 @@
private Set attSet = new TreeSet();
private Set tagSet = new HashSet();
+ private Set removedTags = new HashSet();
+ private Set addedTags = new HashSet();
//----------------------------------------------------------- Construction
@@ -617,15 +619,22 @@
private void setTagSet(Set tagSet) throws RollerException
{
this.tagSet = tagSet;
+ this.removedTags = new HashSet();
+ this.addedTags = new HashSet();
}
- public void addTag(String name) {
+ public void addTag(String name) throws RollerException {
+ name = stripInvalidTagChars(name);
+ name = name.toLowerCase().trim();
+ if(name.length() == 0)
+ return;
+
for (Iterator it = tagSet.iterator(); it.hasNext();) {
WeblogEntryTagData tag = (WeblogEntryTagData) it.next();
- if(tag.getName().equals(name))
+ if (tag.getName().equals(name))
return;
}
-
+
WeblogEntryTagData tag = new WeblogEntryTagData();
tag.setName(stripInvalidTagChars(name));
tag.setUser(getCreator());
@@ -633,18 +642,30 @@
tag.setWeblogEntry(this);
tag.setTime(getUpdateTime());
tagSet.add(tag);
+
+ addedTags.add(name);
}
- public void removeTag(String name) {
+ public void removeTag(String name) throws RollerException {
name = stripInvalidTagChars(name);
for (Iterator it = tagSet.iterator(); it.hasNext();) {
WeblogEntryTagData tag = (WeblogEntryTagData) it.next();
- if(tag.getName().equals(name))
+ if (tag.getName().equals(name)) {
+ removedTags.add(name);
it.remove();
+ }
}
}
+
+ public Set getAddedTags() {
+ return addedTags;
+ }
+
+ public Set getRemovedTags() {
+ return removedTags;
+ }
- public void updateTags(List tags) {
+ public void updateTags(List tags) throws RollerException {
HashSet newTags = new HashSet(tags);
HashSet removeTags = new HashSet();
@@ -704,7 +725,7 @@
return sb.toString();
}
- public void setTags(String tags) {
+ public void setTags(String tags) throws RollerException {
if (tags == null) {
tagSet.clear();
return;
Modified: incubator/roller/trunk/src/org/apache/roller/pojos/WeblogTagAggregateData.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/pojos/WeblogTagAggregateData.java?view=diff&rev=452723&r1=452722&r2=452723
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/pojos/WeblogTagAggregateData.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/pojos/WeblogTagAggregateData.java Tue Oct 3 21:33:33 2006
@@ -79,7 +79,7 @@
/**
* @roller.wrapPojoMethod type="pojo"
* @ejb:persistent-field
- * @hibernate.many-to-one column="websiteid" cascade="none" not-null="true"
+ * @hibernate.many-to-one column="websiteid" cascade="none" not-null="false"
*/
public WebsiteData getWebsite() {
return this.website;
Modified: incubator/roller/trunk/src/org/apache/roller/ui/authoring/struts/actions/WeblogEntryManagementAction.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/ui/authoring/struts/actions/WeblogEntryManagementAction.java?view=diff&rev=452723&r1=452722&r2=452723
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/ui/authoring/struts/actions/WeblogEntryManagementAction.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/ui/authoring/struts/actions/WeblogEntryManagementAction.java Tue Oct 3 21:33:33 2006
@@ -21,6 +21,7 @@
import java.io.IOException;
import java.text.DateFormat;
import java.text.ParseException;
+import java.util.Arrays;
import java.util.Date;
import java.util.List;
@@ -32,6 +33,7 @@
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
+import org.apache.commons.lang.StringUtils;
import org.apache.roller.RollerException;
import org.apache.roller.model.RollerFactory;
import org.apache.roller.model.WeblogManager;
@@ -146,6 +148,11 @@
this.status = "ALL".equals(queryForm.getStatus()) ? null: queryForm.getStatus();
this.maxEntries = maxEntries;
+
+ String[] tagsarr = new String[0];
+
+ if(queryForm.getTags() != null)
+ tagsarr = StringUtils.split(queryForm.getTags().toLowerCase(), ' ');
entries = RollerFactory.getRoller().getWeblogManager().getWeblogEntries(
website,
@@ -153,10 +160,11 @@
startDate,
endDate,
category,
- null,
+ Arrays.asList(tagsarr),
status,
queryForm.getSortby(),
-null, queryForm.getOffset(),
+ null,
+ queryForm.getOffset(),
queryForm.getCount() + 1);
if (entries.size() > queryForm.getCount()) {
more = true;
Modified: incubator/roller/trunk/src/org/apache/roller/ui/authoring/struts/formbeans/WeblogEntryManagementForm.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/ui/authoring/struts/formbeans/WeblogEntryManagementForm.java?view=diff&rev=452723&r1=452722&r2=452723
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/ui/authoring/struts/formbeans/WeblogEntryManagementForm.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/ui/authoring/struts/formbeans/WeblogEntryManagementForm.java Tue Oct 3 21:33:33 2006
@@ -43,6 +43,7 @@
private String mFileBy = "month";
private String mExportFormat = "rss";
private String mCategoryId = null;
+ private String mTags = "";
private String mStatus = "ALL";
private String mSortby = "updateTime";
@@ -66,6 +67,8 @@
cal.set(Calendar.DAY_OF_MONTH, 1);
mStartDateString = df.format( cal.getTime() );
+
+ mTags = "";
}
/**
@@ -182,4 +185,13 @@
public void setSortby(String sortby) {
mSortby = sortby;
}
+
+ public String getTags() {
+ return mTags;
+ }
+
+ public void setTags(String tags) {
+ mTags = tags;
+ }
+
}
Modified: incubator/roller/trunk/src/org/apache/roller/ui/rendering/model/PageModel.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/ui/rendering/model/PageModel.java?view=diff&rev=452723&r1=452722&r2=452723
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/ui/rendering/model/PageModel.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/ui/rendering/model/PageModel.java Tue Oct 3 21:33:33 2006
@@ -18,11 +18,16 @@
package org.apache.roller.ui.rendering.model;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.RollerException;
+import org.apache.roller.model.Roller;
+import org.apache.roller.model.RollerFactory;
+import org.apache.roller.model.WeblogManager;
import org.apache.roller.pojos.WebsiteData;
import org.apache.roller.pojos.wrapper.TemplateWrapper;
import org.apache.roller.pojos.wrapper.WeblogCategoryDataWrapper;
@@ -266,4 +271,36 @@
}
return null;
}
+
+ /**
+ * @param sinceDay
+ * @return
+ */
+ public List getTags() {
+ List results = new ArrayList();
+ try {
+ Roller roller = RollerFactory.getRoller();
+ WeblogManager wmgr = roller.getWeblogManager();
+ results = wmgr.getTags(weblog, null, null, -1);
+ } catch (Exception e) {
+ log.error("ERROR: fetching site tags list", e);
+ }
+ return results;
+ }
+
+ /**
+ * @param sinceDay
+ * @return
+ */
+ public List getHotTags(int length) {
+ List results = new ArrayList();
+ try {
+ Roller roller = RollerFactory.getRoller();
+ WeblogManager wmgr = roller.getWeblogManager();
+ results = wmgr.getTags(weblog, "count", null, length);
+ } catch (Exception e) {
+ log.error("ERROR: fetching site tags list", e);
+ }
+ return results;
+ }
}
Modified: incubator/roller/trunk/src/org/apache/roller/ui/rendering/model/SiteModel.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/ui/rendering/model/SiteModel.java?view=diff&rev=452723&r1=452722&r2=452723
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/ui/rendering/model/SiteModel.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/ui/rendering/model/SiteModel.java Tue Oct 3 21:33:33 2006
@@ -481,18 +481,12 @@
* @param sinceDay
* @return
*/
- public List getTags(
- int sinceDays) {
+ public List getTags() {
List results = new ArrayList();
- Calendar cal = Calendar.getInstance();
- cal.setTime(new Date());
- cal.add(Calendar.DATE, -1 * sinceDays);
- Date startDate = cal.getTime();
try {
Roller roller = RollerFactory.getRoller();
WeblogManager wmgr = roller.getWeblogManager();
- results = wmgr.getTags(
- startDate, new Date(), null, null, null, -1);
+ results = wmgr.getTags(null, null, null, -1);
} catch (Exception e) {
log.error("ERROR: fetching site tags list", e);
}
@@ -503,18 +497,12 @@
* @param sinceDay
* @return
*/
- public List getHotTags(
- int sinceDays, int length) {
+ public List getHotTags(int length) {
List results = new ArrayList();
- Calendar cal = Calendar.getInstance();
- cal.setTime(new Date());
- cal.add(Calendar.DATE, -1 * sinceDays);
- Date startDate = cal.getTime();
try {
Roller roller = RollerFactory.getRoller();
WeblogManager wmgr = roller.getWeblogManager();
- results = wmgr.getTags(
- startDate, new Date(), null, null, "count", length);
+ results = wmgr.getTags(null, "count", null, length);
} catch (Exception e) {
log.error("ERROR: fetching site tags list", e);
}
Modified: incubator/roller/trunk/web/WEB-INF/velocity/weblog.vm
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/WEB-INF/velocity/weblog.vm?view=diff&rev=452723&r1=452722&r2=452723
==============================================================================
--- incubator/roller/trunk/web/WEB-INF/velocity/weblog.vm (original)
+++ incubator/roller/trunk/web/WEB-INF/velocity/weblog.vm Tue Oct 3 21:33:33 2006
@@ -789,6 +789,46 @@
#end
#end
+#**
+Shows a Tag cloud for a given set of tags
+*#
+#macro(showTagCloud $tags)
+
+ <center>
+ #set ( $minSize = 12 )
+ #set ( $maxSize = 28 )
+
+ #set ( $max = 0 )
+ #foreach ( $tag in $tags )
+ #if ( $tag.count > $max )
+ #set ( $max = $tag.count )
+ #end
+ #end
+
+ #set ( $step = $max / ($maxSize - $minSize) )
+
+ #set ( $step = $max / ($maxSize - $minSize) )
+ #if ( $step < 1 )
+ #set ( $step = 1 )
+ #end
+ #foreach ($tag in $tags)
+ #set( $size = $minSize + ($tag.count / $step) )
+ <span class="tag" style="font-size:${size}px"><a href="$url.tag($tag.name)" title="$tag.count">$tag.name</a></span>
+ #end
+ </center>
+
+#end
+
+#macro(showEntryTags $entry)
+
+ #set ( $tags = $entry.tagSet )
+ Tags:
+ #foreach($tag in $tags)
+ <a href="$url.tag($tag.name)" title="$tag.count" rel="tag">$tag.name</a>
+ #end
+
+#end
+
Modified: incubator/roller/trunk/web/themes/basic/_day.vm
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/themes/basic/_day.vm?view=diff&rev=452723&r1=452722&r2=452723
==============================================================================
--- incubator/roller/trunk/web/themes/basic/_day.vm (original)
+++ incubator/roller/trunk/web/themes/basic/_day.vm Tue Oct 3 21:33:33 2006
@@ -15,6 +15,9 @@
$entry.displayContent($url.entry($entry.anchor))
#end
</p>
+ <p class="entryTags">
+ #showEntryTags($entry)
+ </p>
<p class="entryInfo">
Posted at <a href="$url.entry($entry.anchor)">$utils.formatDate($entry.pubTime, "hh:mma MMM dd, yyyy")</a>
by $entry.creator.fullName in <span class="category">$entry.category.name</span> |
Modified: incubator/roller/trunk/web/themes/frontpage/Weblog.vm
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/themes/frontpage/Weblog.vm?view=diff&rev=452723&r1=452722&r2=452723
==============================================================================
--- incubator/roller/trunk/web/themes/frontpage/Weblog.vm (original)
+++ incubator/roller/trunk/web/themes/frontpage/Weblog.vm Tue Oct 3 21:33:33 2006
@@ -167,42 +167,14 @@
<div class="sidebarBodyHead">
<div class="menu-tr">
<div class="menu-tl">
- <h3>Hot Tags (past week)</h3>
+ <h3>Hot Tags</h3>
</div>
</div>
</div>
<div class="sidebarBody">
-
- <style>
- span.tag a { color: #ad3537;; text-decoration: none; padding: 3px; }
- </style>
-
- <center>
- #set($tags = $site.getHotTags(7, $maxResults))
-
- #set ( $minSize = 12 )
- #set ( $maxSize = 28 )
-
- #set ( $max = 0 )
- #foreach ( $tag in $tags )
- #if ( $tag.count > $max )
- #set ( $max = $tag.count )
- #end
- #end
-
- #set ( $step = $max / ($maxSize - $minSize) )
-
- #set ( $step = $max / ($maxSize - $minSize) )
- #if ( $step < 1 )
- #set ( $step = 1 )
- #end
- #foreach ($tag in $tags)
- #set( $size = $minSize + ($tag.count / $step) )
- <span class="tag" style="font-size:${size}px"><a href="$url.tag($tag.name)">$tag.name</span></a>
- #end
- </center>
- </div>
+ #showTagCloud($site.getHotTags($maxResults))
+ </div>
</div>
Modified: incubator/roller/trunk/web/themes/frontpage/tags.vm
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/themes/frontpage/tags.vm?view=diff&rev=452723&r1=452722&r2=452723
==============================================================================
--- incubator/roller/trunk/web/themes/frontpage/tags.vm (original)
+++ incubator/roller/trunk/web/themes/frontpage/tags.vm Tue Oct 3 21:33:33 2006
@@ -37,39 +37,11 @@
<table class="menuItemTable" cellspacing="0"><tbody><tr>
<td class="padleft"></td></tr></tbody></table>
- <div id="tabContent">
-
- <div id='cloud' style="overflow: hidden; padding: 30px" >
- <style>
- span.tag a { color: #ad3537;; text-decoration: none; padding: 3px; }
- </style>
-
- <center>
- #set ($tags = $site.getTags(90))
-
- #set ( $minSize = 14 )
- #set ( $maxSize = 50 )
-
- #set ( $max = 0 )
- #foreach ( $tag in $tags )
- #if ( $tag.count > $max )
- #set ( $max = $tag.count )
- #end
- #end
-
- #set ( $step = $max / ($maxSize - $minSize) )
- #if ( $step < 1 )
- #set ( $step = 1 )
- #end
-
- #foreach ($tag in $tags)
- #set( $size = $minSize + ($tag.count / $step) )
- <span class="tag" style="font-size:${size}px"><a href="$url.tag($tag.name)">$tag.name</span></a>
- #end
- </center>
- <br/>
- </div>
-
+ <div id="tabContent">
+ <div id='cloud' style="overflow: hidden; padding: 30px" >
+ #showTagCloud($site.getTags())
+ <br/>
+ </div>
</div>
</div>
</div>