includes/wikiengine/Parse/Mediawiki/Url.php
changeset 1027 98c052fc3337
parent 1026 f0431eb8161e
child 1028 dde4416dea00
--- a/includes/wikiengine/Parse/Mediawiki/Url.php	Sun Jun 21 00:16:21 2009 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,355 +0,0 @@
-<?php
-
-/**
-* 
-* Parse for URLS in the source text.
-* 
-* @category Text
-* 
-* @package Text_Wiki
-* 
-* @author Paul M. Jones <pmjones@php.net>
-* 
-* @author Moritz Venn <moritz.venn@freaque.net>
-* 
-* @license LGPL
-* 
-* @version $Id: Url.php,v 1.1 2005/12/06 15:54:56 ritzmo Exp $
-* 
-*/
-
-/**
-* 
-* Parse for URLS in the source text.
-* 
-* Various URL markings are supported: inline (the URL by itself),
-* inline (where the URL is enclosed in square brackets), and named
-* reference (where the URL is enclosed in square brackets and has a
-* name included inside the brackets).  E.g.:
-*
-* inline      -- http://example.com
-* undescribed -- [http://example.com]
-* described   -- [http://example.com Example Description]
-* described   -- [http://www.example.com|Example Description]
-*
-* When rendering a URL token, this will convert URLs pointing to a .gif,
-* .jpg, or .png image into an inline <img /> tag (for the 'xhtml'
-* format).
-*
-* Token options are:
-* 
-* 'type' => ['inline'|'footnote'|'descr'] the type of URL
-* 
-* 'href' => the URL link href portion
-* 
-* 'text' => the displayed text of the URL link
-* 
-* @category Text
-* 
-* @package Text_Wiki
-* 
-* @author Paul M. Jones <pmjones@php.net>
-* 
-* @author Moritz Venn <moritz.venn@freaque.net>
-* 
-*/
-
-class Text_Wiki_Parse_Url extends Text_Wiki_Parse {
-    
-    
-    /**
-    * 
-    * Keeps a running count of numbered-reference URLs.
-    * 
-    * @access public
-    * 
-    * @var int
-    * 
-    */
-    
-    var $footnoteCount = 0;
-    
-    
-    /**
-    * 
-    * URL schemes recognized by this rule.
-    * 
-    * @access public
-    * 
-    * @var array
-    * 
-    */
-    
-    var $conf = array(
-        'schemes' => array(
-            'http://',
-            'https://',
-            'ftp://',
-            'gopher://',
-            'news://',
-            'mailto:',
-            'irc://'
-        )
-    );
-    
-    
-    /**
-    * 
-    * Constructor.
-    * 
-    * We override the constructor so we can comment the regex nicely.
-    * 
-    * @access public
-    * 
-    */
-    
-    function Text_Wiki_Parse_Url(&$obj)
-    {
-        parent::Text_Wiki_Parse($obj);
-        
-        // convert the list of recognized schemes to a regex-safe string,
-        // where the pattern delim is a slash
-        $tmp = array();
-        $list = $this->getConf('schemes', array());
-        foreach ($list as $val) {
-            $tmp[] = preg_quote($val, '/');
-        }
-        $schemes = implode('|', $tmp);
-        
-        // build the regex
-        $this->regex =
-            "($schemes)" . // allowed schemes
-            "(" . // start pattern
-            "[^ \\/\"\'{$this->wiki->delim}]*\\/" . // no spaces, backslashes, slashes, double-quotes, single quotes, or delimiters;
-            ")*" . // end pattern
-            "[^ \\t\\n\\/\"\'{$this->wiki->delim}]*" .
-            "[A-Za-z0-9\\/?=&~_]";
-            // fix for jEdit syntax highlighting bug: \"
-    }
-    
-    
-    /**
-    * 
-    * Find three different kinds of URLs in the source text.
-    *
-    * @access public
-    * 
-    */
-    
-    function parse()
-    {
-        // -------------------------------------------------------------
-        // 
-        // Described-reference (named) URLs.
-        // 
-
-        // the regular expression for this kind of URL
-        $tmp_regex = '/\[(' . $this->regex . ')[ |]([^\]]+)\]/';
-
-        // use a custom callback processing method to generate
-        // the replacement text for matches.
-        $this->wiki->source = preg_replace_callback(
-            $tmp_regex,
-            array(&$this, 'processDescr'),
-            $this->wiki->source
-        );
-
-        
-        // -------------------------------------------------------------
-        // 
-        // Unnamed-reference ('Ordinary'-style) URLs.
-        // 
-        
-        // the regular expression for this kind of URL
-        $tmp_regex = '/\[(' . $this->regex . ')\]/U';
-        
-        // use a custom callback processing method to generate
-        // the replacement text for matches.
-        $this->wiki->source = preg_replace_callback(
-            $tmp_regex,
-            //array(&$this, 'processFootnote'),
-            array(&$this, 'processOrdinary'),
-            $this->wiki->source
-        );
-        
-        
-        // -------------------------------------------------------------
-        // 
-        // Normal inline URLs.
-        // 
-        
-        /*
-        
-        ## DISABLED FOR ENANO
-        ## This messes up HTML links.
-        
-        // the regular expression for this kind of URL
-        
-        $tmp_regex = '/(^|[^A-Za-z])(' . $this->regex . ')(.*?)/';
-        
-        // use the standard callback for inline URLs
-        $this->wiki->source = preg_replace_callback(
-            $tmp_regex,
-            array(&$this, 'process'),
-            $this->wiki->source
-        );
-
-        //$tmp_regex = '/(^|[^A-Za-z])([a-zA-Z])(.*?)/';
-        $tmp_regex = '/(^|\s)([a-zA-Z0-9\-]+\.[a-zA-Z0-9\-]+(\.[a-zA-Z0-9\-]+)+)($|\s)/';
-        
-        // use the standard callback for inline URLs
-        $this->wiki->source = preg_replace_callback(
-            $tmp_regex,
-            array(&$this, 'processWithoutProtocol'),
-            $this->wiki->source
-        );
-
-        $tmp_regex = '/(^|\s|'.$this->wiki->delim.')<([a-zA-Z0-9\-\.%_\+\!\*\'\(\)\,]+@[a-zA-Z0-9\-]+(\.[a-zA-Z0-9\-]+)+)>(\s|'.$this->wiki->delim.'|$)/';
-        
-        // use the standard callback for inline URLs
-        $this->wiki->source = preg_replace_callback(
-            $tmp_regex,
-            array(&$this, 'processInlineEmail'),
-            $this->wiki->source
-        );
-        */
-    }
-    
-    
-    /**
-    * 
-    * Process inline URLs.
-    * 
-    * @param array &$matches
-    * 
-    * @param array $matches An array of matches from the parse() method
-    * as generated by preg_replace_callback.  $matches[0] is the full
-    * matched string, $matches[1] is the first matched pattern,
-    * $matches[2] is the second matched pattern, and so on.
-    * 
-    * @return string The processed text replacement.
-    * 
-    */ 
-    
-    function process(&$matches)
-    {
-        // set options
-        $options = array(
-            'type' => 'inline',
-            'href' => $matches[2],
-            'text' => $matches[2]
-        );
-        
-        // tokenize
-        return $matches[1] . $this->wiki->addToken($this->rule, $options) . $matches[5];
-    }
-
-    function processWithoutProtocol(&$matches)
-    {
-        // set options
-        $options = array(
-            'type' => 'inline',
-            'href' => 'http://'.$matches[2],
-            'text' => $matches[2]
-        );
-        
-        // tokenize
-        return $matches[1] . $this->wiki->addToken($this->rule, $options) . $matches[4];
-    }
-
-    function processInlineEmail(&$matches)
-    {
-        // set options
-        $options = array(
-            'type' => 'inline',
-            'href' => 'mailto://'.$matches[2],
-            'text' => $matches[2]
-        );
-        
-        // tokenize
-        return $matches[1] . $this->wiki->addToken($this->rule, $options) . $matches[4];
-    }    
-    
-    /**
-    * 
-    * Process numbered (footnote) URLs.
-    * 
-    * Token options are:
-    * @param array &$matches
-    * 
-    * @param array $matches An array of matches from the parse() method
-    * as generated by preg_replace_callback.  $matches[0] is the full
-    * matched string, $matches[1] is the first matched pattern,
-    * $matches[2] is the second matched pattern, and so on.
-    * 
-    * @return string The processed text replacement.
-    * 
-    */ 
-    
-    function processFootnote(&$matches)
-    {
-        // keep a running count for footnotes 
-        $this->footnoteCount++;
-        
-        // set options
-        $options = array(
-            'type' => 'footnote',
-            'href' => $matches[1],
-            'text' => $this->footnoteCount
-        );
-        
-        // tokenize
-        return $this->wiki->addToken($this->rule, $options);
-    }
-    
-     function processOrdinary(&$matches)
-    {
-    	// keep a running count for footnotes 
-        $this->footnoteCount++;
-        
-        // set options
-        $options = array(
-            'type' => 'descr',
-            'href' => $matches[1],
-            'text' => $matches[1]
-        );
-        
-        // tokenize
-        return $this->wiki->addToken($this->rule, $options);
-    }
-    
-    
-    /**
-    * 
-    * Process described-reference (named-reference) URLs.
-    * 
-    * Token options are:
-    *     'type' => ['inline'|'footnote'|'descr'] the type of URL
-    *     'href' => the URL link href portion
-    *     'text' => the displayed text of the URL link
-    * 
-    * @param array &$matches
-    * 
-    * @param array $matches An array of matches from the parse() method
-    * as generated by preg_replace_callback.  $matches[0] is the full
-    * matched string, $matches[1] is the first matched pattern,
-    * $matches[2] is the second matched pattern, and so on.
-    * 
-    * @return string The processed text replacement.
-    * 
-    */ 
-    
-    function processDescr(&$matches)
-    {
-        // set options
-        $options = array(
-            'type' => 'descr',
-            'href' => $matches[1],
-            'text' => $matches[4]
-        );
-
-        // tokenize
-        return $this->wiki->addToken($this->rule, $options);
-    }
-}
-?>
\ No newline at end of file