|
|
|
02. 단어 차단(block_word) 애드온 동작부분 작성하기 (current)
|
sol |
2010.11.25 12:59:57 |
|
|
|
복원
<div class="eArea xe_content xe_dr_index"><ul class="toc"><li class="toc3"><a href="#h1250229852130">block_word.addon.php 작성하기</a></li><li class="toc3"><a href="#h1250229836770">block_word.js 작성하기</a></li></ul></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250229852130">block_word.addon.php 작성하기</h3></div><div class="eArea xe_content xe_dr_txt"><p>block_word 애드온 회면 출력 단계에서 지정한 단어를 '***' 로 변경해 주면 되기 때문에 XE에서 애드온의 4가지의 호출순서에서 맨 마지막인 before_display_content 에서 호출 합니다.<br></p><p>block_word.addon.php
가 하는 일은 앞에서 info.xml에서 extra_vars에 등록한 word를 받아 XE의 Request 방법인 GET/POST(HTML), XMLRPC, JSON 중 GET/POST(HTML) 일
경우에만 block_word.js 파일을 로드를 하고 block_word.js에서 치환하는 작업을 합니다.</p><p>그리고 info.xml의 extra_vars에 등록한 work에 사용자가 등록한 값은 block_word.addon.php에서 $addon_info->word 변수 값으로 들어 옵니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p><?php<br> if(!defined("__ZBXE__")) exit();<br><br> /** <br> * @file block_word.addon.php<br> * @author sol (sol@ngleader.com)<br> * @brief 단어 차단 애드온<br> **/<br><br> if($called_position == '<span style="font-weight: bold;">after_module_proc</span>' && !in_array(Context::getResponseMethod(),array('<span style="font-weight: bold;">XMLRPC</span>','<span style="font-weight: bold;">JSON</span>')) {<br></p><p> <span style="background-color: rgb(225, 225, 225);">// info.xml의 extra_vars에서 등록한 word를 변수명으로 관리자가 등록한 값을 받아 정리</span></p><p><br> $words = explode(',',<span style="font-weight: bold;">$addon_info->word</span>);<br> $block_words = array();<br><br> for($i=0,$c=count($words);$i<$c;$i++){<br> $words[$i] = trim($words[$i]);<br><br> if(strlen($words[$i])>0) $block_words[] = $words[$i];<br> }<br></p><p> <span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">// 등록한 단어가 있을시에만 javascript 로드</span></span><br> if(count($block_words)>0){</p><p> <span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">// <head></head> 사이에 등록</span></span><br> $js = "<script type=\"text/javascript\">//<![CDATA[\nvar addon_block_word='" . join("|",$block_words) ."';\n//]]></script>";<br> Context::addHtmlHeader($js);</p><p> <span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">// block_word.js 로드</span></span><br> Context::addJsFile('./addons/block_word/block_word.js');<br> }<br> }<br>?><br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250229836770">block_word.js 작성하기</h3></div><div class="eArea xe_content xe_dr_txt"><p>실제 관리자가 설정한 단어를 ***로 치환 합니다. block_word.addon.php에서 선언한 javascript 변수 addon_block_word를 가져와 jQuery로 node 중 css의 class가 xe_content인 $(".xe_content")로 정규식을 이용해 치환합니다.</p></div><div class="eArea xe_content xe_dr_txt"><p>(function($){ <br>$(function(){<br> if(<span style="font-weight: bold;">addon_block_word</span>.length > 0){<br> var blocked=$(".xe_content").html().replace(new RegExp(addon_block_word,'g'),'***');<br> $(".xe_content").html(blocked);<br> }<br>});<br>})(jQuery);<br></p></div><div class="eArea xe_content xe_dr_txt"><p><span style="color: rgb(255, 0, 0);">*</span><span style="font-weight: bold;"> class="xe_content"</span> : XE에서 게시판글, 댓글 등의 content를 출력하는 부분입니다<br>
<span style="color: rgb(255, 0, 0);">*</span> <span style="font-weight: bold;">$(".xe_content")</span> : class가 xe_content인 node의 jQuery 객체</p></div>
|
sol |
2009.08.20 08:26:02 |
|
|
|
복원
<div class="eArea xe_content xe_dr_index"><ul class="toc"><li class="toc3"><a href="#h1250229852130">block_word.addon.php 작성하기</a></li><li class="toc3"><a href="#h1250229836770">block_word.js 작성하기</a></li></ul></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250229852130">block_word.addon.php 작성하기</h3></div><div class="eArea xe_content xe_dr_txt"><p>block_word 애드온 회면 출력 단계에서 지정한 단어를 '***' 로 변경해 주면 되기 때문에 XE에서 애드온의 4가지의 호출순서에서 맨 마지막인 before_display_content 에서 호출 합니다.<br></p><p>block_word.addon.php
가 하는 일은 앞에서 info.xml에서 extra_vars에 등록한 word를 받아 XE의 Request 방법인 GET/POST(HTML), XMLRPC, JSON 중 GET/POST(HTML) 일
경우에만 block_word.js 파일을 로드를 하고 block_word.js에서 치환하는 작업을 합니다.</p><p>그리고 extra_vars에 등록한 work에 사용자가 등록한 값은 block_word.addon.php에서 $addon_info->word 변수 값으로 들어 옵니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p><?php<br> if(!defined("__ZBXE__")) exit();<br><br> /** <br> * @file block_word.addon.php<br> * @author sol (sol@ngleader.com)<br> * @brief 단어 차단 애드온<br> **/<br><br> if($called_position == '<span style="font-weight: bold;">after_module_proc</span>' && !in_array(Context::getResponseMethod(),array('<span style="font-weight: bold;">XMLRPC</span>','<span style="font-weight: bold;">JSON</span>')) {<br></p><p> <span style="background-color: rgb(225, 225, 225);">// info.xml의 extra_vars에서 등록한 word를 변수명으로 관리자가 등록한 값을 받아 정리</span></p><p><br> $words = explode(',',<span style="font-weight: bold;">$addon_info->word</span>);<br> $block_words = array();<br><br> for($i=0,$c=count($words);$i<$c;$i++){<br> $words[$i] = trim($words[$i]);<br><br> if(strlen($words[$i])>0) $block_words[] = $words[$i];<br> }<br></p><p> <span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">// 등록한 단어가 있을시에만 javascript 로드</span></span><br> if(count($block_words)>0){</p><p> <span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">// <head></head> 사이에 등록</span></span><br> $js = "<script type=\"text/javascript\">//<![CDATA[\nvar addon_block_word='" . join("|",$block_words) ."';\n//]]></script>";<br> Context::addHtmlHeader($js);</p><p> <span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">// block_word.js 로드</span></span><br> Context::addJsFile('./addons/block_word/block_word.js');<br> }<br> }<br>?><br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250229836770">block_word.js 작성하기</h3></div><div class="eArea xe_content xe_dr_txt"><p>실제 관리자가 설정한 단어를 ***로 치환 합니다. block_word.addon.php에서 선언한 javascript 변수 addon_block_word를 가져와 jQuery로 node 중 css의 class가 xe_content인 $(".xe_content")로 정규식을 이용해 치환합니다.</p><p><span style="color: rgb(255, 0, 0); ">*</span> .xe_content (node 중 css의 class가 xe_content) 는 XE에서 게시물/댓글 등 콘텐트를 출력하는 node입니다.</p></div><div class="eArea xe_content xe_dr_txt"><p>(function($){ <br>$(function(){<br> if(<span style="font-weight: bold;">addon_block_word</span>.length > 0){<br> var blocked=$(".xe_content").html().replace(new RegExp(addon_block_word,'g'),'***');<br> $(".xe_content").html(blocked);<br> }<br>});<br>})(jQuery);<br></p></div><div class="eArea xe_content xe_dr_txt"><p><span style="color: rgb(255, 0, 0);">*</span><span style="font-weight: bold;"> class="xe_content"</span> : XE에서 게시판글, 댓글 등의 content를 출력하는 부분입니다<br>
<span style="color: rgb(255, 0, 0);">*</span> <span style="font-weight: bold;">$(".xe_content")</span> : class가 xe_content인 node의 jQuery 객체</p></div>
|
sol |
2009.08.20 08:25:01 |
|
|
|
복원
<div class="eArea xe_content xe_dr_index"><ul class="toc"><li class="toc3"><a href="#h1250229852130">block_word.addon.php 작성하기</a></li><li class="toc3"><a href="#h1250229836770">block_word.js 작성하기</a></li></ul></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250229852130">block_word.addon.php 작성하기</h3></div><div class="eArea xe_content xe_dr_txt"><p>block_word 애드온 회면 출력 단계에서 지정한 단어를 '***' 로 변경해 주면 되기 때문에 XE에서 애드온의 4가지의 호출순서에서 맨 마지막인 before_display_content 에서 호출 하도록 합니다. <br></p><p>block_word.addon.php
가 하는 일은 앞에서 info.xml에서 extra_vars에 등록한 word를 받아 XE의 Request 방법인 GET/POST(HTML), XMLRPC, JSON 중 GET/POST(HTML) 일
경우에만 block_word.js 파일을 로드를 하고 block_word.js에서 치환하는 작업을 합니다.</p><p>그리고 extra_vars에 등록한 work에 사용자가 등록한 값은 block_word.addon.php에서 $addon_info->word 변수 값으로 들어 옵니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p><?php<br> if(!defined("__ZBXE__")) exit();<br><br> /** <br> * @file block_word.addon.php<br> * @author sol (sol@ngleader.com)<br> * @brief 단어 차단 애드온<br> **/<br><br> if($called_position == '<span style="font-weight: bold;">after_module_proc</span>' && !in_array(Context::getResponseMethod(),array('<span style="font-weight: bold;">XMLRPC</span>','<span style="font-weight: bold;">JSON</span>')) {<br></p><p> <span style="background-color: rgb(225, 225, 225);">// info.xml의 extra_vars에서 등록한 word를 변수명으로 관리자가 등록한 값을 받아 정리</span></p><p><br> $words = explode(',',<span style="font-weight: bold;">$addon_info->word</span>);<br> $block_words = array();<br><br> for($i=0,$c=count($words);$i<$c;$i++){<br> $words[$i] = trim($words[$i]);<br><br> if(strlen($words[$i])>0) $block_words[] = $words[$i];<br> }<br></p><p> <span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">// 등록한 단어가 있을시에만 javascript 로드</span></span><br> if(count($block_words)>0){</p><p> <span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">// <head></head> 사이에 등록</span></span><br> $js = "<script type=\"text/javascript\">//<![CDATA[\nvar addon_block_word='" . join("|",$block_words) ."';\n//]]></script>";<br> Context::addHtmlHeader($js);</p><p> <span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">// block_word.js 로드</span></span><br> Context::addJsFile('./addons/block_word/block_word.js');<br> }<br> }<br>?><br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250229836770">block_word.js 작성하기</h3></div><div class="eArea xe_content xe_dr_txt"><p>실제 관리자가 설정한 단어를 ***로 치환 합니다. block_word.addon.php에서 선언한 javascript 변수 addon_block_word를 가져와 jQuery로 node 중 css의 class가 xe_content인 $(".xe_content")로 정규식을 이용해 치환합니다.</p><p><span style="color: rgb(255, 0, 0); ">*</span> .xe_content (node 중 css의 class가 xe_content) 는 XE에서 게시물/댓글 등 콘텐트를 출력하는 node입니다.</p></div><div class="eArea xe_content xe_dr_txt"><p>(function($){ <br>$(function(){<br> if(<span style="font-weight: bold;">addon_block_word</span>.length > 0){<br> var blocked=$(".xe_content").html().replace(new RegExp(addon_block_word,'g'),'***');<br> $(".xe_content").html(blocked);<br> }<br>});<br>})(jQuery);<br></p></div><div class="eArea xe_content xe_dr_txt"><p><span style="color: rgb(255, 0, 0);">*</span><span style="font-weight: bold;"> class="xe_content"</span> : XE에서 게시판글, 댓글 등의 content를 출력하는 부분입니다<br>
<span style="color: rgb(255, 0, 0);">*</span> <span style="font-weight: bold;">$(".xe_content")</span> : class가 xe_content인 node의 jQuery 객체</p></div>
|
sol |
2009.08.20 08:22:32 |
|
|
|
복원
<div class="eArea xe_content xe_dr_index"><ul class="toc"><li class="toc3"><a href="#h1250229852130">block_word.addon.php 작성하기</a></li><li class="toc3"><a href="#h1250229836770">block_word.js 작성하기</a></li></ul></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250229852130">block_word.addon.php 작성하기</h3></div><div class="eArea xe_content xe_dr_txt"><p>block_word 애드온 회면 출력 단계에서 지정한 단어를 '***' 로 변경해 주면 되기 때문에 XE에서 애드온의 4가지의 호출순서에서 맨 마지막인 before_display_content 에서 호출 하도록 합니다. <br></p><p>block_word.addon.php
가 하는 일은 앞에서 info.xml에서 extra_vars에 등록한 word를 받아 XE의 Request 방법인 GET/POST(HTML), XMLRPC, JSON 중 GET/POST(HTML) 일
경우에만 block_word.js 파일을 로드를 하고 block_word.js에서 치환하는 작업을 합니다.</p><p>그리거 extra_vars에 등록한 work에 사용자가 등록한 값은 block_word.addon.php에서 $addon_info->word 변수 값으로 들어 옵니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p><?php<br> if(!defined("__ZBXE__")) exit();<br><br> /** <br> * @file block_word.addon.php<br> * @author sol (sol@ngleader.com)<br> * @brief 단어 차단 애드온<br> **/<br><br> if($called_position == '<span style="font-weight: bold;">after_module_proc</span>' && !in_array(Context::getResponseMethod(),array('<span style="font-weight: bold;">XMLRPC</span>','<span style="font-weight: bold;">JSON</span>')) {<br></p><p> <span style="background-color: rgb(225, 225, 225);">// info.xml의 extra_vars에서 등록한 word를 변수명으로 관리자가 등록한 값을 받아 정리</span></p><p><br> $words = explode(',',<span style="font-weight: bold;">$addon_info->word</span>);<br> $block_words = array();<br><br> for($i=0,$c=count($words);$i<$c;$i++){<br> $words[$i] = trim($words[$i]);<br><br> if(strlen($words[$i])>0) $block_words[] = $words[$i];<br> }<br></p><p> <span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">// 등록한 단어가 있을시에만 javascript 로드</span></span><br> if(count($block_words)>0){</p><p> <span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">// <head></head> 사이에 등록</span></span><br> $js = "<script type=\"text/javascript\">//<![CDATA[\nvar addon_block_word='" . join("|",$block_words) ."';\n//]]></script>";<br> Context::addHtmlHeader($js);</p><p> <span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">// block_word.js 로드</span></span><br> Context::addJsFile('./addons/block_word/block_word.js');<br> }<br> }<br>?><br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250229836770">block_word.js 작성하기</h3></div><div class="eArea xe_content xe_dr_txt"><p>실제 관리자가 설정한 단어를 ***로 치환 합니다. block_word.addon.php에서 선언한 javascript 변수 addon_block_word를 가져와 $(".xe_content") 부분을 정규식을 이용해 치환합니다.</p></div><div class="eArea xe_content xe_dr_txt"><p>(function($){ <br>$(function(){<br> if(<span style="font-weight: bold;">addon_block_word</span>.length > 0){<br> var blocked=$(".xe_content").html().replace(new RegExp(addon_block_word,'g'),'***');<br> $(".xe_content").html(blocked);<br> }<br>});<br>})(jQuery);<br></p></div><div class="eArea xe_content xe_dr_txt"><p><span style="color: rgb(255, 0, 0);">*</span><span style="font-weight: bold;"> class="xe_content"</span> : XE에서 게시판글, 댓글 등의 content를 출력하는 부분입니다<br>
<span style="color: rgb(255, 0, 0);">*</span> <span style="font-weight: bold;">$(".xe_content")</span> : class가 xe_content인 node의 jQuery 객체</p></div>
|
sol |
2009.08.17 10:46:50 |
|
|
|
복원
<div class="eArea xe_content xe_dr_index"><ul class="toc"><li class="toc3"><a href="#h1250229852130">block_word.addon.php 작성하기</a></li><li class="toc3"><a href="#h1250229836770">block_word.js 작성하기</a></li></ul></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250229852130">block_word.addon.php 작성하기</h3></div><div class="eArea xe_content xe_dr_txt"><p>block_word 애드온 회면 출력 단계에서 지정한 단어를 '***' 로 변경해 주면 되기 때문에 XE에서 애드온의 4가지의 호출순서에서 맨 마지막인 before_display_content 에서 호출 하도록 합니다. <br></p><p>block_word.addon.php
가 하는 일은 앞에서 info.xml에서 extra_vars에 등록한 word를 받아 XE의 Request 방법인 GET/POST(HTML), XMLRPC, JSON 중 GET/POST(HTML) 일
경우에만 block_word.js 파일을 로드를 하고 block_word.js에서 치환하는 작업을 합니다.</p><p>그리거 extra_vars에 등록한 work에 사용자가 등록한 값은 block_word.addon.php에서 $addon_info->word 변수 값으로 들어 옵니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p><?php<br> if(!defined("__ZBXE__")) exit();<br><br> /** <br> * @file block_word.addon.php<br> * @author sol (sol@ngleader.com)<br> * @brief 단어 차단 애드온<br> **/<br><br> if($called_position == '<span style="font-weight: bold;">after_module_proc</span>' && !in_array(Context::getResponseMethod(),array('<span style="font-weight: bold;">XMLRPC</span>','<span style="font-weight: bold;">JSON</span>')) {<br></p><p> <span style="background-color: rgb(225, 225, 225);">// info.xml의 extra_vars에서 등록한 word를 변수명으로 관리자가 등록한 값을 받아 정리</span></p><p><br> $words = explode(',',<span style="font-weight: bold;">$addon_info->word</span>);<br> $block_words = array();<br><br> for($i=0,$c=count($words);$i<$c;$i++){<br> $words[$i] = trim($words[$i]);<br><br> if(strlen($words[$i])>0) $block_words[] = $words[$i];<br> }<br></p><p> <span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">// 등록한 단어가 있을시에만 javascript 로드</span></span><br> if(count($block_words)>0){</p><p> <span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">// <head></head> 사이에 등록</span></span><br> $js = "<script type=\"text/javascript\">//<![CDATA[\nvar addon_block_word='" . join("|",$block_words) ."';\n//]]></script>";<br> Context::addHtmlHeader($js);</p><p> <span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">// block_word.js 로드</span></span><br> Context::addJsFile('./addons/block_word/block_word.js');<br> }<br> }<br>?><br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250229836770">block_word.js 작성하기</h3></div><div class="eArea xe_content xe_dr_txt"><p>실제 관리자가 설정한 단어를 ***로 치환 합니다. block_word.addon.php에서 선언한 javascript 변수 addon_block_word를 가져와 $(".xe_content") 부분을 정규식을 이용해 치환합니다.</p></div><div class="eArea xe_content xe_dr_txt"><p>(function($){ <br>$(function(){<br> if(<span style="font-weight: bold;">addon_block_word</span>.length > 0){<br> var blocked=$(".xe_content").html().replace(new RegExp(addon_block_word),'***');<br> $(".xe_content").html(blocked);<br> }<br>});<br>})(jQuery);<br></p></div><div class="eArea xe_content xe_dr_txt"><p><span style="color: rgb(255, 0, 0);">*</span><span style="font-weight: bold;"> class="xe_content"</span> : XE에서 게시판글, 댓글 등의 content를 출력하는 부분입니다<br>
<span style="color: rgb(255, 0, 0);">*</span> <span style="font-weight: bold;">$(".xe_content")</span> : class가 xe_content인 node의 jQuery 객체</p></div>
|
sol |
2009.08.17 10:45:57 |
|
|
|
복원
<div class="eArea xe_content xe_dr_hx"><h3 id="h1250229852130">block_word.addon.php 작성하기</h3></div><div class="eArea xe_content xe_dr_txt"><p>block_word 애드온 회면 출력 단계에서 지정한 단어를 '***' 로 변경해 주면 되기 때문에 XE에서 애드온의 4가지의 호출순서에서 맨 마지막인 before_display_content 에서 호출 하도록 합니다. <br></p><p>block_word.addon.php
가 하는 일은 앞에서 info.xml에서 extra_vars에 등록한 word를 받아 XE의 Request 방법인 GET/POST(HTML), XMLRPC, JSON 중 GET/POST(HTML) 일
경우에만 block_word.js 파일을 로드를 하고 block_word.js에서 치환하는 작업을 합니다.</p><p>그리거 extra_vars에 등록한 work에 사용자가 등록한 값은 block_word.addon.php에서 $addon_info->word 변수 값으로 들어 옵니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p><?php<br> if(!defined("__ZBXE__")) exit();<br><br> /** <br> * @file block_word.addon.php<br> * @author sol (sol@ngleader.com)<br> * @brief 단어 차단 애드온<br> **/<br><br> if($called_position == '<span style="font-weight: bold;">after_module_proc</span>' && !in_array(Context::getResponseMethod(),array('<span style="font-weight: bold;">XMLRPC</span>','<span style="font-weight: bold;">JSON</span>')) {<br></p><p> <span style="background-color: rgb(225, 225, 225);">// info.xml의 extra_vars에서 등록한 word를 변수명으로 관리자가 등록한 값을 받아 정리</span></p><p><br> $words = explode(',',<span style="font-weight: bold;">$addon_info->word</span>);<br> $block_words = array();<br><br> for($i=0,$c=count($words);$i<$c;$i++){<br> $words[$i] = trim($words[$i]);<br><br> if(strlen($words[$i])>0) $block_words[] = $words[$i];<br> }<br></p><p> <span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">// 등록한 단어가 있을시에만 javascript 로드</span></span><br> if(count($block_words)>0){</p><p> <span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">// <head></head> 사이에 등록</span></span><br> $js = "<script type=\"text/javascript\">//<![CDATA[\nvar addon_block_word='" . join("|",$block_words) ."';\n//]]></script>";<br> Context::addHtmlHeader($js);</p><p> <span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">// block_word.js 로드</span></span><br> Context::addJsFile('./addons/block_word/block_word.js');<br> }<br> }<br>?><br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250229836770">block_word.js 작성하기</h3></div><div class="eArea xe_content xe_dr_txt"><p>실제 관리자가 설정한 단어를 ***로 치환 합니다. block_word.addon.php에서 선언한 javascript 변수 addon_block_word를 가져와 $(".xe_content") 부분을 정규식을 이용해 치환합니다.</p></div><div class="eArea xe_content xe_dr_txt"><p>(function($){ <br>$(function(){<br> if(<span style="font-weight: bold;">addon_block_word</span>.length > 0){<br> var blocked=$(".xe_content").html().replace(new RegExp(addon_block_word),'***');<br> $(".xe_content").html(blocked);<br> }<br>});<br>})(jQuery);<br></p></div><div class="eArea xe_content xe_dr_txt"><p><span style="color: rgb(255, 0, 0);">*</span><span style="font-weight: bold;"> class="xe_content"</span> : XE에서 게시판글, 댓글 등의 content를 출력하는 부분입니다<br>
<span style="color: rgb(255, 0, 0);">*</span> <span style="font-weight: bold;">$(".xe_content")</span> : class가 xe_content인 node의 jQuery 객체</p></div>
|
sol |
2009.08.14 18:49:49 |
|
|
|
복원
<div class="eArea xe_content xe_dr_hx"><h3 id="h1250229852130">block_word.addon.php 작성하기</h3></div><div class="eArea xe_content xe_dr_txt"><p>block_word 애드온 회면 출력 단계에서 지정한 단어를 '***' 로 변경해 주면 되기 때문에 XE에서 애드온의 4가지의 호출순서에서 맨 마지막인 before_display_content 에서 호출 하도록 합니다. <br></p><p>block_word.addon.php
가 하는 일은 앞에서 info.xml에서 extra_vars에 등록한 word를 받아 XE의 Request 방법인 GET/POST(HTML), XMLRPC, JSON 중 GET/POST(HTML) 일
경우에만 block_word.js 파일을 로드를 하고 block_word.js에서 치환하는 작업을 합니다.</p><p>extra_vars에 등록한 work에 사용자가 등록한 값은 block_word.addon.php에서 $addon_info->word 변수 값으로 들어 옵니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p><?php<br> if(!defined("__ZBXE__")) exit();<br><br> /** <br> * @file block_word.addon.php<br> * @author sol (sol@ngleader.com)<br> * @brief 단어 차단 애드온<br> **/<br><br> if($called_position == '<span style="font-weight: bold;">after_module_proc</span>' && !in_array(Context::getResponseMethod(),array('<span style="font-weight: bold;">XMLRPC</span>','<span style="font-weight: bold;">JSON</span>')) {<br></p><p> <span style="background-color: rgb(225, 225, 225);">// info.xml의 extra_vars에서 등록한 word를 변수명으로 관리자가 등록한 값을 받아 정리</span></p><p><br> $words = explode(',',<span style="font-weight: bold;">$addon_info->word</span>);<br> $block_words = array();<br><br> for($i=0,$c=count($words);$i<$c;$i++){<br> $words[$i] = trim($words[$i]);<br><br> if(strlen($words[$i])>0) $block_words[] = $words[$i];<br> }<br></p><p> <span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">// 등록한 단어가 있을시에만 javascript 로드</span></span><br> if(count($block_words)>0){</p><p> <span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">// <head></head> 사이에 등록</span></span><br> $js = "<script type=\"text/javascript\">//<![CDATA[\nvar addon_block_word='" . join("|",$block_words) ."';\n//]]></script>";<br> Context::addHtmlHeader($js);</p><p> <span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">// block_word.js 로드</span></span><br> Context::addJsFile('./addons/block_word/block_word.js');<br> }<br> }<br>?><br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250229836770">block_word.js 작성하기</h3></div><div class="eArea xe_content xe_dr_txt"><p>실제 관리자가 설정한 단어를 ***로 치환 합니다. block_word.addon.php에서 선언한 javascript 변수 addon_block_word를 가져와 $(".xe_content") 부분을 정규식을 이용해 치환합니다.</p></div><div class="eArea xe_content xe_dr_txt"><p>(function($){ <br>$(function(){<br> if(<span style="font-weight: bold;">addon_block_word</span>.length > 0){<br> var blocked=$(".xe_content").html().replace(new RegExp(addon_block_word),'***');<br> $(".xe_content").html(blocked);<br> }<br>});<br>})(jQuery);<br></p></div><div class="eArea xe_content xe_dr_txt"><p><span style="color: rgb(255, 0, 0);">*</span><span style="font-weight: bold;"> class="xe_content"</span> : XE에서 게시판글, 댓글 등의 content를 출력하는 부분입니다<br>
<span style="color: rgb(255, 0, 0);">*</span> <span style="font-weight: bold;">$(".xe_content")</span> : class가 xe_content인 node의 jQuery 객체</p></div>
|
sol |
2009.08.14 15:38:26 |
|
|
|
복원
<div class="eArea xe_content xe_dr_hx"><h3 id="h1250229852130">block_word.addon.php 작성하기</h3></div><div class="eArea xe_content xe_dr_txt"><p>block_word 애드온 회면 출력 단계에서 지정한 단어를 '***' 로 변경해 주면 되기 때문에 XE에서 애드온의 4가지의 호출순서에서 맨 마지막인 before_display_content 에서 호출 하도록 합니다. <br></p><p>block_word.addon.php
가 하는 일은 앞에서 info.xml에서 extra_vars에 등록한 word를 받아 XE의 Request 방법인 GET/POST(HTML), XMLRPC, JSON 중 GET/POST(HTML) 일
경우에만 block_word.js 파일을 로드를 하고 block_word.js에서 치환하는 작업을 합니다.</p><p>extra_vars에 등록한 work에 사용자가 등록한 값은 block_word.addon.php에서 $addon_info->word 변수 값으로 들어 옵니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p><?php<br> if(!defined("__ZBXE__")) exit();<br><br> /** <br> * @file block_word.addon.php<br> * @author sol (sol@ngleader.com)<br> * @brief 단어 차단 애드온<br> **/<br><br> if($called_position == '<span style="font-weight: bold;">after_module_proc</span>' && !in_array(Context::getResponseMethod(),array('<span style="font-weight: bold;">XMLRPC</span>','<span style="font-weight: bold;">JSON</span>')) {<br></p><p> // info.xml의 extra_vars에서 등록한 word를 변수명으로 관리자가 등록한 값을 받아 정리<br> $words = explode(',',<span style="font-weight: bold;">$addon_info->word</span>);<br> $block_words = array();<br><br> for($i=0,$c=count($words);$i<$c;$i++){<br> $words[$i] = trim($words[$i]);<br><br> if(strlen($words[$i])>0) $block_words[] = $words[$i];<br> }<br></p><p> // 등록한 단어가 있을시에만 javascript 로드<br> if(count($block_words)>0){</p><p> // <head></head> 사이에 등록<br> $js = "<script type=\"text/javascript\">//<![CDATA[\nvar addon_block_word='" . join("|",$block_words) ."';\n//]]></script>";<br> Context::addHtmlHeader($js);</p><p> // block_word.js 로드<br> Context::addJsFile('./addons/block_word/block_word.js');<br> }<br> }<br>?><br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250229836770">block_word.js 작성하기</h3></div><div class="eArea xe_content xe_dr_txt"><p>실제 관리자가 설정한 단어를 ***로 치환 합니다. block_word.addon.php에서 선언한 javascript 변수 addon_block_word를 가져와 $(".xe_content") 부분을 정규식을 이용해 치환합니다.</p></div><div class="eArea xe_content xe_dr_txt"><p>(function($){ <br>$(function(){<br> if(<span style="font-weight: bold;">addon_block_word</span>.length > 0){<br> var blocked=$(".xe_content").html().replace(new RegExp(addon_block_word),'***');<br> $(".xe_content").html(blocked);<br> }<br>});<br>})(jQuery);<br></p></div><div class="eArea xe_content xe_dr_txt"><p><span style="color: rgb(255, 0, 0);">*</span><span style="font-weight: bold;"> class="xe_content"</span> : XE에서 게시판글, 댓글 등의 content를 출력하는 부분입니다<br>
<span style="color: rgb(255, 0, 0);">*</span> <span style="font-weight: bold;">$(".xe_content")</span> : class가 xe_content인 node의 jQuery 객체</p></div>
|
sol |
2009.08.14 15:36:22 |
|
|
|
복원
<div class="eArea xe_content xe_dr_hx"><h3 id="h1250229852130">block_word.addon.php 작성하기</h3></div><div class="eArea xe_content xe_dr_txt"><p>block_word 애드온 회면 출력 단계에서 지정한 단어를 '***' 로 변경해 주면 되기 때문에 XE에서 애드온의 4가지의 호출순서에서 맨 마지막인 before_display_content 에서 호출 하도록 합니다. <br></p><p>block_word.addon.php
가 하는 일은 앞에서 info.xml에서 extra_vars에 등록한 word를 받아 XE의 Request 방법인 GET/POST(HTML), XMLRPC, JSON 중 GET/POST(HTML) 일
경우에만 block_word.js 파일을 로드를 하고 block_word.js에서 치환하는 작업을 합니다.</p><p>extra_vars에 등록한 work에 사용자가 등록한 값은 block_word.addon.php에서 $addon_info->word 변수 값으로 들어 옵니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p><?php<br> if(!defined("__ZBXE__")) exit();<br><br> /** <br> * @file block_word.addon.php<br> * @author sol (sol@ngleader.com)<br> * @brief 단어 차단 애드온<br> **/<br><br> if($called_position == '<span style="font-weight: bold;">after_module_proc</span>' && !in_array(Context::getResponseMethod(),array('<span style="font-weight: bold;">XMLRPC</span>','<span style="font-weight: bold;">JSON</span>')) {<br><br> $words = explode(',',<span style="font-weight: bold;">$addon_info->word</span>);<br> $block_words = array();<br><br> for($i=0,$c=count($words);$i<$c;$i++){<br> $words[$i] = trim($words[$i]);<br><br> if(strlen($words[$i])>0) $block_words[] = $words[$i];<br> }<br><br> if(count($block_words)>0){<br> $js = "<script type=\"text/javascript\">//<![CDATA[\nvar addon_block_word='" . join("|",$block_words) ."';\n//]]></script>";<br> Context::addHtmlHeader($js);<br> Context::addJsFile('./addons/block_word/block_word.js');<br> }<br> }<br>?><br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250229836770">block_word.js 작성하기</h3></div><div class="eArea xe_content xe_dr_txt"><p>실제 관리자가 설정한 단어를 ***로 치환 합니다. block_word.addon.php에서 선언한 javascript 변수 addon_block_word를 가져와 $(".xe_content") 부분을 정규식을 이용해 치환합니다.</p></div><div class="eArea xe_content xe_dr_txt"><p>(function($){ <br>$(function(){<br> if(<span style="font-weight: bold;">addon_block_word</span>.length > 0){<br> var blocked=$(".xe_content").html().replace(new RegExp(addon_block_word),'***');<br> $(".xe_content").html(blocked);<br> }<br>});<br>})(jQuery);<br></p></div><div class="eArea xe_content xe_dr_txt"><p><span style="color: rgb(255, 0, 0);">*</span><span style="font-weight: bold;"> class="xe_content"</span> : XE에서 게시판글, 댓글 등의 content를 출력하는 부분입니다<br>
<span style="color: rgb(255, 0, 0);">*</span> <span style="font-weight: bold;">$(".xe_content")</span> : class가 xe_content인 node의 jQuery 객체</p></div>
|
sol |
2009.08.14 15:32:49 |
|
|
|
복원
<div class="eArea xe_content xe_dr_hx"><h3 id="h1250229852130">block_word.addon.php 작성하기</h3></div><div class="eArea xe_content xe_dr_txt"><p>block_word 애드온 회면 출력 단계에서 지정한 단어를 '***' 로 변경해 주면 되기 때문에 XE에서 애드온의 4가지의 호출순서에서 맨 마지막인 before_display_content 에서 호출 하도록 합니다. <br></p><p>block_word.addon.php
가 하는 일은 앞에서 info.xml에서 extra_vars에 등록한 word를 받아 XE의 Request 방법인 GET/POST(HTML), XMLRPC, JSON 중 GET/POST(HTML) 일
경우에만 block_word.js 파일을 로드를 하고 block_word.js에서 치환하는 작업을 합니다.</p><p>extra_vars에 등록한 work에 사용자가 등록한 값은 block_word.addon.php에서 $addon_info->word 변수 값으로 들어 옵니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p><?php<br> if(!defined("__ZBXE__")) exit();<br><br> /** <br> * @file block_word.addon.php<br> * @author sol (sol@ngleader.com)<br> * @brief 단어 차단 애드온<br> **/<br><br> if($called_position == 'after_module_proc' && !in_array(Context::getResponseMethod(),array('XMLRPC','JSON')) {<br><br> $words = explode(',',$addon_info->word);<br> $block_words = array();<br><br> for($i=0,$c=count($words);$i<$c;$i++){<br> $words[$i] = trim($words[$i]);<br><br> if(strlen($words[$i])>0) $block_words[] = $words[$i];<br> }<br><br> if(count($block_words)>0){<br> $js = "<script type=\"text/javascript\">//<![CDATA[\nvar addon_block_word='" . join("|",$block_words) ."';\n//]]></script>";<br> Context::addHtmlHeader($js);<br> Context::addJsFile('./addons/block_word/block_word.js');<br> }<br> }<br>?><br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250229836770">block_word.js 작성하기</h3></div>
|
sol |
2009.08.14 15:18:58 |