commit 28fd57bed9f3cc80c5dccceaf5d94c1edf80136c
parent e4970543c1140c90c1ec32afdde619676e730220
Author: dankert <devnull@localhost>
Date: Thu, 29 Mar 2007 21:04:02 +0200
Dokumentation erg?nzt.
Diffstat:
1 file changed, 34 insertions(+), 2 deletions(-)
diff --git a/textClasses/LinkElement.class.php b/textClasses/LinkElement.class.php
@@ -1,6 +1,11 @@
<?php
/**
+ * Darstellung eines Verweises auf eine URL.<br>
+ * <br>
+ * Es wird nur das Verweisziel gespeichert.<br>
+ * Der verweisende Text wird nicht hier, sondern in einem der Unterelemente gespeichert.
+ *
* @author $Author$
* @version $Revision$
* @package openrat.text
@@ -21,6 +26,12 @@ class LinkElement extends AbstractElement
var $name;
+ /**
+ * Setzt das Ziel des Links.<br>
+ * Als Parameter wird eine URL erwartet.
+ *
+ * @param target Verweisziel
+ */
function setTarget( $target )
{
$this->target = $target;
@@ -58,18 +69,25 @@ class LinkElement extends AbstractElement
}
+ /**
+ * Ermittelt die URL des Links.
+ */
function getUrl()
{
$url = '';
+ // Protokollangabe im Format <protokoll>://
if ( $this->protocol != '')
{
$url .= $this->protocol.':';
+ // Ausnahme: Das "mailto"-Protokoll darf keinen Doppelslash haben.
if ( $this->protocol != 'mailto' )
$url.='//';
}
+ // Benutzer und Kennwort anhängen.
+ // Format: <benutzer>:<kennwort>@
if ( $this->user != '' )
{
$url .= $this->user;
@@ -80,25 +98,34 @@ class LinkElement extends AbstractElement
$url .= '@';
}
+ // Hostnamen anhängen.
$url .= $this->host;
+ // Port anhängen
if ( $this->port != '' )
$url .= ':'.$this->port;
-
+
+ // Den Pfad anhängen.
$url .= $this->url_encode($this->path);
+ // Den Query-Teil mit einem "?" getrennt anhängen.
if ( $this->query != '' )
$url .= '?'.$this->url_encode($this->query);
// $url .= '?'.urlencode($this->query);
+ // Fragment mit "#" getrennt anhängen.
if ( $this->fragment != '' )
- $url .= '#'.$this->fragment;
+ $url .= '#'.$this->url_encode($this->fragment);
return $url;
}
+ /**
+ * Hilfsfunktion für #url_encode().
+ * Ein Ganzzahl-Wert wird in Hexadezimal umgewandelt.
+ */
function int2hex($intega)
{
$Ziffer = "0123456789ABCDEF";
@@ -106,6 +133,11 @@ class LinkElement extends AbstractElement
}
+
+ /**
+ * Kodiert eine URL.<br>
+ * Alle Zeichen mit dem Ordinalwert >=129 werden kodiert.
+ */
function url_encode( $text )
{
for($i=129;$i<255;$i++)