mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-30 08:39:58 +09:00
keyword_link addon 추가
git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5144 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
b875745d8b
commit
9086bae05a
3 changed files with 118 additions and 0 deletions
71
addons/keyword_link/conf/info.xml
Normal file
71
addons/keyword_link/conf/info.xml
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<addon version="0.2">
|
||||
<title xml:lang="ko">키워드 링크 애드온</title>
|
||||
<description xml:lang="ko">
|
||||
게시글과 댓글의 내용중 등록된 키워드에 링크를 걸어주는 애드온입니다.
|
||||
키워드는 콤마(,)로 구분하여 여러개 등록할 수 있습니다.
|
||||
먼저 등록된 키워드가 우선순위를 갖습니다.
|
||||
</description>
|
||||
<version>0.1</version>
|
||||
<date>2008-12-20</date>
|
||||
<author email_address="sol@ngleader.com" link="http://ngleader.tistory.com">
|
||||
<name xml:lang="ko">SOL</name>
|
||||
<name xml:lang="jp">SOL</name>
|
||||
<name xml:lang="en">SOL</name>
|
||||
<name xml:lang="zh-CN">SOL</name>
|
||||
<name xml:lang="es">SOL</name>
|
||||
<name xml:lang="ru">SOL</name>
|
||||
<name xml:lang="ge">SOL</name>
|
||||
<name xml:lang="zh-TW">SOL</name>
|
||||
</author>
|
||||
<extra_vars>
|
||||
<var name="cssquery">
|
||||
<title xml:lang="ko">cssquery</title>
|
||||
<description xml:lang="ko">치환할 부분의 jQuery cssquery입니다.
|
||||
xe_board 게시판 스킨이면 공백으로 두면 됩니다.</description>
|
||||
</var>
|
||||
|
||||
<var name="reg_type" type="select">
|
||||
<title xml:lang="ko">링크 방법</title>
|
||||
<description xml:lang="ko"> 키워드가 여러개 있을때 "첫번째 키워드"에만 링크를 걸 것인지 "모든 키워드"에 걸 것인지 선택합니다.
|
||||
</description>
|
||||
<options value="">
|
||||
<title xml:lang="ko">첫번째 키워드</title>
|
||||
</options>
|
||||
<options value="g">
|
||||
<title xml:lang="ko">모든 키워드</title>
|
||||
</options>
|
||||
</var>
|
||||
|
||||
<var name="keyword01">
|
||||
<title xml:lang="ko">키워드</title>
|
||||
</var>
|
||||
<var name="url01">
|
||||
<title xml:lang="ko">링크</title>
|
||||
</var>
|
||||
<var name="keyword02">
|
||||
<title xml:lang="ko">키워드</title>
|
||||
</var>
|
||||
<var name="url02">
|
||||
<title xml:lang="ko">링크</title>
|
||||
</var>
|
||||
<var name="keyword03">
|
||||
<title xml:lang="ko">키워드</title>
|
||||
</var>
|
||||
<var name="url03">
|
||||
<title xml:lang="ko">링크</title>
|
||||
</var>
|
||||
<var name="keyword04">
|
||||
<title xml:lang="ko">키워드</title>
|
||||
</var>
|
||||
<var name="url04">
|
||||
<title xml:lang="ko">링크</title>
|
||||
</var>
|
||||
<var name="keyword05">
|
||||
<title xml:lang="ko">키워드</title>
|
||||
</var>
|
||||
<var name="url05">
|
||||
<title xml:lang="ko">링크</title>
|
||||
</var>
|
||||
</extra_vars>
|
||||
</addon>
|
||||
32
addons/keyword_link/keyword_link.addon.php
Normal file
32
addons/keyword_link/keyword_link.addon.php
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
if(!defined("__ZBXE__")) exit();
|
||||
|
||||
/**
|
||||
* @file keyword_link.addon.php
|
||||
* @author sol (sol@ngleader.com)
|
||||
* @brief 키워드 링크 애드온
|
||||
**/
|
||||
if($called_position == 'after_module_proc' && Context::getResponseMethod()!="XMLRPC" && Context::getResponseMethod()!="JSON" ) {
|
||||
$json = array();
|
||||
for($i=1;$i<=5;$i++){
|
||||
$ii = sprintf("%02d",$i);
|
||||
$keyword = $addon_info->{"keyword".$ii};
|
||||
$url = $addon_info->{"url".$ii};
|
||||
if($keyword && $url){
|
||||
$arg->url = $url;
|
||||
$keyword = explode(",",$keyword);
|
||||
for($j=0,$c=count($keyword);$j<$c;$j++){
|
||||
if(trim($keyword[$j]) == "") continue;
|
||||
$arg->keyword = trim($keyword[$j]);
|
||||
$json[] = $arg;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(count($json) > 0){
|
||||
$addon_keyword_link = json_encode2($json);
|
||||
Context::addHtmlHeader("<script type=\"text/javascript\">//<![CDATA[\nvar addon_keyword_link={$addon_keyword_link};\nvar addon_keyword_link_cssquery='{$addon_info->cssquery}';\nvar addon_keyword_link_reg_type='{$addon_info->reg_type}';\n//]]></script>");
|
||||
Context::addJsFile('./addons/keyword_link/keyword_link.js');
|
||||
}
|
||||
}
|
||||
?>
|
||||
15
addons/keyword_link/keyword_link.js
Normal file
15
addons/keyword_link/keyword_link.js
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
(function($){
|
||||
$(function(){
|
||||
if(addon_keyword_link.length > 0){
|
||||
if(!addon_keyword_link_cssquery) addon_keyword_link_cssquery= 'div.contentBody > div, div.replyContent > div';
|
||||
$(addon_keyword_link_cssquery).each(function(){
|
||||
var content = $(this).html();
|
||||
for(var i=0,c=addon_keyword_link.length;i<c;i++){
|
||||
var re = new RegExp(addon_keyword_link[i].keyword + '(?! *<\/a)',addon_keyword_link_reg_type);
|
||||
content = content.replace(re,'<a href="'+addon_keyword_link[i].url+'">' + addon_keyword_link[i].keyword + '</a>');
|
||||
}
|
||||
$(this).html(content);
|
||||
});
|
||||
}
|
||||
});
|
||||
})(jQuery);
|
||||
Loading…
Add table
Add a link
Reference in a new issue