diff -r f0431eb8161e -r 98c052fc3337 includes/wikiengine/Parse/Mediawiki/Freelink.php --- a/includes/wikiengine/Parse/Mediawiki/Freelink.php Sun Jun 21 00:16:21 2009 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,127 +0,0 @@ - -* -* @license LGPL -* -* @version $Id: Freelink.php,v 1.4 2005/10/19 23:43:53 toggg Exp $ -* -*/ - -/** -* -* Parses for freelinked page links. -* -* This class implements a Text_Wiki_Parse to find source text marked as a -* wiki freelink, and automatically create a link to that page. -* -* A freelink is any page name not conforming to the standard -* StudlyCapsStyle for a wiki page name. For example, a page normally -* named MyHomePage can be renamed and referred to as ((My Home Page)) -- -* note the spaces in the page name. You can also make a "nice-looking" -* link without renaming the target page; e.g., ((MyHomePage|My Home -* Page)). Finally, you can use named anchors on the target page: -* ((MyHomePage|My Home Page#Section1)). -* -* @category Text -* -* @package Text_Wiki -* -* @author Paul M. Jones -* -*/ - -class Text_Wiki_Parse_Freelink extends Text_Wiki_Parse { - - - /** - * - * 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_Freelink(&$obj) - { - parent::Text_Wiki_Parse($obj); - - $this->regex = - '/' . // START regex - "\\(\\(" . // double open-parens - "(" . // START freelink page patter - "[-A-Za-z0-9 _+\\/.,;:!?'\"\\[\\]\\{\\}&\xc0-\xff]+" . // 1 or more of just about any character - ")" . // END freelink page pattern - "(" . // START display-name - "\|" . // a pipe to start the display name - "[-A-Za-z0-9 _+\\/.,;:!?'\"\\[\\]\\{\\}&\xc0-\xff]+" . // 1 or more of just about any character - ")?" . // END display-name pattern 0 or 1 - "(" . // START pattern for named anchors - "\#" . // a hash mark - "[A-Za-z]" . // 1 alpha - "[-A-Za-z0-9_:.]*" . // 0 or more alpha, digit, underscore - ")?" . // END named anchors pattern 0 or 1 - "()\\)\\)" . // double close-parens - '/'; // END regex - } - - - /** - * - * Generates a replacement for the matched text. Token options are: - * - * 'page' => the wiki page name (e.g., HomePage). - * - * 'text' => alternative text to be displayed in place of the wiki - * page name. - * - * 'anchor' => a named anchor on the target wiki page - * - * @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 process(&$matches) - { - // use nice variable names - $page = $matches[1]; - $text = $matches[2]; - $anchor = $matches[3]; - - // is the page given a new text appearance? - if (trim($text) == '') { - // no - $text = $page; - } else { - // yes, strip the leading | character - $text = substr($text, 1); - } - - // set the options - $options = array( - 'page' => $page, - 'text' => $text, - 'anchor' => $anchor - ); - - // return a token placeholder - return $this->wiki->addToken($this->rule, $options); - } -} -?>