sandbox를 beta.0.2.2배포를 위해 trunk로 copy

git-svn-id: http://xe-core.googlecode.com/svn/trunk@2784 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
zero 2007-10-15 11:54:56 +00:00
commit 2721e96083
64 changed files with 757 additions and 230 deletions

View file

@ -75,7 +75,7 @@
// 4. 자신의 쪽지함 보기 기능 추가 // 4. 자신의 쪽지함 보기 기능 추가
$menu_str = Context::getLang('cmd_view_message_box'); $menu_str = Context::getLang('cmd_view_message_box');
$menu_link = "current_url.setQuery('act','dispMemberMessages')"; $menu_link = "current_url.setQuery('act','dispMemberMessages').setQuery('message_type','')";
$menu_list .= sprintf("\n%s,%s,move_url(%s,'Y')", Context::getRequestUri().'/modules/member/tpl/images/icon_message_box.gif', $menu_str, $menu_link); $menu_list .= sprintf("\n%s,%s,move_url(%s,'Y')", Context::getRequestUri().'/modules/member/tpl/images/icon_message_box.gif', $menu_str, $menu_link);
// 5. 친구 목록 보기 // 5. 친구 목록 보기

View file

@ -167,6 +167,8 @@
if(file_exists($db_config_file)) @include($db_config_file); if(file_exists($db_config_file)) @include($db_config_file);
if(!$db_info->time_zone) $db_info->time_zone = date("O"); if(!$db_info->time_zone) $db_info->time_zone = date("O");
if(!$db_info->use_optimizer || $db_info->use_optimizer != 'N') $db_info->use_optimizer = 'Y';
else $db_info->use_optimizer = 'N';
$this->_setDBInfo($db_info); $this->_setDBInfo($db_info);
@ -364,8 +366,6 @@
return $obj->str; return $obj->str;
} }
/** /**
* @brief response method를 강제로 지정 (기본으로는 request method를 이용함) * @brief response method를 강제로 지정 (기본으로는 request method를 이용함)
* *

113
classes/mail/Mail.class.php Normal file
View file

@ -0,0 +1,113 @@
<?php
/**
* @brief 메일 발송
* @author zero (zero@zeroboard.com)
**/
class Mail {
var $sender_name = '';
var $sender_email = '';
var $receiptor_name = '';
var $receiptor_email = '';
var $title = '';
var $content = '';
var $content_type = 'html';
function Mail() { }
function setSender($name, $email) {
$this->sender_name = $name;
$this->sender_email = $email;
}
function getSender() {
if($this->sender_name) return sprintf("%s <%s>", '=?utf-8?b?'.base64_encode($this->sender_name).'?=', $this->sender_email);
return $this->sender_email;
}
function setReceiptor($name, $email) {
$this->receiptor_name = $name;
$this->receiptor_email = $email;
}
function getReceiptor() {
if($this->receiptor_name) return sprintf("%s <%s>", '=?utf-8?b?'.base64_encode($this->receiptor_name).'?=', $this->receiptor_email);
return $this->receiptor_email;
}
function setTitle($title) {
$this->title = $title;
}
function getTitle() {
return '=?utf-8?b?'.base64_encode($this->title).'?=';
}
function setContent($content) {
$this->content = $content;
}
function getPlainContent() {
return chunk_split(base64_encode(str_replace(array("<",">","&"), array("&lt;","&gt;","&amp;"), $this->content)));
}
function getHTMLContent() {
return chunk_split(base64_encode($this->content_type=='html'?nl2br($this->content):$this->content));
}
function setContentType($mode = 'html') {
$this->content_type = $mode=='html'?'html':'';
}
function send() {
$boundary = '----=='.uniqid(rand(),true);
$headers = sprintf(
"From: %s\r\n".
"MIME-Version: 1.0\r\n".
"Content-Type: multipart/alternative;\r\n\tboundary=\"%s\"\r\n\r\n".
"",
$this->getSender(),
$boundary
);
$body = sprintf(
"--%s\r\n".
"Content-Type: text/plain; charset=utf-8; format=flowed\r\n".
"Content-Transfer-Encoding: base64\r\n".
"Content-Disposition: inline\r\n\r\n".
"%s".
"--%s\r\n".
"Content-Type: text/html; charset=utf-8\r\n".
"Content-Transfer-Encoding: base64\r\n".
"Content-Disposition: inline\r\n\r\n".
"%s".
"--%s--".
"",
$boundary,
$this->getPlainContent(),
$boundary,
$this->getHTMLContent(),
$boundary
);
return mail($this->getReceiptor(), $this->getTitle(), $body, $headers);
}
function checkMailMX($email_address) {
if(!Mail::isVaildMailAddress($email_address)) return false;
list($user, $host) = explode("@", $email_address);
if(function_exists('checkdnsrr')) {
if (checkdnsrr($host, "MX") or checkdnsrr($host, "A")) return true;
else return false;
}
return true;
}
function isVaildMailAddress($email_address) {
if( eregi("([a-z0-9\_\-\.]+)@([a-z0-9\_\-\.]+)", $email_address) ) return $email_address;
else return '';
}
}
?>

View file

@ -26,6 +26,11 @@
* @brief optimize 대상 파일을 받아서 처리 optimize 파일이름을 return * @brief optimize 대상 파일을 받아서 처리 optimize 파일이름을 return
**/ **/
function getOptimizedFiles($source_files, $type = "js") { function getOptimizedFiles($source_files, $type = "js") {
if(!is_array($source_files) || !count($source_files)) return;
// $source_files의 역슬래쉬 경로를 슬래쉬로 변경 (윈도우즈 대비)
foreach($source_files as $key => $file) $source_files[$key] = str_replace("\\","/",$file);
// 관리자 설정시 설정이 되어 있지 않으면 패스 // 관리자 설정시 설정이 되어 있지 않으면 패스
$db_info = Context::getDBInfo(); $db_info = Context::getDBInfo();
if($db_info->use_optimizer == 'N') return $source_files; if($db_info->use_optimizer == 'N') return $source_files;
@ -69,11 +74,9 @@
function doOptimizedFile($filename, $targets, $type) { function doOptimizedFile($filename, $targets, $type) {
if(!file_exists($filename)) return $this->makeOptimizedFile($filename, $targets, $type); if(!file_exists($filename)) return $this->makeOptimizedFile($filename, $targets, $type);
$file_count = count($targets);
$mtime = filemtime($filename); $mtime = filemtime($filename);
for($i=0;$i<$file_count;$i++) { foreach($targets as $file) {
if($mtime < filemtime($targets[$i])) return $this->makeOptimizedFile($filename, $targets, $type); if($mtime < filemtime($file)) return $this->makeOptimizedFile($filename, $targets, $type);
} }
} }
@ -85,9 +88,7 @@
* 실제 css나 js의 내용을 합친 것을 구함 * 실제 css나 js의 내용을 합친 것을 구함
**/ **/
// 대상 파일의 내용을 구해오고 css 파일일 경우 url()내의 경로를 변경 // 대상 파일의 내용을 구해오고 css 파일일 경우 url()내의 경로를 변경
$file_count = count($targets); foreach($targets as $file) {
for($i=0;$i<$file_count;$i++) {
$file = $targets[$i];
$str = FileHandler::readFile($file); $str = FileHandler::readFile($file);
$str = Context::convertEncodingStr($str); $str = Context::convertEncodingStr($str);
@ -108,8 +109,6 @@
* 압축을 지원하고 캐시 타임을 제대로 이용하기 위한 헤더 파일 구함 * 압축을 지원하고 캐시 타임을 제대로 이용하기 위한 헤더 파일 구함
**/ **/
// php의 헤더파일 생성 // php의 헤더파일 생성
$modified_time = gmdate("D, d M Y H:i:s");
// gzip 압축 체크 // gzip 압축 체크
if($type!="css" && Context::isGzEnabled()) $gzip_header = 'header("Content-Encoding: gzip");'; if($type!="css" && Context::isGzEnabled()) $gzip_header = 'header("Content-Encoding: gzip");';
@ -120,10 +119,15 @@
$header_buff = <<<EndOfBuff $header_buff = <<<EndOfBuff
<?php <?php
header("Content-Type: {$content_type}; charset=UTF-8"); header("Content-Type: {$content_type}; charset=UTF-8");
header("Last-Modified: {$modified_time} GMT"); header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Content-Length: ".filesize('{$content_filename}'));
{$gzip_header} {$gzip_header}
if(@file_exists("{$content_filename}")) { if(@file_exists("{$content_filename}")) {
@fpassthru(fopen("{$content_filename}", "rb")); @fpassthru(fopen("{$content_filename}", "r"));
} }
exit(); exit();
?> ?>

View file

@ -20,6 +20,7 @@ IE7 & IE6 & Below
.tRight { text-align:right; } .tRight { text-align:right; }
.tLeft { text-align:left; } .tLeft { text-align:left; }
.gap1 { margin-top:.8em; } .gap1 { margin-top:.8em; }
.nowrap { white-space:nowrap; }
/* default.css - Type Selector Definition */ /* default.css - Type Selector Definition */
* { margin:0; padding:0; } * { margin:0; padding:0; }

View file

@ -23,7 +23,7 @@ function filterAlertMessage(ret_obj) {
var redirect_url = ret_obj["redirect_url"]; var redirect_url = ret_obj["redirect_url"];
var url = location.href; var url = location.href;
if(url.substr(-1)=="#") url = url.substr(0,url.length-1); if(url.substr(url.length-1,1)=="#") url = url.substr(0,url.length-1);
if(typeof(message)!="undefined"&&message&&message!="success") alert(message); if(typeof(message)!="undefined"&&message&&message!="success") alert(message);

View file

@ -37,6 +37,7 @@
$lang->cmd_select = '选择'; $lang->cmd_select = '选择';
$lang->cmd_select_all = '全部选择'; $lang->cmd_select_all = '全部选择';
$lang->cmd_unselect_all = '全部解除'; $lang->cmd_unselect_all = '全部解除';
$lang->cmd_reverse_all = "反选";
$lang->cmd_close_all = '全部折叠'; $lang->cmd_close_all = '全部折叠';
$lang->cmd_open_all = '全部展开'; $lang->cmd_open_all = '全部展开';
$lang->cmd_reload = '从新载入'; $lang->cmd_reload = '从新载入';

View file

@ -14,7 +14,7 @@
* 내용은 제로보드XE의 버전을 관리자 페이지에 표시하기 위한 용도이며 * 내용은 제로보드XE의 버전을 관리자 페이지에 표시하기 위한 용도이며
* config.inc.php의 수정이 없더라도 공식 릴리즈시에 수정되어 함께 배포되어야 * config.inc.php의 수정이 없더라도 공식 릴리즈시에 수정되어 함께 배포되어야
**/ **/
define('__ZBXE_VERSION__', '0.2.1'); define('__ZBXE_VERSION__', '0.2.2');
/** /**
* @brief 디버깅 메세지 출력 * @brief 디버깅 메세지 출력
@ -81,6 +81,7 @@
require_once("./classes/module/ModuleHandler.class.php"); require_once("./classes/module/ModuleHandler.class.php");
require_once("./classes/display/DisplayHandler.class.php"); require_once("./classes/display/DisplayHandler.class.php");
require_once("./classes/template/TemplateHandler.class.php"); require_once("./classes/template/TemplateHandler.class.php");
require_once("./classes/mail/Mail.class.php");
if(__DEBUG__) $GLOBALS['__elapsed_class_load__'] = getMicroTime() - __ClassLosdStartTime__; if(__DEBUG__) $GLOBALS['__elapsed_class_load__'] = getMicroTime() - __ClassLosdStartTime__;
/** /**

View file

@ -77,7 +77,7 @@ Jeong, Chan Myeong 070601~070630
.boardList td .thumbnailMedium img { border:1px solid #e0e1db; padding:3px;} .boardList td .thumbnailMedium img { border:1px solid #e0e1db; padding:3px;}
.thumbnailBox { border-top:none; border-bottom:1px solid #eff0ed; padding:1.5em 0 0 1.5em; overflow:hidden; padding-bottom:1em;} .thumbnailBox { border-top:none; border-bottom:1px solid #eff0ed; padding:1.5em 0 0 1.5em; overflow:hidden; padding-bottom:1em;}
.thumbnailBox div.cell { display:block; float:left; overflow:hidden; margin-bottom:1em;} .thumbnailBox div.cell { display:block; float:left; overflow:hidden; margin-bottom:1em; margin-right:1em;}
.thumbnailBox div.cell img.thumb { padding:2px; border:1px solid #e0e1db; display:block; margin-bottom:1em; margin-left:auto;margin-right:auto;} .thumbnailBox div.cell img.thumb { padding:2px; border:1px solid #e0e1db; display:block; margin-bottom:1em; margin-left:auto;margin-right:auto;}
.thumbnailBox div.title { color:#3B96C0; margin-bottom:.2em; overflow:hidden; white-space:nowrap; text-align:center;} .thumbnailBox div.title { color:#3B96C0; margin-bottom:.2em; overflow:hidden; white-space:nowrap; text-align:center;}
.thumbnailBox div.title a { color:#3B96C0; text-decoration:none;} .thumbnailBox div.title a { color:#3B96C0; text-decoration:none;}
@ -130,7 +130,7 @@ Jeong, Chan Myeong 070601~070630
.boardRead .titleAndCategory { float:left;} .boardRead .titleAndCategory { float:left;}
.boardRead .titleAndCategory h4 { font-size:1.4em; display:inline; padding-left:.2em;} .boardRead .titleAndCategory h4 { font-size:1.4em; display:inline; padding-left:.2em;}
.boardRead .titleAndCategory .vr { font-size:.9em; margin:0 .3em; color:#c5c7c0;} .boardRead .titleAndCategory .vr { font-size:.9em; margin:0 .3em; color:#c5c7c0;}
.boardRead .titleAndCategory .cotegory { font-size:.9em; color:#999999; white-space:nowrap;} .boardRead .titleAndCategory .category { font-size:.9em; color:#999999; white-space:nowrap;}
.boardRead .dateAndModify { float:right; white-space:nowrap; font-size:.8em; color:#999999; position:relative;} .boardRead .dateAndModify { float:right; white-space:nowrap; font-size:.8em; color:#999999; position:relative;}
.boardRead .dateAndModify strong { font-size:1em; font-family:Tahoma;} .boardRead .dateAndModify strong { font-size:1em; font-family:Tahoma;}

View file

@ -93,7 +93,7 @@
</tbody> </tbody>
</table> </table>
{@ $height = $module_info->thumbnail_height + 40; } {@ $height = $module_info->thumbnail_height + 50; }
<!--@if($module_info->use_category=='Y')-->{@ $height += 20 }<!--@end--> <!--@if($module_info->use_category=='Y')-->{@ $height += 20 }<!--@end-->
<!--@if($module_info->display_author!='N' || $module_info->display_regdate!='N')-->{@ $height += 25 }<!--@end--> <!--@if($module_info->display_author!='N' || $module_info->display_regdate!='N')-->{@ $height += 25 }<!--@end-->
<!--@if($module_info->display_readed_count !='N' || $module_info->display_voted_count!='N')-->{@ $height += 25 }<!--@end--> <!--@if($module_info->display_readed_count !='N' || $module_info->display_voted_count!='N')-->{@ $height += 25 }<!--@end-->
@ -101,50 +101,53 @@
<div class="thumbnailBox"> <div class="thumbnailBox">
<!--@foreach($document_list as $no => $document)--> <div class="cellBox">
<!--@if(!$document->isNotice())-->
<div class="cell" style="width:{$module_info->thumbnail_width+30}px;height:{$height}px;"> <!--@foreach($document_list as $no => $document)-->
<!--@if($document->thumbnailExists($module_info->thumbnail_width, $module_info->thumbnail_height, $module_info->thumbnail_type))--> <!--@if(!$document->isNotice())-->
<a href="{getUrl('','document_srl',$document->document_srl)}"><img src="{$document->getThumbnail($module_info->thumbnail_width, $module_info->thumbnail_height, $module_info->thumbnail_type)}" border="0" alt="" class="thumb"/></a>
<!--@else-->
<img src="./images/blank.gif" border="0" alt="" class="thumb" width="{$module_info->thumbnail_width}" height="{$module_info->thumbnail_height}" />
<!--@end-->
<div class="title"> <div class="cell" style="width:{$module_info->thumbnail_width+30}px;height:{$height}px;">
<!--@if($module_info->use_category == "Y" && $document->get('category_srl'))--> <!--@if($document->thumbnailExists($module_info->thumbnail_width, $module_info->thumbnail_height, $module_info->thumbnail_type))-->
<strong class="category">{$category_list[$document->get('category_srl')]->title}</strong><br /> <a href="{getUrl('','document_srl',$document->document_srl)}"><img src="{$document->getThumbnail($module_info->thumbnail_width, $module_info->thumbnail_height, $module_info->thumbnail_type)}" border="0" alt="" class="thumb"/></a>
<!--@else-->
<img src="./images/blank.gif" border="0" alt="" class="thumb" width="{$module_info->thumbnail_width}" height="{$module_info->thumbnail_height}" />
<!--@end--> <!--@end-->
<!--@if($grant->is_admin)--> <div class="title">
<input type="checkbox" name="cart" value="{$document->document_srl}" onclick="doAddDocumentCart(this)" <!--@if($document->isCarted())-->checked="checked"<!--@end--> /> <!--@if($module_info->use_category == "Y" && $document->get('category_srl'))-->
<!--@end--> <strong class="category">{$category_list[$document->get('category_srl')]->title}</strong><br />
<!--@end-->
<a href="{getUrl('document_srl',$document->document_srl)}">{$document->getTitleText($module_info->subject_cut_size)}</a> <!--@if($grant->is_admin)-->
<input type="checkbox" name="cart" value="{$document->document_srl}" onclick="doAddDocumentCart(this)" <!--@if($document->isCarted())-->checked="checked"<!--@end--> />
<!--@end-->
<!--@if($document->getCommentCount())--> <a href="{getUrl('document_srl',$document->document_srl)}">{$document->getTitleText($module_info->subject_cut_size)}</a>
<span class="replyAndTrackback" title="Replies">(<strong>{$document->getCommentCount()}</strong>)</span>
<!--@end-->
<!--@if($document->getTrackbackCount())--> <!--@if($document->getCommentCount())-->
<span class="replyAndTrackback" title="Trackbacks">[<strong>{$document->getTrackbackCount()}</strong>]</span> <span class="replyAndTrackback" title="Replies">(<strong>{$document->getCommentCount()}</strong>)</span>
<!--@end--> <!--@end-->
<div class="nameAndDate"> <!--@if($document->getTrackbackCount())-->
<!--@if($module_info->display_author!='N')--><div class="author"><div class="member_{$document->get('member_srl')}">{$document->getNickName()}</div></div><!--@end--> <span class="replyAndTrackback" title="Trackbacks">[<strong>{$document->getTrackbackCount()}</strong>]</span>
<!--@if($module_info->display_regdate!='N')--><div class="date">{$document->getRegdate('Y.m.d')}</div><!--@end--> <!--@end-->
<div class="nameAndDate">
<!--@if($module_info->display_author!='N')--><div class="author"><div class="member_{$document->get('member_srl')}">{$document->getNickName()}</div></div><!--@end-->
<!--@if($module_info->display_regdate!='N')--><div class="date">{$document->getRegdate('Y.m.d')}</div><!--@end-->
</div>
</div>
<div class="readAndRecommend">
<!--@if($module_info->display_readed_count!='N')-->{$lang->readed_count} <span class="num">{$document->get('readed_count')}</span><!--@end-->
<!--@if($document->get('voted_count') && $module_info->display_voted_count!='N')-->
<!--@if($module_info->display_readed_count!='N')--><br /><!--@end-->
{$lang->voted_count} <strong class="num">{$document->get('voted_count')}</strong>
<!--@end-->
</div> </div>
</div> </div>
<div class="readAndRecommend"> <!--@end-->
<!--@if($module_info->display_readed_count!='N')-->{$lang->readed_count} <span class="num">{$document->get('readed_count')}</span><!--@end--> <!--@end-->
<!--@if($document->get('voted_count') && $module_info->display_voted_count!='N')-->
<!--@if($module_info->display_readed_count!='N')--><span class="vr">|</span> <!--@end-->
{$lang->voted_count} <strong class="num">{$document->get('voted_count')}</strong>
<!--@end-->
</div>
</div> </div>
<!--@end-->
<!--@end-->
</div> </div>
</form> </form>

View file

@ -117,18 +117,24 @@
</var> </var>
<var name="thumbnail_type" type="select"> <var name="thumbnail_type" type="select">
<title xml:lang="ko">썸네일 생성 방법</title> <title xml:lang="ko">썸네일 생성 방법</title>
<title xml:lang="zh-CN">缩略图生成方式</title>
<description xml:lang="ko">썸네일 생성 방법을 선택할 수 있습니다. (crop : 꽉 채우기, ratio : 비율 맞추기)</description> <description xml:lang="ko">썸네일 생성 방법을 선택할 수 있습니다. (crop : 꽉 채우기, ratio : 비율 맞추기)</description>
<description xml:lang="zh-CN">可以选择缩略图生成方式。 (crop : 裁减, ratio : 比例)</description>
<default>crop</default> <default>crop</default>
<default>ratio</default> <default>ratio</default>
</var> </var>
<var name="thumbnail_width" type="text"> <var name="thumbnail_width" type="text">
<title xml:lang="ko">썸네일 가로크기</title> <title xml:lang="ko">썸네일 가로크기</title>
<title xml:lang="zh-CN">缩略图宽度</title>
<description xml:lang="ko">썸네일의 가로 크기를 지정할 수 있습니다. (기본 100px)</description> <description xml:lang="ko">썸네일의 가로 크기를 지정할 수 있습니다. (기본 100px)</description>
<description xml:lang="zh-CN">可以指定缩略图宽度。 (默认为 100px)</description>
<default>100</default> <default>100</default>
</var> </var>
<var name="thumbnail_height" type="text"> <var name="thumbnail_height" type="text">
<title xml:lang="ko">썸네일 세로크기</title> <title xml:lang="ko">썸네일 세로크기</title>
<title xml:lang="zh-CN">缩略图高度</title>
<description xml:lang="ko">썸네일의 세로 크기를 지정할 수 있습니다. (기본 100px)</description> <description xml:lang="ko">썸네일의 세로 크기를 지정할 수 있습니다. (기본 100px)</description>
<description xml:lang="zh-CN">可以指定缩略图高度。 (默认为 100px)</description>
<default>100</default> <default>100</default>
</var> </var>
<var name="display_author" type="select"> <var name="display_author" type="select">

View file

@ -130,7 +130,7 @@ Jeong, Chan Myeong 070601~070630
.boardRead .titleAndCategory { float:left;} .boardRead .titleAndCategory { float:left;}
.boardRead .titleAndCategory h4 { font-size:1.4em; display:inline; padding-left:.2em;} .boardRead .titleAndCategory h4 { font-size:1.4em; display:inline; padding-left:.2em;}
.boardRead .titleAndCategory .vr { font-size:.9em; margin:0 .3em; color:#c5c7c0;} .boardRead .titleAndCategory .vr { font-size:.9em; margin:0 .3em; color:#c5c7c0;}
.boardRead .titleAndCategory .cotegory { font-size:.9em; color:#999999; white-space:nowrap;} .boardRead .titleAndCategory .category { font-size:.9em; color:#999999; white-space:nowrap;}
.boardRead .dateAndModify { float:right; white-space:nowrap; font-size:.8em; color:#999999; position:relative;} .boardRead .dateAndModify { float:right; white-space:nowrap; font-size:.8em; color:#999999; position:relative;}
.boardRead .dateAndModify strong { font-size:1em; font-family:Tahoma;} .boardRead .dateAndModify strong { font-size:1em; font-family:Tahoma;}

View file

@ -135,7 +135,7 @@ Jeong, Chan Myeong 070601~070630
.boardRead .titleAndCategory { float:left;} .boardRead .titleAndCategory { float:left;}
.boardRead .titleAndCategory h4 { font-size:1.4em; display:inline; padding-left:.2em;} .boardRead .titleAndCategory h4 { font-size:1.4em; display:inline; padding-left:.2em;}
.boardRead .titleAndCategory .vr { font-size:.9em; margin:0 .3em; color:#c5c7c0;} .boardRead .titleAndCategory .vr { font-size:.9em; margin:0 .3em; color:#c5c7c0;}
.boardRead .titleAndCategory .cotegory { font-size:.9em; color:#999999; white-space:nowrap;} .boardRead .titleAndCategory .category { font-size:.9em; color:#999999; white-space:nowrap;}
.boardRead .dateAndModify { float:right; white-space:nowrap; font-size:.8em; color:#999999; position:relative;} .boardRead .dateAndModify { float:right; white-space:nowrap; font-size:.8em; color:#999999; position:relative;}
.boardRead .dateAndModify strong { font-size:1em; font-family:Tahoma;} .boardRead .dateAndModify strong { font-size:1em; font-family:Tahoma;}

View file

@ -126,18 +126,24 @@
</var> </var>
<var name="thumbnail_type" type="select"> <var name="thumbnail_type" type="select">
<title xml:lang="ko">썸네일 생성 방법</title> <title xml:lang="ko">썸네일 생성 방법</title>
<title xml:lang="zh-CN">缩略图生成方式</title>
<description xml:lang="ko">썸네일 생성 방법을 선택할 수 있습니다. (crop : 꽉 채우기, ratio : 비율 맞추기)</description> <description xml:lang="ko">썸네일 생성 방법을 선택할 수 있습니다. (crop : 꽉 채우기, ratio : 비율 맞추기)</description>
<description xml:lang="zh-CN">可以选择缩略图生成方式。 (crop : 裁减, ratio : 比例)</description>
<default>crop</default> <default>crop</default>
<default>ratio</default> <default>ratio</default>
</var> </var>
<var name="thumbnail_width" type="text"> <var name="thumbnail_width" type="text">
<title xml:lang="ko">썸네일 가로크기</title> <title xml:lang="ko">썸네일 가로크기</title>
<title xml:lang="zh-CN">缩略图宽度</title>
<description xml:lang="ko">썸네일의 가로 크기를 지정할 수 있습니다. (기본 100px)</description> <description xml:lang="ko">썸네일의 가로 크기를 지정할 수 있습니다. (기본 100px)</description>
<description xml:lang="zh-CN">可以指定缩略图宽度。 (默认为 100px)</description>
<default>100</default> <default>100</default>
</var> </var>
<var name="thumbnail_height" type="text"> <var name="thumbnail_height" type="text">
<title xml:lang="ko">썸네일 세로크기</title> <title xml:lang="ko">썸네일 세로크기</title>
<title xml:lang="zh-CN">缩略图高度</title>
<description xml:lang="ko">썸네일의 세로 크기를 지정할 수 있습니다. (기본 100px)</description> <description xml:lang="ko">썸네일의 세로 크기를 지정할 수 있습니다. (기본 100px)</description>
<description xml:lang="zh-CN">可以指定缩略图高度。 (默认为 100px)</description>
<default>100</default> <default>100</default>
</var> </var>
<var name="display_number" type="select"> <var name="display_number" type="select">

View file

@ -34,7 +34,6 @@
// document model 객체 생성 // document model 객체 생성
$oDocumentModel = &getModel('document'); $oDocumentModel = &getModel('document');
// 원본글을 가져옴 // 원본글을 가져옴
if(!$manual_inserted) { if(!$manual_inserted) {
$oDocument = $oDocumentModel->getDocument($document_srl); $oDocument = $oDocumentModel->getDocument($document_srl);

View file

@ -213,6 +213,8 @@
$obj->document_srl = getNextSequence(); $obj->document_srl = getNextSequence();
$obj->category_srl = $category_srl; $obj->category_srl = $category_srl;
$obj->password_is_hashed = true; $obj->password_is_hashed = true;
$obj->comment_count = 0;
$obj->trackback_count = 0;
// 첨부파일 미리 등록 // 첨부파일 미리 등록
if($oDocument->hasUploadedFiles()) { if($oDocument->hasUploadedFiles()) {

View file

@ -213,7 +213,7 @@
} }
function getSummary($str_size = 50) { function getSummary($str_size = 50) {
$content = htmlspecialchars(strip_tags($this->getContent())); $content = htmlspecialchars(strip_tags(str_replace("&nbsp;"," ",$this->getContent())));
return cut_str($content, $str_size, '...'); return cut_str($content, $str_size, '...');
} }

View file

@ -5,11 +5,11 @@
* @brief 文章(document)模块语言包 * @brief 文章(document)模块语言包
**/ **/
$lang->document_list = 'Document list'; $lang->document_list = '主题目录';
$lang->thumbnail_type = 'Thumbnail Type'; $lang->thumbnail_type = '缩略图生成方式';
$lang->thumbnail_crop = 'Crop'; $lang->thumbnail_crop = '裁减';
$lang->thumbnail_ratio = 'Ratio'; $lang->thumbnail_ratio = '比例';
$lang->cmd_delete_all_thumbnail = 'Delete all thumbnails'; $lang->cmd_delete_all_thumbnail = '删除全部缩略图';
$lang->move_target_module = "移动目标模块"; $lang->move_target_module = "移动目标模块";
$lang->cmd_toggle_checked_document = '反选'; $lang->cmd_toggle_checked_document = '反选';

View file

@ -75,6 +75,9 @@
if($use_folder == "Y") { if($use_folder == "Y") {
$folder_id = rand(1000000,9999999); $folder_id = rand(1000000,9999999);
$folder_opener = str_replace("&amp;","&",$folder_opener);
$folder_closer = str_replace("&amp;","&",$folder_closer);
if($bold == "Y") $class = "bold"; if($bold == "Y") $class = "bold";
switch($color) { switch($color) {
case "red" : case "red" :

View file

@ -15,8 +15,8 @@ function getQuotation() {
var use_folder = node.getAttribute("use_folder"); var use_folder = node.getAttribute("use_folder");
var folder_opener = node.getAttribute("folder_opener"); var folder_opener = node.getAttribute("folder_opener");
var folder_closer = node.getAttribute("folder_closer"); var folder_closer = node.getAttribute("folder_closer");
if(folder_opener) folder_opener = folder_opener.replace(/&amp;/g,'&').replace(/&gt;/g,'>').replace(/&lt;/,'<').replace(/&quot;/,'"'); if(folder_opener) folder_opener = folder_opener.replace(/&gt;/g,'>').replace(/&lt;/,'<').replace(/&quot;/,'"');
if(folder_closer) folder_closer = folder_closer.replace(/&amp;/g,'&').replace(/&gt;/g,'>').replace(/&lt;/,'<').replace(/&quot;/,'"'); if(folder_closer) folder_closer = folder_closer.replace(/&gt;/g,'>').replace(/&lt;/,'<').replace(/&quot;/,'"');
var bold = node.getAttribute("bold"); var bold = node.getAttribute("bold");
var color = node.getAttribute("color"); var color = node.getAttribute("color");
var margin = node.getAttribute("margin"); var margin = node.getAttribute("margin");
@ -86,8 +86,8 @@ function insertQuotation() {
var folder_closer = xGetElementById("quotation_closer").value; var folder_closer = xGetElementById("quotation_closer").value;
if(!folder_opener||!folder_closer) use_folder = "N"; if(!folder_opener||!folder_closer) use_folder = "N";
folder_opener = folder_opener.replace(/&/g,'&amp;').replace(/>/g,'&gt;').replace(/</g,'&lt;').replace(/"/g,'&quot;'); folder_opener = folder_opener.replace(/>/g,'&gt;').replace(/</g,'&lt;').replace(/"/g,'&quot;');
folder_closer = folder_closer.replace(/&/g,'&amp;').replace(/>/g,'&gt;').replace(/</g,'&lt;').replace(/"/g,'&quot;'); folder_closer = folder_closer.replace(/>/g,'&gt;').replace(/</g,'&lt;').replace(/"/g,'&quot;');
var bold = "N"; var bold = "N";
if(xGetElementById("quotation_bold").checked) bold = "Y"; if(xGetElementById("quotation_bold").checked) bold = "Y";

View file

@ -11,6 +11,7 @@
<action name="dispMemberOpenIDLeave" type="view" standalone="true" /> <action name="dispMemberOpenIDLeave" type="view" standalone="true" />
<action name="dispMemberOwnDocument" type="view" standalone="true" /> <action name="dispMemberOwnDocument" type="view" standalone="true" />
<action name="dispMemberScrappedDocument" type="view" standalone="true" /> <action name="dispMemberScrappedDocument" type="view" standalone="true" />
<action name="dispMemberFindAccount" type="view" standalone="true" />
<action name="dispMemberMessages" type="view" standalone="true" /> <action name="dispMemberMessages" type="view" standalone="true" />
<action name="dispMemberSendMessage" type="view" standalone="true" /> <action name="dispMemberSendMessage" type="view" standalone="true" />
@ -56,6 +57,9 @@
<action name="procMemberScrapDocument" type="controller" standalone="true" /> <action name="procMemberScrapDocument" type="controller" standalone="true" />
<action name="procMemberDeleteScrap" type="controller" standalone="true" /> <action name="procMemberDeleteScrap" type="controller" standalone="true" />
<action name="procMemberFindAccount" type="controller" standalone="true" />
<action name="procMemberAuthAccount" type="controller" standalone="true" />
<action name="procMemberAddFriend" type="controller" standalone="true" /> <action name="procMemberAddFriend" type="controller" standalone="true" />
<action name="procMemberMoveFriend" type="controller" standalone="true" /> <action name="procMemberMoveFriend" type="controller" standalone="true" />
<action name="procMemberDeleteFriend" type="controller" standalone="true" /> <action name="procMemberDeleteFriend" type="controller" standalone="true" />

View file

@ -53,6 +53,12 @@
$lang->current_password = 'Current Password'; $lang->current_password = 'Current Password';
$lang->openid = 'OpenID'; $lang->openid = 'OpenID';
$lang->webmaster_name = '웹마스터 이름';
$lang->webmaster_email = '웹마스터 메일주소';
$lang->about_webmaster_name = '인증 메일이나 기타 사이트 관리시 사용될 웹마스터의 이름을 입력해주세요. (기본 : webmaster)';
$lang->about_webmaster_email = '웹마스터의 메일 주소를 입력해주세요.';
$lang->search_target_list = array( $lang->search_target_list = array(
'user_id' => 'ID', 'user_id' => 'ID',
'user_name' => 'Name', 'user_name' => 'Name',
@ -78,6 +84,7 @@
$lang->cmd_modify_member_password = 'Change Password'; $lang->cmd_modify_member_password = 'Change Password';
$lang->cmd_view_member_info = 'Member Info'; $lang->cmd_view_member_info = 'Member Info';
$lang->cmd_leave = 'Leave'; $lang->cmd_leave = 'Leave';
$lang->cmd_find_member_account = 'Find Account Info';
$lang->cmd_member_list = 'Member List'; $lang->cmd_member_list = 'Member List';
$lang->cmd_module_config = 'Default Setting'; $lang->cmd_module_config = 'Default Setting';
@ -97,11 +104,19 @@
$lang->cmd_add_friend_group = 'Add Friend Group'; $lang->cmd_add_friend_group = 'Add Friend Group';
$lang->cmd_rename_friend_group = 'Change Name of Friend Group'; $lang->cmd_rename_friend_group = 'Change Name of Friend Group';
$lang->msg_email_not_exists = "Email address doesn't exists";
$lang->msg_alreay_scrapped = 'This article is already scrapped'; $lang->msg_alreay_scrapped = 'This article is already scrapped';
$lang->msg_cart_is_null = 'Please select the target'; $lang->msg_cart_is_null = 'Please select the target';
$lang->msg_checked_file_is_deleted = '%d attached files are deleted'; $lang->msg_checked_file_is_deleted = '%d attached files are deleted';
$lang->msg_find_account_title = 'Account Info';
$lang->msg_find_account_info = '요청하신 계정 정보는 아래와 같습니다';
$lang->msg_find_account_comment = '아래 링크를 클릭하시면 위에 적힌 비밀번호로 바뀌게 됩니다.<br />로그인 하신 후 비밀번호를 바꾸어주세요.';
$lang->msg_auth_mail_sended = '%s 메일로 인증 정보를 담은 메일이 발송되었습니다. 메일을 확인하세요.';
$lang->msg_success_authed = '인증이 정상적으로 되어 로그인 처리가 되었습니다. 꼭 인증 메일에 표시된 비밀번호를 이용하여 원하시는 비밀번호로 변경하세요.';
$lang->msg_no_message = 'There are no messages'; $lang->msg_no_message = 'There are no messages';
$lang->message_received = 'You got a new message'; $lang->message_received = 'You got a new message';
@ -172,4 +187,5 @@
$lang->about_openid_leave = '오픈아이디의 탈퇴는 현 사이트에서의 회원 정보를 삭제하는 것입니다.<br />탈퇴 후 로그인하시면 새로 가입하시는 것으로 되어 작성한 글에 대한 권한을 가질 수 없게 됩니다'; $lang->about_openid_leave = '오픈아이디의 탈퇴는 현 사이트에서의 회원 정보를 삭제하는 것입니다.<br />탈퇴 후 로그인하시면 새로 가입하시는 것으로 되어 작성한 글에 대한 권한을 가질 수 없게 됩니다';
$lang->about_member = "This is a module for creating/modifing/deleting members and managing group or join form.\nYou can manage members by creating new groups, and get additional information by managing join form"; $lang->about_member = "This is a module for creating/modifing/deleting members and managing group or join form.\nYou can manage members by creating new groups, and get additional information by managing join form";
$lang->about_find_member_account = '아이디/ 비밀번호는 가입시 등록한 메일 주소로 알려드립니다<br />가입할때 등록하신 메일 주소를 입력하시고 "아이디/ 비밀번호 찾기" 버튼을 클릭해주세요.<br />';
?> ?>

View file

@ -53,6 +53,12 @@
$lang->current_password = 'Contraseña actual'; $lang->current_password = 'Contraseña actual';
$lang->openid = 'OpenID'; $lang->openid = 'OpenID';
$lang->webmaster_name = '웹마스터 이름';
$lang->webmaster_email = '웹마스터 메일주소';
$lang->about_webmaster_name = '인증 메일이나 기타 사이트 관리시 사용될 웹마스터의 이름을 입력해주세요. (기본 : webmaster)';
$lang->about_webmaster_email = '웹마스터의 메일 주소를 입력해주세요.';
$lang->search_target_list = array( $lang->search_target_list = array(
'user_id' => 'ID', 'user_id' => 'ID',
'user_name' => 'Nombre', 'user_name' => 'Nombre',
@ -78,6 +84,7 @@
$lang->cmd_modify_member_password = 'Cambiar la contraseña'; $lang->cmd_modify_member_password = 'Cambiar la contraseña';
$lang->cmd_view_member_info = 'Información del usuario'; $lang->cmd_view_member_info = 'Información del usuario';
$lang->cmd_leave = 'Dejar de ser usuario'; $lang->cmd_leave = 'Dejar de ser usuario';
$lang->cmd_find_member_account = 'Find Account Info';
$lang->cmd_member_list = 'Lista de los Usuarios'; $lang->cmd_member_list = 'Lista de los Usuarios';
$lang->cmd_module_config = 'Configuración predefinidos'; $lang->cmd_module_config = 'Configuración predefinidos';
@ -97,11 +104,19 @@
$lang->cmd_add_friend_group = 'agregar grupo de amigos'; $lang->cmd_add_friend_group = 'agregar grupo de amigos';
$lang->cmd_rename_friend_group = 'Cambiar el nombre del grupo de amigos'; $lang->cmd_rename_friend_group = 'Cambiar el nombre del grupo de amigos';
$lang->msg_email_not_exists = "Email address doesn't exists";
$lang->msg_alreay_scrapped = 'Este documento ya esta hecho scrap'; $lang->msg_alreay_scrapped = 'Este documento ya esta hecho scrap';
$lang->msg_cart_is_null = 'Seleciona el objetivo'; $lang->msg_cart_is_null = 'Seleciona el objetivo';
$lang->msg_checked_file_is_deleted = '%d archivos adjuntos son eliminados'; $lang->msg_checked_file_is_deleted = '%d archivos adjuntos son eliminados';
$lang->msg_find_account_title = 'Account Info';
$lang->msg_find_account_info = '요청하신 계정 정보는 아래와 같습니다';
$lang->msg_find_account_comment = '아래 링크를 클릭하시면 위에 적힌 비밀번호로 바뀌게 됩니다.<br />로그인 하신 후 비밀번호를 바꾸어주세요.';
$lang->msg_auth_mail_sended = '%s 메일로 인증 정보를 담은 메일이 발송되었습니다. 메일을 확인하세요.';
$lang->msg_success_authed = '인증이 정상적으로 되어 로그인 처리가 되었습니다. 꼭 인증 메일에 표시된 비밀번호를 이용하여 원하시는 비밀번호로 변경하세요.';
$lang->msg_no_message = 'No hay mensajes'; $lang->msg_no_message = 'No hay mensajes';
$lang->message_received = 'Usted ha recibido un mensaje'; $lang->message_received = 'Usted ha recibido un mensaje';
@ -172,4 +187,5 @@
$lang->about_openid_leave = '오픈아이디의 탈퇴는 현 사이트에서의 회원 정보를 삭제하는 것입니다.<br />탈퇴 후 로그인하시면 새로 가입하시는 것으로 되어 작성한 글에 대한 권한을 가질 수 없게 됩니다'; $lang->about_openid_leave = '오픈아이디의 탈퇴는 현 사이트에서의 회원 정보를 삭제하는 것입니다.<br />탈퇴 후 로그인하시면 새로 가입하시는 것으로 되어 작성한 글에 대한 권한을 가질 수 없게 됩니다';
$lang->about_member = "Esto es un módulo para crear/modificar/eliminar usuarios y manejar grupos o el formato del registro.\n Usted puede manejar usuarios creando nuevos grupos, y obtener información adicional manejando el formato del registro"; $lang->about_member = "Esto es un módulo para crear/modificar/eliminar usuarios y manejar grupos o el formato del registro.\n Usted puede manejar usuarios creando nuevos grupos, y obtener información adicional manejando el formato del registro";
$lang->about_find_member_account = '아이디/ 비밀번호는 가입시 등록한 메일 주소로 알려드립니다<br />가입할때 등록하신 메일 주소를 입력하시고 "아이디/ 비밀번호 찾기" 버튼을 클릭해주세요.<br />';
?> ?>

View file

@ -53,6 +53,12 @@
$lang->current_password = '現在のパスワード'; $lang->current_password = '現在のパスワード';
$lang->openid = 'OpenID'; $lang->openid = 'OpenID';
$lang->webmaster_name = '웹마스터 이름';
$lang->webmaster_email = '웹마스터 메일주소';
$lang->about_webmaster_name = '인증 메일이나 기타 사이트 관리시 사용될 웹마스터의 이름을 입력해주세요. (기본 : webmaster)';
$lang->about_webmaster_email = '웹마스터의 메일 주소를 입력해주세요.';
$lang->search_target_list = array( $lang->search_target_list = array(
'user_id' => 'ユーザID', 'user_id' => 'ユーザID',
'user_name' => '名前', 'user_name' => '名前',
@ -78,6 +84,7 @@
$lang->cmd_modify_member_password = 'パスワード変更'; $lang->cmd_modify_member_password = 'パスワード変更';
$lang->cmd_view_member_info = '会員情報表示'; $lang->cmd_view_member_info = '会員情報表示';
$lang->cmd_leave = '脱会'; $lang->cmd_leave = '脱会';
$lang->cmd_find_member_account = 'Find Account Info';
$lang->cmd_member_list = '会員リスト'; $lang->cmd_member_list = '会員リスト';
$lang->cmd_module_config = '基本設定'; $lang->cmd_module_config = '基本設定';
@ -97,11 +104,19 @@
$lang->cmd_add_friend_group = '友達グループ追加'; $lang->cmd_add_friend_group = '友達グループ追加';
$lang->cmd_rename_friend_group = '友達グループ名変更'; $lang->cmd_rename_friend_group = '友達グループ名変更';
$lang->msg_email_not_exists = "Email address doesn't exists";
$lang->msg_alreay_scrapped = '既にスクラップされたコンテンツです。'; $lang->msg_alreay_scrapped = '既にスクラップされたコンテンツです。';
$lang->msg_cart_is_null = '対象を選択してください。'; $lang->msg_cart_is_null = '対象を選択してください。';
$lang->msg_checked_file_is_deleted = '%d個の添付ファイルが削除されました。'; $lang->msg_checked_file_is_deleted = '%d個の添付ファイルが削除されました。';
$lang->msg_find_account_title = 'Account Info';
$lang->msg_find_account_info = '요청하신 계정 정보는 아래와 같습니다';
$lang->msg_find_account_comment = '아래 링크를 클릭하시면 위에 적힌 비밀번호로 바뀌게 됩니다.<br />로그인 하신 후 비밀번호를 바꾸어주세요.';
$lang->msg_auth_mail_sended = '%s 메일로 인증 정보를 담은 메일이 발송되었습니다. 메일을 확인하세요.';
$lang->msg_success_authed = '인증이 정상적으로 되어 로그인 처리가 되었습니다. 꼭 인증 메일에 표시된 비밀번호를 이용하여 원하시는 비밀번호로 변경하세요.';
$lang->msg_no_message = 'メッセージがありません。'; $lang->msg_no_message = 'メッセージがありません。';
$lang->message_received = 'メッセージが届きました。'; $lang->message_received = 'メッセージが届きました。';
@ -172,4 +187,5 @@
$lang->about_openid_leave = '오픈아이디의 탈퇴는 현 사이트에서의 회원 정보를 삭제하는 것입니다.<br />탈퇴 후 로그인하시면 새로 가입하시는 것으로 되어 작성한 글에 대한 권한을 가질 수 없게 됩니다'; $lang->about_openid_leave = '오픈아이디의 탈퇴는 현 사이트에서의 회원 정보를 삭제하는 것입니다.<br />탈퇴 후 로그인하시면 새로 가입하시는 것으로 되어 작성한 글에 대한 권한을 가질 수 없게 됩니다';
$lang->about_member = "会員の作成・修正・削除することができ、グループの管理、加入フォームの管理などが行える会員管理モジュールです。デフォルトで作成されたグループにグループを追加作成して会員管理ができるようにし、加入フォーム管理では基本情報の他、フォームの入力情報を追加することができます。"; $lang->about_member = "会員の作成・修正・削除することができ、グループの管理、加入フォームの管理などが行える会員管理モジュールです。デフォルトで作成されたグループにグループを追加作成して会員管理ができるようにし、加入フォーム管理では基本情報の他、フォームの入力情報を追加することができます。";
$lang->about_find_member_account = '아이디/ 비밀번호는 가입시 등록한 메일 주소로 알려드립니다<br />가입할때 등록하신 메일 주소를 입력하시고 "아이디/ 비밀번호 찾기" 버튼을 클릭해주세요.<br />';
?> ?>

View file

@ -53,6 +53,12 @@
$lang->current_password = '현재 비밀번호'; $lang->current_password = '현재 비밀번호';
$lang->openid = 'OpenID'; $lang->openid = 'OpenID';
$lang->webmaster_name = '웹마스터 이름';
$lang->webmaster_email = '웹마스터 메일주소';
$lang->about_webmaster_name = '인증 메일이나 기타 사이트 관리시 사용될 웹마스터의 이름을 입력해주세요. (기본 : webmaster)';
$lang->about_webmaster_email = '웹마스터의 메일 주소를 입력해주세요.';
$lang->search_target_list = array( $lang->search_target_list = array(
'user_id' => '아이디', 'user_id' => '아이디',
'user_name' => '이름', 'user_name' => '이름',
@ -79,6 +85,7 @@
$lang->cmd_modify_member_password = '비밀번호 변경'; $lang->cmd_modify_member_password = '비밀번호 변경';
$lang->cmd_view_member_info = '회원 정보 보기'; $lang->cmd_view_member_info = '회원 정보 보기';
$lang->cmd_leave = '탈퇴'; $lang->cmd_leave = '탈퇴';
$lang->cmd_find_member_account = '아이디/비밀번호 찾기';
$lang->cmd_member_list = '회원 목록'; $lang->cmd_member_list = '회원 목록';
$lang->cmd_module_config = '기본 설정'; $lang->cmd_module_config = '기본 설정';
@ -98,11 +105,20 @@
$lang->cmd_add_friend_group = '친구 그룹 추가'; $lang->cmd_add_friend_group = '친구 그룹 추가';
$lang->cmd_rename_friend_group = '친구 그룹 이름 변경'; $lang->cmd_rename_friend_group = '친구 그룹 이름 변경';
$lang->msg_email_not_exists = '이메일 주소가 존재하지 않습니다';
$lang->msg_alreay_scrapped = '이미 스크랩된 게시물입니다'; $lang->msg_alreay_scrapped = '이미 스크랩된 게시물입니다';
$lang->msg_cart_is_null = '대상을 선택해주세요'; $lang->msg_cart_is_null = '대상을 선택해주세요';
$lang->msg_checked_file_is_deleted = '%d개의 첨부파일이 삭제되었습니다'; $lang->msg_checked_file_is_deleted = '%d개의 첨부파일이 삭제되었습니다';
$lang->msg_find_account_title = '아이디/ 비밀번호 정보입니다';
$lang->msg_find_account_info = '요청하신 계정 정보는 아래와 같습니다';
$lang->msg_find_account_comment = '아래 링크를 클릭하시면 위에 적힌 비밀번호로 바뀌게 됩니다.<br />로그인 하신 후 비밀번호를 바꾸어주세요.';
$lang->msg_auth_mail_sended = '%s 메일로 인증 정보를 담은 메일이 발송되었습니다. 메일을 확인하세요.';
$lang->msg_invalid_auth_key = '잘못된 계정 인증 요청입니다.<br />아이디/비밀번호 찾기를 다시 하시거나 사이트 관리자에게 계정 정보를 문의해주세요';
$lang->msg_success_authed = '인증이 정상적으로 되어 로그인 처리가 되었습니다. 꼭 인증 메일에 표시된 비밀번호를 이용하여 원하시는 비밀번호로 변경하세요.';
$lang->msg_no_message = '쪽지가 없습니다'; $lang->msg_no_message = '쪽지가 없습니다';
$lang->message_received = '쪽지가 왔습니다'; $lang->message_received = '쪽지가 왔습니다';
@ -171,6 +187,7 @@
$lang->about_openid = '오픈아이디로 가입시 아이디와 메일등의 기본 정보는 이 사이트에 저장이 되지만 비밀번호와 인증을 위한 처리는 해당 오픈아이디 제공서비스에서 이루어집니다.'; $lang->about_openid = '오픈아이디로 가입시 아이디와 메일등의 기본 정보는 이 사이트에 저장이 되지만 비밀번호와 인증을 위한 처리는 해당 오픈아이디 제공서비스에서 이루어집니다.';
$lang->about_openid_leave = '오픈아이디의 탈퇴는 현 사이트에서의 회원 정보를 삭제하는 것입니다.<br />탈퇴 후 로그인하시면 새로 가입하시는 것으로 되어 작성한 글에 대한 권한을 가질 수 없게 됩니다'; $lang->about_openid_leave = '오픈아이디의 탈퇴는 현 사이트에서의 회원 정보를 삭제하는 것입니다.<br />탈퇴 후 로그인하시면 새로 가입하시는 것으로 되어 작성한 글에 대한 권한을 가질 수 없게 됩니다';
$lang->about_find_member_account = '아이디/ 비밀번호는 가입시 등록한 메일 주소로 알려드립니다<br />가입할때 등록하신 메일 주소를 입력하시고 "아이디/ 비밀번호 찾기" 버튼을 클릭해주세요.<br />';
$lang->about_member = "회원을 생성/수정/삭제 할 수 있고 그룹관리나 가입폼 관리등을 할 수 있는 회원 관리 모듈입니다.\n기본으로 생성된 그룹외의 그룹을 생성하여 회원 관리가 가능하고 가입폼관리를 통한 기본 정보외의 추가 정보를 요구받을 수도 있습니다."; $lang->about_member = "회원을 생성/수정/삭제 할 수 있고 그룹관리나 가입폼 관리등을 할 수 있는 회원 관리 모듈입니다.\n기본으로 생성된 그룹외의 그룹을 생성하여 회원 관리가 가능하고 가입폼관리를 통한 기본 정보외의 추가 정보를 요구받을 수도 있습니다.";
?> ?>

View file

@ -53,6 +53,12 @@
$lang->current_password = '当前密码'; $lang->current_password = '当前密码';
$lang->openid = 'OpenID'; $lang->openid = 'OpenID';
$lang->webmaster_name = '웹마스터 이름';
$lang->webmaster_email = '웹마스터 메일주소';
$lang->about_webmaster_name = '인증 메일이나 기타 사이트 관리시 사용될 웹마스터의 이름을 입력해주세요. (기본 : webmaster)';
$lang->about_webmaster_email = '웹마스터의 메일 주소를 입력해주세요.';
$lang->search_target_list = array( $lang->search_target_list = array(
'user_id' => '用户名', 'user_id' => '用户名',
'user_name' => '姓名', 'user_name' => '姓名',
@ -78,6 +84,7 @@
$lang->cmd_modify_member_password = '修改密码'; $lang->cmd_modify_member_password = '修改密码';
$lang->cmd_view_member_info = '查看会员信息'; $lang->cmd_view_member_info = '查看会员信息';
$lang->cmd_leave = '注销'; $lang->cmd_leave = '注销';
$lang->cmd_find_member_account = 'Find Account Info';
$lang->cmd_member_list = '会员目录'; $lang->cmd_member_list = '会员目录';
$lang->cmd_module_config = '基本设置'; $lang->cmd_module_config = '基本设置';
@ -97,11 +104,19 @@
$lang->cmd_add_friend_group = '添加好友组'; $lang->cmd_add_friend_group = '添加好友组';
$lang->cmd_rename_friend_group = '修改好友组名称'; $lang->cmd_rename_friend_group = '修改好友组名称';
$lang->msg_email_not_exists = "Email address doesn't exists";
$lang->msg_alreay_scrapped = '已收藏的主题!'; $lang->msg_alreay_scrapped = '已收藏的主题!';
$lang->msg_cart_is_null = '请选择对象。'; $lang->msg_cart_is_null = '请选择对象。';
$lang->msg_checked_file_is_deleted = '已删除%d个附件。'; $lang->msg_checked_file_is_deleted = '已删除%d个附件。';
$lang->msg_find_account_title = 'Account Info';
$lang->msg_find_account_info = '요청하신 계정 정보는 아래와 같습니다';
$lang->msg_find_account_comment = '아래 링크를 클릭하시면 위에 적힌 비밀번호로 바뀌게 됩니다.<br />로그인 하신 후 비밀번호를 바꾸어주세요.';
$lang->msg_auth_mail_sended = '%s 메일로 인증 정보를 담은 메일이 발송되었습니다. 메일을 확인하세요.';
$lang->msg_success_authed = '인증이 정상적으로 되어 로그인 처리가 되었습니다. 꼭 인증 메일에 표시된 비밀번호를 이용하여 원하시는 비밀번호로 변경하세요.';
$lang->msg_no_message = '没有短消息。'; $lang->msg_no_message = '没有短消息。';
$lang->message_received = '您有新消息。'; $lang->message_received = '您有新消息。';
@ -172,4 +187,5 @@
$lang->about_openid_leave = '删除OpenID就等于永久删除站内用户的信息。<br />被删除后的重新登录就等于新会员注册,因此对以前自己写的主题将失去相应权限。'; $lang->about_openid_leave = '删除OpenID就等于永久删除站内用户的信息。<br />被删除后的重新登录就等于新会员注册,因此对以前自己写的主题将失去相应权限。';
$lang->about_member = "可以添加/修改/删除会员及管理用户组或注册表单的会员管理模块。\n此模块不仅可以生成缺省用户组以外的其他用户组来管理会员,并且通过注册表单的管理获得除会员基本信息以外的扩展信息。"; $lang->about_member = "可以添加/修改/删除会员及管理用户组或注册表单的会员管理模块。\n此模块不仅可以生成缺省用户组以外的其他用户组来管理会员,并且通过注册表单的管理获得除会员基本信息以外的扩展信息。";
$lang->about_find_member_account = '아이디/ 비밀번호는 가입시 등록한 메일 주소로 알려드립니다<br />가입할때 등록하신 메일 주소를 입력하시고 "아이디/ 비밀번호 찾기" 버튼을 클릭해주세요.<br />';
?> ?>

View file

@ -83,7 +83,7 @@
**/ **/
function procMemberAdminInsertConfig() { function procMemberAdminInsertConfig() {
// 기본 정보를 받음 // 기본 정보를 받음
$args = Context::gets('skin','colorset','enable_openid','enable_join','limit_day','redirect_url','agreement','image_name','image_mark', 'image_name_max_width', 'image_name_max_height','image_mark_max_width','image_mark_max_height'); $args = Context::gets('webmaster_name','webmaster_email','skin','colorset','enable_openid','enable_join','limit_day','redirect_url','agreement','image_name','image_mark', 'image_name_max_width', 'image_name_max_height','image_mark_max_width','image_mark_max_height');
if(!$args->skin) $args->skin = "default"; if(!$args->skin) $args->skin = "default";
if(!$args->colorset) $args->colorset = "white"; if(!$args->colorset) $args->colorset = "white";
if($args->enable_join!='Y') $args->enable_join = 'N'; if($args->enable_join!='Y') $args->enable_join = 'N';

View file

@ -60,6 +60,7 @@
// 설정 정보를 받아옴 (module model 객체를 이용) // 설정 정보를 받아옴 (module model 객체를 이용)
$oModuleModel = &getModel('module'); $oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('member'); $config = $oModuleModel->getModuleConfig('member');
if(!$config->webmaster_name) $config->webmaster_name = 'webmaster';
if(!$config->image_name_max_width) $config->image_name_max_width = 90; if(!$config->image_name_max_width) $config->image_name_max_width = 90;
if(!$config->image_name_max_height) $config->image_name_max_height = 20; if(!$config->image_name_max_height) $config->image_name_max_height = 20;
if(!$config->image_mark_max_width) $config->image_mark_max_width = 20; if(!$config->image_mark_max_width) $config->image_mark_max_width = 20;

View file

@ -23,6 +23,7 @@
$oModuleController->insertActionForward('member', 'view', 'dispMemberLogout'); $oModuleController->insertActionForward('member', 'view', 'dispMemberLogout');
$oModuleController->insertActionForward('member', 'view', 'dispMemberOwnDocument'); $oModuleController->insertActionForward('member', 'view', 'dispMemberOwnDocument');
$oModuleController->insertActionForward('member', 'view', 'dispMemberScrappedDocument'); $oModuleController->insertActionForward('member', 'view', 'dispMemberScrappedDocument');
$oModuleController->insertActionForward('member', 'view', 'dispMemberFindAccount');
$oModuleController->insertActionForward('member', 'view', 'dispMemberMessages'); $oModuleController->insertActionForward('member', 'view', 'dispMemberMessages');
$oModuleController->insertActionForward('member', 'view', 'dispMemberSendMessage'); $oModuleController->insertActionForward('member', 'view', 'dispMemberSendMessage');
@ -133,6 +134,10 @@
// member 디렉토리 체크 (2007. 8. 11 추가) // member 디렉토리 체크 (2007. 8. 11 추가)
if(!is_dir("./files/member_extra_info")) return true; if(!is_dir("./files/member_extra_info")) return true;
// dispMemberFindAccount act의 여부 체크 (2007. 10. 15)
$act = $oModuleModel->getActionForward('dispMemberFindAccount');
if(!$act) return true;
return false; return false;
} }
@ -145,6 +150,7 @@
$oModuleController->insertActionForward('member', 'view', 'dispMemberOwnDocument'); $oModuleController->insertActionForward('member', 'view', 'dispMemberOwnDocument');
$oModuleController->insertActionForward('member', 'view', 'dispMemberScrappedDocument'); $oModuleController->insertActionForward('member', 'view', 'dispMemberScrappedDocument');
$oModuleController->insertActionForward('member', 'view', 'dispMemberOpenIDLeave'); $oModuleController->insertActionForward('member', 'view', 'dispMemberOpenIDLeave');
$oModuleController->insertActionForward('member', 'view', 'dispMemberFindAccount');
// member 디렉토리 체크 // member 디렉토리 체크
FileHandler::makeDir('./files/member_extra_info/image_name'); FileHandler::makeDir('./files/member_extra_info/image_name');
@ -152,6 +158,8 @@
FileHandler::makeDir('./files/member_extra_info/signature'); FileHandler::makeDir('./files/member_extra_info/signature');
FileHandler::makeDir('./files/member_extra_info/new_message_flags'); FileHandler::makeDir('./files/member_extra_info/new_message_flags');
// dispMemberFindAccount act의 여부 체크 (2007. 10. 15)
return new Object(0, 'success_updated'); return new Object(0, 'success_updated');
} }

View file

@ -159,7 +159,19 @@
} }
// 쪽지 발송 // 쪽지 발송
return $this->sendMessage($logged_info->member_srl, $receiver_srl, $title, $content); $output = $this->sendMessage($logged_info->member_srl, $receiver_srl, $title, $content);
// 메일로도 발송
if($output->toBool()) {
$oMail = new Mail();
$oMail->setTitle($title);
$oMail->setContent($content);
$oMail->setSender($logged_info->user_name, $logged_info->email_address);
$oMail->setReceiptor($receiver_member_info->user_name, $receiver_member_info->email_address);
$oMail->send();
}
return $output;
} }
function sendMessage($sender_srl, $receiver_srl, $title, $content, $sender_log = true) { function sendMessage($sender_srl, $receiver_srl, $title, $content, $sender_log = true) {
@ -892,6 +904,93 @@
return new Object(0,'success'); return new Object(0,'success');
} }
/**
* @brief 아이디/ 비밀번호 찾기
**/
function procMemberFindAccount() {
$email_address = Context::get('email_address');
if(!$email_address) return new Object(-1, 'msg_invalid_request');
$oMemberModel = &getModel('member');
// 메일 주소에 해당하는 회원이 있는지 검사
$member_srl = $oMemberModel->getMemberSrlByEmailAddress($email_address);
if(!$member_srl) return new Object(-1, 'msg_email_not_exists');
// 회원의 정보를 가져옴
$member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl);
// 인증 DB에 데이터를 넣음
$args->user_id = $member_info->user_id;
$args->member_srl = $member_info->member_srl;
$args->new_password = rand(111111,999999);
$args->auth_key = md5( rand(0,999999 ) );
$output = executeQuery('member.insertAuthMail', $args);
if(!$output->toBool()) return $output;
// 메일 내용을 구함
Context::set('auth_args', $args);
Context::set('member_info', $member_info);
$oTemplate = &TemplateHandler::getInstance();
$content = $oTemplate->compile($this->module_path.'tpl', 'find_member_account_mail');
// 사이트 웹마스터 정보를 구함
$oModuleModel = &getModel('module');
$member_config = $oModuleModel->getModuleConfig('member');
// 메일 발송
$oMail = new Mail();
$oMail->setTitle( Context::getLang('msg_find_account_title') );
$oMail->setContent($content);
$oMail->setSender( $member_config->webmaster_name?$member_config->webmaster_name:'webmaster', $member_config->webmaster_email);
$oMail->setReceiptor( $member_info->user_name, $member_info->email_address );
$oMail->send();
// 메세지 return
$msg = sprintf(Context::getLang('msg_auth_mail_sended'), $member_info->email_address);
$this->setMessage($msg);
}
/**
* @brief 아이디/비밀번호 찾기 기능 실행
* 메일에 등록된 링크를 선택시 호출되는 method로 비밀번호를 바꾸고 인증을 시켜버림
**/
function procMemberAuthAccount() {
// user_id, authkey 검사
$member_srl = Context::get('member_srl');
$auth_key = Context::get('auth_key');
if(!$member_srl || !$auth_key) return $this->stop('msg_invalid_request');
// user_id, authkey로 비밀번호 찾기 로그 검사
$args->member_srl = $member_srl;
$args->auth_key = $auth_key;
$output = executeQuery('member.getAuthMail', $args);
if(!$output->toBool() || $output->data->auth_key != $auth_key) return $this->stop('msg_invalid_auth_key');
// 인증 정보가 맞다면 새비밀번호로 비밀번호를 바꾸고 인증 상태로 바꿈
$args->password = md5($output->data->new_password);
$output = executeQuery('member.updateMemberPassword', $args);
if(!$output->toBool()) return $this->stop($output->getMessage());
// 인증 시킴
$oMemberModel = &getModel('member');
// 회원의 정보를 가져옴
$member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl);
// 사용자 정보의 최근 로그인 시간을 기록
$output = executeQuery('member.updateLastLogin', $args);
$this->setSessionInfo($member_info);
// 인증 테이블에서 member_srl에 해당하는 모든 값을 지움
executeQuery('member.deleteAuthMail',$args);
// 결과를 통보
$this->setTemplatePath($this->module_path.'tpl');
$this->setTemplateFile('msg_success_authed');
}
/** /**
* @brief 서명을 파일로 저장 * @brief 서명을 파일로 저장
**/ **/
@ -1270,16 +1369,14 @@
if(!$image_name && !$image_mark) return $matches[0]; if(!$image_name && !$image_mark) return $matches[0];
if($image_name->width) { if($image_name->width) {
if($image_mark->height && $image_mark->height > $image_name->height) $top_margin = ($image_mark->height - $image_name->height)/2; $text = sprintf('<img src="%s" border="0" alt="id: %s" title="id: %s" width="%s" height="%s" align="absmiddle" style="margin-right:3px" />', Context::getRequestUri().$image_name->file, htmlspecialchars(strip_tags($matches[5])), htmlspecialchars(strip_tags($matches[5])), $image_name->width, $image_name->height);
else $top_margin = 0;
$text = sprintf('<img src="%s" border="0" alt="id: %s" title="id: %s" width="%s" height="%s" style="margin-top:%dpx;"/>', Context::getRequestUri().$image_name->file, htmlspecialchars(strip_tags($matches[5])), htmlspecialchars(strip_tags($matches[5])), $image_name->width, $image_name->height, $top_margin);
} }
if($image_mark->width) { if($image_mark->width) {
$matches[0] = str_replace('<'.$matches[6], sprintf('<%s style="cursor:pointer;background:url(%s) no-repeat left;padding-left:%dpx; height:%dpx" ', $matches[1],Context::getRequestUri().$image_mark->file, $image_mark->width+2, $image_mark->height), $matches[0] ); $text = sprintf('<img src="%s" border="0" alt="id: %s" title="id : %s" width="%s" height="%s" align="absmiddle" style="margin-right:3px"/>%s', Context::getRequestUri().$image_mark->file, htmlspecialchars(strip_tags($matches[5])), htmlspecialchars(strip_tags($matches[5])), $image_mark->width, $image_mark->height, $text);
} }
$output = str_replace('>'.$matches[5].'<', '>'.$text.'<', $matches[0]);
return $output; return sprintf('<span class="nowrap member_%d">%s</span>',$member_srl, $text);
} }
/** /**

View file

@ -444,5 +444,14 @@
$this->setTemplateFile('add_friend_group'); $this->setTemplateFile('add_friend_group');
} }
/**
* @brief 아이디/ 비밀번호 찾기 기능
**/
function dispMemberFindAccount() {
if(Context::get('is_logged')) return $this->stop('already_logged');
$this->setTemplateFile('find_member_account');
}
} }
?> ?>

View file

@ -0,0 +1,8 @@
<query id="deleteAuthMail" action="delete">
<tables>
<table name="member_auth_mail" />
</tables>
<conditions>
<condition operation="equal" column="member_srl" var="member_srl" notnull="notnull" />
</conditions>
</query>

View file

@ -0,0 +1,12 @@
<query id="getAuthMail" action="select">
<tables>
<table name="member_auth_mail" />
</tables>
<columns>
<column name="*" />
</columns>
<conditions>
<condition operation="equal" column="auth_key" var="auth_key" notnull="notnull" />
<condition operation="equal" column="member_srl" var="member_srl" notnull="notnull" pipe="and" />
</conditions>
</query>

View file

@ -0,0 +1,12 @@
<query id="insertAuthMail" action="insert">
<tables>
<table name="member_auth_mail" />
</tables>
<columns>
<column name="member_srl" var="member_srl" filter="number" notnull="notnull" />
<column name="user_id" var="user_id" notnull="notnull" />
<column name="auth_key" var="auth_key" notnull="notnull" minlength="1" maxlength="60" />
<column name="new_password" var="new_password" notnull="notnull" minlength="1" maxlength="60" />
<column name="regdate" default="curdate()" />
</columns>
</query>

View file

@ -0,0 +1,7 @@
<table name="member_auth_mail">
<column name="auth_key" type="varchar" size="60" notnull="notnull" unique="unique_key"/>
<column name="member_srl" type="number" size="11" notnull="notnull" unique="unique_key" />
<column name="user_id" type="varchar" size="80" notnull="notnull" />
<column name="new_password" type="varchar" size="80" notnull="notnull" />
<column name="regdate" type="date" index="idx_regdate" />
</table>

View file

@ -0,0 +1,10 @@
<filter name="find_member_account" module="member" act="procMemberFindAccount">
<form>
<node target="email_address" required="true" minlength="2" maxlength="255" filter="email" />
</form>
<parameter />
<response callback_func="completeFindMemberAccount">
<tag name="error" />
<tag name="message" />
</response>
</filter>

View file

@ -0,0 +1,27 @@
{@ $member_title = $lang->cmd_find_member_account}
<!--#include("./common_header.html")-->
<!--%import("filter/find_member_account.xml")-->
<form action="./" method="get" onsubmit="return procFilter(this, find_member_account)">
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="document_srl" value="{$document_srl}" />
<input type="hidden" name="page" value="{$page}" />
<table cellspacing="0" class="memberInfoTable gap1" title="$lang->msg_leave_member}">
<col width="140" />
<col />
<tr class="first-child">
<th scope="row"><label for="cpw">{$lang->email_address}</label></th>
<td>
<input type="text" name="email_address" class="inputTypeText w400" />
<p>{$lang->about_find_member_account}</p>
</td>
</tr>
</table>
<div class="help tCenter">
<span class="button"><input type="submit" value="{$lang->cmd_find_member_account}" accesskey="s" /></span>
</div>
</form>
<!--#include("./common_footer.html")-->

View file

@ -224,3 +224,8 @@ function doDeleteScrap(document_srl) {
params['document_srl'] = document_srl; params['document_srl'] = document_srl;
exec_xml('member', 'procMemberDeleteScrap', params, function() { location.reload(); }); exec_xml('member', 'procMemberDeleteScrap', params, function() { location.reload(); });
} }
/* 비밀번호 찾기 후 */
function completeFindMemberAccount(ret_obj, response_tags) {
alert(ret_obj['message']);
}

View file

@ -29,6 +29,7 @@
<ul class="help"> <ul class="help">
<li class="first-child"><a href="{getUrl('act','dispMemberSignUpForm')}"><img src="./images/common/btn_joinus.gif" alt="{$lang->cmd_signup}" /></a></li> <li class="first-child"><a href="{getUrl('act','dispMemberSignUpForm')}"><img src="./images/common/btn_joinus.gif" alt="{$lang->cmd_signup}" /></a></li>
<li><a href="{getUrl('act','dispMemberFindAccount')}">{$lang->cmd_find_member_account}</a></li>
</ul> </ul>
</div> </div>

View file

@ -0,0 +1,10 @@
<filter name="find_member_account" module="member" act="procMemberFindAccount">
<form>
<node target="email_address" required="true" minlength="2" maxlength="255" filter="email" />
</form>
<parameter />
<response callback_func="completeFindMemberAccount">
<tag name="error" />
<tag name="message" />
</response>
</filter>

View file

@ -0,0 +1,27 @@
{@ $member_title = $lang->cmd_find_member_account}
<!--#include("./common_header.html")-->
<!--%import("filter/find_member_account.xml")-->
<form action="./" method="get" onsubmit="return procFilter(this, find_member_account)">
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="document_srl" value="{$document_srl}" />
<input type="hidden" name="page" value="{$page}" />
<table cellspacing="0" class="memberInfoTable gap1" title="$lang->msg_leave_member}">
<col width="140" />
<col />
<tr class="first-child">
<th scope="row"><label for="cpw">{$lang->email_address}</label></th>
<td>
<input type="text" name="email_address" class="inputTypeText w400" />
<p>{$lang->about_find_member_account}</p>
</td>
</tr>
</table>
<div class="help tCenter">
<span class="button"><input type="submit" value="{$lang->cmd_find_member_account}" accesskey="s" /></span>
</div>
</form>
<!--#include("./common_footer.html")-->

View file

@ -224,3 +224,8 @@ function doDeleteScrap(document_srl) {
params['document_srl'] = document_srl; params['document_srl'] = document_srl;
exec_xml('member', 'procMemberDeleteScrap', params, function() { location.reload(); }); exec_xml('member', 'procMemberDeleteScrap', params, function() { location.reload(); });
} }
/* 비밀번호 찾기 후 */
function completeFindMemberAccount(ret_obj, response_tags) {
alert(ret_obj['message']);
}

View file

@ -28,6 +28,7 @@
</form> </form>
<div class="help tCenter"> <div class="help tCenter">
<a href="{getUrl('act','dispMemberFindAccount')}" class="button"><span>{$lang->cmd_find_member_account}</span></a>
<a href="{getUrl('act','dispMemberSignUpForm')}" class="button"><span>{$lang->cmd_signup}</span></a> <a href="{getUrl('act','dispMemberSignUpForm')}" class="button"><span>{$lang->cmd_signup}</span></a>
</div> </div>
</div> </div>

View file

@ -0,0 +1,13 @@
{$lang->msg_find_account_info}<br />
<hr noshade="noshade" />
<ul>
<li>Site : <a href="{getUrl()}" target="_blank">{getUrl()}</a></li>
<li>{$lang->user_id} : {$member_info->user_id}</li>
<li>{$lang->user_name} : {$member_info->user_name}</li>
<li>{$lang->nick_name} : {$member_info->nick_name}</li>
<li>{$lang->email_address} : {$member_info->email_address}</li>
<li>{$lang->password} : <span style="color:red">{$auth_args->new_password}</span>
</ul>
<hr noshade="noshade" />
{$lang->msg_find_account_comment}<br />
<a href="{getUrl('','module','member','act','procMemberAuthAccount','member_srl',$member_info->member_srl, 'auth_key',$auth_args->auth_key)}" target="_blank">{getUrl('','module','member','act','procMemberAuthAccount','member_srl',$member_info->member_srl,'auth_key',$auth_args->auth_key)}</a>

View file

@ -9,6 +9,20 @@
<table cellspacing="0" class="tableType2 gap1"> <table cellspacing="0" class="tableType2 gap1">
<col width="150" /> <col width="150" />
<col /> <col />
<tr>
<th scope="row">{$lang->webmaster_name}</th>
<td>
<input type="text" name="webmaster_name" value="{$config->webmaster_name}" size="20" class="inputTypeText" />
<p>{$lang->about_webmaster_name}</p>
</td>
</tr>
<tr>
<th scope="row">{$lang->webmaster_email}</th>
<td>
<input type="text" name="webmaster_email" value="{$config->webmaster_email}" size="40" class="inputTypeText" />
<p>{$lang->about_webmaster_email}</p>
</td>
</tr>
<tr> <tr>
<th scope="row">{$lang->enable_openid}</th> <th scope="row">{$lang->enable_openid}</th>
<td> <td>

View file

@ -0,0 +1,4 @@
<script type="text/javascript">
alert("{$lang->msg_success_authed}");
location.href="{getUrl()}";
</script>

View file

@ -64,6 +64,8 @@
$point = $this->oPointModel->getPoint($member_srl); $point = $this->oPointModel->getPoint($member_srl);
$level = $this->oPointModel->getLevel($point, $this->config->level_step); $level = $this->oPointModel->getLevel($point, $this->config->level_step);
$text = $matches[5];
$src = sprintf("modules/point/icons/%s/%d.gif", $this->config->level_icon, $level); $src = sprintf("modules/point/icons/%s/%d.gif", $this->config->level_icon, $level);
if(!$this->icon_width) { if(!$this->icon_width) {
$info = getimagesize($src); $info = getimagesize($src);
@ -78,8 +80,11 @@
} }
} }
$code = sprintf('<%s title="%s:%s%s %s, %s:%s/%s" style="cursor:pointer;background:url(%s) no-repeat left;padding-left:%dpx; height:%dpx">%s</%s> ', $matches[6], Context::getLang('point'), $point, $this->config->point_name, $per?"(".$per."%)":"", Context::getLang('level'), $level, $this->config->max_level, Context::getRequestUri().$src, $this->icon_width+2, $this->icon_height, $matches[0], $matches[6]); $title = sprintf("%s:%s%s %s, %s:%s/%s", Context::getLang('point'), $point, $this->config->point_name, $per?"(".$per."%)":"", Context::getLang('level'), $level, $this->config->max_level);
$this->member_code[$member_srl] = $code;
$text = sprintf('<span class="nowrap member_%s"><img src="%s" width="%s" height="%s" alt="%s" title="%s" align="absmiddle" style="margin-right:3px"/>%s</span>', $member_srl, Context::getRequestUri().$src, $this->icon_width+2, $this->icon_height, $title, $title, $text);
$this->member_code[$member_srl] = $text;
return $this->member_code[$member_srl]; return $this->member_code[$member_srl];
} }

View file

@ -13,7 +13,7 @@
$lang->cmd_poll_list = '查看目录'; $lang->cmd_poll_list = '查看目录';
$lang->cmd_delete_checked_poll = '删除所选项目'; $lang->cmd_delete_checked_poll = '删除所选项目';
$lang->cmd_apply_poll = '参与投票'; $lang->cmd_apply_poll = '参与投票';
$lang->cmd_view_result = 'Preview result'; $lang->cmd_view_result = '查看结果';
$lang->cmd_delete_checked_poll = '删除所选'; $lang->cmd_delete_checked_poll = '删除所选';
$lang->success_poll = '感谢您参与投票。'; $lang->success_poll = '感谢您参与投票。';

View file

@ -112,6 +112,7 @@
} }
// 작성자의 정보를 로그로 남김 // 작성자의 정보를 로그로 남김
/*
$log_args->poll_srl = $poll_srl; $log_args->poll_srl = $poll_srl;
$log_args->member_srl = $member_srl; $log_args->member_srl = $member_srl;
$output = executeQuery('poll.insertPollLog', $log_args); $output = executeQuery('poll.insertPollLog', $log_args);
@ -119,6 +120,7 @@
$oDB->rollback(); $oDB->rollback();
return $output; return $output;
} }
*/
$oDB->commit(); $oDB->commit();

View file

@ -9,7 +9,7 @@
<name xml:lang="ko">제로</name> <name xml:lang="ko">제로</name>
<name xml:lang="jp">Zero</name> <name xml:lang="jp">Zero</name>
<name xml:lang="en">zero</name> <name xml:lang="en">zero</name>
<name xml:lang="es">zero</name> <name xml:lang="es">zero</name>
<name xml:lang="zh-CN">zero</name> <name xml:lang="zh-CN">zero</name>
<description xml:lang="ko"> <description xml:lang="ko">
기본 카운터 모듈을 이용하여 전체, 어제, 오늘의 접속현황을 표시합니다. 기본 카운터 모듈을 이용하여 전체, 어제, 오늘의 접속현황을 표시합니다.
@ -23,7 +23,7 @@
It will also display the total count. It will also display the total count.
To get this, the counter module should be installed and the counter add-on should be turned on. To get this, the counter module should be installed and the counter add-on should be turned on.
</description> </description>
<description xml:lang="es"> <description xml:lang="es">
Este widget de contador básico muestra los números de las personas visitadas en el día de ayer, hoy, y el total. Este widget de contador básico muestra los números de las personas visitadas en el día de ayer, hoy, y el total.
Debe instalar el módulo del contador y debe activar el addon del contador. Debe instalar el módulo del contador y debe activar el addon del contador.
</description> </description>

View file

@ -25,6 +25,9 @@
.box_login ul.option li a.btn { background:url(../images/default/bul_01.gif) no-repeat left; padding-left:10px; margin-left:14px; } .box_login ul.option li a.btn { background:url(../images/default/bul_01.gif) no-repeat left; padding-left:10px; margin-left:14px; }
.box_login .checkbox { width:15px; height:15px; margin:-1px 0px 0px -1px; margin-right:2px; } .box_login .checkbox { width:15px; height:15px; margin:-1px 0px 0px -1px; margin-right:2px; }
.box_login .clear { clear:both; } .box_login .clear { clear:both; }
.box_login ul.extra_option { clear:both; height:40px; }
.box_login ul.extra_option li a {text-decoration:none;}
.box_login ul.extra_option li a.btn { background:url(../images/default/bul_01.gif) no-repeat left; padding-left:10px; margin-left:20px; }
.openid_login { clear:both; height:38px; border:3px solid #D5D8DB; background-color:#FFFFFF; margin:0 0 10px 0; } .openid_login { clear:both; height:38px; border:3px solid #D5D8DB; background-color:#FFFFFF; margin:0 0 10px 0; }
.openid_login .openid_user_id { width:110px; _width:100px; background: url(../images/openid_login_bg.gif) left no-repeat; background-color: #ffffff; background-position: 0 50%; padding:3px 3px 3px 18px; border:1px solid; border-color:#a6a6a6 #d8d8d8 #d8d8d8 #a6a6a6; height:16px; line-height:1em; vertical-align:middle; margin-bottom:.5em; color:#666666;} .openid_login .openid_user_id { width:110px; _width:100px; background: url(../images/openid_login_bg.gif) left no-repeat; background-color: #ffffff; background-position: 0 50%; padding:3px 3px 3px 18px; border:1px solid; border-color:#a6a6a6 #d8d8d8 #d8d8d8 #a6a6a6; height:16px; line-height:1em; vertical-align:middle; margin-bottom:.5em; color:#666666;}

View file

@ -19,11 +19,14 @@
</div> </div>
<div><input type="submit" value=" " class="submit" /></div> <div><input type="submit" value=" " class="submit" /></div>
<ul class="option"> <ul class="option">
<li><input type="checkbox" name="remember_user_id" id="chk_remember_user_id" value="Y" class="checkbox" /></li> <li><input type="checkbox" name="remember_user_id" id="chk_remember_user_id" value="Y" class="checkbox" /></li>
<li><label for="chk_remember_user_id">{$lang->remember_user_id}</label></li> <li><label for="chk_remember_user_id">{$lang->remember_user_id}</label></li>
<li><a href="{getUrl('act','dispMemberSignUpForm')}" class="fc_02 btn">{$lang->cmd_signup}</a></li> </ul>
</ul> <ul class="extra_option">
<li><a href="{getUrl('act','dispMemberSignUpForm')}" class="fc_02 btn">{$lang->cmd_signup}</a></li>
<li><a href="{getUrl('act','dispMemberFindAccount')}" class="fc_02 btn">{$lang->cmd_find_member_account}</a></li>
</ul>
</form> </form>
<div class="clear"></div> <div class="clear"></div>

View file

@ -14,7 +14,7 @@
<div class="item profile"><a href="{getUrl('act','dispMemberInfo','member_srl',$logged_info->member_srl)}">{$lang->cmd_view_member_info}</a></div> <div class="item profile"><a href="{getUrl('act','dispMemberInfo','member_srl',$logged_info->member_srl)}">{$lang->cmd_view_member_info}</a></div>
<div class="item friend"><a href="{getUrl('act','dispMemberFriend','member_srl',$logged_info->member_srl)}">{$lang->cmd_view_friend}</a></div> <div class="item friend"><a href="{getUrl('act','dispMemberFriend','member_srl',$logged_info->member_srl)}">{$lang->cmd_view_friend}</a></div>
<div class="item message"><a href="{getUrl('act','dispMemberMessages','member_srl',$logged_info->member_srl)}">{$lang->cmd_view_message_box}</a></div> <div class="item message"><a href="{getUrl('act','dispMemberMessages','message_type','','member_srl',$logged_info->member_srl)}">{$lang->cmd_view_message_box}</a></div>
<!--@if($logged_info->is_admin=="Y")--> <!--@if($logged_info->is_admin=="Y")-->
<div class="item administrative"><a href="{getUrl('','module','admin')}" onclick="window.open(this.href);return false;">{$lang->cmd_management}</a></div> <div class="item administrative"><a href="{getUrl('','module','admin')}" onclick="window.open(this.href);return false;">{$lang->cmd_management}</a></div>
<!--@end--> <!--@end-->

View file

@ -1,42 +1,42 @@
#login { border:2px solid #515151; width:196px; position:relative; _padding-top:2px; display:block;} .login_black { border:2px solid #515151; width:196px; position:relative; _padding-top:2px; display:block;}
*:first-child+html body#black #login { padding-top:2px;} *:first-child+html body#black .login_black { padding-top:2px;}
#login legend { display:block; width:0; height:0; overflow:hidden; font-size:0;} .login_black legend { display:block; width:0; height:0; overflow:hidden; font-size:0;}
#login form { position:relative; border:1px solid #6b6b6b; padding:11px 11px 7px 11px; width:172px;} .login_black form { position:relative; border:1px solid #6b6b6b; padding:11px 11px 7px 11px; width:172px;}
#login form .idpwWrap { overflow:hidden; clear:both; width:172px;} .login_black form .idpwWrap { overflow:hidden; clear:both; width:172px;}
#login form .idpw { float:left; width:110px;} .login_black form .idpw { float:left; width:110px;}
#login form .idpw input { border:1px solid #6b6b6b; color:#cbcbcb; width:105px; background:#515151; padding:1px 5px; margin-bottom:2px; font:.9em Tahoma;} .login_black form .idpw input { border:1px solid #6b6b6b; color:#cbcbcb; width:105px; background:#515151; padding:1px 5px; margin-bottom:2px; font:.9em Tahoma;}
#login form .login { float:right;} .login_black form .login { float:right;}
#login form p.save { clear:both; padding:.3em 0;} .login_black form p.save { clear:both; padding:.3em 0;}
#login form p.save input { vertical-align:middle; _margin:-3px;} .login_black form p.save input { vertical-align:middle; _margin:-3px;}
*:first-child+html body#black #login form p input { margin:-3px; } *:first-child+html body#black .login_black form p input { margin:-3px; }
#login form p.save label { font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif; color:#818181;} .login_black form p.save label { font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif; color:#818181;}
#login form ul.help { border-top:1px solid #515151; overflow:hidden; padding:.5em 0 0 0; white-space:nowrap;} .login_black form ul.help { border-top:1px solid #515151; overflow:hidden; padding:.5em 0 0 0; white-space:nowrap;}
#login form ul.help li { list-style:none; float:left; display:block; padding:0 3px 0 7px; background:url(../images/black/vrType1.gif) no-repeat left center;} .login_black form ul.help li { list-style:none; float:left; display:block; padding:0 3px 0 7px; background:url(../images/black/vrType1.gif) no-repeat left center;}
#login form ul.help li.first-child { background:none; padding-left:0;} .login_black form ul.help li.first-child { background:none; padding-left:0;}
#login form ul.help li a { color:#818181; font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif; white-space:nowrap; text-decoration:none;} .login_black form ul.help li a { color:#818181; font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif; white-space:nowrap; text-decoration:none;}
#login form ul.help li a:hover { text-decoration:underline;} .login_black form ul.help li a:hover { text-decoration:underline;}
#login form ul.help li.first-child a { color:#cbcbcb;} .login_black form ul.help li.first-child a { color:#cbcbcb;}
#login form .userName { width:172px; overflow:hidden; border-bottom:1px solid #515151; padding:0 0 6px 0; margin-top:-5px;} .login_black form .userName { position:relative; width:172px; overflow:hidden; border-bottom:1px solid #515151; padding:0 0 6px 0; margin-top:-5px;}
#login form .userName strong { color:#cbcbcb; float:left; padding:4px 0 0 2px; font:bold .9em Tahoma;} .login_black form .userName strong { color:#cbcbcb; padding:4px 0 0 2px; font:bold .9em Tahoma;}
#login form .userName a { float:right;} .login_black form .userName a { position:relative; top:5px; right:0px; }
#login form ul.userMenu { padding:0 0 6px 4px; overflow:hidden; margin-top:10px;} .login_black form ul.userMenu { padding:0 0 6px 4px; overflow:hidden; margin-top:10px;}
#login form ul.userMenu li { list-style:none; color:#cbcbcb; list-style:none;padding-left:10px; background:url(../images/black/bulletFF1A00.gif) no-repeat left 4px; height:18px; } .login_black form ul.userMenu li { list-style:none; color:#cbcbcb; list-style:none;padding-left:10px; background:url(../images/black/bulletFF1A00.gif) no-repeat left 4px; height:18px; }
#login form ul.userMenu li a { color:#cbcbcb;text-decoration:none;} .login_black form ul.userMenu li a { color:#cbcbcb;text-decoration:none;}
#login form ul.userMenu li a:hover {text-decoration:underline;} .login_black form ul.userMenu li a:hover {text-decoration:underline;}
#login form p.latestLogin { color:#818181; font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif;} .login_black form p.latestLogin { color:#818181; font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif;}
#login form p.latestLogin span { font:1em Tahoma;} .login_black form p.latestLogin span { font:1em Tahoma;}
img.login_mask { width:201px; height:5px; background:#3d3d3d; display:block;} img.login_mask { width:201px; height:5px; background:#3d3d3d; display:block;}
#openid_login { border:2px solid #515151; width:196px; position:relative; _padding-top:2px; display:block;} .openid_login_black { border:2px solid #515151; width:196px; position:relative; _padding-top:2px; display:block;}
*:first-child+html body#black #openid_login { padding-top:2px;} *:first-child+html body#black .openid_login_black { padding-top:2px;}
#openid_login legend { display:block; width:0; height:0; overflow:hidden; font-size:0;} .openid_login_black legend { display:block; width:0; height:0; overflow:hidden; font-size:0;}
#openid_login form { position:relative; border:1px solid #6b6b6b; padding:11px 11px 7px 11px; width:172px;} .openid_login_black form { position:relative; border:1px solid #6b6b6b; padding:11px 11px 7px 11px; width:172px;}
#openid_login form .idpwWrap { overflow:hidden; clear:both; width:172px;} .openid_login_black form .idpwWrap { overflow:hidden; clear:both; width:172px;}
#openid_login form .idpw { float:left;} .openid_login_black form .idpw { float:left;}
#openid_login form .idpw p { margin-bottom:5px; background: url(../images/openid_login_bg.gif) left no-repeat; padding-left:18px; font-size:.9em Tahoma;color:#999999} .openid_login_black form .idpw p { margin-bottom:5px; background: url(../images/openid_login_bg.gif) left no-repeat; padding-left:18px; font-size:.9em Tahoma;color:#999999}
#openid_login form .idpw input { border:1px solid #6b6b6b; color:#cbcbcb; width:105px; background:#515151; padding:1px 5px; margin-bottom:2px; font:.9em Tahoma;} .openid_login_black form .idpw input { border:1px solid #6b6b6b; color:#cbcbcb; width:105px; background:#515151; padding:1px 5px; margin-bottom:2px; font:.9em Tahoma;}
#openid_login form .login { float:right;} .openid_login_black form .login { float:right;}
#openid_login form p.save { clear:both; padding:.3em 0;} .openid_login_black form p.save { clear:both; padding:.3em 0;}
#openid_login form p.save input { vertical-align:middle; _margin:-3px;} .openid_login_black form p.save input { vertical-align:middle; _margin:-3px;}
*:first-child+html body #openid_login form p input { margin:-3px; } *:first-child+html body .openid_login_black form p input { margin:-3px; }

View file

@ -1,42 +1,42 @@
#login { border:2px solid #d9d9d9; width:196px; position:relative; _padding-top:2px; display:block;} .login_default { border:2px solid #d9d9d9; width:196px; position:relative; _padding-top:2px; display:block;}
*:first-child+html body #login { padding-top:2px;} *:first-child+html body .login_default { padding-top:2px;}
#login legend { display:block; width:0; height:0; overflow:hidden; font-size:0;} .login_default legend { display:block; width:0; height:0; overflow:hidden; font-size:0;}
#login form { position:relative; border:1px solid #cacaca; padding:11px 11px 7px 11px; width:172px;} .login_default form { position:relative; border:1px solid #cacaca; padding:11px 11px 7px 11px; width:172px;}
#login form .idpwWrap { overflow:hidden; clear:both; width:172px;} .login_default form .idpwWrap { overflow:hidden; clear:both; width:172px;}
#login form .idpw { float:left; width:110px; } .login_default form .idpw { float:left; width:110px; }
#login form .idpw input { border:1px solid #c9c9c9; color:#282828; width:105px; background:#fbfbfb; padding:1px 5px; margin-bottom:2px; font:.9em Tahoma;} .login_default form .idpw input { border:1px solid #c9c9c9; color:#282828; width:105px; background:#fbfbfb; padding:1px 5px; margin-bottom:2px; font:.9em Tahoma;}
#login form .login { float:right;} .login_default form .login { float:right;}
#login form p.save { clear:both; padding:.3em 0;} .login_default form p.save { clear:both; padding:.3em 0;}
#login form p.save input { vertical-align:middle; _margin:-3px;} .login_default form p.save input { vertical-align:middle; _margin:-3px;}
*:first-child+html body #login form p input { margin:-3px; } *:first-child+html body .login_default form p input { margin:-3px; }
#login form p.save label { font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif; color:#999999;} .login_default form p.save label { font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif; color:#999999;}
#login form ul.help { border-top:1px solid #e4e4e4; overflow:hidden; padding:.5em 0 0 0; white-space:nowrap;} .login_default form ul.help { border-top:1px solid #e4e4e4; overflow:hidden; padding:.5em 0 0 0; white-space:nowrap;}
#login form ul.help li { float:left; display:block; padding:0 3px 0 7px; background:url(../images/default/vrType1.gif) no-repeat left center;} .login_default form ul.help li { float:left; display:block; padding:0 3px 0 7px; background:url(../images/default/vrType1.gif) no-repeat left center;}
#login form ul.help li.first-child { background:none; padding-left:0;} .login_default form ul.help li.first-child { background:none; padding-left:0;}
#login form ul.help li a { color:#999999; font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif; white-space:nowrap; text-decoration:none; } .login_default form ul.help li a { color:#999999; font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif; white-space:nowrap; text-decoration:none; }
#login form ul.help li.first-child a { color:#54564b; text-decoration:none;} .login_default form ul.help li.first-child a { color:#54564b; text-decoration:none;}
#login form ul.help li a:hover { text-decoration:underline; } .login_default form ul.help li a:hover { text-decoration:underline; }
#login form .userName { width:172px; overflow:hidden; border-bottom:1px solid #e4e4e4; padding:0 0 6px 0; margin-top:-5px;} .login_default form .userName { position:relative; width:172px; overflow:hidden; border-bottom:1px solid #e4e4e4; padding:0 0 6px 0; margin-top:-5px;}
#login form .userName strong { color:#282828; float:left; padding:4px 0 0 2px; font:bold .9em Tahoma;} .login_default form .userName strong { color:#282828; padding:4px 0 0 2px; font:bold .9em Tahoma;}
#login form .userName a { float:right;} .login_default form .userName a { position:relative; top:5px; right:0px; }
#login form ul.userMenu { padding:0 0 6px 4px; overflow:hidden; margin-top:10px;} .login_default form ul.userMenu { padding:0 0 6px 4px; overflow:hidden; margin-top:10px;}
#login form ul.userMenu li { list-style:none; padding-left:10px; background:url(../images/default/bulletFF1A00.gif) no-repeat left 4px; height:18px; } .login_default form ul.userMenu li { list-style:none; padding-left:10px; background:url(../images/default/bulletFF1A00.gif) no-repeat left 4px; height:18px; }
#login form ul.userMenu li a { color:#54564b; text-decoration:none;} .login_default form ul.userMenu li a { color:#54564b; text-decoration:none;}
#login form ul.userMenu li a:hover { text-decoration:underline;} .login_default form ul.userMenu li a:hover { text-decoration:underline;}
#login form p.latestLogin { color:#999999; font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif;} .login_default form p.latestLogin { color:#999999; font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif;}
#login form p.latestLogin span { font:1em Tahoma;} .login_default form p.latestLogin span { font:1em Tahoma;}
img.login_mask { width:201px; height:5px; background:#ffffff; display:block;} img.login_mask { width:201px; height:5px; background:#ffffff; display:block;}
#openid_login { border:2px solid #d9d9d9; width:196px; position:relative; _padding-top:2px; display:block; } .openid_login_default { border:2px solid #d9d9d9; width:196px; position:relative; _padding-top:2px; display:block; }
*:first-child+html body #openid_login { padding-top:2px;} *:first-child+html body .openid_login_default { padding-top:2px;}
#openid_login legend { display:block; width:0; height:0; overflow:hidden; font-size:0;} .openid_login_default legend { display:block; width:0; height:0; overflow:hidden; font-size:0;}
#openid_login form { position:relative; border:1px solid #cacaca; padding:11px 11px 7px 11px; width:172px; } .openid_login_default form { position:relative; border:1px solid #cacaca; padding:11px 11px 7px 11px; width:172px; }
#openid_login form .idpwWrap { overflow:hidden; clear:both; width:172px;} .openid_login_default form .idpwWrap { overflow:hidden; clear:both; width:172px;}
#openid_login form .idpw { float:left;} .openid_login_default form .idpw { float:left;}
#openid_login form .idpw p { margin-bottom:5px; background: url(../images/openid_login_bg.gif) left no-repeat; padding-left:18px; font-size:.9em Tahoma;color:#999999} .openid_login_default form .idpw p { margin-bottom:5px; background: url(../images/openid_login_bg.gif) left no-repeat; padding-left:18px; font-size:.9em Tahoma;color:#999999}
#openid_login form .idpw input { border:1px solid #c9c9c9; color:#282828; width:105px; background:#fbfbfb; padding:1px 5px; margin-bottom:2px; font:.9em Tahoma; } .openid_login_default form .idpw input { border:1px solid #c9c9c9; color:#282828; width:105px; background:#fbfbfb; padding:1px 5px; margin-bottom:2px; font:.9em Tahoma; }
#openid_login form .login { float:right;} .openid_login_default form .login { float:right;}
#openid_login form p.save { clear:both; padding:.3em 0;} .openid_login_default form p.save { clear:both; padding:.3em 0;}
#openid_login form p.save input { vertical-align:middle; _margin:-3px;} .openid_login_default form p.save input { vertical-align:middle; _margin:-3px;}
*:first-child+html body #openid_login form p input { margin:-3px; } *:first-child+html body .openid_login_default form p input { margin:-3px; }
#openid_login form p.save label { font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif; color:#999999;} .openid_login_default form p.save label { font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif; color:#999999;}

View file

@ -1,38 +1,38 @@
#login { border:2px solid #d9d9d9; width:196px; position:relative; _padding-top:2px; display:block;} .login_white { border:2px solid #d9d9d9; width:196px; position:relative; _padding-top:2px; display:block;}
*:first-child+html body#white #login { padding-top:2px;} *:first-child+html body#white .login_white { padding-top:2px;}
#login legend { display:block; width:0; height:0; overflow:hidden; font-size:0;} .login_white legend { display:block; width:0; height:0; overflow:hidden; font-size:0;}
#login form { position:relative; border:1px solid #cacaca; padding:11px 11px 7px 11px; width:172px;} .login_white form { position:relative; border:1px solid #cacaca; padding:11px 11px 7px 11px; width:172px;}
#login form .idpwWrap { overflow:hidden; clear:both; width:172px;} .login_white form .idpwWrap { overflow:hidden; clear:both; width:172px;}
#login form .idpw { float:left; width:110px;} .login_white form .idpw { float:left; width:110px;}
#login form .idpw input { border:1px solid #c9c9c9; color:#282828; width:105px; background:#fbfbfb; padding:1px 5px; margin-bottom:2px; font:.9em Tahoma;} .login_white form .idpw input { border:1px solid #c9c9c9; color:#282828; width:105px; background:#fbfbfb; padding:1px 5px; margin-bottom:2px; font:.9em Tahoma;}
#login form .login { float:right;} .login_white form .login { float:right;}
#login form p.save { clear:both; padding:.3em 0;} .login_white form p.save { clear:both; padding:.3em 0;}
#login form p.save input { vertical-align:middle; _margin:-3px;} .login_white form p.save input { vertical-align:middle; _margin:-3px;}
*:first-child+html body#white #login form p input { margin:-3px; } *:first-child+html body#white .login_white form p input { margin:-3px; }
#login form p.save label { font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif; color:#999999;} .login_white form p.save label { font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif; color:#999999;}
#login form ul.help { border-top:1px solid #e4e4e4; overflow:hidden; padding:.5em 0 0 0; white-space:nowrap;} .login_white form ul.help { border-top:1px solid #e4e4e4; overflow:hidden; padding:.5em 0 0 0; white-space:nowrap;}
#login form ul.help li { list-style:none; float:left; display:block; padding:0 3px 0 7px; background:url(../images/white/vrType1.gif) no-repeat left center;} .login_white form ul.help li { list-style:none; float:left; display:block; padding:0 3px 0 7px; background:url(../images/white/vrType1.gif) no-repeat left center;}
#login form ul.help li.first-child { background:none; padding-left:0;} .login_white form ul.help li.first-child { background:none; padding-left:0;}
#login form ul.help li a { color:#999999; font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif; white-space:nowrap; text-decoration:none; } .login_white form ul.help li a { color:#999999; font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif; white-space:nowrap; text-decoration:none; }
#login form ul.help li a:hover { text-decoration:underline; } .login_white form ul.help li a:hover { text-decoration:underline; }
#login form ul.help li.first-child a { color:#54564b;} .login_white form ul.help li.first-child a { color:#54564b;}
#login form .userName { width:172px; overflow:hidden; border-bottom:1px solid #e4e4e4; padding:0 0 6px 0; margin-top:-5px;} .login_white form .userName { position:relative; width:172px; overflow:hidden; border-bottom:1px solid #e4e4e4; padding:0 0 6px 0; margin-top:-5px;}
#login form .userName strong { color:#282828; float:left; padding:4px 0 0 2px; font:bold .9em Tahoma;} .login_white form .userName strong { color:#282828; padding:4px 0 0 2px; font:bold .9em Tahoma;}
#login form .userName a { float:right; text-decoration:none; } .login_white form .userName a { position:relative; top:5px; right:0px; }
#login form ul.userMenu { padding:0 0 6px 4px; overflow:hidden; margin-top:10px;} .login_white form ul.userMenu { padding:0 0 6px 4px; overflow:hidden; margin-top:10px;}
#login form ul.userMenu li { list-style:none; padding-left:10px; background:url(../images/white/bulletFF1A00.gif) no-repeat left 4px; height:18px; } .login_white form ul.userMenu li { list-style:none; padding-left:10px; background:url(../images/white/bulletFF1A00.gif) no-repeat left 4px; height:18px; }
#login form ul.userMenu li a { color:#54564b; text-decoration:none; } .login_white form ul.userMenu li a { color:#54564b; text-decoration:none; }
#login form ul.userMenu li a:hover { text-decoration:underline; } .login_white form ul.userMenu li a:hover { text-decoration:underline; }
#login form p.latestLogin { color:#999999; font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif;} .login_white form p.latestLogin { color:#999999; font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif;}
#login form p.latestLogin span { font:1em Tahoma;} .login_white form p.latestLogin span { font:1em Tahoma;}
img.login_mask { width:201px; height:5px; background:#ffffff; display:block;} img.login_mask { width:201px; height:5px; background:#ffffff; display:block;}
#openid_login { border:2px solid #d9d9d9; width:196px; position:relative; _padding-top:2px; display:block; } .openid_login_white { border:2px solid #d9d9d9; width:196px; position:relative; _padding-top:2px; display:block; }
*:first-child+html body #openid_login { padding-top:2px;} *:first-child+html body .openid_login_white { padding-top:2px;}
#openid_login legend { display:block; width:0; height:0; overflow:hidden; font-size:0;} .openid_login_white legend { display:block; width:0; height:0; overflow:hidden; font-size:0;}
#openid_login form { position:relative; border:1px solid #cacaca; padding:11px 11px 7px 11px; width:172px; } .openid_login_white form { position:relative; border:1px solid #cacaca; padding:11px 11px 7px 11px; width:172px; }
#openid_login form .idpwWrap { overflow:hidden; clear:both; width:172px;} .openid_login_white form .idpwWrap { overflow:hidden; clear:both; width:172px;}
#openid_login form .idpw { float:left;} .openid_login_white form .idpw { float:left;}
#openid_login form .idpw p { margin-bottom:5px; background: url(../images/openid_login_bg.gif) left no-repeat; padding-left:18px; font-size:.9em Tahoma;color:#999999} .openid_login_white form .idpw p { margin-bottom:5px; background: url(../images/openid_login_bg.gif) left no-repeat; padding-left:18px; font-size:.9em Tahoma;color:#999999}
#openid_login form .idpw input { border:1px solid #c9c9c9; color:#282828; width:105px; background:#fbfbfb; padding:1px 5px; margin-bottom:2px; font:.9em Tahoma; } .openid_login_white form .idpw input { border:1px solid #c9c9c9; color:#282828; width:105px; background:#fbfbfb; padding:1px 5px; margin-bottom:2px; font:.9em Tahoma; }
#openid_login form .login { float:right;} .openid_login_white form .login { float:right;}

View file

@ -34,14 +34,14 @@ function completeOpenIDLogin(ret_obj, response_tags) {
/* 오픈 아이디 폼 변환 */ /* 오픈 아이디 폼 변환 */
function toggleLoginForm(obj) { function toggleLoginForm(obj) {
if(xGetElementById('login').style.display != "none") { if(xGetElementById('login').style.display != "none") {
xGetElementById('login').style.display = "none"; xGetElementById('login').style.display = "none";
xGetElementById('openid_login').style.display = "block"; xGetElementById('openid_login').style.display = "block";
xGetElementById('use_open_id_2').checked = true; xGetElementById('use_open_id_2').checked = true;
} else { } else {
xGetElementById('openid_login').style.display = "none"; xGetElementById('openid_login').style.display = "none";
xGetElementById('login').style.display = "block"; xGetElementById('login').style.display = "block";
xGetElementById('use_open_id').checked = false; xGetElementById('use_open_id').checked = false;
xGetElementById('use_open_id_2').checked = false; xGetElementById('use_open_id_2').checked = false;
} }
} }

View file

@ -11,7 +11,7 @@
<!--%import("./filter/openid_login.xml")--> <!--%import("./filter/openid_login.xml")-->
<!--%import("./js/login.js")--> <!--%import("./js/login.js")-->
<fieldset id="login"> <fieldset id="login" class="login_{$colorset}">
<legend>{$lang->cmd_login}</legend> <legend>{$lang->cmd_login}</legend>
<form action="./" method="get" onsubmit="return procFilter(this, widget_login)" id="fo_login_widget"> <form action="./" method="get" onsubmit="return procFilter(this, widget_login)" id="fo_login_widget">
@ -33,14 +33,14 @@
</p> </p>
<ul class="help"> <ul class="help">
<li class="first-child"><a href="{getUrl('act','dispMemberSignUpForm')}">{$lang->cmd_signup}</a></li> <li class="first-child"><a href="{getUrl('act','dispMemberSignUpForm')}">{$lang->cmd_signup}</a></li>
<!--<li><a href="#">아이디/비밀번호 찾기</a></li>--> <li><a href="{getUrl('act','dispMemberFindAccount')}">{$lang->cmd_find_member_account}</a></li>
</ul> </ul>
</form> </form>
</fieldset> </fieldset>
<!-- OpenID --> <!-- OpenID -->
<!--@if($member_config->enable_openid=='Y')--> <!--@if($member_config->enable_openid=='Y')-->
<fieldset id="openid_login" style="display:none;"> <fieldset id="openid_login" class="openid_login_{$colorset}" style="display:none;">
<legend>{$lang->cmd_login}</legend> <legend>{$lang->cmd_login}</legend>
<form action="./" method="post" onsubmit="return procFilter(this, openid_login)" > <form action="./" method="post" onsubmit="return procFilter(this, openid_login)" >
<div class="idpwWrap"> <div class="idpwWrap">

View file

@ -9,7 +9,7 @@
<!--%import("./filter/logout.xml")--> <!--%import("./filter/logout.xml")-->
<fieldset id="login"> <fieldset id="login" class="login_{$colorset}">
<legend>{$lang->cmd_login}</legend> <legend>{$lang->cmd_login}</legend>
<form action="" method="post"> <form action="" method="post">
@ -20,7 +20,7 @@
<ul class="userMenu"> <ul class="userMenu">
<li><a href="{getUrl('act','dispMemberInfo','member_srl',$logged_info->member_srl)}">{$lang->cmd_view_member_info}</a></li> <li><a href="{getUrl('act','dispMemberInfo','member_srl',$logged_info->member_srl)}">{$lang->cmd_view_member_info}</a></li>
<li><a href="{getUrl('act','dispMemberFriend','member_srl',$logged_info->member_srl)}">{$lang->cmd_view_friend}</a></li> <li><a href="{getUrl('act','dispMemberFriend','member_srl',$logged_info->member_srl)}">{$lang->cmd_view_friend}</a></li>
<li><a href="{getUrl('act','dispMemberMessages','member_srl',$logged_info->member_srl)}">{$lang->cmd_view_message_box}</a></li> <li><a href="{getUrl('act','dispMemberMessages','message_type','','member_srl',$logged_info->member_srl)}">{$lang->cmd_view_message_box}</a></li>
<li><a href="{getUrl('act','dispMemberScrappedDocument','member_srl',$logged_info->member_srl)}">{$lang->cmd_view_scrapped_document}</a></li> <li><a href="{getUrl('act','dispMemberScrappedDocument','member_srl',$logged_info->member_srl)}">{$lang->cmd_view_scrapped_document}</a></li>
<!--@if($logged_info->is_admin=="Y")--> <!--@if($logged_info->is_admin=="Y")-->

View file

@ -41,5 +41,17 @@
<title xml:lang="zh-CN">默认</title> <title xml:lang="zh-CN">默认</title>
<title xml:lang="en">default</title> <title xml:lang="en">default</title>
</color> </color>
<color name="white">
<title xml:lang="ko">하얀색</title>
<title xml:lang="jp"></title>
<title xml:lang="en">white</title>
<title xml:lang="zh-CN">白色</title>
</color>
<color name="black">
<title xml:lang="ko">검은색</title>
<title xml:lang="jp"></title>
<title xml:lang="en">Black</title>
<title xml:lang="zh-CN">黑色</title>
</color>
</colorset> </colorset>
</skin> </skin>

View file

@ -4,7 +4,6 @@
<title xml:lang="jp">XEデフォルトレイアウト用の最新コンテンツ表示スキン</title> <title xml:lang="jp">XEデフォルトレイアウト用の最新コンテンツ表示スキン</title>
<title xml:lang="zh-CN">XE 官方网站主题列表</title> <title xml:lang="zh-CN">XE 官方网站主题列表</title>
<title xml:lang="en">XE Official Layout's newest document skin</title> <title xml:lang="en">XE Official Layout's newest document skin</title>
<maker email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 8. 1"> <maker email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 8. 1">
<name xml:lang="ko">제로</name> <name xml:lang="ko">제로</name>
<name xml:lang="jp">zero</name> <name xml:lang="jp">zero</name>
@ -29,10 +28,10 @@
布局: zero (http://blog.nzeo.com) 布局: zero (http://blog.nzeo.com)
</description> </description>
<description xml:lang="en"> <description xml:lang="en">
It is a skin suitable for the XE official layout. It is a skin suitable for the XE official layout.
Design : So-Ra Lee (http://ra-ra-.pe.kr) Design : So-Ra Lee (http://ra-ra-.pe.kr)
HTML/CSS : Chan-Myung Jeong(http://naradesign.net) HTML/CSS : Chan-Myung Jeong(http://naradesign.net)
Layout : zero (http://blog.nzeo.com) Layout : zero (http://blog.nzeo.com)
</description> </description>
</maker> </maker>
<colorset> <colorset>

View file

@ -59,14 +59,18 @@
</var> </var>
<var id="thumbnail_type"> <var id="thumbnail_type">
<name xml:lang="ko">썸네일 생성 방법</name> <name xml:lang="ko">썸네일 생성 방법</name>
<name xml:lang="zh-CN">缩略图生成方式</name>
<description xml:lang="ko">썸네일 생성 방법을 선택할 수 있습니다. (crop : 꽉 채우기, ratio : 비율 맞추기)</description> <description xml:lang="ko">썸네일 생성 방법을 선택할 수 있습니다. (crop : 꽉 채우기, ratio : 비율 맞추기)</description>
<description xml:lang="zh-CN">可以选择缩略图生成方式。 (crop : 裁减, ratio : 比例)</description>
<type>select</type> <type>select</type>
<options> <options>
<name xml:lang="ko">Crop (채우기)</name> <name xml:lang="ko">Crop (채우기)</name>
<name xml:lang="zh-CN">Crop (裁减)</name>
<value>crop</value> <value>crop</value>
</options> </options>
<options> <options>
<name xml:lang="ko">Ratio (비율 맞추기)</name> <name xml:lang="ko">Ratio (비율 맞추기)</name>
<name xml:lang="zh-CN">Ratio (比例)</name>
<value>ratio</value> <value>ratio</value>
</options> </options>
</var> </var>
@ -85,7 +89,9 @@
</var> </var>
<var id="thumbnail_height"> <var id="thumbnail_height">
<name xml:lang="ko">이미지 세로크기</name> <name xml:lang="ko">이미지 세로크기</name>
<name xml:lang="zh-CN">高度</name>
<description xml:lang="ko">이미지의 세로 크기를 지정할 수 있습니다. (기본 100px)</description> <description xml:lang="ko">이미지의 세로 크기를 지정할 수 있습니다. (기본 100px)</description>
<description xml:lang="zh-CN">可以指定图片高度。(默认为100px)</description>
<type>text</type> <type>text</type>
</var> </var>
<var id="cols_list_count"> <var id="cols_list_count">

View file

@ -10,15 +10,17 @@
.ni_box .thumbnail_box .thumbnail img { border:1px solid #DEDEDE; } .ni_box .thumbnail_box .thumbnail img { border:1px solid #DEDEDE; }
.ni_box .thumbnail_box .thumbnail img:hover { border:1px solid #54564b; } .ni_box .thumbnail_box .thumbnail img:hover { border:1px solid #54564b; }
.ni_box .thumbnail_box .title { text-align:center; }
.ni_box .thumbnail_box a { color:#000000; text-decoration:none; } .ni_box .thumbnail_box a { color:#000000; text-decoration:none; }
.ni_box .thumbnail_box a:visited { color:#54564b; text-decoration:none; } .ni_box .thumbnail_box a:visited { color:#54564b; text-decoration:none; }
.ni_box .thumbnail_box td.bottomBorder { border-bottom:1px dashed #EEEEEE; padding-bottom:5px; } .ni_box .thumbnail_box td.bottomBorder { border-bottom:1px dashed #EEEEEE; padding-bottom:5px; }
.ni_box .thumbnail_box div strong { font-weight:bold; font-size:0.75em; color:#ed2a32; } .ni_box .thumbnail_box div strong { font-weight:bold; font-size:0.9em; color:#ed2a32; }
.ni_box .thumbnail_box div.author { color:#54564b; } .ni_box .thumbnail_box div.author { color:#54564b; text-align:center;}
.ni_box .thumbnail_box div.author a { color:#54564b; } .ni_box .thumbnail_box div.author span,div { color:#54564b; }
.ni_box .thumbnail_box div.regdate { font-size:0.75em; color:#AAAAAA; margin-top:2px;} .ni_box .thumbnail_box div.regdate { font-size:0.9em; color:#AAAAAA; margin-top:2px;text-align:center;}
.ni_box .thumbnail_box div.readAndVoted { color:#333333; font-size:0.75em; } .ni_box .thumbnail_box div.readAndVoted { color:#999999; font-size:0.9em; text-align:center;}
.ni_box .thumbnail_box div.readAndVoted span.div_block { color:#333333; font-size:0.75em; } .ni_box .thumbnail_box div.readAndVoted span.div_block { color:#333333; font-size:0.9em; }
.ni_box .thumbnail_box div.readAndVoted strong { color:#FE6700; } .ni_box .thumbnail_box div.readAndVoted strong { color:#FE6700; }

View file

@ -21,12 +21,12 @@
<!--@if($oDocument->document_srl)--> <!--@if($oDocument->document_srl)-->
<div class="thumbnail"><a href="{getUrl('','document_srl',$oDocument->document_srl)}"><img src="{$oDocument->getThumbnail($widget_info->thumbnail_width,$widget_info->thumbnail_height,$widget_info->thumbnail_type)}" width="{$widget_info->thumbnail_width}" height="{$widget_info->thumbnail_height}" border="0" alt="" class="thumbnail" /></a></div> <div class="thumbnail"><a href="{getUrl('','document_srl',$oDocument->document_srl)}"><img src="{$oDocument->getThumbnail($widget_info->thumbnail_width,$widget_info->thumbnail_height,$widget_info->thumbnail_type)}" width="{$widget_info->thumbnail_width}" height="{$widget_info->thumbnail_height}" border="0" alt="" class="thumbnail" /></a></div>
<div> <div class="title">
<a href="{$oDocument->getPermanentUrl()}#{$oDocument->getCommentCount()}">{$oDocument->getTitleText($widget_info->title_length)}</a> <a href="{$oDocument->getPermanentUrl()}#{$oDocument->getCommentCount()}">{$oDocument->getTitleText($widget_info->title_length)}</a>
<!--@if($oDocument->getCommentCount())--><strong>[{$oDocument->getCommentCount()}]</strong><!--@end--> <!--@if($oDocument->getCommentCount())--><strong>[{$oDocument->getCommentCount()}]</strong><!--@end-->
</div> </div>
<!--@if($widget_info->display_author == 'Y')--> <!--@if($widget_info->display_author == 'Y')-->
<div class="author member_{$oDocument->get('member_srl')}">{$oDocument->getNickName()}</div> <div class="author"><div class="member_{$oDocument->get('member_srl')}">{$oDocument->getNickName()}</div></div>
<!--@end--> <!--@end-->
<!--@if($widget_info->display_regdate == 'Y')--> <!--@if($widget_info->display_regdate == 'Y')-->
@ -43,7 +43,7 @@
<!--@if($widget_info->display_voted_count == 'Y' && $oDocument->get('voted_count')>0 )--> <!--@if($widget_info->display_voted_count == 'Y' && $oDocument->get('voted_count')>0 )-->
<!--@if($widget_info->display_readed_count == 'Y')--><span class="div_block">|</span><!--@end--> <!--@if($widget_info->display_readed_count == 'Y')--><br /><!--@end-->
{$lang->voted_count} <strong>{$oDocument->get('voted_count')}</strong> {$lang->voted_count} <strong>{$oDocument->get('voted_count')}</strong>