diff -r f0431eb8161e -r 98c052fc3337 includes/wikiengine/Parse/Mediawiki/Image.php --- a/includes/wikiengine/Parse/Mediawiki/Image.php Sun Jun 21 00:16:21 2009 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,136 +0,0 @@ - -* -* @license LGPL -* -* @version $Id: Image.php,v 1.5 2005/09/12 11:34:44 toggg Exp $ -* -*/ - -/** -* -* Parses for image placement. -* -* @category Text -* -* @package Text_Wiki -* -* @author Paul M. Jones -* -*/ - -class Text_Wiki_Parse_Image extends Text_Wiki_Parse { - - /** - * URL schemes recognized by this rule. - * - * @access public - * @var array - */ - var $conf = array( - 'schemes' => 'http|https|ftp|gopher|news', - 'host_regexp' => '(?:[^.\s/"\'<\\\#delim#\ca-\cz]+\.)*[a-z](?:[-a-z0-9]*[a-z0-9])?\.?', - 'path_regexp' => '(?:/[^\s"<\\\#delim#\ca-\cz]*)?' - ); - - /** - * - * The regular expression used to find source text matching this - * rule. - * - * @access public - * - * @var string - * - */ - - var $regex = '/(\[\[image\s+)(.+?)(\]\])/i'; - - - /** - * The regular expressions used to check ecternal urls - * - * @access public - * @var string - * @see parse() - */ - var $url = ''; - - /** - * Constructor. - * We override the constructor to build up the url regex from config - * - * @param object &$obj the base conversion handler - * @return The parser object - * @access public - */ - function Text_Wiki_Parse_Image(&$obj) - { - $default = $this->conf; - parent::Text_Wiki_Parse($obj); - - // convert the list of recognized schemes to a regex OR, - $schemes = $this->getConf('schemes', $default['schemes']); - $this->url = str_replace( '#delim#', $this->wiki->delim, - '#(?:' . (is_array($schemes) ? implode('|', $schemes) : $schemes) . ')://' - . $this->getConf('host_regexp', $default['host_regexp']) - . $this->getConf('path_regexp', $default['path_regexp']) .'#'); - } - - /** - * - * Generates a token entry for the matched text. Token options are: - * - * 'src' => The image source, typically a relative path name. - * - * 'opts' => Any macro options following the source. - * - * @access public - * - * @param array &$matches The array of matches from parse(). - * - * @return A delimited token number to be used as a placeholder in - * the source text. - * - */ - - function process(&$matches) - { - $pos = strpos($matches[2], ' '); - - if ($pos === false) { - $options = array( - 'src' => $matches[2], - 'attr' => array()); - } else { - // everything after the space is attribute arguments - $options = array( - 'src' => substr($matches[2], 0, $pos), - 'attr' => $this->getAttrs(substr($matches[2], $pos+1)) - ); - // check the scheme case of external link - if (array_key_exists('link', $options['attr'])) { - // external url ? - if (($pos = strpos($options['attr']['link'], '://')) !== false) { - if (!preg_match($this->url, $options['attr']['link'])) { - return $matches[0]; - } - } elseif (in_array('Wikilink', $this->wiki->disable)) { - return $matches[0]; // Wikilink disabled - } - } - } - - return $this->wiki->addToken($this->rule, $options); - } -} -?>