[ Index ] |
|
Code source de TinyMCE 2.1.0 |
1 var TinyMCE_BBCodePlugin = { 2 getInfo : function() { 3 return { 4 longname : 'BBCode Plugin', 5 author : 'Moxiecode Systems AB', 6 authorurl : 'http://tinymce.moxiecode.com', 7 infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/bbcode', 8 version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion 9 }; 10 }, 11 12 cleanup : function(type, content) { 13 var dialect = tinyMCE.getParam('bbcode_dialect', 'punbb').toLowerCase(); 14 15 switch (type) { 16 case "insert_to_editor": 17 content = this['_' + dialect + '_bbcode2html'](content); 18 break; 19 20 case "get_from_editor": 21 content = this['_' + dialect + '_html2bbcode'](content); 22 break; 23 } 24 25 return content; 26 }, 27 28 // Private methods 29 30 // HTML -> BBCode in PunBB dialect 31 _punbb_html2bbcode : function(s) { 32 s = tinyMCE.trim(s); 33 34 function rep(re, str) { 35 s = s.replace(re, str); 36 }; 37 38 // example: <strong> to [b] 39 rep(/<a href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url]$1[/url]"); 40 rep(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"); 41 rep(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"); 42 rep(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"); 43 rep(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"); 44 rep(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]"); 45 rep(/<font>(.*?)<\/font>/gi,"$1"); 46 rep(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]"); 47 rep(/<span class=\"codeStyle\">(.*?)<\/span>/gi,"[code]$1[/code]"); 48 rep(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[quote]$1[/quote]"); 49 rep(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]"); 50 rep(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]"); 51 rep(/<em class=\"codeStyle\">(.*?)<\/em>/gi,"[code][i]$1[/i][/code]"); 52 rep(/<em class=\"quoteStyle\">(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]"); 53 rep(/<u class=\"codeStyle\">(.*?)<\/u>/gi,"[code][u]$1[/u][/code]"); 54 rep(/<u class=\"quoteStyle\">(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]"); 55 rep(/<\/(strong|b)>/gi,"[/b]"); 56 rep(/<(strong|b)>/gi,"[b]"); 57 rep(/<\/(em|i)>/gi,"[/i]"); 58 rep(/<(em|i)>/gi,"[i]"); 59 rep(/<\/u>/gi,"[/u]"); 60 rep(/<u>/gi,"[u]"); 61 rep(/<br \/>/gi,"\n"); 62 rep(/<br\/>/gi,"\n"); 63 rep(/<br>/gi,"\n"); 64 rep(/<p>/gi,""); 65 rep(/<\/p>/gi,"\n"); 66 rep(/ /gi," "); 67 rep(/"/gi,"\""); 68 rep(/</gi,"<"); 69 rep(/>/gi,">"); 70 rep(/&/gi,"&"); 71 rep(/&undefined;/gi,"'"); // quickfix 72 73 return s; 74 }, 75 76 // BBCode -> HTML from PunBB dialect 77 _punbb_bbcode2html : function(s) { 78 s = tinyMCE.trim(s); 79 80 function rep(re, str) { 81 s = s.replace(re, str); 82 }; 83 84 // example: [b] to <strong> 85 rep(/\n/gi,"<br />"); 86 rep(/\[b\]/gi,"<strong>"); 87 rep(/\[\/b\]/gi,"</strong>"); 88 rep(/\[i\]/gi,"<em>"); 89 rep(/\[\/i\]/gi,"</em>"); 90 rep(/\[u\]/gi,"<u>"); 91 rep(/\[\/u\]/gi,"</u>"); 92 rep(/\[url\](.*?)\[\/url\]/gi,"<a href=\"$1\">$1</a>"); 93 rep(/\[img\](.*?)\[\/img\]/gi,"<img src=\"$1\" />"); 94 rep(/\[color=(.*?)\](.*?)\[\/color\]/gi,"<font color=\"$1\">$2</font>"); 95 rep(/\[code\](.*?)\[\/code\]/gi,"<span class=\"codeStyle\">$1</span> "); 96 rep(/\[quote.*?\](.*?)\[\/quote\]/gi,"<span class=\"quoteStyle\">$1</span> "); 97 98 return s; 99 } 100 }; 101 102 tinyMCE.addPlugin("bbcode", TinyMCE_BBCodePlugin);
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sun Feb 25 15:23:03 2007 | par Balluche grâce à PHPXref 0.7 |