mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-05 09:41:40 +09:00
issue 70 spamfilter UI - add script
git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@8935 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
5a1d41dd00
commit
d53eb1e448
14 changed files with 82 additions and 311 deletions
|
|
@ -20,12 +20,8 @@
|
|||
<actions>
|
||||
<action name="dispSpamfilterAdminSetting" type="view" admin_index="true" standalone="true" menu_name="spamFilter" menu_index="true" />
|
||||
|
||||
<action name="procSpamfilterAdminInsertConfig" type="controller" standalone="true" ruleset="insertConfig" />
|
||||
<action name="procSpamfilterAdminInsertDeniedIP" type="controller" standalone="true" ruleset="insertDeniedIp" />
|
||||
<action name="procSpamfilterAdminDeleteDeniedIP" type="controller" standalone="true" ruleset="deleteDeniedIp" />
|
||||
<action name="procSpamfilterAdminInsertDeniedWord" type="controller" standalone="true" ruleset="insertDeniedWord" />
|
||||
<action name="procSpamfilterAdminDeleteDeniedWord" type="controller" standalone="true" ruleset="deleteDeniedWord" />
|
||||
|
||||
<action name="procSpamfilterAdminInsertSetting" type="controller" standalone="true" ruleset="insertSetting" />
|
||||
|
||||
</actions>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ruleset version="1.5.0">
|
||||
<customrules>
|
||||
<rule name="word" type="regex" test="/(.*){1,125}/" />
|
||||
<rule name="word" type="regex" test="/^(.{2,40}[\r\n]+)*.{2,40}$/" />
|
||||
</customrules>
|
||||
<fields>
|
||||
<field name="act" required="true" default="procSpamfilterAdminDeleteDeniedWord" />
|
||||
|
|
|
|||
|
|
@ -1,9 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ruleset version="1.5.0">
|
||||
<customrules>
|
||||
</customrules>
|
||||
<fields>
|
||||
<field name="interval" required="true" rule="number" default="0" />
|
||||
<field name="limit_count" required="true" rule="number" default="5" />
|
||||
</fields>
|
||||
</ruleset>
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ruleset version="1.5.0">
|
||||
<customrules>
|
||||
<rule name="ip" type="regex" test="/^(\d{1,3}(?:.(\d{1,3}|\*)){3}\s*(\/\/[^\r\n]*)?[\r\n]*)*$/" />
|
||||
</customrules>
|
||||
<fields>
|
||||
<field name="ipaddress" required="true" rule="ip" />
|
||||
</fields>
|
||||
</ruleset>
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ruleset version="1.5.0">
|
||||
<customrules>
|
||||
</customrules>
|
||||
<fields>
|
||||
<field name="word" required="true" length="1:250" />
|
||||
</fields>
|
||||
</ruleset>
|
||||
|
|
@ -2,9 +2,9 @@
|
|||
<ruleset version="1.5.0">
|
||||
<customrules>
|
||||
<rule name="ip" type="regex" test="/^(\d{1,3}(?:.(\d{1,3}|\*)){3}\s*(\/\/.*)?[^.]*)*$/" />
|
||||
<rule name="word" type="regex" test="/(.*){1,125}" />
|
||||
<rule name="word" type="regex" test="/^((.{2,40}[\r\n]+)*.{2,40})*$/" />
|
||||
</customrules>
|
||||
<fields>
|
||||
<field name="act" required="true" default="procSpamfilterAdminDeleteDeniedIP" />
|
||||
<field name="act" required="true" default="procSpamfilterAdminInsertSetting" />
|
||||
</fields>
|
||||
</ruleset>
|
||||
|
|
|
|||
|
|
@ -53,35 +53,7 @@
|
|||
}
|
||||
return false;
|
||||
}
|
||||
/**CUT!
|
||||
* @brief Spam filter configurations
|
||||
**/
|
||||
function procSpamfilterAdminInsertConfig() {
|
||||
// Get the default information
|
||||
$args = Context::gets('interval','limit_count','check_trackback');
|
||||
if($args->check_trackback!='Y') $args->check_trackback = 'N';
|
||||
// Create and insert the module Controller object
|
||||
$oModuleController = &getController('module');
|
||||
$output = $oModuleController->insertModuleConfig('spamfilter',$args);
|
||||
if($output->toBool() && !in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispSpamfilterAdminConfig');
|
||||
header('location:'.$returnUrl);
|
||||
return;
|
||||
}
|
||||
return $output;
|
||||
}
|
||||
|
||||
/** CUT!
|
||||
* @brief Register the banned IP address
|
||||
**/
|
||||
function procSpamfilterAdminInsertDeniedIP() {
|
||||
$ipaddress = Context::get('ipaddress');
|
||||
$description = Context::get('description');
|
||||
|
||||
$oSpamfilterController = &getController('spamfilter');
|
||||
return $oSpamfilterController->insertIP($ipaddress, $description);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Delete the banned IP
|
||||
**/
|
||||
|
|
@ -96,20 +68,6 @@
|
|||
return $output;
|
||||
}
|
||||
|
||||
/** CUT!
|
||||
* @brief Register the prohibited word
|
||||
**/
|
||||
function procSpamfilterAdminInsertDeniedWord() {
|
||||
$word = Context::get('word');
|
||||
$output = $this->insertWord($word);
|
||||
if($output->toBool() && !in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispSpamfilterAdminSetting');
|
||||
header('location:'.$returnUrl);
|
||||
return;
|
||||
}
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Delete the prohibited Word
|
||||
**/
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@
|
|||
Context::set('ip_list', $ip_list);
|
||||
Context::set('word_list', $word_list);
|
||||
// Set a template file
|
||||
$this->setTemplateFile('spSpamFilter');
|
||||
$this->setTemplateFile('index');
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,60 +0,0 @@
|
|||
<!--#include("header.html")-->
|
||||
|
||||
<!-- xml js filter를 이용하기 위한 데이터 전달용 form -->
|
||||
<form ruleset="deleteDeniedIp" id="fo_denied_ip" action="./" method="post">
|
||||
<input type="hidden" name="act" value="procSpamfilterAdminDeleteDeniedIP" />
|
||||
<input type="hidden" name="ipaddress" value="" />
|
||||
</form>
|
||||
|
||||
<!-- 수동 추가 -->
|
||||
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
|
||||
<p>{$XE_VALIDATOR_MESSAGE}</p>
|
||||
</div>
|
||||
<form ruleset="insertDeniedIp" action="./" method="post">
|
||||
<input type="hidden" name="act" value="procSpamfilterAdminInsertDeniedIP" />
|
||||
<table cellspacing="0" class="rowTable">
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->denied_ip}</div></th>
|
||||
<td>
|
||||
<input type="text" name="ipaddress" value="" class="inputTypeText" />
|
||||
<p>{$lang->about_denied_ip}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->description}</div></th>
|
||||
<td>
|
||||
<input type="text" name="description" value="" class="inputTypeText" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<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="rowTable">
|
||||
<caption>Total{count($ip_list)}</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col"><div>{$lang->no}</div></th>
|
||||
<th scope="col"><div>{$lang->ipaddress}</div></th>
|
||||
<th scope="col"><div>{$lang->description}</div></th>
|
||||
<th scope="col"><div>{$lang->regdate}</div></th>
|
||||
<th scope="col"><div>{$lang->cmd_delete}</div></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!--@foreach($ip_list as $no => $val)-->
|
||||
<tr class="row{$cycle_idx}">
|
||||
<td>{count($ip_list)-$no}</td>
|
||||
<td>{$val->ipaddress}</td>
|
||||
<td class="wide">{$val->description}</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>
|
||||
</table>
|
||||
|
|
@ -1,57 +0,0 @@
|
|||
<!--#include("header.html")-->
|
||||
|
||||
<!-- xml js filter를 이용하기 위한 데이터 전달용 form -->
|
||||
<form ruleset="deleteDeniedWord" id="fo_denied_word" action="./" method="post">
|
||||
<input type="hidden" name="act" value="procSpamfilterAdminDeleteDeniedWord" />
|
||||
<input type="hidden" name="word" value="" />
|
||||
</form>
|
||||
|
||||
<!-- 수동 추가 -->
|
||||
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
|
||||
<p>{$XE_VALIDATOR_MESSAGE}</p>
|
||||
</div>
|
||||
<form ruleset="insertDeniedWord" action="./" method="post">
|
||||
<input type="hidden" name="act" value="procSpamfilterAdminInsertDeniedWord" />
|
||||
<table cellspacing="0" class="rowTable">
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->word}</div></th>
|
||||
<td>
|
||||
<input type="text" name="word" value="" class="inputTypeText" />
|
||||
<p>{$lang->about_denied_word}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<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="rowTable">
|
||||
<caption>Total {number_format($word_list)}</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col"><div>{$lang->no}</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>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!--@foreach($word_list as $no => $val)-->
|
||||
<tr class="row{$cycle_idx}">
|
||||
<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><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>
|
||||
</table>
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
<!--%import("js/spamfilter_admin.js")-->
|
||||
|
||||
<h3 class="xeAdmin">{$lang->spamfilter} <span class="gray">{$lang->cmd_management}</span></h3>
|
||||
|
||||
<div class="header4 gap1">
|
||||
<ul class="localNavigation">
|
||||
<li <!--@if($act=='dispSpamfilterAdminConfig')-->class="on"<!--@end-->><a href="{getUrl('act','dispSpamfilterAdminConfig','module_srl','')}">{$lang->cmd_module_config}</a></li>
|
||||
<li <!--@if($act=='dispSpamfilterAdminDeniedIPList')-->class="on"<!--@end-->><a href="{getUrl('act','dispSpamfilterAdminDeniedIPList')}">{$lang->cmd_denied_ip}</a></li>
|
||||
<li <!--@if($act=='dispSpamfilterAdminDeniedWordList')-->class="on"<!--@end-->><a href="{getUrl('act','dispSpamfilterAdminDeniedWordList')}">{$lang->cmd_denied_word}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
|
@ -1,38 +1,70 @@
|
|||
<!--#include("header.html")-->
|
||||
<!--%import("js/spamfilter_admin.js")-->
|
||||
<div class="content" id="content">
|
||||
|
||||
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
|
||||
<p>{$XE_VALIDATOR_MESSAGE}</p>
|
||||
<form id="spamfilterDelete" action="" method="post">
|
||||
<input type="hidden" name="act" value="" />
|
||||
<input type="hidden" name="ipaddress" value="" />
|
||||
<input type="hidden" name="word" value="" />
|
||||
<input type="hidden" name="ruleset" value="">
|
||||
</form>
|
||||
<form action="" id="spamfilterInsert" class="form" ruleset="insertSetting">
|
||||
<input type="hidden" name="act" value="procSpamfilterAdminInsertSetting">
|
||||
<input type="hidden" name="module" value="spamfilter">
|
||||
<input type="hidden" name="ruleset" value="insertSetting">
|
||||
<input type="hidden" name="flag" value="">
|
||||
<h1 class="h1">Spam Filter</h1>
|
||||
<ul>
|
||||
<li>
|
||||
<p class="q">{$lang->cmd_interval}</p>
|
||||
<p class="a">
|
||||
<input type="radio" name="limits" id="spamCond1_yes" value="Y" <!--@if($config->limits=='Y' || $config->limits =='')-->checked="checked"<!--@end--> />
|
||||
<label for="spamCond1_yes">{$lang->yes}</label>
|
||||
<input type="radio" name="limits" id="spamCond1_no" value="N" <!--@if($config->limits!='Y' && $config->limits !='')--> checked="checked"<!--@end--> /> <label for="spamCond1_no">{$lang->no}</label>
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="q">{$lang->cmd_check_trackback}</p>
|
||||
<p class="a">
|
||||
<input type="radio" name="check_trackback" id="spamCond2_yes" value="Y" <!--@if($config->check_trackback=='Y' || $config->check_trackback=='')--> checked="checked"<!--@end--> />
|
||||
<label for="spamCond2_yes">{$lang->yes}</label>
|
||||
<input type="radio" name="check_trackback" id="spamCond2_yes" value="N" <!--@if($config->check_trackback!='Y' && $config->check_trackback!='')--> checked="checked"<!--@end--> / > <label for="spamCond2_yes">{$lang->no}</label>
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="q">{$lang->cmd_denied_ip}</p>
|
||||
<div class="a">
|
||||
<ul class="textList">
|
||||
<!--@foreach($ip_list as $ipListKey)-->
|
||||
<li>{$ipListKey->ipaddress} <!--@if($ipListKey->description)-->// {$ipListKey->description} <!--@end-->
|
||||
<a href="#" onclick="doDeleteDeniedIP('{$ipListKey->ipaddress}')" class="side">{$lang->delete}</a>
|
||||
</li>
|
||||
<!--@endforeach-->
|
||||
</ul>
|
||||
</div>
|
||||
<p class="a">
|
||||
<textarea rows="4" cols="42" name="ipaddressList" title="스팸 IP 추가"></textarea>
|
||||
<span class="btn small"><button type="button" onclick="doInsertDeniedSome('ipaddressList')">{$lang->add}</button></span>
|
||||
<span class="desc">{$lang->about_denied_ip}</span>
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="q"><label for="spamKeyword">{$lang->cmd_denied_word}</label></p>
|
||||
<div class="a">
|
||||
<ul class="textList">
|
||||
<!--@foreach($word_list as $wordListKey)-->
|
||||
<li>{$wordListKey->word} <a href="#" onclick="doDeleteDeniedWord('{$wordListKey->word}')" class="side">{$lang->delete}</a></li>
|
||||
<!--@end-->
|
||||
</ul>
|
||||
</div>
|
||||
<p class="a">
|
||||
<textarea rows="4" cols="42" name="wordList" title="스팸 키워드 추가"></textarea>
|
||||
<span class="btn small"><button type="button" onclick="doInsertDeniedSome('wordList')">{$lang->add}</button></span>
|
||||
<span class="desc">{$lang->about_denied_word}</span>
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="btnArea">
|
||||
<span class="btn medium"><input type="submit" value="Save" /></span>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<form ruleset="insertConfig" action="./" method="post">
|
||||
<input type="hidden" name="act" value="procSpamfilterAdminInsertConfig" />
|
||||
|
||||
<table cellspacing="0" class="rowTable">
|
||||
<tr>
|
||||
<th scope="col"><div>{$lang->interval}</div></th>
|
||||
<td>
|
||||
<input type="text" name="interval" value="{$config->interval}" class="inputTypeText" /> {$lang->unit_sec}
|
||||
<p>{$lang->about_interval}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="row2">
|
||||
<th scope="col"><div>{$lang->limit_count}</div></th>
|
||||
<td>
|
||||
<input type="text" name="limit_count" value="{$config->limit_count?$config->limit_count:5}" class="inputTypeText" />
|
||||
<p>{$lang->about_limit_count}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="col"><div>{$lang->check_trackback}</div></th>
|
||||
<td>
|
||||
<input type="checkbox" name="check_trackback" value="Y" <!--@if($config->check_trackback=='Y')-->checked="checked"<!--@end--> />
|
||||
<p>{$lang->about_check_trackback}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="row2">
|
||||
<th colspan="2" class="button">
|
||||
<span class="button black strong"><input type="submit" value="{$lang->cmd_registration}" accesskey="s" /></span>
|
||||
</th>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</form>
|
||||
|
|
|
|||
|
|
@ -22,12 +22,21 @@ function doDeleteDeniedWord(word) {
|
|||
|
||||
function doInsertDeniedSome(some){
|
||||
var fo_obj = get_by_id('spamfilterInsert');
|
||||
fo_obj.flag.value = 'addsome';
|
||||
|
||||
if(some == 'ipaddressList'){
|
||||
var reg = /^(\d{1,3}(?:.(\d{1,3}|\*)){3}\s*(\/\/[^\r\n]*)?[\r\n]*)*$/;
|
||||
var matchStr = fo_obj.ipaddressList.value;
|
||||
fo_obj.wordList.value = '';
|
||||
}
|
||||
else if(some == 'wordList'){
|
||||
var reg = /^(.{2,40}[\r\n]+)*.{2,40}$/;
|
||||
var matchStr = fo_obj.wordList.value;
|
||||
fo_obj.ipaddressList.value = '';
|
||||
}
|
||||
|
||||
if(!matchStr.match(reg)){
|
||||
alert('형식에 맞게 입력하세요'); return false;
|
||||
}
|
||||
|
||||
fo_obj.submit();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,70 +0,0 @@
|
|||
<!--%import("js/spamfilter_admin.js")-->
|
||||
<div class="content" id="content">
|
||||
|
||||
<form id="spamfilterDelete" action="" method="post">
|
||||
<input type="hidden" name="act" value="" />
|
||||
<input type="hidden" name="ipaddress" value="" />
|
||||
<input type="hidden" name="word" value="" />
|
||||
<input type="hidden" name="ruleset" value="">
|
||||
</form>
|
||||
<form action="" id="spamfilterInsert" class="form" ruleset="insertSetting">
|
||||
<input type="hidden" name="act" value="procSpamfilterAdminInsertSetting">
|
||||
<input type="hidden" name="module" value="spamfilter">
|
||||
<input type="hidden" name="ruleset" value="insertSetting">
|
||||
<input type="hidden" name="flag" value="">
|
||||
<h1 class="h1">Spam Filter</h1>
|
||||
<ul>
|
||||
<li>
|
||||
<p class="q">{$lang->cmd_interval}</p>
|
||||
<p class="a">
|
||||
<input type="radio" name="limits" id="spamCond1_yes" value="Y" <!--@if($config->limits=='Y')-->checked="checked"<!--@end--> />
|
||||
<label for="spamCond1_yes">{$lang->yes}</label>
|
||||
<input type="radio" name="limits" id="spamCond1_no" value="N" <!--@if($config->limits!='Y')--> checked="checked"<!--@end--> /> <label for="spamCond1_no">{$lang->no}</label>
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="q">{$lang->cmd_check_trackback}</p>
|
||||
<p class="a">
|
||||
<input type="radio" name="check_trackback" id="spamCond2_yes" value="Y" <!--@if($config->check_trackback=='Y')--> checked="checked"<!--@end--> />
|
||||
<label for="spamCond2_yes">{$lang->yes}</label>
|
||||
<input type="radio" name="check_trackback" id="spamCond2_yes" value="N" <!--@if($config->check_trackback!='Y')--> checked="checked"<!--@end--> / > <label for="spamCond2_yes">{$lang->no}</label>
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="q">{$lang->cmd_denied_ip}</p>
|
||||
<div class="a">
|
||||
<ul class="textList">
|
||||
<!--@foreach($ip_list as $ipListKey)-->
|
||||
<li>{$ipListKey->ipaddress} <!--@if($ipListKey->description)-->// {$ipListKey->description} <!--@end-->
|
||||
<a href="#" onclick="doDeleteDeniedIP('{$ipListKey->ipaddress}')" class="side">삭제</a>
|
||||
</li>
|
||||
<!--@endforeach-->
|
||||
</ul>
|
||||
</div>
|
||||
<p class="a">
|
||||
<textarea rows="4" cols="42" name="ipaddressList" title="스팸 IP 추가"></textarea>
|
||||
<span class="btn small"><button type="button" onclick="doInsertDeniedSome('ipaddressList')">{$lang->add}</button></span>
|
||||
<span class="desc">{$lang->about_denied_ip}</span>
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="q"><label for="spamKeyword">{$lang->cmd_denied_word}</label></p>
|
||||
<div class="a">
|
||||
<ul class="textList">
|
||||
<!--@foreach($word_list as $wordListKey)-->
|
||||
<li>{$wordListKey->word} <a href="#" onclick="doDeleteDeniedWord('{$wordListKey->word}')" class="side">삭제</a></li>
|
||||
<!--@end-->
|
||||
</ul>
|
||||
</div>
|
||||
<p class="a">
|
||||
<textarea rows="4" cols="42" name="wordList" title="스팸 키워드 추가"></textarea>
|
||||
<span class="btn small"><button type="button" onclick="doInsertDeniedSome('wordList')">{$lang->add}</button></span>
|
||||
<span class="desc">{$lang->about_denied_word}</span>
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="btnArea">
|
||||
<span class="btn medium"><input type="submit" value="Save" /></span>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
Loading…
Add table
Add a link
Reference in a new issue