diff --git a/source/java/org/alfresco/repo/content/MimetypeMap.java b/source/java/org/alfresco/repo/content/MimetypeMap.java index 473dea5253..142545fb1d 100644 --- a/source/java/org/alfresco/repo/content/MimetypeMap.java +++ b/source/java/org/alfresco/repo/content/MimetypeMap.java @@ -59,6 +59,9 @@ public class MimetypeMap implements MimetypeService public static final String MIMETYPE_IMAGE_SVG = "image/svg"; public static final String MIMETYPE_JAVASCRIPT = "application/x-javascript"; public static final String MIMETYPE_ZIP = "application/zip"; + public static final String MIMETYPE_OPENSEARCH_DESCRIPTION = "application/opensearchdescription+xml"; + public static final String MIMETYPE_ATOM = "application/atom+xml"; + public static final String MIMETYPE_RSS = "application/rss+xml"; // Open Document public static final String MIMETYPE_OPENDOCUMENT_TEXT = "application/vnd.oasis.opendocument.text"; public static final String MIMETYPE_OPENDOCUMENT_TEXT_TEMPLATE = "application/vnd.oasis.opendocument.text-template"; diff --git a/source/java/org/alfresco/repo/template/AbsoluteUrlMethod.java b/source/java/org/alfresco/repo/template/AbsoluteUrlMethod.java new file mode 100644 index 0000000000..252c069224 --- /dev/null +++ b/source/java/org/alfresco/repo/template/AbsoluteUrlMethod.java @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2005 Alfresco, Inc. + * + * Licensed under the Mozilla Public License version 1.1 + * with a permitted attribution clause. You may obtain a + * copy of the License at + * + * http://www.alfresco.org/legal/license.txt + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific + * language governing permissions and limitations under the + * License. + */ +package org.alfresco.repo.template; + +import java.util.List; + +import freemarker.template.TemplateMethodModelEx; +import freemarker.template.TemplateModelException; +import freemarker.template.TemplateScalarModel; + +/** + * @author David Caruana + * + * Custom FreeMarker Template language method. + *
+ * Render absolute url for the specified url (only if the url isn't already absolute). + *
+ * Usage: absurl(String url) + */ +public final class AbsoluteUrlMethod implements TemplateMethodModelEx +{ + private String basePath; + + /** + * Construct + * + * @param basePath base path used to construct absolute url + */ + public AbsoluteUrlMethod(String basePath) + { + this.basePath = basePath; + } + + + /** + * @see freemarker.template.TemplateMethodModel#exec(java.util.List) + */ + public Object exec(List args) throws TemplateModelException + { + String result = ""; + + if (args.size() == 1) + { + Object arg0 = args.get(0); + if (arg0 instanceof TemplateScalarModel) + { + result = ((TemplateScalarModel)arg0).getAsString(); + if (result.startsWith("/")) + { + result = basePath + result; + } + } + } + + return result; + } +} diff --git a/source/java/org/alfresco/repo/template/FreeMarkerProcessor.java b/source/java/org/alfresco/repo/template/FreeMarkerProcessor.java index 77ed6e87ac..f24304f0e0 100644 --- a/source/java/org/alfresco/repo/template/FreeMarkerProcessor.java +++ b/source/java/org/alfresco/repo/template/FreeMarkerProcessor.java @@ -108,7 +108,7 @@ public class FreeMarkerProcessor implements TemplateProcessor * * @return FreeMarker configuration */ - private Configuration getConfig() + protected Configuration getConfig() { Configuration config = new Configuration(); @@ -141,7 +141,7 @@ public class FreeMarkerProcessor implements TemplateProcessor * * @return FreeMarker configuration */ - private Configuration getStringConfig(String path, String template) + protected Configuration getStringConfig(String path, String template) { Configuration config = new Configuration();