fix #2513 use site field
This commit is contained in:
parent
fb40f18c9d
commit
2aafb213cf
3 changed files with 25 additions and 0 deletions
|
@ -472,6 +472,9 @@ public abstract class AbstractFessFileTransformer extends AbstractTransformer im
|
|||
// Unix
|
||||
return abbreviateSite(value);
|
||||
}
|
||||
} else if (url.startsWith("smb:") || url.startsWith("smb1:")) {
|
||||
final String value = url.replaceFirst("^smb.?:/+", StringUtil.EMPTY);
|
||||
return abbreviateSite("\\\\" + value.replace('/', '\\'));
|
||||
}
|
||||
|
||||
return getSite(url, encoding);
|
||||
|
|
|
@ -605,6 +605,16 @@ public class ViewHelper {
|
|||
|
||||
public Object getSitePath(final Map<String, Object> docMap) {
|
||||
final FessConfig fessConfig = ComponentUtil.getFessConfig();
|
||||
final Object siteValue = docMap.get(fessConfig.getIndexFieldSite());
|
||||
if (siteValue != null) {
|
||||
final String site = siteValue.toString();
|
||||
final int size = fessConfig.getResponseMaxSitePathLengthAsInteger();
|
||||
if (size > -1) {
|
||||
return StringUtils.abbreviate(site, size);
|
||||
} else {
|
||||
return site;
|
||||
}
|
||||
}
|
||||
final Object urlLink = docMap.get(fessConfig.getResponseFieldUrlLink());
|
||||
if (urlLink != null) {
|
||||
final String returnUrl;
|
||||
|
|
|
@ -198,6 +198,18 @@ public class FessFileTransformerTest extends UnitFessTestCase {
|
|||
url = "file:////server/user";
|
||||
exp = "\\\\server\\user";
|
||||
assertEquals(exp, transformer.getSiteOnFile(url, "UTF-8"));
|
||||
|
||||
url = "smb://server/user";
|
||||
exp = "\\\\server\\user";
|
||||
assertEquals(exp, transformer.getSiteOnFile(url, "UTF-8"));
|
||||
|
||||
url = "smb1://server/user";
|
||||
exp = "\\\\server\\user";
|
||||
assertEquals(exp, transformer.getSiteOnFile(url, "UTF-8"));
|
||||
|
||||
url = "ftp://example.com/file";
|
||||
exp = "example.com/file";
|
||||
assertEquals(exp, transformer.getSiteOnFile(url, "UTF-8"));
|
||||
}
|
||||
|
||||
public void test_getSite_ok_len10() {
|
||||
|
|
Loading…
Add table
Reference in a new issue