From 70f1aa438ab85528364c0ffc1c1a6c617c0e24f3 Mon Sep 17 00:00:00 2001 From: zero Date: Tue, 22 Apr 2008 09:41:34 +0000 Subject: [PATCH] =?UTF-8?q?#459,=20#458=20=EB=B3=B8=EB=AC=B8=20=EC=9E=90?= =?UTF-8?q?=EB=8F=99=EB=A7=81=ED=81=AC=20=EB=B0=8F=20=EC=9D=B4=EB=AF=B8?= =?UTF-8?q?=EC=A7=80=20=ED=81=AC=EA=B8=B0=20=EC=A1=B0=EC=A0=88=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=EC=9D=84=20=EC=95=A0=EB=93=9C=EC=98=A8=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EB=B6=84=EB=A6=AC?= 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@4129 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- addons/autolink/autolink.addon.php | 22 ++ addons/autolink/conf/info.xml | 10 + addons/autolink/lang/ko.lang.php | 9 + addons/resize_image/conf/info.xml | 10 + addons/resize_image/css/resize_image.css | 5 + addons/resize_image/js/resize_image.js | 212 +++++++++++++++++ addons/resize_image/resize_image.addon.php | 14 ++ common/css/default.css | 4 - common/js/common.js | 213 ------------------ .../tpl/images/original_image_box_close.gif | Bin 610 -> 0 bytes modules/comment/comment.item.php | 2 +- modules/document/document.item.php | 2 +- 12 files changed, 284 insertions(+), 219 deletions(-) create mode 100644 addons/autolink/autolink.addon.php create mode 100644 addons/autolink/conf/info.xml create mode 100644 addons/autolink/lang/ko.lang.php create mode 100644 addons/resize_image/conf/info.xml create mode 100644 addons/resize_image/css/resize_image.css create mode 100644 addons/resize_image/js/resize_image.js create mode 100644 addons/resize_image/resize_image.addon.php delete mode 100644 common/tpl/images/original_image_box_close.gif diff --git a/addons/autolink/autolink.addon.php b/addons/autolink/autolink.addon.php new file mode 100644 index 000000000..46049ee3e --- /dev/null +++ b/addons/autolink/autolink.addon.php @@ -0,0 +1,22 @@ + function addUrlLink() { var objs = xGetElementsByClassName('xe_content'); if(objs.length<1) return; var rep_list = new Array(); var url_regx = new RegExp("(http|https|ftp|news)://([-/.a-zA-Z0-9_~#%$?&=:200-377()]+)","gi"); for(var i=0;i$1://$2")); for(var j=0;j40) href = href.substr(0,40)+'...'; var html = ''+ ''+href+' [{$open_cur_window}]
'+ ''+href+' [{$open_new_window}]'; xInnerHtml(layer, html); xLeft(layer, evt.pageX-20); xTop(layer, evt.pageY-10); layer.style.visibility = 'visible'; } else { layer.style.visibility = 'hidden'; } } xAddEventListener(window,'load', addUrlLink); + +EndOfScript; + Context::addHtmlHeader($script_code); + } +?> diff --git a/addons/autolink/conf/info.xml b/addons/autolink/conf/info.xml new file mode 100644 index 000000000..8a4a3d62d --- /dev/null +++ b/addons/autolink/conf/info.xml @@ -0,0 +1,10 @@ + + + 자동 링크 애드온 + + zero + + 게시글과 댓글의 내용중 http로 시작되는 일반 문자열에 자동으로 링크를 걸고 각 링크에 마우스 오버시 새창과 현재창 메뉴가 나타나도록 꾸미는 애드온입니다. + + + diff --git a/addons/autolink/lang/ko.lang.php b/addons/autolink/lang/ko.lang.php new file mode 100644 index 000000000..8ede9189e --- /dev/null +++ b/addons/autolink/lang/ko.lang.php @@ -0,0 +1,9 @@ +open_cur_window = "현재창"; + $lang->open_new_window = "새창"; +?> diff --git a/addons/resize_image/conf/info.xml b/addons/resize_image/conf/info.xml new file mode 100644 index 000000000..5b1c7a1f2 --- /dev/null +++ b/addons/resize_image/conf/info.xml @@ -0,0 +1,10 @@ + + + 본문내 이미지 조절 애드온 + + zero + + 본문내에 삽입된 이미지의 크기를 본문크기에 맞게 하고 클릭시 원본을 보여주는 애드온입니다. + + + diff --git a/addons/resize_image/css/resize_image.css b/addons/resize_image/css/resize_image.css new file mode 100644 index 000000000..2706e2f9b --- /dev/null +++ b/addons/resize_image/css/resize_image.css @@ -0,0 +1,5 @@ +@charset "utf-8"; + +#forOriginalImageAreaBackground { z-index:1001; background-color:#AAAAAA; top:0px; left:0px; position:relative; padding:0; border:8px solid #444444; white-space:nowrap; } +#forOriginalImageArea { visibility:hidden; padding:0px; margin:0px; width:100%; height:100%; top:0px; left:0px; position:absolute; z-index:1000; text-align:left; overflow:hidden; background-color:#000000;} +#fororiginalimage { z-index:1002; margin:0; padding:0; } diff --git a/addons/resize_image/js/resize_image.js b/addons/resize_image/js/resize_image.js new file mode 100644 index 000000000..754297b78 --- /dev/null +++ b/addons/resize_image/js/resize_image.js @@ -0,0 +1,212 @@ +/** + * @brief 화면내에서 상위 영역보다 이미지가 크면 리사이즈를 하고 클릭시 원본을 보여줄수 있도록 변경 + **/ +function resizeImageContents() { + // 일단 모든 이미지에 대한 체크를 시작 + var objs = xGetElementsByTagName("IMG"); + for(var i in objs) { + var obj = objs[i]; + if(!obj.parentNode) continue; + + if(/\/modules\//i.test(obj.src)) continue; + if(/\/layouts\//i.test(obj.src)) continue; + if(/\/widgets\//i.test(obj.src)) continue; + if(/\/classes\//i.test(obj.src)) continue; + if(/\/common\/tpl\//i.test(obj.src)) continue; + if(/\/member_extra_info\//i.test(obj.src)) continue; + + // 상위 node의 className이 document_ 또는 comment_ 로 시작하지 않으면 패스 + var parent = obj.parentNode; + while(parent) { + if(parent.className && parent.className.search(/xe_content|document_|comment_/i) != -1) break; + parent = parent.parentNode; + } + if (!parent || parent.className.search(/xe_content|document_|comment_/i) < 0) continue; + + if(parent.parentNode) xWidth(parent, xWidth(parent.parentNode)); + parent.style.width = '100%'; + parent.style.overflow = 'hidden'; + + var parent_width = xWidth(parent); + if(parent.parentNode && xWidth(parent.parentNode) parent_width - 2) { + obj.style.cursor = "pointer"; + var new_w = parent_width - 2; + var new_h = Math.round(obj_height * new_w/obj_width); + xWidth(obj, new_w); + xHeight(obj, new_h); + xAddEventListener(obj,"click", showOriginalImage); + // 선택된 이미지가 부모보다 작을 경우 일단 원본 이미지를 불러와서 비교 + } else { + var orig_img = new Image(); + orig_img.src = obj.src; + if(orig_img.width > parent_width - 2 || orig_img.width != obj_width) { + obj.style.cursor = "pointer"; + xAddEventListener(obj,"click", showOriginalImage); + } + } + } +} +xAddEventListener(window, "load", resizeImageContents); + +/** + * @brief 본문내에서 컨텐츠 영역보다 큰 이미지의 경우 원본 크기를 보여줌 + **/ +function showOriginalImage(evt) { + var e = new xEvent(evt); + var obj = e.target; + var src = obj.src; + + if(!xGetElementById("forOriginalImageArea")) { + var dummy = xCreateElement("div"); + dummy.id = "forOriginalImageArea"; + dummy.style.visibility = "hidden"; + xInnerHtml(dummy, "
\"original
"); + document.body.appendChild(dummy); + } + + var orig_image = xGetElementById("fororiginalimage"); + var tmp_image = new Image(); + tmp_image.src = src; + var image_width = tmp_image.width; + var image_height = tmp_image.height; + + orig_image.style.margin = "0px 0px 0px 0px"; + orig_image.style.cursor = "move"; + orig_image.src = src; + + var areabg = xGetElementById("forOriginalImageAreaBackground"); + xWidth(areabg, image_width+16); + xHeight(areabg, image_height+16); + + var area = xGetElementById("forOriginalImageArea"); + xLeft(area, xScrollLeft()); + xTop(area, xScrollTop()); + xWidth(area, xWidth(document)); + xHeight(area, xHeight(document)); + area.style.visibility = "visible"; + var area_width = xWidth(area); + var area_height = xHeight(area); + + var x = parseInt((area_width-image_width)/2,10); + var y = parseInt((area_height-image_height)/2,10); + if(x<0) x = 0; + if(y<0) y = 0; + xLeft(areabg, x); + xTop(areabg, y); + + var sel_list = xGetElementsByTagName("select"); + for (var i = 0; i < sel_list.length; ++i) sel_list[i].style.visibility = "hidden"; + + xAddEventListener(orig_image, "mousedown", origImageDragEnable); + xAddEventListener(orig_image, "dblclick", closeOriginalImage); + xAddEventListener(window, "scroll", closeOriginalImage); + xAddEventListener(window, "resize", closeOriginalImage); + xAddEventListener(document, 'keydown',closeOriginalImage); + + areabg.style.visibility = 'visible'; +} + +/** + * @brief 원본 이미지 보여준 후 닫는 함수 + **/ +function closeOriginalImage(evt) { + var area = xGetElementById("forOriginalImageArea"); + if(area.style.visibility != "visible") return; + area.style.visibility = "hidden"; + xGetElementById("forOriginalImageAreaBackground").style.visibility = "hidden"; + + var sel_list = xGetElementsByTagName("select"); + for (var i = 0; i < sel_list.length; ++i) sel_list[i].style.visibility = "visible"; + + xRemoveEventListener(area, "mousedown", closeOriginalImage); + xRemoveEventListener(window, "scroll", closeOriginalImage); + xRemoveEventListener(window, "resize", closeOriginalImage); + xRemoveEventListener(document, 'keydown',closeOriginalImage); +} + +/** + * @brief 원본 이미지 드래그 + **/ +var origDragManager = {obj:null, isDrag:false} +function origImageDragEnable(evt) { + var e = new xEvent(evt); + var obj = e.target; + if(obj.id != "fororiginalimage") return; + + obj.draggable = true; + obj.startX = e.pageX; + obj.startY = e.pageY; + + if(!origDragManager.isDrag) { + origDragManager.isDrag = true; + xAddEventListener(document, "mousemove", origImageDragMouseMove, false); + } + + xAddEventListener(document, "mousedown", origImageDragMouseDown, false); +} + +function origImageDrag(obj, px, py) { + var x = px - obj.startX; + var y = py - obj.startY; + + var areabg = xGetElementById("forOriginalImageAreaBackground"); + xLeft(areabg, xLeft(areabg)+x); + xTop(areabg, xTop(areabg)+y); + + obj.startX = px; + obj.startY = py; +} + +function origImageDragMouseDown(evt) { + var e = new xEvent(evt); + var obj = e.target; + if(obj.id != "fororiginalimage" || !obj.draggable) return; + + if(obj) { + xPreventDefault(evt); + obj.startX = e.pageX; + obj.startY = e.pageY; + origDragManager.obj = obj; + xAddEventListener(document, 'mouseup', origImageDragMouseUp, false); + origImageDrag(obj, e.pageX, e.pageY); + } +} + +function origImageDragMouseUp(evt) { + if(origDragManager.obj) { + xPreventDefault(evt); + xRemoveEventListener(document, 'mouseup', origImageDragMouseUp, false); + xRemoveEventListener(document, 'mousemove', origImageDragMouseMove, false); + xRemoveEventListener(document, 'mousemdown', origImageDragMouseDown, false); + origDragManager.obj.draggable = false; + origDragManager.obj = null; + origDragManager.isDrag = false; + } +} + +function origImageDragMouseMove(evt) { + var e = new xEvent(evt); + var obj = e.target; + if(!obj) return; + if(obj.id != "fororiginalimage") { + xPreventDefault(evt); + xRemoveEventListener(document, 'mouseup', origImageDragMouseUp, false); + xRemoveEventListener(document, 'mousemove', origImageDragMouseMove, false); + xRemoveEventListener(document, 'mousemdown', origImageDragMouseDown, false); + origDragManager.obj.draggable = false; + origDragManager.obj = null; + origDragManager.isDrag = false; + return; + } + + xPreventDefault(evt); + origDragManager.obj = obj; + xAddEventListener(document, 'mouseup', origImageDragMouseUp, false); + origImageDrag(obj, e.pageX, e.pageY); +} + diff --git a/addons/resize_image/resize_image.addon.php b/addons/resize_image/resize_image.addon.php new file mode 100644 index 000000000..3791925ae --- /dev/null +++ b/addons/resize_image/resize_image.addon.php @@ -0,0 +1,14 @@ + diff --git a/common/css/default.css b/common/css/default.css index 6054016b2..6b42ddc60 100644 --- a/common/css/default.css +++ b/common/css/default.css @@ -89,10 +89,6 @@ a.bold { font-weight:bold; } /* xe layer */ #waitingforserverresponse { border:2px solid #444444; font-weight:bold; color:#444444; padding: 7px 5px 5px 25px; background:#FFFFFF url("../tpl/images/loading.gif") no-repeat 5px 5px; top:40px; left:40px; position:absolute; z-index:100; visibility:hidden; } -#fororiginalimageareabg { z-index:1001; background-color:#FFFFFF; width:100%; height:100%; top:0px; left:0px; position:relative; padding:20px 10px 10px 10px; border:8px solid #DDDDDD; } -#fororiginalimagearea { visibility:hidden; padding:0px; margin:0px; width:100%; height:100%; top:0px; left:0px; position:absolute; z-index:1000; text-align:left; overflow:hidden; } -#fororiginalimage { z-index:1002; } -#closeOriginalImageBtn { position:absolute; right:8px; top:5px; cursor:pointer; width:50px; height:12px; z-index:1003; } #popup_menu_area { position:absolute; left:0px; top:0px; z-index:1003; visibility:hidden; border:2px solid #D9D9D9; background-color:#FFFFFF; padding:0; } #popup_menu_area .box { border:1px solid #CACACA; background-color:#FFFFFF; padding:7px; } #popup_menu_area .item { color:#333333; cursor:pointer; margin:0; padding:3px 0 3px 0; white-space:nowrap; } diff --git a/common/js/common.js b/common/js/common.js index b9c9a5b67..b4087b404 100644 --- a/common/js/common.js +++ b/common/js/common.js @@ -220,62 +220,6 @@ function displayMultimedia(src, width, height, auto_start, flashvars) { document.writeln(html); } -/** - * @brief 화면내에서 상위 영역보다 이미지가 크면 리사이즈를 하고 클릭시 원본을 보여줄수 있도록 변경 - **/ -function resizeImageContents() { - // 일단 모든 이미지에 대한 체크를 시작 - var objs = xGetElementsByTagName("IMG"); - for(var i in objs) { - var obj = objs[i]; - if(!obj.parentNode) continue; - - if(/\/modules\//i.test(obj.src)) continue; - if(/\/layouts\//i.test(obj.src)) continue; - if(/\/widgets\//i.test(obj.src)) continue; - if(/\/classes\//i.test(obj.src)) continue; - if(/\/common\/tpl\//i.test(obj.src)) continue; - if(/\/member_extra_info\//i.test(obj.src)) continue; - - // 상위 node의 className이 document_ 또는 comment_ 로 시작하지 않으면 패스 - var parent = obj.parentNode; - while(parent) { - if(parent.className && parent.className.search(/xe_content|document_|comment_/i) != -1) break; - parent = parent.parentNode; - } - if (!parent || parent.className.search(/xe_content|document_|comment_/i) < 0) continue; - - if(parent.parentNode) xWidth(parent, xWidth(parent.parentNode)); - parent.style.width = '100%'; - parent.style.overflow = 'hidden'; - - - var parent_width = xWidth(parent); - if(parent.parentNode && xWidth(parent.parentNode) parent_width - 2) { - obj.style.cursor = "pointer"; - var new_w = parent_width - 2; - var new_h = Math.round(obj_height * new_w/obj_width); - xWidth(obj, new_w); - xHeight(obj, new_h); - xAddEventListener(obj,"click", showOriginalImage); - // 선택된 이미지가 부모보다 작을 경우 일단 원본 이미지를 불러와서 비교 - } else { - var orig_img = new Image(); - orig_img.src = obj.src; - if(orig_img.width > parent_width - 2 || orig_img.width != obj_width) { - obj.style.cursor = "pointer"; - xAddEventListener(obj,"click", showOriginalImage); - } - } - } -} -xAddEventListener(window, "load", resizeImageContents); - /** * @brief 에디터에서 사용되는 내용 여닫는 코드 (고정, zbxe용) **/ @@ -359,163 +303,6 @@ function setFixedPopupSize() { window.scrollTo(0,0); } -/** - * @brief 본문내에서 컨텐츠 영역보다 큰 이미지의 경우 원본 크기를 보여줌 - **/ -function showOriginalImage(evt) { - var e = new xEvent(evt); - var obj = e.target; - var src = obj.src; - - if(!xGetElementById("fororiginalimagearea")) { - var dummy = xCreateElement("div"); - dummy.id = "fororiginalimagearea"; - dummy.style.visibility = "hidden"; - xInnerHtml(dummy, "
\"original\"close
"); - document.body.appendChild(dummy); - } - - var orig_image = xGetElementById("fororiginalimage"); - var tmp_image = new Image(); - tmp_image.src = src; - var image_width = tmp_image.width; - var image_height = tmp_image.height; - - orig_image.style.margin = "0px 0px 0px 0px"; - orig_image.style.cursor = "move"; - orig_image.src = src; - - var areabg = xGetElementById("fororiginalimageareabg"); - xWidth(areabg, image_width+36); - xHeight(areabg, image_height+46); - - var area = xGetElementById("fororiginalimagearea"); - xLeft(area, xScrollLeft()); - xTop(area, xScrollTop()); - xWidth(area, xWidth(document)); - xHeight(area, xHeight(document)); - area.style.visibility = "visible"; - var area_width = xWidth(area); - var area_height = xHeight(area); - - var x = parseInt((area_width-image_width)/2,10); - var y = parseInt((area_height-image_height)/2,10); - if(x<0) x = 0; - if(y<0) y = 0; - xLeft(areabg, x); - xTop(areabg, y); - - var sel_list = xGetElementsByTagName("select"); - for (var i = 0; i < sel_list.length; ++i) sel_list[i].style.visibility = "hidden"; - - xAddEventListener(orig_image, "mousedown", origImageDragEnable); - xAddEventListener(orig_image, "dblclick", closeOriginalImage); - xAddEventListener(window, "scroll", closeOriginalImage); - xAddEventListener(window, "resize", closeOriginalImage); - xAddEventListener(document, 'keydown',closeOriginalImage); - - areabg.style.visibility = 'visible'; -} - -/** - * @brief 원본 이미지 보여준 후 닫는 함수 - **/ -function closeOriginalImage(evt) { - var area = xGetElementById("fororiginalimagearea"); - if(area.style.visibility != "visible") return; - area.style.visibility = "hidden"; - xGetElementById("fororiginalimageareabg").style.visibility = "hidden"; - - var sel_list = xGetElementsByTagName("select"); - for (var i = 0; i < sel_list.length; ++i) sel_list[i].style.visibility = "visible"; - - xRemoveEventListener(area, "mousedown", closeOriginalImage); - xRemoveEventListener(window, "scroll", closeOriginalImage); - xRemoveEventListener(window, "resize", closeOriginalImage); - xRemoveEventListener(document, 'keydown',closeOriginalImage); -} - -/** - * @brief 원본 이미지 드래그 - **/ -var origDragManager = {obj:null, isDrag:false} -function origImageDragEnable(evt) { - var e = new xEvent(evt); - var obj = e.target; - if(obj.id != "fororiginalimage") return; - - obj.draggable = true; - obj.startX = e.pageX; - obj.startY = e.pageY; - - if(!origDragManager.isDrag) { - origDragManager.isDrag = true; - xAddEventListener(document, "mousemove", origImageDragMouseMove, false); - } - - xAddEventListener(document, "mousedown", origImageDragMouseDown, false); -} - -function origImageDrag(obj, px, py) { - var x = px - obj.startX; - var y = py - obj.startY; - - var areabg = xGetElementById("fororiginalimageareabg"); - xLeft(areabg, xLeft(areabg)+x); - xTop(areabg, xTop(areabg)+y); - - obj.startX = px; - obj.startY = py; -} - -function origImageDragMouseDown(evt) { - var e = new xEvent(evt); - var obj = e.target; - if(obj.id != "fororiginalimage" || !obj.draggable) return; - - if(obj) { - xPreventDefault(evt); - obj.startX = e.pageX; - obj.startY = e.pageY; - origDragManager.obj = obj; - xAddEventListener(document, 'mouseup', origImageDragMouseUp, false); - origImageDrag(obj, e.pageX, e.pageY); - } -} - -function origImageDragMouseUp(evt) { - if(origDragManager.obj) { - xPreventDefault(evt); - xRemoveEventListener(document, 'mouseup', origImageDragMouseUp, false); - xRemoveEventListener(document, 'mousemove', origImageDragMouseMove, false); - xRemoveEventListener(document, 'mousemdown', origImageDragMouseDown, false); - origDragManager.obj.draggable = false; - origDragManager.obj = null; - origDragManager.isDrag = false; - } -} - -function origImageDragMouseMove(evt) { - var e = new xEvent(evt); - var obj = e.target; - if(!obj) return; - if(obj.id != "fororiginalimage") { - xPreventDefault(evt); - xRemoveEventListener(document, 'mouseup', origImageDragMouseUp, false); - xRemoveEventListener(document, 'mousemove', origImageDragMouseMove, false); - xRemoveEventListener(document, 'mousemdown', origImageDragMouseDown, false); - origDragManager.obj.draggable = false; - origDragManager.obj = null; - origDragManager.isDrag = false; - return; - } - - xPreventDefault(evt); - origDragManager.obj = obj; - xAddEventListener(document, 'mouseup', origImageDragMouseUp, false); - origImageDrag(obj, e.pageX, e.pageY); -} - /** * @brief 이름, 게시글등을 클릭하였을 경우 팝업 메뉴를 보여주는 함수 **/ diff --git a/common/tpl/images/original_image_box_close.gif b/common/tpl/images/original_image_box_close.gif deleted file mode 100644 index b15b3b2dbe1904a0b463f5371d0abe391711c7aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 610 zcmZ?wbhEHbG-BXkc;>w*O z^JH)G#kEuZ{QA)nq~8&0*c_z)@zM1YT?v1G{d|0Q?d3%c=cX5)=uYekGy47G`+*Ag z3tJXkTs5IL-0=6$?-y20Xbm#>^Yih|Nj|=0#N+P!pOkj z!Jq?jEGSMG*!MShG&Q$0$x60%c6ImkHmP#6+4N1B+M}j!#>nA3ZQe9n7b#XbJFfXF znq{P09N1V`I4qa9xNmd!*wMOu>z?h~nvAq`Oq(Q>RM(cl?4O1se21}iB HV6X-NjQ!T1 diff --git a/modules/comment/comment.item.php b/modules/comment/comment.item.php index b1229de0d..01e6260f4 100644 --- a/modules/comment/comment.item.php +++ b/modules/comment/comment.item.php @@ -171,7 +171,7 @@ $content = $this->get('content'); // url에 대해서 정규표현식으로 치환 - $content = preg_replace('!([^>^"^\'^=])(http|https|ftp|mms):\/\/([^ ^<^"^\']*)!is','$1$2://$3',' '.$content); + //$content = preg_replace('!([^>^"^\'^=])(http|https|ftp|mms):\/\/([^ ^<^"^\']*)!is','$1$2://$3',' '.$content); // 이 댓글을... 팝업메뉴를 출력할 경우 if($add_popup_menu && Context::get('is_logged') ) { diff --git a/modules/document/document.item.php b/modules/document/document.item.php index 6245fc6c1..605a8d6df 100644 --- a/modules/document/document.item.php +++ b/modules/document/document.item.php @@ -246,7 +246,7 @@ $content = $this->get('content'); // url에 대해서 정규표현식으로 치환 - $content = preg_replace('!([^>^"^\'^=])(http|https|ftp|mms):\/\/([^ ^<^"^\']*)!is','$1$2://$3',' '.$content); + //$content = preg_replace('!([^>^"^\'^=])(http|https|ftp|mms):\/\/([^ ^<^"^\']*)!is','$1$2://$3',' '.$content); // 이 게시글을... 팝업메뉴를 출력할 경우 if($add_popup_menu) {