From 7743da39152761e007d004076565e4cd297a6f47 Mon Sep 17 00:00:00 2001 From: wdlee91 Date: Tue, 26 Aug 2008 11:53:33 +0000 Subject: [PATCH] =?UTF-8?q?autolink=20=EC=8A=A4=ED=81=AC=EB=A6=BD=ED=8A=B8?= =?UTF-8?q?=EB=A5=BC=20=EC=99=B8=EB=B6=80=20=ED=8C=8C=EC=9D=BC=EB=A1=9C=20?= =?UTF-8?q?=EC=98=AE=EA=B8=B0=EA=B3=A0=20RFC3986=EC=97=90=20=EC=9D=98?= =?UTF-8?q?=EA=B1=B0=ED=95=98=EC=97=AC=20url=20=EA=B7=9C=EC=B9=99=EC=9D=84?= =?UTF-8?q?=20=EC=97=84=EA=B2=A9=ED=95=98=EA=B2=8C=20=EC=A7=80=ED=82=A4?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=ED=95=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@4469 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- addons/autolink/autolink.addon.php | 11 +------ addons/autolink/autolink.js | 47 ++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 10 deletions(-) create mode 100644 addons/autolink/autolink.js diff --git a/addons/autolink/autolink.addon.php b/addons/autolink/autolink.addon.php index 8b44b855c..df1eff0f9 100644 --- a/addons/autolink/autolink.addon.php +++ b/addons/autolink/autolink.addon.php @@ -7,15 +7,6 @@ * @brief 자동 링크 애드온 **/ if($called_position == 'after_module_proc' && Context::getResponseMethod()!="XMLRPC") { - $script_code = << - // \<]*)","i"); function replaceHrefLink(target_obj) { var obj_list = new Array(); var obj = target_obj; while(obj) { obj_list[obj_list.length] = obj; obj = obj.nextSibling; } for(var i=0;i'); for(var j=0;j$1://$2"); } html[i] = html2.join('>'); } var output = html.join('<'); var dummy = xCreateElement('span'); xInnerHtml(dummy, output); pObj.insertBefore(dummy, obj); pObj.removeChild(obj); } else if(obj.nodeType == 1 && obj.firstChild) { replaceHrefLink(obj.firstChild); } } } function addUrlLink() { var objs = xGetElementsByClassName('xe_content'); if(objs.length<1) return; for(var i=0;i - - -EndOfScript; - Context::addHtmlHeader($script_code); + Context::addJsFile('./addons/autolink/autolink.js'); } ?> diff --git a/addons/autolink/autolink.js b/addons/autolink/autolink.js new file mode 100644 index 000000000..b26c33ba3 --- /dev/null +++ b/addons/autolink/autolink.js @@ -0,0 +1,47 @@ +var url_regx = /((http|https|ftp|news|telnet|irc):\/\/(([0-9a-z\-._~!$&'\(\)*+,;=:]|(%[0-9a-f]{2}))*\@)?((\[(((([0-9a-f]{1,4}:){6}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|(::([0-9a-f]{1,4}:){5}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|(([0-9a-f]{1,4})?::([0-9a-f]{1,4}:){4}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:)?[0-9a-f]{1,4})?::([0-9a-f]{1,4}:){3}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::([0-9a-f]{1,4}:){2}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4})|((([0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::))|(v[0-9a-f]+.[0-9a-z\-._~!$&'\(\)*+,;=:]+))\])|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5]))|(([0-9a-z\-._~!$&'\(\)*+,;=]|(%[0-9a-f]{2}))+))(:[0-9]*)?(\/([0-9a-z\-._~!$&'\(\)*+,;=:@]|(%[0-9a-f]{2}))*)*(\?([0-9a-z\-._~!$&'\(\)*+,;=:@\/\?]|(%[0-9a-f]{2}))*)?(#([0-9a-z\-._~!$&'\(\)*+,;=:@\/\?]|(%[0-9a-f]{2}))*)?)/i; +function replaceHrefLink(target_obj) +{ + var obj_list = new Array(); + var obj = target_obj; + while(obj) { + obj_list[obj_list.length] = obj; + obj = obj.nextSibling; + } + + for(var i=0;i'); + for(var j=0;j$1<\/a>"); + html[i] = html2.join('>'); + } + var output = html.join('<'); + var dummy = xCreateElement('span'); + xInnerHtml(dummy, output); + pObj.insertBefore(dummy, obj); + pObj.removeChild(obj); + } + else if(obj.nodeType == 1 && obj.firstChild) + replaceHrefLink(obj.firstChild); + } +} + +function addUrlLink() { + var objs = xGetElementsByClassName('xe_content'); + if(objs.length<1) return; + for(var i=0;i