You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by an...@apache.org on 2007/03/30 18:30:08 UTC
svn commit: r524160 -
/lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/cocoon/transformation/UuidToUrlTransformer.java
Author: andreas
Date: Fri Mar 30 09:30:07 2007
New Revision: 524160
URL: http://svn.apache.org/viewvc?view=rev&rev=524160
Log:
Added support for uuid2url.extension parameter
Modified:
lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/cocoon/transformation/UuidToUrlTransformer.java
Modified: lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/cocoon/transformation/UuidToUrlTransformer.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/cocoon/transformation/UuidToUrlTransformer.java?view=diff&rev=524160&r1=524159&r2=524160
==============================================================================
--- lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/cocoon/transformation/UuidToUrlTransformer.java (original)
+++ lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/cocoon/transformation/UuidToUrlTransformer.java Fri Mar 30 09:30:07 2007
@@ -45,6 +45,7 @@
import org.apache.lenya.cms.publication.Publication;
import org.apache.lenya.cms.repository.RepositoryUtil;
import org.apache.lenya.cms.repository.Session;
+import org.apache.lenya.util.Query;
import org.apache.lenya.util.ServletHelper;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
@@ -74,12 +75,18 @@
* <code><a/></code> element is removed to disable the link.</li>
* </ul>
*
+ * <p>
+ * You can add the query parameter <code>uuid2url.extension</code> to <code>lenya-document:</code>
+ * URLs to set a specific link extension.
+ * </p>
+ *
* $Id: LinkRewritingTransformer.java,v 1.7 2004/03/16 11:12:16 gregor
*/
public class UuidToUrlTransformer extends AbstractSAXTransformer implements Disposable {
protected static final String BROKEN_ATTRIB = "class";
protected static final String BROKEN_VALUE = "brokenlink";
+ protected static final String EXTENSION_PARAM = "uuid2url.extension";
private boolean ignoreLinkElement = false;
private ServiceSelector serviceSelector;
@@ -208,16 +215,20 @@
String[] linkUriAndQuery = url.split("\\?");
String linkUri = linkUriAndQuery[0];
String queryString = null;
+ String requiredExtension = null;
if (linkUriAndQuery.length > 1) {
queryString = linkUriAndQuery[1];
+ Query query = new Query(queryString);
+ requiredExtension = query.getValue(EXTENSION_PARAM);
+ query.removeValue(EXTENSION_PARAM);
+ queryString = query.toString();
}
LinkTarget target = this.linkResolver.resolve(doc, linkUri);
if (target.exists() && target.getDocument().hasLink()) {
Document targetDocument = target.getDocument();
- String extension = targetDocument.getExtension();
- if (extension.length() > 0) {
- extension = "." + extension;
- }
+
+ String extension = getExtension(targetDocument, requiredExtension);
+
rewriteLink(newAttrs, attributeNames[i], targetDocument, anchor,
queryString, extension);
} else if (doc.getArea().equals(Publication.AUTHORING_AREA)) {
@@ -268,6 +279,15 @@
}
}
+ protected String getExtension(Document targetDocument, String requiredExtension) {
+ String docExtension = targetDocument.getExtension();
+ String extension = requiredExtension != null ? requiredExtension : docExtension;
+ if (extension.length() > 0) {
+ extension = "." + extension;
+ }
+ return extension;
+ }
+
/**
* Marks a <code><a/></code> element as broken and removes href
* attribute.
@@ -327,7 +347,7 @@
rewrittenURL += "#" + anchor;
}
- if (queryString != null) {
+ if (queryString != null && queryString.length() > 0) {
rewrittenURL += "?" + queryString;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org