node = $node; $this->xml = $xml ; } public static function dtd() { return <<xml->parseNode($this->node, True, True, True, array("extern", "page", "anchor", "blank", "class")); $attributes = $parse["attributes_array"]; if ($attributes["page"] != "") { $url = $this->xml->getDataItem("hyperlink_url"); if ($url == "") { $page = $attributes["page"]; } else { $page = str_replace("%s", $attributes["page"], $url); } $extern = False; } else { $page = $attributes["extern"]; $extern = True; } if ($attributes["anchor"] != "") { $anchor = "#".$attributes["anchor"]; } else { $anchor = ""; } if ($parse["content_string"] == "") { $content = xml::mask(($this->xml->getDataItem("hyperlink_title")) ? call_user_func($this->xml->getDataItem("hyperlink_title"), $attributes["page"], $extern) : "no title."); } else { $content = $parse["content_string"]; } $exists = ($extern || !$this->xml->getDataItem("hyperlink_exists")) ? True : call_user_func($this->xml->getDataItem("hyperlink_exists"), $attributes["page"]); $blank = ($attributes["blank"] == "force" || $attributes["blank"] == "blank" && $this->xml->getDataItem("hyperlink_blank")); $classes = array(); if ($attributes["class"] != "") $classes[] = $attributes["class"]; if ($blank) $classes[] = "blank"; if (!$exists) $classes[] = "error404"; if ($extern) $classes[] = "extern"; return call_user_func(array($this, $returntype), $page.$anchor, $content, $classes, $parse["attributes_string"]); } private function xhtml($url, $content, $classes, $attributes) { if (in_array("blank", $classes)) $blank = " target=\"_blank\""; else $blank = ""; $classes = implode(" ", $classes); if ($classes != "") $classes = " class=\"".$classes."\""; return "".$content.""; } } ?>