目前的最新版roller的readmore插件,并不支持中文标题,需要对readmoreplugin.java文件进行如下修改 readmoreplugin.java文件中的105行(render方法中),原: entry.getanchor() 修改为: urlencoder.encode(entry.getanchor(), “utf-8”) 既可 修改后的源码如下:
/** created on nov 2, 2003**/package org.roller.presentation.velocity.plugins.readmore;import org.apache.commons.lang.stringescapeutils;import org.apache.commons.logging.log;import org.apache.commons.logging.logfactory;import org.apache.velocity.context.context;import org.roller.rollerexception;import org.roller.model.rollerfactory;import org.roller.model.usermanager;import org.roller.pojos.weblogentrydata;import org.roller.pojos.websitedata;import org.roller.presentation.rollerrequest;import org.roller.presentation.velocity.pageplugin;import org.roller.util.utilities;import java.io.unsupportedencodingexception;import java.net.urlencoder;/*** @author lance**/public class readmoreplugin implements pageplugin{protected string name = "read more summary";protected string description = "stops entry after 250 characters and creates " +"a link to the full entry.";private static log mlogger =logfactory.getfactory().getinstance(readmoreplugin.class);string ctxpath = "";public readmoreplugin(){mlogger.debug("readmoreplugin instantiated.");}public string tostring() { return name; }/* (non-javadoc)* @see org.roller.presentation.velocity.pageplugin#init(org.roller.presentation.rollerrequest, org.apache.velocity.context.context)*/public void init(rollerrequest rreq, context ctx) throws rollerexception{if (rreq == null) throw new rollerexception("rollerrequest is null.");ctxpath = rreq.getrequest().getcontextpath();}/*** @param mgr* @param data* @return*/private string getpagelink(usermanager mgr, websitedata website) throws rollerexception{return mgr.retrievepage(website.getdefaultpageid()).getlink();}/** this method cannot do it's intended job (since it cannot* read the current entry) so it is to do no work!** (non-javadoc)* @see org.roller.presentation.velocity.pageplugin#render(java.lang.string)*/public string render(string str){return str;}public string render(weblogentrydata entry, boolean skipflag){if (skipflag)return entry.gettext();// in case it didn't initializestring pagelink = "weblog";try{pagelink = getpagelink(rollerfactory.getroller().getusermanager(), entry.getwebsite());}catch (rollerexception e){mlogger.warn("unable to get pagelink", e);}string result = utilities.truncatenicely(entry.gettext(), 240, 260, "... ");try{// if the result is shorter, we need to add "read more" linkif (result.length() < entry.gettext().length()){string link = " "/comments/" entry.getwebsite().getuser().getusername() +"/" pagelink "/" urlencoder.encode(entry.getanchor(), "utf-8") "/">read more";result += link;}}catch (unsupportedencodingexception e){// go with the "no encoding" version}return result;}public string getname() { return name; }public string getdescription() { return stringescapeutils.escapejavascript(description); }}
闽公网安备 35060202000074号