openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit c00e26b3ef3d3da4977a4519ddc3a1c2364962fc
parent 39767b8481cc3dcc2816cd399643bf84dbd607ba
Author: dankert <devnull@localhost>
Date:   Mon, 22 Feb 2010 23:47:52 +0100

Sonderzeichen in HTML-URLs maskieren.

Diffstat:
serviceClasses/Transformer.class.php | 17++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/serviceClasses/Transformer.class.php b/serviceClasses/Transformer.class.php @@ -63,11 +63,26 @@ class Transformer // Links object:nnn ersetzen // - // Das Dokument-Objekt hat keine Information ´┐Żber die aktuelle Seite, + // Das Dokument-Objekt hat keine Information ueber die aktuelle Seite, // daher werden die Links auf Objekte hier gesetzt. foreach( $linkedObjectIds as $objectId ) { $targetPath = $this->page->path_to_object( $objectId ); + + // Hack: Sonderzeichen muessen in URLs maskiert werden, aber nur bei URLs die aus Link-Objekten kommen, bei allem + // anderen (insbesondere Preview-Links zu andereen Seiten) darf die Umsetzung nicht erfolgen. + // Der Renderer kann dies nicht tun, denn der erzeugt nur "object://..."-URLs. + // Beispiel: "...?a=1&b=2" wird zu "...?a=1&amp;b=2" + $o = new Object($objectId); + $o->load(); + if ( $o->isLink ) + { + $l = new Link($objectId); + $l->load(); + if ( $l->isLinkToUrl && $this->page->mimeType() == 'text/html' ) + $targetPath = htmlspecialchars($targetPath); + } + $text = str_replace( 'object:' .$objectId, $targetPath, $text ); $text = str_replace( 'object://'.$objectId, $targetPath, $text ); }