You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by gi...@apache.org on 2004/11/23 08:55:29 UTC
svn commit: r106286 - /cocoon/trunk/src/documentation/xdocs/userdocs/transformers/encodeurl-transformer.xml /cocoon/trunk/src/java/org/apache/cocoon/transformation/EncodeURLTransformer.java
Author: giacomo
Date: Mon Nov 22 23:55:29 2004
New Revision: 106286
Modified:
cocoon/trunk/src/documentation/xdocs/userdocs/transformers/encodeurl-transformer.xml
cocoon/trunk/src/java/org/apache/cocoon/transformation/EncodeURLTransformer.java
Log:
add value to pattern, too
Modified: cocoon/trunk/src/documentation/xdocs/userdocs/transformers/encodeurl-transformer.xml
Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/documentation/xdocs/userdocs/transformers/encodeurl-transformer.xml?view=diff&rev=106286&p1=cocoon/trunk/src/documentation/xdocs/userdocs/transformers/encodeurl-transformer.xml&r1=106285&p2=cocoon/trunk/src/documentation/xdocs/userdocs/transformers/encodeurl-transformer.xml&r2=106286
==============================================================================
--- cocoon/trunk/src/documentation/xdocs/userdocs/transformers/encodeurl-transformer.xml (original)
+++ cocoon/trunk/src/documentation/xdocs/userdocs/transformers/encodeurl-transformer.xml Mon Nov 22 23:55:29 2004
@@ -42,9 +42,10 @@
</p>
<p>
You can specify which attributes hold URL values in order to restrict
- URL rewriting to specific attributes only. In the current implementation
+ URL rewriting to specific attributes and values only. In the current implementation
you specify include, and exclude patterns as regular expressions, concatting
- element-name + "/@" + attribute-name.
+ element-name-regexp + "/@" + attribute-name-regexp [ + "=" + attribute-value-regexp ]
+ whereas the part in brackets [] are optional.
</p>
<p>
The EncodeURLTransformer has several configuration options. These options
@@ -52,9 +53,10 @@
</p>
<dl>
<dt>include-name</dt>
- <dd>RE pattern for including attributes from encode URL rewriting,
+ <dd>RE pattern for including attributes for encode URL rewriting,
The attribute values are encoded, if an
- expressions of the form <code>element-name/@attribute-name</code>
+ expressions of the form
+ <code>element-name-regexp/@attribute-name-regexp[=attribute-value-regexp]</code>
matches.
<br/>
By default <code>include-name</code> is defined as
@@ -63,7 +65,8 @@
<dt>exclude-name</dt>
<dd>RE pattern for excluding attributes from encode URL rewriting,
The attribute values are not encoded, if an
- expressions of the form <code>element-name/@attribute-name</code>
+ expressions of the form
+ <code>element-name-regexp/@attribute-name-regexp[=attribute-value-regexp]</code>
matches.
<br/>
By default <code>exclude-name</code> is defined as
@@ -91,7 +94,7 @@
src="org.apache.cocoon.transformation.EncodeURLTransformer">
<!-- default configuration, explicitly defined -->
<include-name>.*/@href|.*/@action|frame/@src</include-name>
- <exclude-name>img/@src</exclude-name>
+ <exclude-name>img/@src|(a/@href|iframe/@src)=.*adserver</exclude-name>
</map:transformer>
...
]]></source>
Modified: cocoon/trunk/src/java/org/apache/cocoon/transformation/EncodeURLTransformer.java
Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/transformation/EncodeURLTransformer.java?view=diff&rev=106286&p1=cocoon/trunk/src/java/org/apache/cocoon/transformation/EncodeURLTransformer.java&r1=106285&p2=cocoon/trunk/src/java/org/apache/cocoon/transformation/EncodeURLTransformer.java&r2=106286
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/transformation/EncodeURLTransformer.java (original)
+++ cocoon/trunk/src/java/org/apache/cocoon/transformation/EncodeURLTransformer.java Mon Nov 22 23:55:29 2004
@@ -75,7 +75,7 @@
* ...
* <map:transformer type="encodeURL"
* src="org.apache.cocoon.optional.transformation.EncodeURLTransformer">
- * <exclude-name>img/@src</exclude-name>
+ * <exclude-name>img/@src|a/@href=.&asterik;adserver</exclude-name>
* <include-name>.&asterik;/@href|.&asterik;/@src|.&asterik;/@action</include-name>
* </map:transformer>
* ...
@@ -87,7 +87,7 @@
* </pre></tt>
*
* @author <a href="mailto:bh22351@i-one.at">Bernhard Huber</a>
- * @version CVS $Id: EncodeURLTransformer.java,v 1.8 2004/06/17 14:55:24 cziegeler Exp $
+ * @version CVS $Id$
*/
public class EncodeURLTransformer
extends AbstractTransformer
@@ -266,7 +266,7 @@
String value = new_attributes.getValue(i);
- if (elementAttributeMatching.matchesElementAttribute(lname, attr_lname)) {
+ if (elementAttributeMatching.matchesElementAttribute(lname, attr_lname, value)) {
// don't use simply this.response.encodeURL(value)
// but be more smart about the url encoding
final String new_value = this.encodeURL(value);
@@ -322,7 +322,7 @@
* </p>
*
* @author <a href="mailto:bh22351@i-one.at">Bernhard Huber</a>
- * @version CVS $Id: EncodeURLTransformer.java,v 1.8 2004/06/17 14:55:24 cziegeler Exp $
+ * @version CVS $Id$
*/
public class ElementAttributeMatching {
/**
@@ -353,14 +353,15 @@
/**
* Return true iff element_name attr_name pair is not matched by exclude-name,
* but is matched by include-name
- *
* @param element_name
* @param attr_name
+ * @param value TODO
+ *
* @return boolean true iff value of attribute_name should get rewritten, else
* false.
*/
- public boolean matchesElementAttribute(String element_name, String attr_name) {
- String element_attr_name = canonicalizeElementAttribute(element_name, attr_name);
+ public boolean matchesElementAttribute(String element_name, String attr_name, String value) {
+ String element_attr_name = canonicalizeElementAttribute(element_name, attr_name, value);
if (excludeNameRE != null && includeNameRE != null) {
return !matchesExcludesElementAttribute(element_attr_name) &&
@@ -377,13 +378,14 @@
* String concatenated <code>element name + "/@" + attribute name</code>
* is matched against the include and excluding patterns.
* </p>
- *
* @param element_name Description of Parameter
* @param attr_name Description of Parameter
+ * @param value The value
+ *
* @return Description of the Returned Value
*/
- private String canonicalizeElementAttribute(String element_name, String attr_name) {
- return element_name + "/@" + attr_name;
+ private String canonicalizeElementAttribute(String element_name, String attr_name, String value) {
+ return element_name + "/@" + attr_name + "=" + value;
}