In FreeMarkerHttpServlet.getTemplateLoader(), handle the case where the theme directory has no templates subdirectory without an error.
This commit is contained in:
parent
0d09bcf546
commit
cb1ab5a041
2 changed files with 18 additions and 8 deletions
|
@ -6,8 +6,10 @@ import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
import java.io.StringWriter;
|
import java.io.StringWriter;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.servlet.ServletContext;
|
import javax.servlet.ServletContext;
|
||||||
|
@ -158,18 +160,26 @@ public class FreeMarkerHttpServlet extends VitroHttpServlet {
|
||||||
protected final TemplateLoader getTemplateLoader(Configuration config, String themeDir) {
|
protected final TemplateLoader getTemplateLoader(Configuration config, String themeDir) {
|
||||||
|
|
||||||
ServletContext context = getServletContext();
|
ServletContext context = getServletContext();
|
||||||
String themeTemplateDir = context.getRealPath(themeDir) + "/templates";
|
String themeTemplatePath = context.getRealPath(themeDir) + "/templates";
|
||||||
String vitroTemplateDir = context.getRealPath("/templates/freemarker");
|
String vitroTemplatePath = context.getRealPath("/templates/freemarker");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
FileTemplateLoader themeFtl = new FileTemplateLoader(new File(themeTemplateDir));
|
TemplateLoader[] loaders;
|
||||||
FileTemplateLoader vitroFtl = new FileTemplateLoader(new File(vitroTemplateDir));
|
FileTemplateLoader vitroFtl = new FileTemplateLoader(new File(vitroTemplatePath));
|
||||||
ClassTemplateLoader ctl = new ClassTemplateLoader(getClass(), "");
|
ClassTemplateLoader ctl = new ClassTemplateLoader(getClass(), "");
|
||||||
TemplateLoader[] loaders = new TemplateLoader[] { themeFtl, vitroFtl, ctl };
|
|
||||||
|
File themeTemplateDir = new File(themeTemplatePath);
|
||||||
|
// Handle the case where there's no theme template directory gracefully
|
||||||
|
if (themeTemplateDir.exists()) {
|
||||||
|
FileTemplateLoader themeFtl = new FileTemplateLoader(themeTemplateDir);
|
||||||
|
loaders = new TemplateLoader[] { themeFtl, vitroFtl, ctl };
|
||||||
|
} else {
|
||||||
|
loaders = new TemplateLoader[] { vitroFtl, ctl };
|
||||||
|
}
|
||||||
MultiTemplateLoader mtl = new MultiTemplateLoader(loaders);
|
MultiTemplateLoader mtl = new MultiTemplateLoader(loaders);
|
||||||
return mtl;
|
return mtl;
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
log.error("Error loading templates");
|
log.error("Error creating template loaders");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
<h1><a title="Home" href="${urls.home}">${siteName}</a></h1>
|
<h1><a title="Home" href="${urls.home}">${siteName}</a></h1>
|
||||||
|
|
||||||
<#if siteTagline.has_content>
|
<#if siteTagline?has_content>
|
||||||
<em>${siteTagline}</em>
|
<em>${siteTagline}</em>
|
||||||
</#if>
|
</#if>
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue