Вход Регистрация
Файл: library/XenForo/BbCode/Formatter/HtmlEmail.php
Строк: 132
<?php

class XenForo_BbCode_Formatter_HtmlEmail extends XenForo_BbCode_Formatter_Base
{
    
/**
     * Stores the root server url, eg: http://localhost
     *
     * @var string
     */
    
protected static $_boardRoot null;

    
/**
     * String used for outputting smilies as sprites. Will be passed the following params:
     * 1    Smilie ID
     * 2    Smilie text
     * 3    Smilie title
     *
     * @var string
     */
    
protected $_smilieSpriteTemplate '<img src="%9$s" class="mceSmilieSprite mceSmilie%1$d" alt="%2$s" title="%3$s    %2$s" style="width: %5$dpx; height %6$dpx; background: url('%4$s') no-repeat %7$dpx %8$dpx" />';

    public function 
getTags()
    {
        
$tags parent::getTags();

        if (isset(
$tags['media']))
        {
            
$tags['media']['trimLeadingLinesAfter'] = 1;
        }

        return 
$tags;
    }

    
/**
     * @see XenForo_BbCode_Formatter_Base::_prepareSmilieUrl()
     */
    
protected function _prepareSmilieUrlInternal($smilieUrl)
    {
        if (
$smilieUrl[0] == '/')
        {
            if (
self::$_boardRoot === null)
            {
                
$boardUrl XenForo_Application::get('options')->boardUrl;
                
self::$_boardRoot substr($boardUrl0strpos($boardUrl'/'8));
            }

            
// absolute path to this server
            
return self::$_boardRoot parent::_prepareSmilieUrlInternal($smilieUrl);

        }
        else if (!
preg_match('#^https?://#i'$smilieUrl))
        {
            
// relative path to this server
            
return XenForo_Application::get('options')->boardUrl '/' parent::_prepareSmilieUrlInternal($smilieUrl);
        }
        else
        {
            
// no change required
            
return parent::_prepareSmilieUrlInternal($smilieUrl);
        }
    }

    
/**
     * Populates the sprite smilie template with data
     *
     * @param array $smilie
     *
     * @return string
     */
    
protected function _processSmilieSpriteTemplate(array $smilie)
    {
        return 
sprintf($this->_smilieSpriteTemplate,
            
$smilie['smilie_id'],
            
htmlspecialchars(reset($smilie['smilieText'])),
            
htmlspecialchars($smilie['title']),
            
$this->_prepareSmilieUrl($smilie['image_url']),
            
$smilie['sprite_params']['w'],
            
$smilie['sprite_params']['h'],
            
$smilie['sprite_params']['x'],
            
$smilie['sprite_params']['y'],
            
$this->_prepareSmilieUrl('styles/default/xenforo/clear.png')
        );
    }

    protected function 
_setupCustomTagInfo($tagName, array $tag)
    {
        
$output parent::_setupCustomTagInfo($tagName$tag);
        if (isset(
$output['replace']) && strlen($tag['replace_html_email']))
        {
            
$output['replace'] = $tag['replace_html_email'];
        }

        return 
$output;
    }

    public function 
renderTagMedia(array $tag, array $rendererStates)
    {
        
$mediaSiteId strtolower($tag['option']);
        if (isset(
$this->_mediaSites[$mediaSiteId]))
        {
            
$phrase = new XenForo_Phrase('embedded_media');
            return 
'<table cellpadding="0" cellspacing="0" border="0" width="100%"'
                
' style="background-color: #F0F7FC; border: 1px solid #A5CAE4; border-radius: 5px; margin: 5px 0; padding: 5px; font-size: 11px; text-align: center">'
                
'<tr><td>' $phrase->render() .'</td></tr></table>';
        }
        else
        {
            return 
'';
        }
    }

    
/**
     * Returns HTML output for a quote tag when the view is not available
     *
     * @param string $name Name of quoted user
     * @param string $content Quoted text
     *
     * @return string
     */
    
protected function _renderTagQuoteFallback($name$content)
    {
        
// these styles are based on the XenForo 1.x master style for quote output.

        
if ($name)
        {
            
$name '<tr><td style="
                background-color: #F9D9B0;
                border: 1px solid #F9D9B0;
                border-bottom-color: #F9BC6D;
                border-radius: 4px;
                font-size: 11px;
                font-family: '
Trebuchet MS', Helvetica, Arial, sans-serif;
                line-height: 1.4;
                padding: 3px 8px;
                margin: 0;
                color: #141414">' 
$name '</td></tr>';
        }

        return 
'<table cellpadding="0" cellspacing="0" border="0" width="100%" style="<rtlcss>
            background-color: #FFF4E5;
            border: 1px solid #F9D9B0;
            border-radius: 5px;
            margin: 1em 86px 1em 0</rtlcss>">' 
$name '<tr>
            <td style="
                font-size: 9pt;
                font-style: italic;
                font-family: Georgia, '
Times New Roman', Times, serif;
                line-height: 1.4;
                padding: 10px;
                margin: 0">' 
$content '</td></tr></table>';
    }

    protected function 
_handleImageProxyOption($url)
    {
        return 
$url;
    }

    protected function 
_handleLinkProxyOption($url$linkType)
    {
        return 
$url;
    }
}
Онлайн: 3
Реклама