diff --git a/source/java/org/alfresco/repo/template/ISO8601DateFormatMethod.java b/source/java/org/alfresco/repo/template/ISO8601DateFormatMethod.java new file mode 100644 index 0000000000..9c0ea16d0e --- /dev/null +++ b/source/java/org/alfresco/repo/template/ISO8601DateFormatMethod.java @@ -0,0 +1,56 @@ +/* + * 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 org.alfresco.util.ISO8601DateFormat; + +import freemarker.template.TemplateDateModel; +import freemarker.template.TemplateMethodModelEx; +import freemarker.template.TemplateModelException; + +/** + * @author David Caruana + * + * Custom FreeMarker Template language method. + *

+ * Render Date to ISO8601 format. + *

+ * Usage: xmldate(Date date) + */ +public final class ISO8601DateFormatMethod implements TemplateMethodModelEx +{ + /** + * @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 TemplateDateModel) + { + result = ISO8601DateFormat.format(((TemplateDateModel)arg0).getAsDate()); + } + } + + return result; + } +} diff --git a/source/java/org/alfresco/repo/template/UrlEncodeMethod.java b/source/java/org/alfresco/repo/template/UrlEncodeMethod.java new file mode 100644 index 0000000000..01d0ee66a0 --- /dev/null +++ b/source/java/org/alfresco/repo/template/UrlEncodeMethod.java @@ -0,0 +1,67 @@ +/* + * 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.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.util.List; + +import freemarker.template.TemplateMethodModelEx; +import freemarker.template.TemplateModelException; +import freemarker.template.TemplateScalarModel; + +/** + * @author David Caruana + * + * Custom FreeMarker Template language method. + *

+ * Encode URL for HTML. + *

+ * Usage: urlencode(String url) + */ +public final class UrlEncodeMethod implements TemplateMethodModelEx +{ + /** + * @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) + { + try + { + // TODO: Support other encodings, although + // http://java.sun.com/j2se/1.4.2/docs/api/java/net/URLEncoder.html + // recommends UTF-8 + result = URLEncoder.encode(((TemplateScalarModel)arg0).getAsString(), "UTF-8"); + } + catch (UnsupportedEncodingException e) + { + // fallback to original url + result = ((TemplateScalarModel)arg0).getAsString(); + } + } + } + + return result; + } +}