includes/wikiengine/Parse/Default/Wikilink.php
changeset 1027 98c052fc3337
parent 1026 f0431eb8161e
child 1028 dde4416dea00
--- a/includes/wikiengine/Parse/Default/Wikilink.php	Sun Jun 21 00:16:21 2009 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,197 +0,0 @@
-<?php
-
-/**
-*
-* Parse for links to wiki pages.
-*
-* @category Text
-*
-* @package Text_Wiki
-*
-* @author Paul M. Jones <pmjones@php.net>
-*
-* @license LGPL
-*
-* @version $Id: Wikilink.php,v 1.5 2005/09/14 14:29:38 toggg Exp $
-*
-*/
-
-/**
-*
-* Parse for links to wiki pages.
-*
-* Wiki page names are typically in StudlyCapsStyle made of
-* WordsSmashedTogether.
-*
-* You can also create described links to pages in this style:
-* [WikiPageName nice text link to use for display]
-*
-* The token options for this rule are:
-*
-* 'page' => the wiki page name.
-*
-* 'text' => the displayed link text.
-*
-* 'anchor' => a named anchor on the target wiki page.
-*
-* @category Text
-*
-* @package Text_Wiki
-*
-* @author Paul M. Jones <pmjones@php.net>
-*
-*/
-
-class Text_Wiki_Parse_Wikilink extends Text_Wiki_Parse {
-
-    var $conf = array (
-    	'ext_chars' => false
-    );
-
-    /**
-    *
-    * Constructor.
-    *
-    * We override the Text_Wiki_Parse constructor so we can
-    * explicitly comment each part of the $regex property.
-    *
-    * @access public
-    *
-    * @param object &$obj The calling "parent" Text_Wiki object.
-    *
-    */
-
-    function Text_Wiki_Parse_Wikilink(&$obj)
-    {
-        parent::Text_Wiki_Parse($obj);
-
-        if ($this->getConf('ext_chars')) {
-        	// use an extended character set; this should
-        	// allow for umlauts and so on.  taken from the
-        	// Tavi project defaults.php file.
-			$upper = "A-Z\xc0-\xde";
-			$lower = "a-z0-9\xdf-\xfe";
-			$either = "A-Za-z0-9\xc0-\xfe";
-		} else {
-			// the default character set, should be fine
-			// for most purposes.
-			$upper = "A-Z";
-			$lower = "a-z0-9";
-			$either = "A-Za-z0-9";
-		}
-
-        // build the regular expression for finding WikiPage names.
-        $this->regex =
-            "(!?" .            // START WikiPage pattern (1)
-            "[$upper]" .       // 1 upper
-            "[$either]*" .     // 0+ alpha or digit
-            "[$lower]+" .      // 1+ lower or digit
-            "[$upper]" .       // 1 upper
-            "[$either]*" .     // 0+ or more alpha or digit
-            ")" .              // END WikiPage pattern (/1)
-            "((\#" .           // START Anchor pattern (2)(3)
-            "[$either]" .      // 1 alpha
-            "(" .              // start sub pattern (4)
-            "[-_$either:.]*" . // 0+ dash, alpha, digit, underscore, colon, dot
-            "[-_$either]" .    // 1 dash, alpha, digit, or underscore
-            ")?)?)";           // end subpatterns (/4)(/3)(/2)
-    }
-
-
-    /**
-    *
-    * First parses for described links, then for standalone links.
-    *
-    * @access public
-    *
-    * @return void
-    *
-    */
-
-    function parse()
-    {
-        // described wiki links
-        $tmp_regex = '/\[' . $this->regex . ' (.+?)\]/';
-        $this->wiki->source = preg_replace_callback(
-            $tmp_regex,
-            array(&$this, 'processDescr'),
-            $this->wiki->source
-        );
-
-        // standalone wiki links
-        if ($this->getConf('ext_chars')) {
-			$either = "A-Za-z0-9\xc0-\xfe";
-		} else {
-			$either = "A-Za-z0-9";
-		}
-
-        $tmp_regex = "/(^|[^{$either}\-_]){$this->regex}/";
-        $this->wiki->source = preg_replace_callback(
-            $tmp_regex,
-            array(&$this, 'process'),
-            $this->wiki->source
-        );
-    }
-
-
-    /**
-    *
-    * Generate a replacement for described links.
-    *
-    * @access public
-    *
-    * @param array &$matches The array of matches from parse().
-    *
-    * @return A delimited token to be used as a placeholder in
-    * the source text, plus any text priot to the match.
-    *
-    */
-
-    function processDescr(&$matches)
-    {
-        // set the options
-        $options = array(
-            'page'   => $matches[1],
-            'text'   => $matches[5],
-            'anchor' => $matches[3]
-        );
-
-        // create and return the replacement token and preceding text
-        return $this->wiki->addToken($this->rule, $options); // . $matches[7];
-    }
-
-
-    /**
-    *
-    * Generate a replacement for standalone links.
-    *
-    *
-    * @access public
-    *
-    * @param array &$matches The array of matches from parse().
-    *
-    * @return A delimited token to be used as a placeholder in
-    * the source text, plus any text prior to the match.
-    *
-    */
-
-    function process(&$matches)
-    {
-        // when prefixed with !, it's explicitly not a wiki link.
-        // return everything as it was.
-        if ($matches[2]{0} == '!') {
-            return $matches[1] . substr($matches[2], 1) . $matches[3];
-        }
-
-        // set the options
-        $options = array(
-            'page' => $matches[2],
-            'text' => $matches[2] . $matches[3],
-            'anchor' => $matches[3]
-        );
-
-        // create and return the replacement token and preceding text
-        return $matches[1] . $this->wiki->addToken($this->rule, $options);
-    }
-}
-?>