FreemarkerPresentationManager now passes several parameters like the dispatcherPrefix to the template
git-svn-id: https://svn.libreccm.org/ccm/trunk@5826 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
3c0720078a
commit
6f633e4715
|
|
@ -1,6 +1,8 @@
|
||||||
package org.libreccm.theming;
|
package org.libreccm.theming;
|
||||||
|
|
||||||
|
import com.arsdigita.bebop.Bebop;
|
||||||
import com.arsdigita.domain.DataObjectNotFoundException;
|
import com.arsdigita.domain.DataObjectNotFoundException;
|
||||||
|
import com.arsdigita.globalization.GlobalizationHelper;
|
||||||
import com.arsdigita.subsite.Site;
|
import com.arsdigita.subsite.Site;
|
||||||
import com.arsdigita.templating.PresentationManager;
|
import com.arsdigita.templating.PresentationManager;
|
||||||
import com.arsdigita.themedirector.ThemeDirector;
|
import com.arsdigita.themedirector.ThemeDirector;
|
||||||
|
|
@ -27,6 +29,7 @@ import java.io.InputStream;
|
||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
|
|
@ -182,8 +185,50 @@ public class FreeMarkerPresentationManager implements PresentationManager {
|
||||||
configuration.setDefaultEncoding("UTF-8");
|
configuration.setDefaultEncoding("UTF-8");
|
||||||
|
|
||||||
final Map<String, Object> data = new HashMap<>();
|
final Map<String, Object> data = new HashMap<>();
|
||||||
|
|
||||||
|
// The XML document
|
||||||
data.put("ccm", NodeModel.wrap(root));
|
data.put("ccm", NodeModel.wrap(root));
|
||||||
|
|
||||||
|
// Parameters (in XSL provided as XSL parameters)
|
||||||
|
data.put("contextPath", request.getContextPath());
|
||||||
|
data.put("contextPrefix",
|
||||||
|
Web.getWebContext().getRequestURL().getContextPath());
|
||||||
|
data.put("dcpOnButtons",
|
||||||
|
Bebop.getConfig().doubleClickProtectionOnButtons());
|
||||||
|
data.put("dcpOnLinks",
|
||||||
|
Bebop.getConfig().doubleClickProtectionOnLinks());
|
||||||
|
data.put("dispatcherPrefix", com.arsdigita.web.URL.getDispatcherPath());
|
||||||
|
final String host;
|
||||||
|
if (request.getServerPort() == 80) {
|
||||||
|
host = String.format("%s://%s",
|
||||||
|
request.getScheme(),
|
||||||
|
request.getServerName());
|
||||||
|
} else {
|
||||||
|
host = String.format("%s://%s:%d",
|
||||||
|
request.getScheme(),
|
||||||
|
request.getServerName(),
|
||||||
|
request.getServerPort());
|
||||||
|
}
|
||||||
|
data.put("host", host);
|
||||||
|
data.put("internalTheme",
|
||||||
|
Web.getWebContext().getRequestURL().getContextPath()
|
||||||
|
+ com.arsdigita.web.URL.INTERNAL_THEME_DIR);
|
||||||
|
data.put("negotiatedLanguage",
|
||||||
|
GlobalizationHelper.getNegotiatedLocale().getLanguage());
|
||||||
|
data.put("requestScheme", request.getScheme());
|
||||||
|
data.put("rootContextPrefix",
|
||||||
|
Web.getConfig().getDispatcherContextPath());
|
||||||
|
final Locale selectedLocale = GlobalizationHelper
|
||||||
|
.getSelectedLocale(request);
|
||||||
|
if (selectedLocale == null) {
|
||||||
|
data.put("selectedLanguage", "");
|
||||||
|
} else {
|
||||||
|
data.put("selectedLanguage", selectedLocale.getLanguage());
|
||||||
|
}
|
||||||
|
data.put("serverName", request.getServerName());
|
||||||
|
data.put("serverPort", request.getServerPort());
|
||||||
|
data.put("userAgent", request.getHeader("user-Agent"));
|
||||||
|
|
||||||
final Template template;
|
final Template template;
|
||||||
try {
|
try {
|
||||||
template = configuration.getTemplate(applicationTemplatePath);
|
template = configuration.getTemplate(applicationTemplatePath);
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
<#ftl ns_prefixes={
|
||||||
|
"bebop":"http://www.arsdigita.com/bebop/1.0",
|
||||||
|
"cms":"http://www.arsdigita.com/cms/1.0",
|
||||||
|
"nav":"http://ccm.redhat.com/navigation",
|
||||||
|
"ui": "http://www.arsdigita.com/ui/1.0"}
|
||||||
|
>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<#macro pageTitle>
|
||||||
|
${ccm["//nav:categoryMenu/nav:category/@title"]}
|
||||||
|
</#macro>
|
||||||
|
|
||||||
Loading…
Reference in New Issue