.=< { Star Gans Tq } >=.

  • Home

  • Killme
  • Download
  • Current Path : /home/m/e/h/meharicl/www/phpBB3/vendor/s9e/text-formatter/src/Plugins/PipeTables/
    Upload File
    @Command ~ $  
    Current File : /home/m/e/h/meharicl/www/phpBB3/vendor/s9e/text-formatter/src/Plugins/PipeTables/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\PipeTables;
    
    use s9e\TextFormatter\Configurator\Items\AttributeFilters\ChoiceFilter;
    use s9e\TextFormatter\Plugins\ConfiguratorBase;
    
    class Configurator extends ConfiguratorBase
    {
    	/**
    	* {@inheritdoc}
    	*/
    	protected $quickMatch = '|';
    
    	/**
    	* Create the tags used by this plugin
    	*
    	* @return void
    	*/
    	protected function setUp()
    	{
    		$tags = [
    			'TABLE' => ['template' => '<table><xsl:apply-templates/></table>'],
    			'TBODY' => ['template' => '<tbody><xsl:apply-templates/></tbody>'],
    			'TD'    => $this->generateCellTagConfig('td'),
    			'TH'    => $this->generateCellTagConfig('th'),
    			'THEAD' => ['template' => '<thead><xsl:apply-templates/></thead>'],
    			'TR'    => ['template' => '<tr><xsl:apply-templates/></tr>']
    		];
    		foreach ($tags as $tagName => $tagConfig)
    		{
    			if (!isset($this->configurator->tags[$tagName]))
    			{
    				$this->configurator->tags->add($tagName, $tagConfig);
    			}
    		}
    	}
    
    	/**
    	* Generate the tag config for give cell element
    	*
    	* @param  string $elName Element's name, either "td" or "th"
    	* @return array          Tag config
    	*/
    	protected function generateCellTagConfig($elName)
    	{
    		$alignFilter = new ChoiceFilter(['left', 'center', 'right', 'justify'], true);
    
    		return [
    			'attributes' => [
    				'align' => [
    					'filterChain' => ['strtolower', $alignFilter],
    					'required' => false
    				]
    			],
    			'rules' => ['createParagraphs' => false],
    			'template' =>
    				'<' . $elName . '>
    					<xsl:if test="@align">
    						<xsl:attribute name="style">text-align:<xsl:value-of select="@align"/></xsl:attribute>
    					</xsl:if>
    					<xsl:apply-templates/>
    				</' . $elName . '>'
    		];
    	}
    
    	/**
    	* {@inheritdoc}
    	*/
    	public function asConfig()
    	{
    		return [
    			'overwriteEscapes'  => isset($this->configurator->Escaper),
    			'overwriteMarkdown' => isset($this->configurator->Litedown)
    		];
    	}
    }