示例#1
0
    /**
     * @param $textarea_id
     *
     * @return array
     */
    public function encode($textarea_id)
    {
        $config = parent::loadConfig(__DIR__);
        $code = "<img src='{$this->image_path}/mmssrc.gif' alt='" . _XOOPS_FORM_ALTMMS . "' title='" . _XOOPS_FORM_ALTMMS . "' '" . "' onclick='xoopsCodeMms(\"{$textarea_id}\",\"" . htmlspecialchars(_XOOPS_FORM_ENTERMMSURL, ENT_QUOTES) . "\",\"" . htmlspecialchars(_XOOPS_FORM_ALT_ENTERHEIGHT, ENT_QUOTES) . "\",\"" . htmlspecialchars(_XOOPS_FORM_ALT_ENTERWIDTH, ENT_QUOTES) . "\");'  onmouseover='style.cursor=\"hand\"'/>&nbsp;";
        $javascript = <<<EOH
            function xoopsCodeMms(id,enterMmsPhrase, enterMmsHeightPhrase, enterMmsWidthPhrase)
            {
                var selection = xoopsGetSelect(id);
                if (selection.length > 0) {
                    var selection="mms://"+selection;
                    var text = selection;
                } else {
                    var text = prompt(enterMmsPhrase+"       mms or http", "mms://");
                }
                var domobj = xoopsGetElementById(id);
                if (text.length > 0 && text != "mms://") {
                    var text2 = prompt(enterMmsWidthPhrase, "480");
                    var text3 = prompt(enterMmsHeightPhrase, "330");
                    var result = "[mms="+text2+","+text3+"]" + text + "[/mms]";
                    xoopsInsertText(domobj, result);
                }
                domobj.focus();
            }
EOH;
        return array($code, $javascript);
    }
示例#2
0
    /**
     * @param $textarea_id
     *
     * @return array
     */
    function encode($textarea_id)
    {
        $config = parent::loadConfig(dirname(__FILE__));
        $code = "<img src='{$this->image_path}/youtube.gif' alt='" . _XOOPS_FORM_ALTYOUTUBE . "' title='" . _XOOPS_FORM_ALTYOUTUBE . "' '" . "' onclick='xoopsCodeYoutube(\"{$textarea_id}\",\"" . htmlspecialchars(_XOOPS_FORM_ENTERYOUTUBEURL, ENT_QUOTES) . "\",\"" . htmlspecialchars(_XOOPS_FORM_ALT_ENTERHEIGHT, ENT_QUOTES) . "\",\"" . htmlspecialchars(_XOOPS_FORM_ALT_ENTERWIDTH, ENT_QUOTES) . "\");'  onmouseover='style.cursor=\"hand\"'/>&nbsp;";
        $javascript = <<<EOH
            function xoopsCodeYoutube(id, enterFlashPhrase, enterFlashHeightPhrase, enterFlashWidthPhrase)
            {
                var selection = xoopsGetSelect(id);
                if (selection.length > 0) {
                    var text = selection;
                } else {
                    var text = prompt(enterFlashPhrase, "");
                }
                var domobj = xoopsGetElementById(id);
                if (text.length > 0) {
                    var text2 = prompt(enterFlashWidthPhrase, "425");
                    var text3 = prompt(enterFlashHeightPhrase, "350");
                    var result = "[youtube="+text2+","+text3+"]" + text + "[/youtube]";
                    xoopsInsertText(domobj, result);
                }
                domobj.focus();
            }
EOH;
        return array($code, $javascript);
    }
示例#3
0
 /**
  * @param string $url
  * @param int $width
  * @param int $height
  * @return string
  */
 public static function decode($url, $width, $height)
 {
     $config = parent::loadConfig(__DIR__);
     if ((empty($width) || empty($height)) && !empty($config['detect_dimension'])) {
         if (!($dimension = @getimagesize($url))) {
             return "<a href='{$url}' rel='external' title=''>{$url}</a>";
         }
         if (!empty($width)) {
             $height = $dimension[1] * $width / $dimension[0];
         } else {
             if (!empty($height)) {
                 $width = $dimension[0] * $height / $dimension[1];
             } else {
                 list($width, $height) = array($dimension[0], $dimension[1]);
             }
         }
     }
     $rp = "<object width='{$width}' height='{$height}' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0'>";
     $rp .= "<param name='movie' value='{$url}'>";
     $rp .= "<param name='QUALITY' value='high'>";
     $rp .= "<PARAM NAME='bgcolor' VALUE='#FFFFFF'>";
     $rp .= "<param name='wmode' value='transparent'>";
     $rp .= "<embed src='{$url}' width='{$width}' height='{$height}' quality='high' bgcolor='#FFFFFF' wmode='transparent'  pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash'></embed>";
     $rp .= "</object>";
     return $rp;
 }
示例#4
0
    function encode($textarea_id)
    {
        $config = parent::loadConfig(dirname(__FILE__));
        $code = "<img src='{$this->image_path}/rtspimg.gif' alt='" . _XOOPS_FORM_ALTRTSP . "' onclick='xoopsCodeRtsp(\"{$textarea_id}\",\"" . htmlspecialchars(_XOOPS_FORM_ENTERRTSPURL, ENT_QUOTES) . "\",\"" . htmlspecialchars(_XOOPS_FORM_ENTERHEIGHT, ENT_QUOTES) . "\",\"" . htmlspecialchars(_XOOPS_FORM_ENTERWIDTH, ENT_QUOTES) . "\");'  onmouseover='style.cursor=\"hand\"'/>&nbsp;";
        $javascript = <<<EOH
            function xoopsCodeRtsp(id,enterRtspPhrase, enterRtspHeightPhrase, enterRtspWidthPhrase){
                var selection = xoopsGetSelect(id);
                if (selection.length > 0) {
                        var selection = "rtsp://"+selection;
                        var text = selection;
                    } else {
                        var text = prompt(enterRtspPhrase+"       Rtsp or http", "Rtsp://");
                    }
                var domobj = xoopsGetElementById(id);
                if ( text.length > 0 && text!="rtsp://") {
                    var text2 = prompt(enterRtspWidthPhrase, "480");
                    var text3 = prompt(enterRtspHeightPhrase, "330");
                    var result = "[rtsp="+text2+","+text3+"]" + text + "[/rtsp]";
                    xoopsInsertText(domobj, result);
                }
                domobj.focus();
            }
EOH;
        return array($code, $javascript);
    }
示例#5
0
 /**
  * @return string
  */
 public static function decode($url, $width, $height)
 {
     $config = parent::loadConfig(__DIR__);
     if (empty($url) || empty($config['link'])) {
         return $url;
     }
     $charset = !empty($config['charset']) ? $config['charset'] : "UTF-8";
     $ret = "<a href='" . sprintf($config['link'], urlencode(XoopsLocale::convert_encoding($url, $charset))) . "' rel='external' title=''>{$text}</a>";
     return $ret;
 }
示例#6
0
文件: wiki.php 项目: yunsite/xoopsdc
 function decode($text)
 {
     $config = parent::loadConfig(dirname(__FILE__));
     if (empty($text) || empty($config['link'])) {
         return $text;
     }
     $charset = !empty($config['charset']) ? $config['charset'] : "UTF-8";
     xoops_load('xoopslocal');
     $ret = "<a href='" . sprintf($config['link'], urlencode(XoopsLocal::convert_encoding($text, $charset))) . "' rel='external' title=''>{$text}</a>";
     return $ret;
 }
示例#7
0
 /**
  * @param $match
  *
  * @return string
  */
 public static function myCallback($match)
 {
     $url = $match[1] . $match[2];
     $config = parent::loadConfig(__DIR__);
     if (!preg_match("/^http[s]?:\\/\\/(www\\.)?soundcloud\\.com\\/(.*)/i", $url, $matches)) {
         trigger_error("Not matched: {$url}", E_USER_WARNING);
         return '';
     }
     $code = '<object height="81" width="100%"><param name="movie" ' . 'value="http://player.soundcloud.com/player.swf?url=' . $url . '&amp;g=bb">' . '</param><param name="allowscriptaccess" value="always"></param>' . '<embed allowscriptaccess="always" height="81" ' . 'src="http://player.soundcloud.com/player.swf?url=' . $url . '&amp;g=bb" type="application/x-shockwave-flash" width="100%"></embed></object>' . '<a href="' . $url . '">' . $url . '</a>';
     return $code;
 }
示例#8
0
 function load(&$ts, $text, $force = false)
 {
     global $xoopsUser, $xoopsConfig, $xoopsUserIsAdmin;
     if (empty($force) && $xoopsUserIsAdmin) {
         return $text;
     }
     // Built-in fitlers for XSS scripts
     // To be improved
     $text = $ts->filterXss($text);
     if (xoops_load("purifier", "framework")) {
         $text = XoopsPurifier::purify($text);
         return $text;
     }
     $tags = array();
     $search = array();
     $replace = array();
     $config = parent::loadConfig(dirname(__FILE__));
     if (!empty($config["patterns"])) {
         foreach ($config["patterns"] as $pattern) {
             if (empty($pattern['search'])) {
                 continue;
             }
             $search[] = $pattern['search'];
             $replace[] = $pattern['replace'];
         }
     }
     if (!empty($config["tags"])) {
         $tags = array_map("trim", $config["tags"]);
     }
     // Set embedded tags
     $tags[] = "SCRIPT";
     $tags[] = "VBSCRIPT";
     $tags[] = "JAVASCRIPT";
     foreach ($tags as $tag) {
         $search[] = "/<" . $tag . "[^>]*?>.*?<\\/" . $tag . ">/si";
         $replace[] = " [!" . strtoupper($tag) . " FILTERED!] ";
     }
     // Set meta refresh tag
     $search[] = "/<META[^>\\/]*HTTP-EQUIV=(['\"])?REFRESH(\\1)[^>\\/]*?\\/>/si";
     $replace[] = "";
     // Sanitizing scripts in IMG tag
     //$search[]= "/(<IMG[\s]+[^>\/]*SOURCE=)(['\"])?(.*)(\\2)([^>\/]*?\/>)/si";
     //$replace[]="";
     // Set iframe tag
     $search[] = "/<IFRAME[^>\\/]*SRC=(['\"])?([^>\\/]*)(\\1)[^>\\/]*?\\/>/si";
     $replace[] = " [!IFRAME FILTERED! \\2] ";
     $search[] = "/<IFRAME[^>]*?>([^<]*)<\\/IFRAME>/si";
     $replace[] = " [!IFRAME FILTERED! \\1] ";
     // action
     $text = preg_replace($search, $replace, $text);
     return $text;
 }
 function load(&$ts, $source, $language)
 {
     $config = parent::loadConfig(dirname(__FILE__));
     if (empty($config['highlight'])) {
         return "<pre>{$source}</pre>";
     }
     if ($config['highlight'] == 'geshi') {
         $language = str_replace('=', '', $language);
         $language = $language ? $language : $config['language'];
         $language = strtolower($language);
         if ($source = MytsSyntaxhighlight::geshi($source, $language)) {
             return $source;
         }
     }
     $source = MytsSyntaxhighlight::php($source);
     return $source;
 }
示例#10
0
 /**
  * @param MyTextSanitizer $ts
  * @param string $source
  * @param string $language
  * @return bool|mixed|string
  */
 public function load(MyTextSanitizer &$ts, $source, $language)
 {
     $config = parent::loadConfig(__DIR__);
     if (empty($config['highlight'])) {
         return "<pre>{$source}</pre>";
     }
     $source = $ts->undoHtmlSpecialChars($source);
     $source = stripslashes($source);
     if ($config['highlight'] == 'geshi') {
         $language = str_replace('=', '', $language);
         $language = $language ? $language : $config['language'];
         $language = strtolower($language);
         if ($source2 = MytsSyntaxhighlight::geshi($source, $language)) {
             return $source2;
         }
     }
     $source = MytsSyntaxhighlight::php($source);
     return $source;
 }
示例#11
0
 /**
  * @param MyTextSanitizer $ts
  * @param $text
  * @return mixed|string
  */
 public function load(MyTextSanitizer &$ts, $text, array $paramsConf = null)
 {
     static $censorConf;
     $xoops = Xoops::getInstance();
     if (!empty($paramsConf)) {
         $censorConf = $paramsConf;
     }
     if (!isset($censorConf)) {
         $censorConf = $xoops->getConfigs();
         $config = parent::loadConfig(__DIR__);
         //merge and allow config override
         $censorConf = array_merge($censorConf, $config);
     }
     if (empty($censorConf['censor_enable'])) {
         return $text;
     }
     if (empty($censorConf['censor_words'])) {
         return $text;
     }
     if (!empty($censorConf['censor_admin']) && !$xoops->userIsAdmin) {
         return $text;
     }
     $replacement = empty($censorConf['censor_replace']) ? '!!censured!!' : $censorConf['censor_replace'];
     if (is_array($censorConf['censor_words'])) {
         foreach ($censorConf['censor_words'] as $bad) {
             $bad = trim($bad);
             if (!empty($bad)) {
                 if (false === strpos($text, $bad)) {
                     continue;
                 }
                 if (!empty($censorConf['censor_terminate'])) {
                     trigger_error("Censor words found", E_USER_ERROR);
                     $text = '';
                     return $text;
                 }
                 $patterns[] = "/(^|[^0-9a-z_]){$bad}([^0-9a-z_]|\$)/siU";
                 $replacements[] = "\\1{$replacement}\\2";
                 $text = preg_replace($patterns, $replacements, $text);
             }
         }
     }
     return $text;
 }
示例#12
0
 function load(&$ts, $text, $force = false)
 {
     global $xoopsUser, $xoopsConfig, $xoopsUserIsAdmin;
     static $censorConf;
     if (empty($force) && $xoopsUserIsAdmin) {
         return $text;
     }
     if (!isset($censorConf)) {
         $config_handler =& xoops_gethandler('config');
         $censorConf = $config_handler->getConfigsByCat(XOOPS_CONF_CENSOR);
         if (empty($censorConf['censor_enable']) || empty($censorConf['censor_words'])) {
             $censorConf['censor_string'] = "";
         } else {
             $config = parent::loadConfig(dirname(__FILE__));
             $censorConf = array_merge($config, $censorConf);
         }
     }
     if (empty($censorConf['censor_words'])) {
         return $text;
     }
     $replacement = $censorConf['censor_replace'];
     foreach ($censorConf['censor_words'] as $bad) {
         $bad = trim($bad);
         if (!empty($bad)) {
             if (false === strpos($text, $bad)) {
                 continue;
             }
             if (!empty($censorConf['censor_terminate'])) {
                 trigger_error("Censor words found", E_USER_ERROR);
                 $text = '';
                 return $text;
             }
             $patterns[] = "/(^|[^0-9a-z_]){$bad}([^0-9a-z_]|\$)/siU";
             $replacements[] = "\\1{$replacement}\\2";
             $text = preg_replace($patterns, $replacements, $text);
         }
     }
     return $text;
 }
示例#13
0
 /**
  * @param $ts
  * @param $text
  *
  * @return mixed|string
  */
 public function load($ts, $text)
 {
     static $censorConf;
     if (!isset($censorConf)) {
         $config_handler = xoops_getHandler('config');
         $censorConf = $config_handler->getConfigsByCat(XOOPS_CONF_CENSOR);
         $config = parent::loadConfig(__DIR__);
         //merge and allow config override
         $censorConf = array_merge($censorConf, $config);
     }
     if (empty($censorConf['censor_enable'])) {
         return $text;
     }
     if (empty($censorConf['censor_words'])) {
         return $text;
     }
     if (empty($censorConf['censor_admin']) && $GLOBALS['xoopsUserIsAdmin']) {
         return $text;
     }
     $replacement = $censorConf['censor_replace'];
     foreach ($censorConf['censor_words'] as $bad) {
         $bad = trim($bad);
         if (!empty($bad)) {
             if (false === strpos($text, $bad)) {
                 continue;
             }
             if (!empty($censorConf['censor_terminate'])) {
                 trigger_error('Censor words found', E_USER_ERROR);
                 $text = '';
                 return $text;
             }
             $patterns[] = "/(^|[^0-9a-z_]){$bad}([^0-9a-z_]|\$)/siU";
             $replacements[] = "\\1{$replacement}\\2";
             $text = preg_replace($patterns, $replacements, $text);
         }
     }
     return $text;
 }
示例#14
0
 /**
  * @return string
  */
 public function displayFlash()
 {
     if (!defined('MYTEXTSANITIZER_EXTENDED_MEDIA')) {
         include_once PUBLISHER_ROOT_PATH . '/include/media.textsanitizer.php';
     }
     $media_ts = MyTextSanitizerExtension::getInstance();
     return $media_ts->_displayFlash($this->getFileUrl());
 }
 /**
  * @param string $name
  * @return array
  */
 public function loadConfig($name = null)
 {
     if (!empty($name)) {
         return MyTextSanitizerExtension::loadConfig($name);
     }
     $config_default = (include $this->path_basic . '/config.php');
     $config_custom = array();
     if (XoopsLoad::fileExists($file = $this->path_basic . '/config.custom.php')) {
         $config_custom = (include $file);
     }
     return $this->mergeConfig($config_default, $config_custom);
 }
示例#16
0
 function loadConfig($name = null)
 {
     if (!empty($name)) {
         return MyTextSanitizerExtension::loadConfig($name);
     }
     $config_default = (include "{$this->path_basic}/config.php");
     $config_custom = @(include "{$this->path_basic}/config.custom.php");
     return $this->mergeConfig($config_default, $config_custom);
 }