css 및 js 호출순서 조정기능 추가

git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5785 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ngleader 2009-03-06 05:33:56 +00:00
parent 4f380d9c48
commit 61851f1dfe
2149 changed files with 109090 additions and 18689 deletions

View file

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<module>
<grants />
<permissions />
<actions>
<action name="dispSpamfilterAdminConfig" type="view" admin_index="true" standalone="true" />
<action name="dispSpamfilterAdminDeniedIPList" type="view" standalone="true" />

View file

@ -16,6 +16,8 @@
$lang->limit_count = "No. of posting limitation";
$lang->check_trackback = "Check trackbacks";
$lang->word = "Word";
$lang->hit = '히트';
$lang->latest_hit = '최근 히트';
// for description word
$lang->about_interval = "All articles attempted for posting within the assigned time will be blocked.";
@ -27,6 +29,6 @@
// to post a message
$lang->msg_alert_limited_by_config = 'Posting an article within %s second is not allowed.\n If you keep trying, your IP address may be blacklisted.';
$lang->msg_alert_denied_word = 'The word "%s" is not allowed to be posted.';
$lang->msg_alert_registered_denied_ip = 'Your IP address is blacklisted,\n so you may have limitations on normal using of this site.\n If you have any questions on that matter, please contact to the site administrator.';
$lang->msg_alert_registered_denied_ip = 'Your IP address is blacklisted,\n so you may have limitations on normal using of this site.\n If you have any questions on that matter, please contact to the site administrator.';
$lang->msg_alert_trackback_denied = 'Only one trackback per an article is allowed.';
?>
?>

View file

@ -16,6 +16,8 @@
$lang->limit_count = "Número limite";
$lang->check_trackback = "Chequear trackback";
$lang->word = "Palabra";
$lang->hit = '히트';
$lang->latest_hit = '최근 히트';
// para las palabras de descripcion
$lang->about_interval = "Se bloquea el posteo de todo tipo de documentos durante el tiempo asignado.";
@ -27,6 +29,6 @@
// para registrar un documento
$lang->msg_alert_limited_by_config = 'Se prohibe poestear antes de %s segundos.\n Si Usted trata varias veces, su dirección IP puede ser agregada en la lista negra.';
$lang->msg_alert_denied_word = 'La palabra "%s" no esta permitido para ser posteado.';
$lang->msg_alert_registered_denied_ip = 'Su dirección IP fue agregaa en la lista negra,\n por lo cual Usted puede tener limitaciones en su uso normal de este sitio.\n Si Usted tiene alguna inquietud sobre el tema, por favor contactese con el administrador del sitio.';
$lang->msg_alert_registered_denied_ip = 'Su dirección IP fue agregaa en la lista negra,\n por lo cual Usted puede tener limitaciones en su uso normal de este sitio.\n Si Usted tiene alguna inquietud sobre el tema, por favor contactese con el administrador del sitio.';
$lang->msg_alert_trackback_denied = 'Sólo un trackback por documento está permitido.';
?>
?>

View file

@ -16,6 +16,8 @@
$lang->limit_count = "Limite d'affichage";
$lang->check_trackback = "Vérifier les Rétroliens";
$lang->word = "Mot";
$lang->hit = '히트';
$lang->latest_hit = '최근 히트';
// descriptions
$lang->about_interval = "L'affichage sera bloqué pendant le temps designé.";
@ -27,6 +29,6 @@
// messages
$lang->msg_alert_limited_by_config = 'L\'Affichage d\'un article en %s secondes n\'est pas permis.\n Si vous essayez encore, votre adresse IP peut être enrégistré dans la liste noire.';
$lang->msg_alert_denied_word = 'Le mot "%s" n\'est pas permis d\'afficher.';
$lang->msg_alert_registered_denied_ip = 'Your IP address is blacklisted,\n so you may have limitations on normal using of this site.\n If you have any questions on that matter, please contact to the site administrator. Votre adresse IP est dans la liste noire, \nvous pouvez donc avoir limitation d\'activité dans ce site. Si vous avez quelque question sur ce fait, contactez l\'administrateur du site, S.V.P.';
$lang->msg_alert_registered_denied_ip = 'Your IP address is blacklisted,\n so you may have limitations on normal using of this site.\n If you have any questions on that matter, please contact to the site administrator. Votre adresse IP est dans la liste noire, \nvous pouvez donc avoir limitation d\'activité dans ce site. Si vous avez quelque question sur ce fait, contactez l\'administrateur du site, S.V.P.';
$lang->msg_alert_trackback_denied = 'Un seul rétrolien par article est permis.';
?>
?>

View file

@ -16,6 +16,8 @@
$lang->limit_count = "制限数";
$lang->check_trackback = "トラックバック検査";
$lang->word = "ワード";
$lang->hit = '히트';
$lang->latest_hit = '최근 히트';
// 説明文
$lang->about_interval = "指定された時間内の書き込みが行えないようにします。";
@ -27,6 +29,6 @@
// メッセージ出力用
$lang->msg_alert_limited_by_config = '%s秒以内の書き込みは禁止されます。続けて行うとスパムとして認識され、禁止に登録されます。';
$lang->msg_alert_denied_word = '"%s"は使用が禁止されたワードです。';
$lang->msg_alert_registered_denied_ip = '禁止IPに登録され、サイト内で正常な活動が制限されています。管理者にお問い合わせください。';
$lang->msg_alert_registered_denied_ip = '禁止IPに登録され、サイト内で正常な活動が制限されています。管理者にお問い合わせください。';
$lang->msg_alert_trackback_denied = '一つの書き込みには、1つのトラックバックしか受け取れません。';
?>
?>

View file

@ -6,27 +6,29 @@
**/
// action 관련
$lang->cmd_denied_ip = "금지IP 목록";
$lang->cmd_denied_word = "금지단어 목록";
$lang->cmd_denied_ip = '금지IP 목록';
$lang->cmd_denied_word = '금지단어 목록';
// 일반 단어
$lang->spamfilter = "스팸필터";
$lang->denied_ip = "금지 IP";
$lang->interval = "스팸 처리 간격";
$lang->limit_count = "제한수";
$lang->check_trackback = "트랙백 검사";
$lang->word = "단어";
$lang->spamfilter = '스팸필터';
$lang->denied_ip = '금지 IP';
$lang->interval = '스팸 처리 간격';
$lang->limit_count = '제한수';
$lang->check_trackback = '트랙백 검사';
$lang->word = '단어';
$lang->hit = '히트';
$lang->latest_hit = '최근 히트';
// 설명문
$lang->about_interval = "지정된 시간내에 글을 등록하지 못하게 합니다";
$lang->about_limit_count = "지정된 시간내에 제한수를 넘겨서 글 작성을 시도하면 스팸으로 인식, IP를 금지 시킵니다";
$lang->about_denied_ip = "127.0.0.* 와 같이 * 로 정해진 패턴의 IP 대역을 모두 금지 시킬 수 있습니다";
$lang->about_denied_word = "금지 단어로 등록되면 해당 단어가 있는 글은 등록을 금지 시킬 수 있습니다";
$lang->about_check_trackback = "한 글에 한 IP에만 트랙백을 허용할 수 있습니다";
$lang->about_interval = '지정된 시간내에 글을 등록하지 못하게 합니다';
$lang->about_limit_count = '지정된 시간내에 제한수를 넘겨서 글 작성을 시도하면 스팸으로 인식, IP를 금지 시킵니다';
$lang->about_denied_ip = '127.0.0.* 와 같이 * 로 정해진 패턴의 IP 대역을 모두 금지 시킬 수 있습니다';
$lang->about_denied_word = '금지 단어로 등록되면 해당 단어가 있는 글은 등록을 금지 시킬 수 있습니다';
$lang->about_check_trackback = '한 글에 한 IP에만 트랙백을 허용할 수 있습니다';
// 메세지 출력용
$lang->msg_alert_limited_by_config = '%s 초 이내에 글 작성은 금지 됩니다. 계속 시도하시면 금지 IP에 등록되실 수 있습니다';
$lang->msg_alert_denied_word = '"%s"는 사용 금지된 단어입니다';
$lang->msg_alert_registered_denied_ip = '금지 IP에 등록되셔서 정상적인 활동에 제한을 받게 되셨습니다. 문의는 사이트 관리자에게 해주시기 바랍니다';
$lang->msg_alert_registered_denied_ip = '금지 IP에 등록되셔서 정상적인 활동에 제한을 받게 되셨습니다. 문의는 사이트 관리자에게 해주시기 바랍니다';
$lang->msg_alert_trackback_denied = '한 글에는 하나의 트랙백만 허용이 됩니다';
?>
?>

View file

@ -16,6 +16,8 @@
$lang->limit_count = "Лимит публикаций";
$lang->check_trackback = "Проверять трекбек";
$lang->word = "Слово";
$lang->hit = '히트';
$lang->latest_hit = '최근 히트';
// описание
$lang->about_interval = "Все попытки разместить статьи в установленное время будут заблокированы.";
@ -27,6 +29,6 @@
// для отправки сообщений
$lang->msg_alert_limited_by_config = 'Размещение статьи с интервалом в %s секунд не разрешено.\n Если Вы будете многократно пытаться это сделать, Ваш IP-адрес может быть добавлен в черный список.';
$lang->msg_alert_denied_word = 'Слово "%s" запрещено для публикации.';
$lang->msg_alert_registered_denied_ip = 'Ваш IP-адрес занесен в черный список,\n поэтому Вы можете иметь ограничения на полноценное использование этого сайта.\n Если у Вас есть вопросы насчет этого, пожалуйста, сообщите администратору сайта.';
$lang->msg_alert_registered_denied_ip = 'Ваш IP-адрес занесен в черный список,\n поэтому Вы можете иметь ограничения на полноценное использование этого сайта.\n Если у Вас есть вопросы насчет этого, пожалуйста, сообщите администратору сайта.';
$lang->msg_alert_trackback_denied = 'Разрешен только один трекбек на статью.';
?>
?>

View file

@ -1,8 +1,8 @@
<?php
/**
* @file modules/spamfilter/lang/zh-CN.lang.php
* @author zero <zero@nzeo.com>
* @brief 简体中文语言包(只收录基本内容)
* @author zero <zero@nzeo.com> 翻译guny
* @brief 垃圾过滤简体中文语言包
**/
// action 相关
@ -16,6 +16,8 @@
$lang->limit_count = "限制数";
$lang->check_trackback = "检查引用";
$lang->word = "单词";
$lang->hit = '点击';
$lang->latest_hit = '最后点击';
// 说明文
$lang->about_interval = "指定的时间内禁止发表新主题。";
@ -29,4 +31,4 @@
$lang->msg_alert_denied_word = '"%s"是敏感词!';
$lang->msg_alert_registered_denied_ip = '您的IP已被禁止详情请联系网站管理员。';
$lang->msg_alert_trackback_denied = '一个主题只允许一个引用。';
?>
?>

View file

@ -16,6 +16,8 @@
$lang->limit_count = "限制數";
$lang->check_trackback = "檢查引用";
$lang->word = "單字";
$lang->hit = '히트';
$lang->latest_hit = '최근 히트';
// 說明
$lang->about_interval = "指定的時間內禁止發表新主題。";
@ -29,4 +31,4 @@
$lang->msg_alert_denied_word = '"%s"是敏感詞!';
$lang->msg_alert_registered_denied_ip = '您的IP已被禁止詳情請聯繫網站管理員。';
$lang->msg_alert_trackback_denied = '一個主題只允許一個引用。';
?>
?>

View file

@ -0,0 +1,14 @@
<query id="updateDeniedWordHit" action="update">
<tables>
<table name="spamfilter_denied_word" />
</tables>
<columns>
<column name="hit" default="plus(1)" />
<column name="latest_hit" default="curdate()" />
</columns>
<conditions>
<condition operation="equal" column="word" var="word" notnull="notnull" />
</conditions>
</query>

View file

@ -1,4 +1,6 @@
<table name="spamfilter_denied_word">
<column name="word" type="varchar" size="250" notnull="notnull" primary_key="primary_key" />
<column name="hit" type="number" notnull="notnull" default="0" index="idx_hit" />
<column name="latest_hit" type="date" index="idx_latest_hit" />
<column name="regdate" type="date" index="idx_regdate" />
</table>

View file

@ -13,9 +13,6 @@
function moduleInstall() {
// action forward에 등록 (관리자 모드에서 사용하기 위함)
$oModuleController = &getController('module');
$oModuleController->insertActionForward('spamfilter', 'view', 'dispSpamfilterAdminConfig');
$oModuleController->insertActionForward('spamfilter', 'view', 'dispSpamfilterAdminDeniedIPList');
$oModuleController->insertActionForward('spamfilter', 'view', 'dispSpamfilterAdminDeniedWordList');
// 2007. 12. 7 글/ 댓글/ 엮인글이 등록될때 스팸필터링을 시도하는 트리거
$oModuleController->insertTrigger('document.insertDocument', 'spamfilter', 'controller', 'triggerInsertDocument', 'before');
@ -35,6 +32,7 @@
* @brief 설치가 이상이 없는지 체크하는 method
**/
function checkUpdate() {
$oDB = &DB::getInstance();
$oModuleModel = &getModel('module');
// 2007. 12. 7 글/ 댓글/ 엮인글이 등록될때 스팸필터링을 시도하는 트리거
@ -45,6 +43,13 @@
//2008-12-17 글 수정시 스펨필터 추가
if(!$oModuleModel->getTrigger('comment.updateComment', 'spamfilter', 'controller', 'triggerInsertComment', 'before')) return true;
if(!$oModuleModel->getTrigger('document.updateDocument', 'spamfilter', 'controller', 'triggerInsertDocument', 'before')) return true;
/**
* 히트 카운트 필드(hit) 추가
**/
if(!$oDB->isColumnExists('spamfilter_denied_word', 'hit')) return true;
if(!$oDB->isColumnExists('spamfilter_denied_word', 'latest_hit')) return true;
return false;
}
@ -52,15 +57,16 @@
* @brief 업데이트 실행
**/
function moduleUpdate() {
$oDB = &DB::getInstance();
$oModuleModel = &getModel('module');
$oModuleController = &getController('module');
// 2007. 12. 7 글/ 댓글/ 엮인글이 등록될때 스팸필터링을 시도하는 트리거
if(!$oModuleModel->getTrigger('document.insertDocument', 'spamfilter', 'controller', 'triggerInsertDocument', 'before'))
if(!$oModuleModel->getTrigger('document.insertDocument', 'spamfilter', 'controller', 'triggerInsertDocument', 'before'))
$oModuleController->insertTrigger('document.insertDocument', 'spamfilter', 'controller', 'triggerInsertDocument', 'before');
if(!$oModuleModel->getTrigger('comment.insertComment', 'spamfilter', 'controller', 'triggerInsertComment', 'before'))
if(!$oModuleModel->getTrigger('comment.insertComment', 'spamfilter', 'controller', 'triggerInsertComment', 'before'))
$oModuleController->insertTrigger('comment.insertComment', 'spamfilter', 'controller', 'triggerInsertComment', 'before');
if(!$oModuleModel->getTrigger('trackback.insertTrackback', 'spamfilter', 'controller', 'triggerInsertTrackback', 'before'))
if(!$oModuleModel->getTrigger('trackback.insertTrackback', 'spamfilter', 'controller', 'triggerInsertTrackback', 'before'))
$oModuleController->insertTrigger('trackback.insertTrackback', 'spamfilter', 'controller', 'triggerInsertTrackback', 'before');
//2008-12-17 글 수정시 스펨필터 추가
@ -71,6 +77,19 @@
if(!$oModuleModel->getTrigger('document.updateDocument', 'spamfilter', 'controller', 'triggerInsertDocument', 'before')){
$oModuleController->insertTrigger('document.updateDocument', 'spamfilter', 'controller', 'triggerInsertDocument', 'before');
}
/**
* 히트 카운트 필드(hit) 추가
**/
if(!$oDB->isColumnExists('spamfilter_denied_word', 'hit')) {
$oDB->addColumn('spamfilter_denied_word','hit','number',12,0,true);
$oDB->addIndex('spamfilter_denied_word','idx_hit', 'hit');
}
if(!$oDB->isColumnExists('spamfilter_denied_word', 'latest_hit')) {
$oDB->addColumn('spamfilter_denied_word','latest_hit','date');
$oDB->addIndex('spamfilter_denied_word','idx_latest_hit', 'latest_hit');
}
return new Object(0,'success_updated');
}
@ -80,4 +99,4 @@
function recompileCache() {
}
}
?>
?>

View file

@ -61,7 +61,7 @@
* @brief 등록된 금지 Word 목록을 return
**/
function getDeniedWordList() {
$args->sort_index = "regdate";
$args->sort_index = "hit";
$output = executeQuery('spamfilter.getDeniedWordList', $args);
if(!$output->data) return;
if(!is_array($output->data)) return array($output->data);
@ -78,7 +78,11 @@
$count = count($word_list);
for($i=0;$i<$count;$i++) {
$word = $word_list[$i]->word;
if(preg_match('/'.preg_quote($word,'/').'/is', $text)) return new Object(-1,sprintf(Context::getLang('msg_alert_denied_word'), $word));
if(preg_match('/'.preg_quote($word,'/').'/is', $text)) {
$args->word = $word;
$output = executeQuery('spamfilter.updateDeniedWordHit', $args);
return new Object(-1,sprintf(Context::getLang('msg_alert_denied_word'), $word));
}
}
return new Object();

View file

@ -3,11 +3,6 @@
<!--#include("header.html")-->
<!-- 스패머 정보 -->
<div class="summary">
<strong>Total</strong> <em>{count($ip_list)}</em>
</div>
<!-- xml js filter를 이용하기 위한 데이터 전달용 form -->
<form id="fo_denied_ip" action="./" method="get">
<input type="hidden" name="ipaddress" value="" />
@ -15,7 +10,7 @@
<!-- 수동 추가 -->
<form action="./" method="get" onsubmit="return procFilter(this, insert_denied_ip)">
<table cellspacing="0" class="adminTable">
<table cellspacing="0" class="rowTable">
<tr>
<th scope="row"><div>{$lang->denied_ip}</div></th>
<td>
@ -24,19 +19,20 @@
</td>
</tr>
<tr>
<td colspan="2" class="right">
<span class="button"><input type="submit" value="{$lang->cmd_registration}" accesskey="s" /></span>
</td>
<th colspan="2" class="button">
<span class="button black strong"><input type="submit" value="{$lang->cmd_registration}" accesskey="s" /></span>
</th>
</tr>
</table>
</form>
<!-- 목록 -->
<table cellspacing="0" class="adminTable">
<table cellspacing="0" class="rowTable">
<caption>Total{count($ip_list)}</caption>
<thead>
<tr>
<th scope="col"><div>{$lang->no}</div></th>
<th scope="col" class="wide"><div>{$lang->ipaddress}</div></th>
<th scope="col"><div>{$lang->ipaddress}</div></th>
<th scope="col"><div>{$lang->regdate}</div></th>
<th scope="col"><div>{$lang->cmd_delete}</div></th>
</tr>
@ -44,10 +40,10 @@
<tbody>
<!--@foreach($ip_list as $no => $val)-->
<tr class="row{$cycle_idx}">
<td class="center number">{count($ip_list)-$no}</td>
<td class="number">{$val->ipaddress}</td>
<td class="date center nowrap">{zdate($val->regdate,"Y-m-d")}</td>
<td class="delete center"><a href="#" onclick="doDeleteDeniedIP('{$val->ipaddress}');return false;">{$lang->cmd_delete}</a></td>
<td>{count($ip_list)-$no}</td>
<td class="wide">{$val->ipaddress}</td>
<td>{zdate($val->regdate,"Y-m-d")}</td>
<td><a href="#" onclick="doDeleteDeniedIP('{$val->ipaddress}');return false;" title="{$lang->cmd_delete}" class="buttonSet buttonDelete"><span>{$lang->cmd_delete}</span></a></td>
</tr>
<!--@end-->
</tbody>

View file

@ -3,11 +3,6 @@
<!--%import("filter/insert_denied_word.xml")-->
<!--%import("filter/delete_denied_word.xml")-->
<!-- 스패머 정보 -->
<div class="summary">
<strong>Total</strong> <em>{number_format($word_list)}</em>
</div>
<!-- xml js filter를 이용하기 위한 데이터 전달용 form -->
<form id="fo_denied_word" action="./" method="get">
<input type="hidden" name="word" value="" />
@ -15,7 +10,7 @@
<!-- 수동 추가 -->
<form action="./" method="get" onsubmit="return procFilter(this, insert_denied_word)">
<table cellspacing="0" class="adminTable">
<table cellspacing="0" class="rowTable">
<tr>
<th scope="row"><div>{$lang->word}</div></th>
<td>
@ -24,19 +19,22 @@
</td>
</tr>
<tr>
<td colspan="2" class="right">
<span class="button"><input type="submit" value="{$lang->cmd_registration}" accesskey="s" /></span>
</td>
<th colspan="2" class="button">
<span class="button black stron"><input type="submit" value="{$lang->cmd_registration}" accesskey="s" /></span>
</th>
</tr>
</table>
</form>
<!-- 목록 -->
<table cellspacing="0" class="adminTable">
<table cellspacing="0" class="rowTable">
<caption>Total {number_format($word_list)}</caption>
<thead>
<tr>
<th scope="col"><div>{$lang->no}</div></th>
<th scope="col" class="wide"><div>{$lang->word}</div></th>
<th scope="col"><div>{$lang->word}</div></th>
<th scope="col"><div>{$lang->hit}</div></th>
<th scope="col"><div>{$lang->latest_hit}</div></th>
<th scope="col"><div>{$lang->regdate}</div></th>
<th scope="col"><div>{$lang->cmd_delete}</div></th>
</tr>
@ -44,11 +42,13 @@
<tbody>
<!--@foreach($word_list as $no => $val)-->
<tr class="row{$cycle_idx}">
<td class="number center">{count($word_list)-$no}</td>
<td>{$val->word}</td>
<td class="number date nowrap">{zdate($val->regdate,"Y-m-d")}</td>
<td>{count($word_list)-$no}</td>
<td class="wide">{$val->word}</td>
<td>{$val->hit}</td>
<td><span title="{zdate($val->latest_hit, 'Y-m-d H:i:s')}">{zdate($val->latest_hit, 'Y-m-d')}</span></td>
<td>{zdate($val->regdate,"Y-m-d")}</td>
{@ $val->word = base64_encode($val->word);}
<td class="delete center"><a href="#" onclick="doDeleteDeniedWord('{$val->word}');return false;">{$lang->cmd_delete}</a></td>
<td><a href="#" onclick="doDeleteDeniedWord('{$val->word}');return false;" title="{$lang->cmd_delete}" class="buttonSet buttonDelete"><span>{$lang->cmd_delete}</span></a></td>
</tr>
<!--@end-->
</tbody>

View file

@ -1,6 +1,6 @@
<!--%import("js/spamfilter_admin.js")-->
<h3>{$lang->spamfilter} <span class="gray">{$lang->cmd_management}</span></h3>
<h3 class="xeAdmin">{$lang->spamfilter} <span class="gray">{$lang->cmd_management}</span></h3>
<div class="header4 gap1">
<ul class="localNavigation">

View file

@ -4,7 +4,7 @@
<form action="./" method="get" onsubmit="return procFilter(this, insert_config)">
<table cellspacing="0" class="adminTable">
<table cellspacing="0" class="rowTable">
<tr>
<th scope="col"><div>{$lang->interval}</div></th>
<td>
@ -27,9 +27,9 @@
</td>
</tr>
<tr class="row2">
<td colspan="2" class="right">
<span class="button"><input type="submit" value="{$lang->cmd_registration}" accesskey="s" /></span>
</td>
<th colspan="2" class="button">
<span class="button black strong"><input type="submit" value="{$lang->cmd_registration}" accesskey="s" /></span>
</th>
</tr>
</table>