⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serendipity_event_bbcode.php

📁 中国源码站下载
💻 PHP
字号:
<?php # $Id: serendipity_event_bbcode.php,v 1.3.4.1 2004/04/13 10:01:12 garvinhicking Exp $/*******************************************************汉化作者:youngong(http://youngong.blogbus.com)       **官方主页:http://www.s9y.corg                        **我的信箱:youngong@163.com                           **如果有问题,欢迎和作者及汉化作者联系。                ********************************************************/switch ($serendipity['lang']) {    case 'de':        @define('PLUGIN_EVENT_BBCODE_NAME',     'Textformatierung: BBCode');        @define('PLUGIN_EVENT_BBCODE_DESC',     'BBCode-Formatierung durchf黨ren');        @define('PLUGIN_EVENT_BBCODE_TRANSFORM', '<a href="http://www.phpbb.com/phpBB/faq.php?mode=bbcode">BBCode</a>-Formatierung erlaubt');        break;    case 'cn':	    @define('PLUGIN_EVENT_BBCODE_NAME',     '标记: BBCode');        @define('PLUGIN_EVENT_BBCODE_DESC',     '用BBCode标记');        @define('PLUGIN_EVENT_BBCODE_TRANSFORM', '<a href="http://www.phpbb.com/phpBB/faq.php?mode=bbcode">BBCode</a> 格式标准');        break;            case 'en':    default:        @define('PLUGIN_EVENT_BBCODE_NAME',     'Markup: BBCode');        @define('PLUGIN_EVENT_BBCODE_DESC',     'Markup text using BBCode');        @define('PLUGIN_EVENT_BBCODE_TRANSFORM', '<a href="http://www.phpbb.com/phpBB/faq.php?mode=bbcode">BBCode</a> format allowed');        break;}class serendipity_event_bbcode extends serendipity_event{    function introspect(&$propbag)    {        global $serendipity;        $propbag->add('name',          PLUGIN_EVENT_BBCODE_NAME);        $propbag->add('description',   PLUGIN_EVENT_BBCODE_DESC);        $propbag->add('event_hooks', array('frontend_display' => true, 'frontend_comment' => true));        $this->markup_elements = array(            array(              'name'     => ENTRY_BODY,              'element'  => 'body',            ),            array(              'name'     => EXTENDED_BODY,              'element'  => 'extended',            ),            array(              'name'     => COMMENT,              'element'  => 'comment',            ),            array(              'name'     => HTML_NUGGET,              'element'  => 'html_nugget',            )        );        $conf_array = array();        foreach($this->markup_elements as $element) {            $conf_array[] = $element['name'];        }        $propbag->add('configuration', $conf_array);        $this->bbcodes = array(          '/(?<!\\\\)\[color(?::\w+)?=(.*?)\](.*?)\[\/color(?::\w+)?\]/si'   => "<span style=\"color:\\1\">\\2</span>",          '/(?<!\\\\)\[size(?::\w+)?=(.*?)\](.*?)\[\/size(?::\w+)?\]/si'     => "<span style=\"font-size:\\1\">\\2</span>",          '/(?<!\\\\)\[font(?::\w+)?=(.*?)\](.*?)\[\/font(?::\w+)?\]/si'     => "<span style=\"font-family:\\1\">\\2</span>",          '/(?<!\\\\)\[align(?::\w+)?=(.*?)\](.*?)\[\/align(?::\w+)?\]/si'   => "<div style=\"text-align:\\1\">\\2</div>",          '/(?<!\\\\)\[b(?::\w+)?\](.*?)\[\/b(?::\w+)?\]/si'                 => "<span style=\"font-weight:bold\">\\1</span>",          '/(?<!\\\\)\[i(?::\w+)?\](.*?)\[\/i(?::\w+)?\]/si'                 => "<span style=\"font-style:italic\">\\1</span>",          '/(?<!\\\\)\[u(?::\w+)?\](.*?)\[\/u(?::\w+)?\]/si'                 => "<span style=\"text-decoration:underline\">\\1</span>",          '/(?<!\\\\)\[center(?::\w+)?\](.*?)\[\/center(?::\w+)?\]/si'       => "<div style=\"text-align:center\">\\1</div>",          // [code] & [php]          '/(?<!\\\\)\[code(?::\w+)?\](.*?)\[\/code(?::\w+)?\]/si'           => "<div class=\"bb-code\">\\1</div>",          '/(?<!\\\\)\[php(?::\w+)?\](.*?)\[\/php(?::\w+)?\]/si'             => "<div class=\"bb-php\">\\1</div>",          // [email]          '/(?<!\\\\)\[email(?::\w+)?\](.*?)\[\/email(?::\w+)?\]/si'         => "<a href=\"mailto:\\1\" class=\"bb-email\">\\1</a>",          '/(?<!\\\\)\[email(?::\w+)?=(.*?)\](.*?)\[\/email(?::\w+)?\]/si'   => "<a href=\"mailto:\\1\" class=\"bb-email\">\\2</a>",          // [url]          '/(?<!\\\\)\[url(?::\w+)?\]www\.(.*?)\[\/url(?::\w+)?\]/si'        => "<a href=\"http://www.\\1\" target=\"_blank\" class=\"bb-url\">\\1</a>",          '/(?<!\\\\)\[url(?::\w+)?\](.*?)\[\/url(?::\w+)?\]/si'             => "<a href=\"\\1\" target=\"_blank\" class=\"bb-url\">\\1</a>",          '/(?<!\\\\)\[url(?::\w+)?=(.*?)?\](.*?)\[\/url(?::\w+)?\]/si'      => "<a href=\"\\1\" target=\"_blank\" class=\"bb-url\">\\2</a>",          // [img]          '/(?<!\\\\)\[img(?::\w+)?\](.*?)\[\/img(?::\w+)?\]/si'             => "<img src=\"\\1\" alt=\"\\1\" class=\"bb-image\" />",          '/(?<!\\\\)\[img(?::\w+)?=(.*?)x(.*?)\](.*?)\[\/img(?::\w+)?\]/si' => "<img width=\"\\1\" height=\"\\2\" src=\"\\3\" alt=\"\\3\" class=\"bb-image\" />",          // [quote]          '/(?<!\\\\)\[quote(?::\w+)?\](.*?)\[\/quote(?::\w+)?\]/si'         => "<div>Quote:<div class=\"bb-quote\">\\1</div></div>",          '/(?<!\\\\)\[quote(?::\w+)?=(?:&quot;|"|\')?(.*?)["\']?(?:&quot;|"|\')?\](.*?)\[\/quote\]/si'   => "<div>Quote \\1:<div class=\"bb-quote\">\\2</div></div>",          // [list]          '/(?<!\\\\)(?:\s*<br\s*\/?>\s*)?\[\*(?::\w+)?\](.*?)(?=(?:\s*<br\s*\/?>\s*)?\[\*|(?:\s*<br\s*\/?>\s*)?\[\/?list)/si' => "\n<li class=\"bb-listitem\">\\1</li>",          '/(?<!\\\\)(?:\s*<br\s*\/?>\s*)?\[\/list(:(?!u|o)\w+)?\](?:<br\s*\/?>)?/si'    => "\n</ul>",          '/(?<!\\\\)(?:\s*<br\s*\/?>\s*)?\[\/list:u(:\w+)?\](?:<br\s*\/?>)?/si'         => "\n</ul>",          '/(?<!\\\\)(?:\s*<br\s*\/?>\s*)?\[\/list:o(:\w+)?\](?:<br\s*\/?>)?/si'         => "\n</ol>",          '/(?<!\\\\)(?:\s*<br\s*\/?>\s*)?\[list(:(?!u|o)\w+)?\]\s*(?:<br\s*\/?>)?/si'   => "\n<ul class=\"bb-list-unordered\">",          '/(?<!\\\\)(?:\s*<br\s*\/?>\s*)?\[list:u(:\w+)?\]\s*(?:<br\s*\/?>)?/si'        => "\n<ul class=\"bb-list-unordered\">",          '/(?<!\\\\)(?:\s*<br\s*\/?>\s*)?\[list:o(:\w+)?\]\s*(?:<br\s*\/?>)?/si'        => "\n<ol class=\"bb-list-ordered\">",          '/(?<!\\\\)(?:\s*<br\s*\/?>\s*)?\[list(?::o)?(:\w+)?=1\]\s*(?:<br\s*\/?>)?/si' => "\n<ol class=\"bb-list-ordered,bb-list-ordered-d\">",          '/(?<!\\\\)(?:\s*<br\s*\/?>\s*)?\[list(?::o)?(:\w+)?=i\]\s*(?:<br\s*\/?>)?/s'  => "\n<ol class=\"bb-list-ordered,bb-list-ordered-lr\">",          '/(?<!\\\\)(?:\s*<br\s*\/?>\s*)?\[list(?::o)?(:\w+)?=I\]\s*(?:<br\s*\/?>)?/s'  => "\n<ol class=\"bb-list-ordered,bb-list-ordered-ur\">",          '/(?<!\\\\)(?:\s*<br\s*\/?>\s*)?\[list(?::o)?(:\w+)?=a\]\s*(?:<br\s*\/?>)?/s'  => "\n<ol class=\"bb-list-ordered,bb-list-ordered-la\">",          '/(?<!\\\\)(?:\s*<br\s*\/?>\s*)?\[list(?::o)?(:\w+)?=A\]\s*(?:<br\s*\/?>)?/s'  => "\n<ol class=\"bb-list-ordered,bb-list-ordered-ua\">",          // escaped tags like \[b], \[color], \[url], ...          '/\\\\(\[\/?\w+(?::\w+)*\])/'                                      => "\\1"        );    }    function generate_content(&$title) {        $title = PLUGIN_EVENT_BBCODE_NAME;    }    function introspect_config_item($name, &$propbag)    {        $propbag->add('type',        'boolean');        $propbag->add('name',        $name);        $propbag->add('description', sprintf(APPLY_MARKUP_TO, $name));        return true;    }    function bbcode($input) {        /* Regular expressions taken from http://smarty.incutio.com/?page=BBCodePlugin Wiki (Andre Rabold) */        return preg_replace(array_keys($this->bbcodes), array_values($this->bbcodes), $input);}    function event_hook($event, &$bag, &$eventData) {        global $serendipity;        $hooks = &$bag->get('event_hooks');        if (isset($hooks[$event])) {            switch($event) {                case 'frontend_display':                    foreach ($this->markup_elements as $temp) {                        if (serendipity_db_bool($this->get_config($temp['name'], true)) && isset($eventData[$temp['element']])) {                            $element = $temp['element'];                            $eventData[$element] = $this->bbcode($eventData[$element]);                        }                    }                    return true;                    break;                case 'frontend_comment':                    if (serendipity_db_bool($this->get_config(COMMENT, true))) {                        echo PLUGIN_EVENT_BBCODE_TRANSFORM . '<br />';                    }                    return true;                    break;                default:                  return false;            }        } else {            return false;        }    }}/* vim: set sts=4 ts=4 expandtab : */?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -