In FreeMarkerHttpServlet.getTemplateLoader(), handle the case where the theme directory has no templates subdirectory without an error.

This commit is contained in:
rjy7 2010-07-09 22:10:43 +00:00
parent 0d09bcf546
commit cb1ab5a041
2 changed files with 18 additions and 8 deletions

View file

@ -6,8 +6,10 @@ import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletContext;
@ -158,18 +160,26 @@ public class FreeMarkerHttpServlet extends VitroHttpServlet {
protected final TemplateLoader getTemplateLoader(Configuration config, String themeDir) {
ServletContext context = getServletContext();
String themeTemplateDir = context.getRealPath(themeDir) + "/templates";
String vitroTemplateDir = context.getRealPath("/templates/freemarker");
String themeTemplatePath = context.getRealPath(themeDir) + "/templates";
String vitroTemplatePath = context.getRealPath("/templates/freemarker");
try {
FileTemplateLoader themeFtl = new FileTemplateLoader(new File(themeTemplateDir));
FileTemplateLoader vitroFtl = new FileTemplateLoader(new File(vitroTemplateDir));
TemplateLoader[] loaders;
FileTemplateLoader vitroFtl = new FileTemplateLoader(new File(vitroTemplatePath));
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);
return mtl;
} catch (IOException e) {
log.error("Error loading templates");
log.error("Error creating template loaders");
return null;
}

View file

@ -6,7 +6,7 @@
<h1><a title="Home" href="${urls.home}">${siteName}</a></h1>
<#if siteTagline.has_content>
<#if siteTagline?has_content>
<em>${siteTagline}</em>
</#if>