Author: snoopdave
Date: Sun Jan 22 09:18:47 2006
New Revision: 371335
URL: http://svn.apache.org/viewcvs?rev=371335&view=rev
Log:
Fixing linkback extraction, linkback display and linkback toggle action. Also
fixed turnover task to delete entries with no linkback excerpt (as it did
before Elias changed excerpt from null to '') and removed unused class
ParsedRequest.
Removed:
incubator/roller/trunk/src/org/roller/model/ParsedRequest.java
Modified:
incubator/roller/trunk/src/org/roller/business/RefererManagerImpl.java
incubator/roller/trunk/src/org/roller/business/hibernate/HibernateRefererManagerImpl.java
incubator/roller/trunk/src/org/roller/business/referrers/IncomingReferrer.java
incubator/roller/trunk/src/org/roller/business/referrers/ReferrerProcessingJob.java
incubator/roller/trunk/src/org/roller/model/RefererManager.java
incubator/roller/trunk/src/org/roller/presentation/RollerRequest.java
incubator/roller/trunk/src/org/roller/presentation/filters/RefererFilter.java
incubator/roller/trunk/src/org/roller/presentation/velocity/ContextLoader.java
incubator/roller/trunk/src/org/roller/presentation/velocity/PageHelper.java
incubator/roller/trunk/src/org/roller/presentation/velocity/PageModel.java
incubator/roller/trunk/src/org/roller/presentation/weblog/actions/ToggleLinkbackDisplayAction.java
incubator/roller/trunk/web/WEB-INF/classes/ApplicationResources.properties
incubator/roller/trunk/web/WEB-INF/classes/log4j.properties
incubator/roller/trunk/web/WEB-INF/classes/referer.vm
incubator/roller/trunk/web/WEB-INF/classes/weblog.vm
incubator/roller/trunk/web/themes/basic/_day.vm
incubator/roller/trunk/web/themes/cheb/_day.vm
incubator/roller/trunk/web/themes/clean/_day.vm
incubator/roller/trunk/web/themes/currency-i18n/_day.vm
incubator/roller/trunk/web/themes/currency/_day.vm
incubator/roller/trunk/web/themes/grey2/_day.vm
incubator/roller/trunk/web/themes/moonshine/_day.vm
incubator/roller/trunk/web/themes/pacifica/_day.vm
incubator/roller/trunk/web/themes/robot/_day.vm
incubator/roller/trunk/web/themes/rolling/_day.vm
incubator/roller/trunk/web/themes/sotto/_day.vm
incubator/roller/trunk/web/themes/sunsets/_day.vm
incubator/roller/trunk/web/themes/werner/_day.vm
incubator/roller/trunk/web/themes/x2/_day.vm
Modified: incubator/roller/trunk/src/org/roller/business/RefererManagerImpl.java
URL:
http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/business/RefererManagerImpl.java?rev=371335&r1=371334&r2=371335&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/business/RefererManagerImpl.java
(original)
+++ incubator/roller/trunk/src/org/roller/business/RefererManagerImpl.java Sun
Jan 22 09:18:47 2006
@@ -9,7 +9,6 @@
import org.apache.commons.logging.LogFactory;
import org.roller.RollerException;
import org.roller.config.RollerRuntimeConfig;
-import org.roller.model.ParsedRequest;
import org.roller.model.RefererManager;
import org.roller.model.Roller;
import org.roller.model.RollerFactory;
@@ -151,14 +150,18 @@
//------------------------------------------------------------------------
- public void processReferrer(String requestUrl, String referrerUrl,
- String weblogHandle, String entryAnchor,
- String dateString) {
+ public void processReferrer(
+ String requestUrl,
+ String queryString,
+ String referrerUrl,
+ String weblogHandle,
+ String entryAnchor,
+ String dateString) {
mLogger.debug("processing referrer ["+referrerUrl+
"] accessing ["+requestUrl+"]");
- if(weblogHandle == null)
+ if (weblogHandle == null)
return;
String selfSiteFragment = "/page/"+weblogHandle;
@@ -168,17 +171,15 @@
// lookup the weblog now
try {
UserManager userMgr = RollerFactory.getRoller().getUserManager();
- weblog = userMgr.getWebsiteByHandle(weblogHandle);
-
- if(weblog == null)
- return;
+ weblog = userMgr.getWebsiteByHandle(weblogHandle);
+ if (weblog == null) return;
// now lookup weblog entry if possible
- if(entryAnchor != null) {
+ if (entryAnchor != null) {
WeblogManager weblogMgr =
RollerFactory.getRoller().getWeblogManager();
entry = weblogMgr.getWeblogEntryByAnchor(weblog, entryAnchor);
}
- } catch(RollerException re) {
+ } catch (RollerException re) {
// problem looking up website, gotta bail
mLogger.error("Error looking up website object", re);
return;
@@ -228,20 +229,15 @@
mStrategy.commit();
} else if (matchRef.size() == 0) {
- /* TODO: change "" for excerpt column back to null
- * I changed to an empty string to avoid the bug in Derby found
- * http://issues.apache.org/jira/browse/DERBY-628
- *
- * We need to either wait for the fix to change it back,
- * or leave it as is if it doesn't affect anything else.
- *
- * Elias
- */
// Referer was not found in database, so new Referer object
+ String requrl = requestUrl;
+ if (queryString != null && queryString.length() > 0) {
+ requestUrl = requestUrl + "?" + queryString;
+ }
Integer one = new Integer(1);
RefererData ref =
- new RefererData(
+ new RefererData(
null,
weblog,
entry,
@@ -264,13 +260,13 @@
// If not a direct or search engine then search for linkback
if (doLinkbackExtraction
- && dateString != null
+ && entry != null
&& !refurl.equals("direct")
&& !refurl.startsWith("http://google")
&& !refurl.startsWith("http://www.google")
&& !refurl.startsWith("http://search.netscape")
&& !refurl.startsWith("http://www.blinkpro")
- && !refurl.startsWith("http://auto.search.msn")
+ && !refurl.startsWith("http://search.msn")
&& !refurl.startsWith("http://search.yahoo")
&& !refurl.startsWith("http://uk.search.yahoo")
&& !refurl.startsWith("http://www.javablogs.com")
@@ -281,7 +277,7 @@
try {
Roller mRoller = RollerFactory.getRoller();
mRoller.getThreadManager().executeInBackground(
- new LinkbackExtractorRunnable(ref) );
+ new LinkbackExtractorRunnable(ref));
} catch (InterruptedException e) {
mLogger.warn("Interrupted during linkback
extraction",e);
}
@@ -296,218 +292,7 @@
mLogger.error(npe);
}
}
-
-
- /**
- * Process incoming request for referer information.
- *
- * <p>If there is no referer, treat it as a direct request.</p>
- *
- * <p>If there is a referer and there is no record for that referer, then
- * parse the refering page for title and excerpt surround the refering
link.
- * If the excerpt cannot be found, then ignore the referer because it is
- * fake - probably a referer spam.
- * </p>
- *
- * @return boolean True if the referer header contains an ignore/spam word.
- * @see org.roller.pojos.RefererManager#processRequest(ParsedRequest)
- */
- public boolean processRequest( ParsedRequest request )
- {
- String msg = "processRequest";
- if ( request.getWebsite() == null ) return false;
-
- try
- {
- List matchRef = null;
-
- String requestUrl = request.getRequestURL();
- String refererUrl = request.getRefererURL();
- WebsiteData website = request.getWebsite();
- WeblogEntryData entry = request.getWeblogEntry();
- String selfSiteFragment = "/page/" + website.getHandle();
-
- String dateString = null;
- if ( request.getDateString()!=null && request.isDateSpecified())
- {
- dateString = request.getDateString();
- }
-
- if (mLogger.isDebugEnabled())
- {
- mLogger.debug( msg+": refurl="+refererUrl );
- }
-
- /* Check Referer URL against selfSiteFragment (treat as direct),
- * against a regex for an self-site editor page (direct),
- * and against the Spam lists.
- */
- if ( refererUrl != null )
- {
- // treat own URL as direct
- if (refererUrl.indexOf(selfSiteFragment) != -1)
- {
- refererUrl = null;
- }
- else
- {
- // treat editor referral as direct
- int lastSlash = requestUrl.indexOf("/", 8);
- if (lastSlash == -1) lastSlash = requestUrl.length();
- String requestSite = requestUrl.substring(0, lastSlash);
- if (refererUrl.matches(requestSite + ".*\\.do.*"))
- {
- refererUrl = null;
- }
- else
- {
- // If referer URL is blacklisted, throw it out
- boolean isRefererSpam =
- SpamChecker.checkReferrer(website, refererUrl);
- if (isRefererSpam) return true;
- }
- }
- }
-
- // try to find existing RefererData for refererUrl
- if (refererUrl == null || refererUrl.trim().length() < 8)
- {
- refererUrl = "direct";
-
- // Get referer specified by referer URL of direct
- matchRef = getReferersToWebsite(website, refererUrl);
- }
- else
- {
- refererUrl = Utilities.stripJsessionId(refererUrl);
-
- // Query for referer with same referer and request URLs
- matchRef = getMatchingReferers(website, requestUrl,
refererUrl);
-
- // If referer was not found, try adding or leaving off 'www'
- if ( matchRef.size() == 0 )
- {
- String secondTryUrl = null;
- if ( refererUrl.startsWith("http://www") )
- {
- secondTryUrl = "http://"+refererUrl.substring(11);
- }
- else
- {
- secondTryUrl = "http://www"+refererUrl.substring(7);
- }
-
- matchRef = getMatchingReferers(
- website, requestUrl, secondTryUrl);
- if ( matchRef.size() == 1 )
- {
- refererUrl = secondTryUrl;
- }
- }
- }
-
- if (matchRef.size() == 1)
- {
- // Referer was found in database, so bump up hit count
- RefererData ref = (RefererData)matchRef.get(0);
-
- ref.setDayHits(
- new Integer(ref.getDayHits().intValue() + 1));
- ref.setTotalHits(
- new Integer(ref.getTotalHits().intValue() + 1));
-
- if (mLogger.isDebugEnabled())
- {
- mLogger.debug(
- "Incrementing hit count on existing referer:
"+refererUrl);
- }
-
- storeReferer(ref);
- mStrategy.commit();
- }
- else if (matchRef.size() == 0)
- {
- /* TODO: change "" for excerpt column back to null
- * I changed to an empty string to avoid the bug in Derby found
- * http://issues.apache.org/jira/browse/DERBY-628
- *
- * We need to either wait for the fix to change it back,
- * or leave it as is if it doesn't affect anything else.
- *
- * Elias
- */
-
- // Referer was not found in database, so new Referer object
- Integer one = new Integer(1);
- RefererData ref =
- new RefererData(
- null,
- website,
- entry,
- dateString,
- refererUrl,
- null,
- requestUrl,
- null,
- "", // Read comment above regarding Derby bug
- Boolean.FALSE,
- Boolean.FALSE,
- one,
- one);
-
- if (mLogger.isDebugEnabled())
- {
- mLogger.debug("newReferer="+ref.getRefererUrl());
- }
-
- String refurl = ref.getRefererUrl();
-
- // If not a direct or search engine then search for linkback
- if ( request.isEnableLinkback()
- && request.isDateSpecified()
- && !refurl.equals("direct")
- && !refurl.startsWith("http://google")
- && !refurl.startsWith("http://www.google")
- && !refurl.startsWith("http://search.netscape")
- && !refurl.startsWith("http://www.blinkpro")
- && !refurl.startsWith("http://auto.search.msn")
- && !refurl.startsWith("http://search.yahoo")
- && !refurl.startsWith("http://uk.search.yahoo")
- && !refurl.startsWith("http://www.javablogs.com")
- && !refurl.startsWith("http://www.teoma")
- )
- {
- // Launch thread to extract referer linkback
-
- try
- {
- Roller mRoller = RollerFactory.getRoller();
- mRoller.getThreadManager().executeInBackground(
- new LinkbackExtractorRunnable(ref) );
- }
- catch (InterruptedException e) {
- mLogger.warn("Interrupted during linkback
extraction",e);
- }
- }
- else
- {
- storeReferer(ref);
- mStrategy.commit();
- }
- }
- }
- catch (RollerException pe)
- {
- mLogger.error(msg, pe);
- }
- catch (NullPointerException npe)
- {
- mLogger.error(msg, npe);
- }
- return false;
- }
-
/**
* Use LinkbackExtractor to parse title and excerpt from referer
*/
Modified:
incubator/roller/trunk/src/org/roller/business/hibernate/HibernateRefererManagerImpl.java
URL:
http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/business/hibernate/HibernateRefererManagerImpl.java?rev=371335&r1=371334&r2=371335&view=diff
==============================================================================
---
incubator/roller/trunk/src/org/roller/business/hibernate/HibernateRefererManagerImpl.java
(original)
+++
incubator/roller/trunk/src/org/roller/business/hibernate/HibernateRefererManagerImpl.java
Sun Jan 22 09:18:47 2006
@@ -7,7 +7,6 @@
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
-import java.util.Date;
import java.util.Iterator;
import java.util.List;
@@ -29,6 +28,7 @@
import org.roller.config.RollerRuntimeConfig;
import org.roller.model.RefererManager;
import org.roller.pojos.RefererData;
+import org.roller.pojos.WeblogEntryData;
import org.roller.pojos.WebsiteData;
import org.roller.pojos.WebsiteDisplayData;
@@ -250,21 +250,7 @@
} catch (Throwable pe) {
mLogger.error(msg, pe);
throw new RollerException(msg, pe);
- }
-
-// Don't close connection, Hibernate is holding it
-// finally
-// {
-// try
-// {
-// if (con != null) con.close();
-// }
-// catch (Throwable t)
-// {
-// mLogger.error("Closing connection",t);
-// }
-// }
-
+ }
}
//-----------------------------------------------------------------------
@@ -329,7 +315,7 @@
throw new RollerException(e);
}
}
-
+
//-----------------------------------------------------------------------
/**
@@ -495,7 +481,7 @@
Session session = ((HibernateStrategy)mStrategy).getSession();
String reset = "update RefererData set dayHits=0";
session.createQuery(reset).executeUpdate();
- String delete = "delete RefererData where excerpt is null";
+ String delete = "delete RefererData where excerpt is null or
excerpt=''";
session.createQuery(delete).executeUpdate();
} catch (Exception e) {
mLogger.error("EXCEPTION resetting referers",e);
@@ -515,7 +501,7 @@
String reset = "update RefererData set dayHits=0 where
website=:site";
session.createQuery(reset)
.setParameter("site",website).executeUpdate();
- String delete = "delete RefererData where website=:site and
excerpt is null";
+ String delete = "delete RefererData where website=:site and
(excerpt is null or excerpt='')";
session.createQuery(delete)
.setParameter("site",website).executeUpdate();
} catch (Exception e) {
Modified:
incubator/roller/trunk/src/org/roller/business/referrers/IncomingReferrer.java
URL:
http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/business/referrers/IncomingReferrer.java?rev=371335&r1=371334&r2=371335&view=diff
==============================================================================
---
incubator/roller/trunk/src/org/roller/business/referrers/IncomingReferrer.java
(original)
+++
incubator/roller/trunk/src/org/roller/business/referrers/IncomingReferrer.java
Sun Jan 22 09:18:47 2006
@@ -15,6 +15,7 @@
private String referrerUrl = null;
private String requestUrl = null;
+ private String queryString = null;
private String weblogHandle = null;
private String weblogAnchor = null;
private String weblogDateString = null;
@@ -32,6 +33,14 @@
public String getRequestUrl() {
return requestUrl;
+ }
+
+ public String getQueryString() {
+ return queryString;
+ }
+
+ public void setQueryString(String queryString) {
+ this.queryString = queryString;
}
public void setRequestUrl(String requestUrl) {
Modified:
incubator/roller/trunk/src/org/roller/business/referrers/ReferrerProcessingJob.java
URL:
http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/business/referrers/ReferrerProcessingJob.java?rev=371335&r1=371334&r2=371335&view=diff
==============================================================================
---
incubator/roller/trunk/src/org/roller/business/referrers/ReferrerProcessingJob.java
(original)
+++
incubator/roller/trunk/src/org/roller/business/referrers/ReferrerProcessingJob.java
Sun Jan 22 09:18:47 2006
@@ -47,10 +47,11 @@
try {
RefererManager refMgr =
RollerFactory.getRoller().getRefererManager();
refMgr.processReferrer(referrer.getRequestUrl(),
- referrer.getReferrerUrl(),
- referrer.getWeblogHandle(),
- referrer.getWeblogAnchor(),
- referrer.getWeblogDateString());
+ referrer.getQueryString(),
+ referrer.getReferrerUrl(),
+ referrer.getWeblogHandle(),
+ referrer.getWeblogAnchor(),
+ referrer.getWeblogDateString());
} catch(RollerException re) {
// trouble
mLogger.warn("Trouble processing referrer", re);
Modified: incubator/roller/trunk/src/org/roller/model/RefererManager.java
URL:
http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/model/RefererManager.java?rev=371335&r1=371334&r2=371335&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/model/RefererManager.java (original)
+++ incubator/roller/trunk/src/org/roller/model/RefererManager.java Sun Jan 22
09:18:47 2006
@@ -1,12 +1,12 @@
package org.roller.model;
import org.roller.RollerException;
-import org.roller.business.ThreadManagerImpl;
import org.roller.pojos.RefererData;
import org.roller.pojos.WebsiteData;
import java.io.Serializable;
import java.util.List;
+import org.roller.pojos.WeblogEntryData;
/////////////////////////////////////////////////////////////////////////////
@@ -19,13 +19,12 @@
//------------------------------------------ Access to Referer information
/**
- * Get all referers for specified user.
- * @param userName
+ * Get all referers for specified weblog.
+ * @param weblog
* @return List of type RefererData
* @throws RollerException
*/
- public List getReferers(WebsiteData website)
- throws RollerException;
+ public List getReferers(WebsiteData weblog) throws RollerException;
/**
* Get all referers for specified user that were made today.
@@ -33,8 +32,7 @@
* @return List of type RefererData
* @throws RollerException
*/
- public List getTodaysReferers(WebsiteData website)
- throws RollerException;
+ public List getTodaysReferers(WebsiteData website) throws RollerException;
/**
* Get referers for a specified date.
@@ -43,8 +41,7 @@
* @return List of type RefererData.
* @throws RollerException
*/
- public List getReferersToDate(WebsiteData website, String date)
- throws RollerException;
+ public List getReferersToDate(WebsiteData website, String date) throws
RollerException;
/**
* Get most popular websites based on referer day hits.
@@ -96,17 +93,14 @@
//--------------------------------------------- Referer processing methods
- public void processReferrer(String requestUrl, String referrerUrl,
- String weblogHandle, String weblogAnchor,
- String weblogDateString);
+ public void processReferrer(
+ String requestUrl,
+ String queryString,
+ String referrerUrl,
+ String weblogHandle,
+ String weblogAnchor,
+ String weblogDateString);
- /**
- * Process request for incoming referers.
- * @param request Request to be processed.
- * @return boolean True if the referer header contains an ignore/spam word.
- */
- public boolean processRequest(ParsedRequest request);
-
//---------------------------------------------- Referer tracking turnover
/**
@@ -124,14 +118,12 @@
/**
* Retrieve referer specifie by ID.
*/
- public RefererData retrieveReferer(String id)
- throws RollerException;
+ public RefererData retrieveReferer(String id) throws RollerException;
/**
* Remove referer specified by ID.
*/
- public void removeReferer( String id )
- throws RollerException;
+ public void removeReferer( String id ) throws RollerException;
/**
* Release all resources associated with Roller session.
Modified: incubator/roller/trunk/src/org/roller/presentation/RollerRequest.java
URL:
http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/RollerRequest.java?rev=371335&r1=371334&r2=371335&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/RollerRequest.java
(original)
+++ incubator/roller/trunk/src/org/roller/presentation/RollerRequest.java Sun
Jan 22 09:18:47 2006
@@ -16,7 +16,6 @@
import org.apache.commons.logging.LogFactory;
import org.roller.RollerException;
import org.roller.config.RollerRuntimeConfig;
-import org.roller.model.ParsedRequest;
import org.roller.model.Roller;
import org.roller.model.RollerFactory;
import org.roller.pojos.Template;
@@ -52,7 +51,7 @@
*
* @author David M Johnson
*/
-public class RollerRequest implements ParsedRequest
+public class RollerRequest
{
//----------------------------------------------------------------- Fields
Modified:
incubator/roller/trunk/src/org/roller/presentation/filters/RefererFilter.java
URL:
http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/filters/RefererFilter.java?rev=371335&r1=371334&r2=371335&view=diff
==============================================================================
---
incubator/roller/trunk/src/org/roller/presentation/filters/RefererFilter.java
(original)
+++
incubator/roller/trunk/src/org/roller/presentation/filters/RefererFilter.java
Sun Jan 22 09:18:47 2006
@@ -95,7 +95,7 @@
basePageUrl = "http://"+basePageUrlWWW.substring(11);
}
- // ignore referres coming from users own blog
+ // ignore referrers coming from users own blog
if (referrerUrl == null ||
(!referrerUrl.startsWith(basePageUrl) &&
!referrerUrl.startsWith(basePageUrlWWW))) {
@@ -152,13 +152,14 @@
try {
IncomingReferrer referrer = new IncomingReferrer();
referrer.setReferrerUrl(referrerUrl);
+ referrer.setQueryString(request.getQueryString());
referrer.setRequestUrl(requestUrl);
referrer.setWeblogHandle(pageRequest.getWeblogHandle());
referrer.setWeblogAnchor(pageRequest.getWeblogAnchor());
referrer.setWeblogDateString(pageRequest.getWeblogDate());
ReferrerQueueManager refQueue =
- RollerFactory.getRoller().getReferrerQueueManager();
+ RollerFactory.getRoller().getReferrerQueueManager();
refQueue.processReferrer(referrer);
} catch(Exception e) {
mLogger.error("Error processing referrer", e);
Modified:
incubator/roller/trunk/src/org/roller/presentation/velocity/ContextLoader.java
URL:
http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/velocity/ContextLoader.java?rev=371335&r1=371334&r2=371335&view=diff
==============================================================================
---
incubator/roller/trunk/src/org/roller/presentation/velocity/ContextLoader.java
(original)
+++
incubator/roller/trunk/src/org/roller/presentation/velocity/ContextLoader.java
Sun Jan 22 09:18:47 2006
@@ -172,8 +172,11 @@
RollerRuntimeConfig.getBooleanProperty("users.comments.enabled");
boolean trackbacksEnabled =
RollerRuntimeConfig.getBooleanProperty("users.trackbacks.enabled");
+ boolean linkbacksEnabled =
+
RollerRuntimeConfig.getBooleanProperty("site.linkbacks.enabled");
ctx.put("commentsEnabled", new Boolean(commentsEnabled) );
ctx.put("trackbacksEnabled", new Boolean(trackbacksEnabled) );
+ ctx.put("linkbacksEnabled", new Boolean(linkbacksEnabled) );
}
Modified:
incubator/roller/trunk/src/org/roller/presentation/velocity/PageHelper.java
URL:
http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/velocity/PageHelper.java?rev=371335&r1=371334&r2=371335&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/velocity/PageHelper.java
(original)
+++ incubator/roller/trunk/src/org/roller/presentation/velocity/PageHelper.java
Sun Jan 22 09:18:47 2006
@@ -175,7 +175,7 @@
{
Hashtable params = new Hashtable();
params.put( RollerRequest.REFERERID_KEY, referer.getId());
- params.put( RollerRequest.USERNAME_KEY, mWebsite.getHandle());
+ params.put( RollerRequest.WEBLOG_KEY, mWebsite.getHandle());
link = RequestUtils.computeURL( mPageContext,
"toggleLinkback", null, null, null, params,null,false);
Modified:
incubator/roller/trunk/src/org/roller/presentation/velocity/PageModel.java
URL:
http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/velocity/PageModel.java?rev=371335&r1=371334&r2=371335&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/velocity/PageModel.java
(original)
+++ incubator/roller/trunk/src/org/roller/presentation/velocity/PageModel.java
Sun Jan 22 09:18:47 2006
@@ -474,6 +474,34 @@
return referers;
}
+ /** Encapsulates RefererManager **/
+ public List getEntryReferers(WeblogEntryDataWrapper entry) {
+ ArrayList referers = new ArrayList();
+ try {
+ List refs = mRefererMgr.getReferersToEntry(entry.getId());
+ RollerSession rses =
+ RollerSession.getRollerSession(mRollerReq.getRequest());
+
+ for (Iterator rdItr = refs.iterator(); rdItr.hasNext();) {
+ RefererData referer = (RefererData) rdItr.next();
+ String title =referer.getTitle();
+ String excerpt = referer.getExcerpt();
+ if ( StringUtils.isNotEmpty(title)
+ && StringUtils.isNotEmpty(excerpt) ) {
+ if (referer.getVisible().booleanValue()
+ || rses.isUserAuthorizedToAdmin(referer.getWebsite()) ) {
+ referers.add(RefererDataWrapper.wrap(referer));
+ }
+ }
+ }
+
+ } catch (Exception e) {
+ mLogger.error("PageModel getReferersToDate() fails with URL"
+ + mRollerReq.getRequestURL(), e);
+ }
+ return referers;
+ }
+
//------------------------------------------------------------------------
/** Encapsulates RefererManager */
Modified:
incubator/roller/trunk/src/org/roller/presentation/weblog/actions/ToggleLinkbackDisplayAction.java
URL:
http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/weblog/actions/ToggleLinkbackDisplayAction.java?rev=371335&r1=371334&r2=371335&view=diff
==============================================================================
---
incubator/roller/trunk/src/org/roller/presentation/weblog/actions/ToggleLinkbackDisplayAction.java
(original)
+++
incubator/roller/trunk/src/org/roller/presentation/weblog/actions/ToggleLinkbackDisplayAction.java
Sun Jan 22 09:18:47 2006
@@ -13,15 +13,15 @@
import org.roller.model.RefererManager;
import org.roller.model.RollerFactory;
import org.roller.pojos.RefererData;
+import org.roller.pojos.WeblogEntryData;
import org.roller.presentation.RollerContext;
import org.roller.presentation.RollerRequest;
import org.roller.presentation.RollerSession;
import org.roller.presentation.cache.CacheManager;
-
/**
* Toggle display of a linkback.
- * @struts.action name="toggleLinkback" path="/editor/toggleLinkback"
scope="session"
+ * @struts.action path="/editor/toggleLinkback" name="toggleLinkback"
*/
public class ToggleLinkbackDisplayAction extends Action
{
@@ -36,7 +36,7 @@
HttpServletRequest req, HttpServletResponse res)
throws Exception
{
-
+ WeblogEntryData entry = null;
RollerRequest rreq = RollerRequest.getRollerRequest(req);
RollerSession rollerSession = RollerSession.getRollerSession(req);
try
@@ -50,6 +50,7 @@
RefererManager refmgr =
RollerFactory.getRoller().getRefererManager();
RefererData ref = refmgr.retrieveReferer(refid);
+ entry = ref.getWeblogEntry();
boolean was = ref.getVisible()==null ?
false : ref.getVisible().booleanValue();
ref.setVisible(Boolean.valueOf( !was )); // what up, dog?
@@ -68,13 +69,17 @@
throw new ServletException(e);
}
- // forward to user's website URL
+ // forward back to entry or to blog if we have no entry
String url = null;
try
{
RollerContext rctx = RollerContext.getRollerContext();
- url = rctx.getContextUrl( req, rreq.getWebsite());
- res.sendRedirect(url);
+ if (entry != null) {
+ url = rctx.createEntryPermalink(entry, req, true);
+ } else {
+ url = rctx.getContextUrl(req, rreq.getWebsite());
+ }
+ res.sendRedirect(url);
}
catch (Exception e)
{
Modified:
incubator/roller/trunk/web/WEB-INF/classes/ApplicationResources.properties
URL:
http://svn.apache.org/viewcvs/incubator/roller/trunk/web/WEB-INF/classes/ApplicationResources.properties?rev=371335&r1=371334&r2=371335&view=diff
==============================================================================
--- incubator/roller/trunk/web/WEB-INF/classes/ApplicationResources.properties
(original)
+++ incubator/roller/trunk/web/WEB-INF/classes/ApplicationResources.properties
Sun Jan 22 09:18:47 2006
@@ -598,6 +598,7 @@
macro.weblog.daypermalink.title=Permanent link to this day
macro.weblog.entrypermalink.title=Permanent link to this weblog entry
macro.weblog.entrypermalink.edit=Edit
+macro.weblog.linkbacks=Linkbacks
macro.weblog.comments=Comments
macro.weblog.comment=Comment
macro.weblog.addcomment=Add a Comment
Modified: incubator/roller/trunk/web/WEB-INF/classes/log4j.properties
URL:
http://svn.apache.org/viewcvs/incubator/roller/trunk/web/WEB-INF/classes/log4j.properties?rev=371335&r1=371334&r2=371335&view=diff
==============================================================================
--- incubator/roller/trunk/web/WEB-INF/classes/log4j.properties (original)
+++ incubator/roller/trunk/web/WEB-INF/classes/log4j.properties Sun Jan 22
09:18:47 2006
@@ -9,6 +9,10 @@
# Options are: DEBUG, INFO, WARN, ERROR, FATAL
log4j.category.org.roller=INFO
+log4j.category.org.roller.presentation.filters.WeblogPageCacheFilter=DEBUG
+log4j.category.org.roller.business.ThemeManagerImpl=DEBUG
+log4j.category.org.roller.util.Blacklist=DEBUG
+log4j.category.org.roller.presentation.atomapi=DEBUG
log4j.category.com.ecyrd.jspwiki=ERROR
log4j.category.com.opensymphony.oscache=ERROR
log4j.category.org.hibernate=INFO
Modified: incubator/roller/trunk/web/WEB-INF/classes/referer.vm
URL:
http://svn.apache.org/viewcvs/incubator/roller/trunk/web/WEB-INF/classes/referer.vm?rev=371335&r1=371334&r2=371335&view=diff
==============================================================================
--- incubator/roller/trunk/web/WEB-INF/classes/referer.vm (original)
+++ incubator/roller/trunk/web/WEB-INF/classes/referer.vm Sun Jan 22 09:18:47
2006
@@ -53,6 +53,7 @@
</ul>
#end
+
#**
* Display the Linkbacks that have been extracted for a specified day.
* @param day Date object that specifies day (type java.util.Date).
@@ -77,3 +78,24 @@
#end
#end
+#**
+ * Display entry linkbacks with divs appropriate for use on webloog entry page
+ *#
+#macro( showEntryLinkbacks $entry )
+ #if ($linkbacksEnabled)
+ <div class="linkbacks" id="linkbacks">
+ <div
class="linkbacks-head">$text.get("macro.weblog.linkbacks"):</div>
+ #set( $refs = $pageModel.getEntryReferers($entry))
+ #if ( $refs.size() > 0)
+ <ul class="linkbacks">
+ #foreach( $ref in $refs )
+ #set( $url = $utilities.escapeHTML( $ref.getUrl() ) )
+ <li class="linkbacks">
$pageHelper.getToggleLinkbackDisplayHTML($ref)
+ <a class="linkback" href="$url">$ref.getTitle()</a> :
$utilities.removeHTML( $ref.getExcerpt() )
+ </li>
+ #end
+ </ul>
+ #end
+ </div>
+ #end
+#end
Modified: 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=371335&r1=371334&r2=371335&view=diff
==============================================================================
--- incubator/roller/trunk/web/WEB-INF/classes/weblog.vm (original)
+++ incubator/roller/trunk/web/WEB-INF/classes/weblog.vm Sun Jan 22 09:18:47
2006
@@ -177,6 +177,7 @@
$text.get( "macro.weblog.trackback" ) #showTrackbackURL($entry)
</div>
#end
+ #showEntryLinkbacks($entry)
#showComments($entry)
#if($commentsEnabled && $website.allowComments &&
$entry.commentsStillAllowed)
#showCommentForm($entry)
Modified: incubator/roller/trunk/web/themes/basic/_day.vm
URL:
http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/basic/_day.vm?rev=371335&r1=371334&r2=371335&view=diff
==============================================================================
--- incubator/roller/trunk/web/themes/basic/_day.vm (original)
+++ incubator/roller/trunk/web/themes/basic/_day.vm Sun Jan 22 09:18:47 2006
@@ -15,7 +15,5 @@
#showCommentsPageLink( $entry )
</p>
#end
-
-#showLinkbacks( $day )
</div>
Modified: incubator/roller/trunk/web/themes/cheb/_day.vm
URL:
http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/cheb/_day.vm?rev=371335&r1=371334&r2=371335&view=diff
==============================================================================
--- incubator/roller/trunk/web/themes/cheb/_day.vm (original)
+++ incubator/roller/trunk/web/themes/cheb/_day.vm Sun Jan 22 09:18:47 2006
@@ -18,5 +18,4 @@
</p>
</div>
#end
-<p>#showLinkbacks( $day )</p>
Modified: incubator/roller/trunk/web/themes/clean/_day.vm
URL:
http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/clean/_day.vm?rev=371335&r1=371334&r2=371335&view=diff
==============================================================================
--- incubator/roller/trunk/web/themes/clean/_day.vm (original)
+++ incubator/roller/trunk/web/themes/clean/_day.vm Sun Jan 22 09:18:47 2006
@@ -1 +1 @@
-<table>
<tr>
<td style="font-size:11px;">
#showDayPermalink( $day )
#showEntryDate( $day )
</td>
</tr>
<tr><td style="font-size:11px;">
#foreach( $entry in $entries )
<p><a name="$utilities.encode($entry.anchor)"
id="$utilities.encode($entry.anchor)"></a>
<div class="belowTitle">
<div class="title">
<b>$entry.title</b>
</div>
</div>
<br>
#showEntryText($entry)
<br><br>
$text.get("macro.weblog.postedby") $entry.creator.userName
<small>(#showTimestamp($entry.updateTime)/#showTimestamp($entry.pubTime))</small>
#showEntryPermalink( $entry )
#showCommentsPageLink( $entry )<br>
Trackback: #showTrackbackURL( $entry )
</p>
#end
</td></tr>
<tr><td style="font-size:11px;">
<div class="box">
#showLinkbacks( $day )
</div
>
</td></tr>
</table>
\ No newline at end of file
+<table>
<tr>
<td style="font-size:11px;">
#showDayPermalink( $day )
#showEntryDate( $day )
</td>
</tr>
<tr><td style="font-size:11px;">
#foreach( $entry in $entries )
<p><a name="$utilities.encode($entry.anchor)"
id="$utilities.encode($entry.anchor)"></a>
<div class="belowTitle">
<div class="title">
<b>$entry.title</b>
</div>
</div>
<br>
#showEntryText($entry)
<br><br>
$text.get("macro.weblog.postedby") $entry.creator.userName
<small>(#showTimestamp($entry.updateTime)/#showTimestamp($entry.pubTime))</small>
#showEntryPermalink( $entry )
#showCommentsPageLink( $entry )<br>
Trackback: #showTrackbackURL( $entry )
</p>
#end
</td></tr>
</table>
\ No newline at end of file
Modified: incubator/roller/trunk/web/themes/currency-i18n/_day.vm
URL:
http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/currency-i18n/_day.vm?rev=371335&r1=371334&r2=371335&view=diff
==============================================================================
--- incubator/roller/trunk/web/themes/currency-i18n/_day.vm (original)
+++ incubator/roller/trunk/web/themes/currency-i18n/_day.vm Sun Jan 22 09:18:47
2006
@@ -16,4 +16,3 @@
</p>
#end
-#showLinkbacks( $day )
Modified: incubator/roller/trunk/web/themes/currency/_day.vm
URL:
http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/currency/_day.vm?rev=371335&r1=371334&r2=371335&view=diff
==============================================================================
--- incubator/roller/trunk/web/themes/currency/_day.vm (original)
+++ incubator/roller/trunk/web/themes/currency/_day.vm Sun Jan 22 09:18:47 2006
@@ -15,5 +15,4 @@
#showCommentsPageLink( $entry )
</p>
#end
-
-#showLinkbacks( $day )
+
Modified: incubator/roller/trunk/web/themes/grey2/_day.vm
URL:
http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/grey2/_day.vm?rev=371335&r1=371334&r2=371335&view=diff
==============================================================================
--- incubator/roller/trunk/web/themes/grey2/_day.vm (original)
+++ incubator/roller/trunk/web/themes/grey2/_day.vm Sun Jan 22 09:18:47 2006
@@ -16,4 +16,3 @@
</p>
#end
-#showLinkbacks( $day )
Modified: incubator/roller/trunk/web/themes/moonshine/_day.vm
URL:
http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/moonshine/_day.vm?rev=371335&r1=371334&r2=371335&view=diff
==============================================================================
--- incubator/roller/trunk/web/themes/moonshine/_day.vm (original)
+++ incubator/roller/trunk/web/themes/moonshine/_day.vm Sun Jan 22 09:18:47 2006
@@ -1 +1 @@
-<div class="padded">
#showDayPermalink( $day )
#showEntryDate( $day )
</div>
#foreach( $entry in $entries )
<a name="$utilities.encode($entry.anchor)" id="$entry.id"></a>
<div class="padded post">
<b>$entry.title</b> #showEntryText($entry)
</div>
<div class="padded footer">#showEntryPermalink($entry)
#showCommentsPageLink( $entry )
$text.get("macro.weblog.postedby") $entry.creator.userName
(#showTimestamp($entry.updateTime)/#showTimestamp($entry.pubTime))
<br>Trackback: #showTrackbackURL( $entry )</div>
#end
<div class="padded">
#showLinkbacks( $day )
</div>
\ No newline at end of file
+<div class="padded">
#showDayPermalink( $day )
#showEntryDate( $day )
</div>
#foreach( $entry in $entries )
<a name="$utilities.encode($entry.anchor)" id="$entry.id"></a>
<div class="padded post">
<b>$entry.title</b> #showEntryText($entry)
</div>
<div class="padded footer">#showEntryPermalink($entry)
#showCommentsPageLink( $entry )
$text.get("macro.weblog.postedby") $entry.creator.userName
(#showTimestamp($entry.updateTime)/#showTimestamp($entry.pubTime))
<br>Trackback: #showTrackbackURL( $entry )</div>
#end
\ No newline at end of file
Modified: incubator/roller/trunk/web/themes/pacifica/_day.vm
URL:
http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/pacifica/_day.vm?rev=371335&r1=371334&r2=371335&view=diff
==============================================================================
--- incubator/roller/trunk/web/themes/pacifica/_day.vm (original)
+++ incubator/roller/trunk/web/themes/pacifica/_day.vm Sun Jan 22 09:18:47 2006
@@ -15,5 +15,4 @@
#showCommentsPageLink( $entry )
</p>
#end
-
-#showLinkbacks( $day )
+
Modified: incubator/roller/trunk/web/themes/robot/_day.vm
URL:
http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/robot/_day.vm?rev=371335&r1=371334&r2=371335&view=diff
==============================================================================
--- incubator/roller/trunk/web/themes/robot/_day.vm (original)
+++ incubator/roller/trunk/web/themes/robot/_day.vm Sun Jan 22 09:18:47 2006
@@ -16,6 +16,5 @@
</p>
#end
-#showLinkbacks( $day )
</div>
Modified: incubator/roller/trunk/web/themes/rolling/_day.vm
URL:
http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/rolling/_day.vm?rev=371335&r1=371334&r2=371335&view=diff
==============================================================================
--- incubator/roller/trunk/web/themes/rolling/_day.vm (original)
+++ incubator/roller/trunk/web/themes/rolling/_day.vm Sun Jan 22 09:18:47 2006
@@ -16,7 +16,5 @@
<br/>
<br/>
#end
-
-#showLinkbacks( $day )
</div>
Modified: incubator/roller/trunk/web/themes/sotto/_day.vm
URL:
http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/sotto/_day.vm?rev=371335&r1=371334&r2=371335&view=diff
==============================================================================
--- incubator/roller/trunk/web/themes/sotto/_day.vm (original)
+++ incubator/roller/trunk/web/themes/sotto/_day.vm Sun Jan 22 09:18:47 2006
@@ -43,7 +43,6 @@
</div>
</div>
#end
- <div class="linkbacks">#showLinkbacks( $day )</div>
<div class="floatSpacer"> </div>
<div class="floatSpacer"> </div>
</div>
Modified: incubator/roller/trunk/web/themes/sunsets/_day.vm
URL:
http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/sunsets/_day.vm?rev=371335&r1=371334&r2=371335&view=diff
==============================================================================
--- incubator/roller/trunk/web/themes/sunsets/_day.vm (original)
+++ incubator/roller/trunk/web/themes/sunsets/_day.vm Sun Jan 22 09:18:47 2006
@@ -52,5 +52,4 @@
</p>
<!-- showCommentsDiv($entry) -->
#end
-
-#showLinkbacks( $day )
+
Modified: incubator/roller/trunk/web/themes/werner/_day.vm
URL:
http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/werner/_day.vm?rev=371335&r1=371334&r2=371335&view=diff
==============================================================================
--- incubator/roller/trunk/web/themes/werner/_day.vm (original)
+++ incubator/roller/trunk/web/themes/werner/_day.vm Sun Jan 22 09:18:47 2006
@@ -14,6 +14,5 @@
<br/>
<br/>
#end
-#showLinkbacks( $day )
</div>
Modified: incubator/roller/trunk/web/themes/x2/_day.vm
URL:
http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/x2/_day.vm?rev=371335&r1=371334&r2=371335&view=diff
==============================================================================
--- incubator/roller/trunk/web/themes/x2/_day.vm (original)
+++ incubator/roller/trunk/web/themes/x2/_day.vm Sun Jan 22 09:18:47 2006
@@ -44,5 +44,4 @@
<!-- showCommentsDiv($entry) -->
#end
-
-#showLinkbacks( $day )
+