QQ客服热线
首页 > 信息资讯 > 技术专栏

技术专栏

为nopcommerce 的论坛编辑器增加图片和flash播放功能
2014年8月17日
摘要: 默认的编辑器是bbcode,你也可以直接增加你喜欢的编辑器。

首先在Nop.Core 下html文件下找到:BBCodeHelper.cs

这个类是bbcode转换为html代码。

然后增加两个正则表达式:

        private static readonly Regex regexImg2 = new Regex(@"\[img\](.+?)\[/img\]", RegexOptions.Compiled | RegexOptions.IgnoreCase);


        private static readonly Regex regexFlash2 = new Regex(@"\[flash (.+?),(.+?)\](.+?)\[/flash\]", RegexOptions.Compiled | RegexOptions.IgnoreCase);

修改FormatText方法:

 public static string FormatText(string text, bool replaceBold, bool replaceItalic,
            bool replaceUnderline, bool replaceUrl, bool replaceCode, bool replaceQuote,bool replaceImg,bool replaceFlash)
        {}

增加段代码:

if (replaceImg)
            {
                
                text = regexImg2.Replace(text, "<img src=\"$1\" rel=\"nofollow\"></img>");
            }
if (replaceFlash)
            {
                // $1 width,$2 height, $3 url.
               
                string str = "<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" codebase=\"http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0\" width=\"$1\" height=\"$2\" id=\"Untitled-1\" align=\"center\">";
                str+="<param name=\"allowScriptAccess\" value=\"sameDomain\" />";
                str += "<param name=\"movie\" value=\"$3\" />";
                str+="<param name=\"quality\" value=\"high\" />";
                str+="<param name=\"bgcolor\" value=\"#ffffff\" />";
                str += "<embed src=\"$3\" quality=\"high\" bgcolor=\"#ffffff\" width=\"$1\" height=\"$2\" name=\"mymovie\" align=\"center\" allowScriptAccess=\"sameDomain\" type=\"application/x-shockwave-flash\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" />";
                str+="</object>";
                
                text = regexFlash2.Replace(text, str);
            }

 

最后修改bbcode的js脚本

找到nop.web下面Content/BBEditor/ed.js

function edToolbar(obj) {
    document.write("<div class=\"toolbar\">");
    document.write("<img class=\"button\" src=\"" + webRoot + "BBEditor/images/bold.gif\" name=\"btnBold\" onClick=\"doAddTags('[b]','[/b]','" + obj + "')\">");
    document.write("<img class=\"button\" src=\"" + webRoot + "BBEditor/images/italic.gif\" name=\"btnItalic\" onClick=\"doAddTags('[i]','[/i]','" + obj + "')\">");
    document.write("<img class=\"button\" src=\"" + webRoot + "BBEditor/images/underline.gif\" name=\"btnUnderline\" onClick=\"doAddTags('[u]','[/u]','" + obj + "')\">");
    document.write("<img class=\"button\" src=\"" + webRoot + "BBEditor/images/link.gif\" name=\"btnLink\" onClick=\"doURL('" + obj + "')\">");
    document.write("<img class=\"button\" src=\"" + webRoot + "BBEditor/images/image.gif\" name=\"btnImg\" onClick=\"doImg('" + obj + "')\">");
    document.write("<img class=\"button\" src=\"" + webRoot + "BBEditor/images/flash.gif\" name=\"btnFlash\" onClick=\"doFlash('" + obj + "')\">");
    document.write("<img class=\"button\" src=\"" + webRoot + "BBEditor/images/code.gif\" name=\"btnCode\" onClick=\"doAddTags('[code]','[/code]','" + obj + "')\">");
    document.write("</div>");
}
 
增加 两个方法处理图片和Flash
 
function doImg(obj) {
    textarea = document.getElementById(obj);
    var url = prompt('Enter the URL:', 'http://');
    var scrollTop = textarea.scrollTop;
    var scrollLeft = textarea.scrollLeft;
    if (url != '' && url != null) {
        if (document.selection) {
            textarea.focus();
            var sel = document.selection.createRange();
            sel.text = '[img]' + url + '[/img]';
        }
        
    }
}

function doFlash(obj) {
    textarea = document.getElementById(obj);
    var url = prompt('Enter the URL:', 'http://');
    
    var scrollTop = textarea.scrollTop;
    var scrollLeft = textarea.scrollLeft;
    if (url != '' && url != null) {
        if (document.selection) { 
            textarea.focus();
            var sel = document.selection.createRange();
            var width = 550;
            var height = 400;
            sel.text = '[flash '+width+','+height+']' + url + '[/flash]';
        }

    }
}

 

最后别忘了 在Images加上两张图片image.gif,flash.gif

 

来自TCNET 转载请保留www.nbtcnet.com

返回列表