diff --git a/addons/google_analytics/conf/info.xml b/addons/google_analytics/conf/info.xml index d268b3bc3..633b4e426 100644 --- a/addons/google_analytics/conf/info.xml +++ b/addons/google_analytics/conf/info.xml @@ -1,16 +1,23 @@ Google Analytics + Google Analytics 제로 + Zero Google Analytics 코드를 사이트에 추가할 수 있습니다. + + 可以添加Google Analytics代码。 + uacct + uacct Google Analytics 코드의 _uacct 값을 입력해주세요. + 请输入Google Analytics代码的_uacct值。 diff --git a/addons/member_extra_info/member_extra_info.addon.php b/addons/member_extra_info/member_extra_info.addon.php index af4777ed9..cb027c488 100644 --- a/addons/member_extra_info/member_extra_info.addon.php +++ b/addons/member_extra_info/member_extra_info.addon.php @@ -89,6 +89,7 @@ // 대상 회원의 정보를 가져옴 $target_member_info = $this->getMemberInfoByMemberSrl($member_srl); + if(!$target_member_info->member_srl) return; // 4. 쪽지 발송 메뉴를 만듬 if( $target_member_info->allow_message =='Y' || ($target_member_info->allow_message == 'F' && $this->isFriend($member_srl))) { diff --git a/addons/point/point.addon.php b/addons/point/point.addon.php index 03c877f61..1f5460140 100644 --- a/addons/point/point.addon.php +++ b/addons/point/point.addon.php @@ -159,6 +159,21 @@ $cur_point -= $point; $oPointController = &getController('point'); $oPointController->setPoint($target_member_srl,$cur_point); + + // 회원 가입일 경우 + } elseif(strpos($config->signup_act,$this->act)!==false) { + // 가입이 제대로 되었는지 체크 + if(!$this->toBool()||!$this->get('member_srl')) return; + $member_srl = $this->get('member_srl'); + + // 포인트를 구해옴 + $point = $config->module_point[$module_srl]['signup']; + if($point == null) $point = $config->signup; + + // 포인트 증감 + $cur_point += $point; + $oPointController = &getController('point'); + $oPointController->setPoint($member_srl,$cur_point); } // 파일다운로드는 before_module_proc 일때 체크 diff --git a/classes/context/Context.class.php b/classes/context/Context.class.php index 06a610b0c..7caa8577b 100644 --- a/classes/context/Context.class.php +++ b/classes/context/Context.class.php @@ -355,6 +355,17 @@ return $obj; } + /** + * @brief 특정 문자열만 utf-8로 변경 + **/ + function convertEncodingStr($str) { + $obj->str = $str; + $obj = Context::convertEncoding($obj); + return $obj->str; + } + + + /** * @brief response method를 강제로 지정 (기본으로는 request method를 이용함) * diff --git a/classes/file/FileHandler.class.php b/classes/file/FileHandler.class.php index 934618562..47e49e2ef 100644 --- a/classes/file/FileHandler.class.php +++ b/classes/file/FileHandler.class.php @@ -182,7 +182,7 @@ /** * @brief 특정 이미지 파일을 특정 위치로 옮김 (옮길때 이미지의 크기를 리사이징할 수 있음..) **/ - function createImageFile($source_file, $target_file, $resize_width = 0, $resize_height = 0, $target_type = '') { + function createImageFile($source_file, $target_file, $resize_width = 0, $resize_height = 0, $target_type = '', $thumbnail_type = 'crop') { if(!file_exists($source_file)) return; if(!$resize_width) $resize_width = 100; if(!$resize_height) $resize_height = $resize_width; @@ -227,8 +227,14 @@ if($resize_height>0 && $height >= $resize_height) $height_per = $resize_height / $height; else $height_per = $height / $resize_height; - if($width_per > $height_per) $per = $height_per; - else $per = $width_per; + if($thumbnail_type == 'ratio') { + if($width_per > $height_per) $per = $height_per; + else $per = $width_per; + } else { + if($width_per < $height_per) $per = $height_per; + else $per = $width_per; + + } if(!$per) $per = 1; diff --git a/classes/optimizer/Optimizer.class.php b/classes/optimizer/Optimizer.class.php index 58d92c504..81973fd4f 100644 --- a/classes/optimizer/Optimizer.class.php +++ b/classes/optimizer/Optimizer.class.php @@ -91,12 +91,14 @@ $file = $targets[$i]; $str = FileHandler::readFile($file); + $str = Context::convertEncodingStr($str); + // css 일경우 background:url() 변경 if($type == "css") $str = $this->replaceCssPath($file, $str); $content_buff .= $str."\r\n"; } - if(Context::isGzEnabled()) $content_buff = ob_gzhandler($content_buff, 5); + if($type!="css" && Context::isGzEnabled()) $content_buff = ob_gzhandler($content_buff, 5); $content_file = eregi_replace("\.php$","",$filename); $content_filename = str_replace($this->cache_path, '', $content_file); @@ -110,7 +112,7 @@ $modified_time = gmdate("D, d M Y H:i:s"); // gzip 압축 체크 - if(Context::isGzEnabled()) $gzip_header = 'header("Content-Encoding: gzip");'; + if($type!="css" && Context::isGzEnabled()) $gzip_header = 'header("Content-Encoding: gzip");'; // 확장자별 content-type 체크 if($type == 'css') $content_type = 'text/css'; diff --git a/common/js/common.js b/common/js/common.js index 3d129e9c0..b3a07e38b 100644 --- a/common/js/common.js +++ b/common/js/common.js @@ -649,6 +649,16 @@ function checkboxSelectAll(form, name, option){ else if(option == true) value = true else if(option == false) value = false - if(fo_obj[i].name == name) fo_obj[i].checked = value; + //if(fo_obj[i].name == name) fo_obj[i].checked = value; + if(fo_obj[i].name == name) fo_obj[i].click(); } } + +/* 관리자가 문서를 관리하기 위해서 선택시 세션에 넣음 */ +function doAddDocumentCart(obj) { + var srl = obj.value; + var params = new Array(); + params["srl"] = srl; + exec_xml("document","procDocumentAdminAddCart", params, null); +} + diff --git a/common/lang/ko.lang.php b/common/lang/ko.lang.php index 9cf83d210..1bdffd515 100644 --- a/common/lang/ko.lang.php +++ b/common/lang/ko.lang.php @@ -177,8 +177,8 @@ $lang->success_reset = '초기화되었습니다'; $lang->success_leaved = '탈퇴되었습니다'; - $lang->fail_to_delete = '삭제되었습니다'; - $lang->fail_to_move = '이동되었습니다'; + $lang->fail_to_delete = '삭제 실패하였습니다'; + $lang->fail_to_move = '이동 실패하였습니다'; $lang->failed_voted = '추천하실 수 없습니다'; $lang->fail_to_delete_have_children = '답글이 있어서 삭제할 수 없습니다'; diff --git a/config/config.inc.php b/config/config.inc.php index 5b6f083ba..c5e6e79b9 100644 --- a/config/config.inc.php +++ b/config/config.inc.php @@ -14,7 +14,7 @@ * 이 내용은 제로보드XE의 버전을 관리자 페이지에 표시하기 위한 용도이며 * config.inc.php의 수정이 없더라도 공식 릴리즈시에 수정되어 함께 배포되어야 함 **/ - define('__ZBXE_VERSION__', '0.1.9'); + define('__ZBXE_VERSION__', '0.2.0'); /** * @brief 디버깅 메세지 출력 diff --git a/modules/blog/skins/xe_blog/comment.html b/modules/blog/skins/xe_blog/comment.html index c1843601e..18bd4435e 100644 --- a/modules/blog/skins/xe_blog/comment.html +++ b/modules/blog/skins/xe_blog/comment.html @@ -27,7 +27,17 @@ -
{htmlspecialchars($val->nick_name)}
+
+ + + {htmlspecialchars($val->nick_name)} + + {htmlspecialchars($val->nick_name)} + + +
{htmlspecialchars($val->nick_name)}
+ +
{$val->content} diff --git a/modules/blog/skins/xe_blog/css/common.css b/modules/blog/skins/xe_blog/css/common.css index b4b3931c8..c15647f5a 100644 --- a/modules/blog/skins/xe_blog/css/common.css +++ b/modules/blog/skins/xe_blog/css/common.css @@ -211,6 +211,7 @@ ul.replyZone .replyOption { float:right; white-space:nowrap; margin-left:.2em;} ul.replyZone .replyOption img { vertical-align:middle;} ul.replyZone .replyContent { clear:left; } +ul.replyZone .replyContent p { display:block; } ul.replyZone .reply { background-color:#FAFAFA;} ul.replyZone .replyIndent { background:url(../images/common/iconReplyArrow.gif) no-repeat .0em .3em; padding-left:1.3em;} @@ -219,13 +220,14 @@ ul.replyZone .replyIndent { background:url(../images/common/iconReplyArrow.gif) #reply li { padding:.6em .8em .6em .6em; line-height:1.25em; clear:both; border-bottom:1px dotted #EEEEEE; list-style:none;} #reply p { display:inline; margin-bottom:1em;} #reply .author { float:left; padding:0 .3em 0 0; font-size:.9em; color:#3074a5; margin:0 .3em .5em 0;} -#reply .author a { font-size:.9em; color:#3074a5; margin-right:.3em;} +#reply .author a { color:#3074a5; margin-right:.3em; text-decoration:none;} #reply .date { float:right; font:.8em Tahoma; color:#cccccc; margin:.3em 0 .5em 0;} #reply .replyOption { float:right; white-space:nowrap; margin-left:.2em;} #reply .replyOption img { vertical-align:middle;} #reply .replyContent { clear:left; } +#reply .replyContent p { display:block; } #reply .reply { background-color:#FAFAFA;} #reply .replyIndent { background:url(../images/common/iconReplyArrow.gif) no-repeat .0em .3em; padding-left:1.3em;} @@ -276,7 +278,7 @@ ul.replyZone .replyIndent { background:url(../images/common/iconReplyArrow.gif) .blogWrite .extra_vars .info { clear:both; padding:.5em 0 0 .6em; margin-left:14em; font-size:.9em; color:#999999; background:url(../images/common/iconArrowD8.gif) no-repeat left center;} .blogWrite .extra_vars ul li { float:left; margin-right:1em; } -.smallBox { border:1px solid #e0e1db; margin:5em auto 1em auto;} +.smallBox { border:1px solid #e0e1db; margin-left:auto; margin-right:auto; } .smallBox.w268 { width:268px;} .smallBox .header { position:relative; _width:100%; background:#ffffff url(../images/normal/bgH3.gif) no-repeat left bottom; overflow:hidden;} .smallBox .header h3 { clear:both; font-size:1.2em; padding:.8em 2em .6em 1.2em; border-bottom:3px solid #fe3614; } diff --git a/modules/blog/skins/xe_blog/input_password_form.html b/modules/blog/skins/xe_blog/input_password_form.html index fc155f854..7655414d3 100644 --- a/modules/blog/skins/xe_blog/input_password_form.html +++ b/modules/blog/skins/xe_blog/input_password_form.html @@ -1,5 +1,5 @@ - +
@@ -27,4 +27,4 @@
- + diff --git a/modules/blog/skins/xe_blog/view_document.html b/modules/blog/skins/xe_blog/view_document.html index 559032510..fed9bc6d1 100644 --- a/modules/blog/skins/xe_blog/view_document.html +++ b/modules/blog/skins/xe_blog/view_document.html @@ -35,7 +35,18 @@
-
{$oDocument->getContent()}
+
+
+ + {@ $form_include = true; } + + + + {$oDocument->getContent()} + +
+
+
{@ $tag_list = $oDocument->get('tag_list') } diff --git a/modules/blog/tpl/blog_info.html b/modules/blog/tpl/blog_info.html index f5938d492..473c7543b 100644 --- a/modules/blog/tpl/blog_info.html +++ b/modules/blog/tpl/blog_info.html @@ -35,19 +35,19 @@ {$lang->description} - {nl2br(htmlspecialchars($module_info->description))} + {nl2br(htmlspecialchars($module_info->description))}  {$lang->header_text} - {htmlspecialchars($module_info->header_text)} + {htmlspecialchars($module_info->header_text)}  {$lang->footer_text} - {htmlspecialchars($module_info->footer_text)} + {htmlspecialchars($module_info->footer_text)}  {$lang->admin_id} - {implode(",",$module_info->admin_id)} + {implode(",",$module_info->admin_id)}  diff --git a/modules/board/board.admin.controller.php b/modules/board/board.admin.controller.php index 8148d0746..758e2f3a0 100644 --- a/modules/board/board.admin.controller.php +++ b/modules/board/board.admin.controller.php @@ -13,87 +13,6 @@ function init() { } - /** - * @brief 관리자가 글 선택시 세션에 담음 - **/ - function procBoardAdminAddCart() { - $document_srl = Context::get('srl'); - $check_flag = Context::get('check_flag'); - if(!$document_srl || !in_array($check_flag, array('add','remove'))) return; - - $flag_list = $_SESSION['document_management'][$this->module_srl]; - - if($check_flag == 'remove') unset($flag_list[$document_srl]); - else $flag_list[$document_srl] = true; - - $_SESSION['document_management'][$this->module_srl] = $flag_list; - } - - /** - * @brief 세션에 담긴 선택글의 이동/ 삭제 - **/ - function procBoardAdminManageCheckedDocument() { - $type = Context::get('type'); - $module_srl = Context::get('target_board'); - $message_content = Context::get('message_content'); - if($message_content) $message_content = nl2br($message_content); - - $flag_list = $_SESSION['document_management'][$this->module_srl]; - - $document_srl_list = array_keys($flag_list); - $document_srl_count = count($document_srl_list); - - // 쪽지 발송 - if($message_content) { - - $oMemberController = &getController('member'); - $oDocumentModel = &getModel('document'); - - $logged_info = Context::get('logged_info'); - - $title = cut_str($message_content,10,'...'); - $sender_member_srl = $logged_info->member_srl; - - for($i=0;$i<$document_srl_count;$i++) { - $document_srl = $document_srl_list[$i]; - $oDocument = $oDocumentModel->getDocument($document_srl); - if(!$oDocument->get('member_srl') || $oDocument->get('member_srl')==$sender_member_srl) continue; - - if($type=='move') $purl = sprintf("%s", $oDocument->getPermanentUrl(), $oDocument->getPermanentUrl()); - else $purl = ""; - $content .= sprintf("
%s

%s
%s
%s",$message_content, $purl, $oDocument->getTitleText(), $oDocument->getContent()); - - $oMemberController->sendMessage($sender_member_srl, $oDocument->get('member_srl'), $title, $content, false); - } - } - - if($type == 'move') { - $oDocumentAdminController = &getAdminController('document'); - if(!$module_srl) return new Object(-1, 'fail_to_move'); - else { - $output = $oDocumentAdminController->moveDocumentModule($document_srl_list, $module_srl, $this->module_srl); - if(!$output->toBool()) return new Object(-1, 'fail_to_move'); - $msg_code = 'success_moved'; - $_SESSION['document_management'] = null; - } - - } elseif($type =='delete') { - $oDB = &DB::getInstance(); - $oDB->begin(); - $oDocumentController = &getController('document'); - for($i=0;$i<$document_srl_count;$i++) { - $document_srl = $document_srl_list[$i]; - $output = $oDocumentController->deleteDocument($document_srl, true); - if(!$output->toBool()) return new Object(-1, 'fail_to_delete'); - } - $oDB->commit(); - $msg_code = 'success_deleted'; - $_SESSION['document_management'] = null; - } - - $this->setMessage($msg_code); - } - /** * @brief 권한 추가 **/ diff --git a/modules/board/board.admin.view.php b/modules/board/board.admin.view.php index 4f0d270db..0ad07286a 100644 --- a/modules/board/board.admin.view.php +++ b/modules/board/board.admin.view.php @@ -209,33 +209,5 @@ $this->setTemplateFile('grant_list'); } - - /** - * @brief 선택한 목록 출력 - **/ - function dispBoardAdminManageDocument() { - // 선택한 목록을 세션에서 가져옴 - $flag_list = $_SESSION['document_management'][$this->module_srl]; - - // 목록이 있으면 게시글을 가져옴 - if(count($flag_list)) $document_srl_list = array_keys($flag_list); - if(is_array($document_srl_list) && count($document_srl_list)) { - $oDocumentModel = &getModel('document'); - $document_list = $oDocumentModel->getDocuments($document_srl_list, $this->grant->is_admin); - Context::set('document_list', $document_list); - } - - // 게시판의 목록을 가져옴 - $output = executeQuery('board.getAllBoard', $args); - $board_list = $output->data; - if($board_list && !is_array($board_list)) $board_list = array($board_list); - Context::set('board_list', $board_list); - - // 팝업 레이아웃 선택 - $this->setLayoutPath('./common/tpl'); - $this->setLayoutFile('popup_layout'); - - $this->setTemplateFile('checked_list'); - } } ?> diff --git a/modules/board/board.view.php b/modules/board/board.view.php index 81d28955b..a97638159 100644 --- a/modules/board/board.view.php +++ b/modules/board/board.view.php @@ -156,11 +156,6 @@ Context::set('document_list', $output->data); Context::set('page_navigation', $output->page_navigation); - // 관리자일 경우 체크한 문서들의 목록을 세팅 - if($this->grant->is_admin) { - Context::set('check_list',$_SESSION['document_management'][$this->module_srl]); - } - $this->setTemplateFile('list'); } diff --git a/modules/board/conf/module.xml b/modules/board/conf/module.xml index 62faafb6b..3f4280aaa 100644 --- a/modules/board/conf/module.xml +++ b/modules/board/conf/module.xml @@ -67,13 +67,11 @@ - - @@ -103,15 +101,12 @@ - - - diff --git a/modules/board/lang/en.lang.php b/modules/board/lang/en.lang.php index bbedb7395..7bed1c139 100644 --- a/modules/board/lang/en.lang.php +++ b/modules/board/lang/en.lang.php @@ -11,7 +11,6 @@ $lang->cmd_board_list = 'Board list'; $lang->cmd_module_config = 'Common board setting'; $lang->cmd_view_info = 'Board info'; - $lang->move_target_module = "Target module for changing position"; $lang->about_board = "This module is for creating and managing boards.\nSelect the module's name from the list after creating one to configurate specifically.\nBe careful with board's module name, since it will be the url. (ex : http://domain/zb/?mid=modulename)"; ?> diff --git a/modules/board/lang/es.lang.php b/modules/board/lang/es.lang.php index eaa50f823..5615a0be2 100644 --- a/modules/board/lang/es.lang.php +++ b/modules/board/lang/es.lang.php @@ -11,7 +11,6 @@ $lang->cmd_board_list = 'Lista del tableros'; $lang->cmd_module_config = 'Configuración común del Tablero'; $lang->cmd_view_info = 'Información del Tablero'; - $lang->move_target_module = "Módulo para cambiar de posición"; $lang->about_board = "Este módulo es para crear y manejar los tableros.\nLuego de crear un Tablero, seleciona el nombre del módulo para la configuración más detallada.\nSea cuidadoso con el nombre del módulo, ya que ese nombre va a ser la dirección URL. (ej : http://dominio/zb/?mid=nombre del módulo)"; ?> diff --git a/modules/board/lang/jp.lang.php b/modules/board/lang/jp.lang.php index 1ea144b4f..d07d9aaa1 100644 --- a/modules/board/lang/jp.lang.php +++ b/modules/board/lang/jp.lang.php @@ -11,7 +11,6 @@ $lang->cmd_board_list = '掲示板リスト'; $lang->cmd_module_config = '掲示板共通設定'; $lang->cmd_view_info = '掲示板情報'; - $lang->move_target_module = "移動対象モジュール"; $lang->about_board = "掲示板を生成、管理できる掲示板モジュールです。生成後、リストからモジュール名を選択すると詳細な設定ができます。掲示板のモジュール名はURLになりますので注意してください。 (ex : http://ドメイン/zb/?mid=モジュール名)"; ?> diff --git a/modules/board/lang/ko.lang.php b/modules/board/lang/ko.lang.php index 3a1e1070f..22dae66e2 100644 --- a/modules/board/lang/ko.lang.php +++ b/modules/board/lang/ko.lang.php @@ -11,7 +11,6 @@ $lang->cmd_board_list = '게시판 목록'; $lang->cmd_module_config = '게시판 공통 설정'; $lang->cmd_view_info = '게시판 정보'; - $lang->move_target_module = "이동 대상 모듈"; $lang->about_board = "게시판을 생성하고 관리할 수 있는 게시판 모듈입니다.\n생성하신 후 목록에서 모듈이름을 선택하시면 자세한 설정이 가능합니다.\n게시판의 모듈이름은 접속 url이 되므로 신중하게 입력해주세요. (ex : http://도메인/zb/?mid=모듈이름)"; ?> diff --git a/modules/board/lang/zh-CN.lang.php b/modules/board/lang/zh-CN.lang.php index 91f16a674..dcb4f61e6 100644 --- a/modules/board/lang/zh-CN.lang.php +++ b/modules/board/lang/zh-CN.lang.php @@ -11,7 +11,6 @@ $lang->cmd_board_list = '版面目录'; $lang->cmd_module_config = '版面共同设置'; $lang->cmd_view_info = '版面信息'; - $lang->move_target_module = "移动目标模块"; $lang->about_board = "可生成,管理版面的模块。\n生成版面后,点击模块名即可对其详细设置。"; ?> diff --git a/modules/board/skins/xe_gallery/comment.html b/modules/board/skins/xe_gallery/comment.html index 8b5cad416..cd417315e 100644 --- a/modules/board/skins/xe_gallery/comment.html +++ b/modules/board/skins/xe_gallery/comment.html @@ -25,7 +25,17 @@
-
{htmlspecialchars($val->nick_name)}
+
+ + + {htmlspecialchars($val->nick_name)} + + {htmlspecialchars($val->nick_name)} + + +
{htmlspecialchars($val->nick_name)}
+ +
{$val->content} diff --git a/modules/board/skins/xe_gallery/css/common.css b/modules/board/skins/xe_gallery/css/common.css index aff79c616..80a592e2f 100644 --- a/modules/board/skins/xe_gallery/css/common.css +++ b/modules/board/skins/xe_gallery/css/common.css @@ -40,12 +40,11 @@ Jeong, Chan Myeong 070601~070630 .boardList tr.bg2 { background:#fbfbfb;} .boardList th a { color:#3e3f3e; text-decoration:none; } .boardList th.num { background-position:-3px bottom; border-left:1px solid #ffffff; } -.boardList th.title { text-align:center; } -.boardList th.category { text-align:center; } +.boardList th.title { text-align:left; padding-left:2em;} +.boardList th.category { text-align:left; padding-left:2em;} .boardList th.title select { vertical-align:middle; margin-left:.5em; } .boardList th.reading { white-space:nowrap;} .boardList th.recommend { white-space:nowrap;} -.boardList th.date { border-right:1px solid #ffffff;} .boardList th .sort { padding:0 .2em; vertical-align:middle;} .boardList td { border-top:1px solid #eff0ed; padding:.5em;} .boardList td.num { font:.8em tahoma; color:#999999; padding:.5em 1em; text-align:center;} @@ -77,19 +76,20 @@ Jeong, Chan Myeong 070601~070630 .boardList td .thumbnailMedium { margin:0 .3em 0 .3em;} .boardList td .thumbnailMedium img { border:1px solid #e0e1db; padding:3px;} -.boardList.thumbnail { margin-top:-1px; border-bottom:none;} -.boardList.thumbnail td { border-top:none; border-bottom:1px solid #eff0ed; padding:1.5em 0 0 1.5em; overflow:hidden;} -.boardList.thumbnail div.cell { float:left; width:167px; height:220px; overflow:hidden; margin:0 1.5em 0 0; padding-bottom:1.5em;} -.boardList.thumbnail div.cell img.thumb { padding:2px; border:1px solid #e0e1db; display:block; margin-bottom:1em;} -.boardList.thumbnail div.title { color:#444444; margin-bottom:.2em; padding-left:3px; overflow:hidden; white-space:nowrap;} -.boardList.thumbnail div.title a { color:#444444; text-decoration:none;} -.boardList.thumbnail div.nameAndDate { font-size:.9em; color:#999999; margin-bottom:.2em; padding-left:3px;} -.boardList.thumbnail div.nameAndDate a { color:#999999;} -.boardList.thumbnail div.nameAndDate .date { font:.8em Tahoma; color:#999999;} -.boardList.thumbnail div.readAndRecommend { font-size:.9em; color:#666666; padding-left:3px;} -.boardList.thumbnail div.readAndRecommend .num { font:.8em Tahoma;} -.boardList.thumbnail div.readAndRecommend .vr { color:#dddddd;} -.boardList.thumbnail div.readAndRecommend strong.num { font:bold .8em Tahoma; color:#ff6600;} +.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 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 a { color:#3B96C0; text-decoration:none;} +.thumbnailBox div.nameAndDate { font-size:.9em; color:#999999; margin-bottom:.2em; text-align:center;} +.thumbnailBox div.nameAndDate a { color:#999999;} +.thumbnailBox div.nameAndDate .author { margin-left:auto; margin-right:right; } +.thumbnailBox div.nameAndDate .author div { display:inline; vertical-align:middle;} +.thumbnailBox div.nameAndDate .date { font:.8em Tahoma; color:#999999;} +.thumbnailBox div.readAndRecommend { font-size:.9em; color:#666666; text-align:center;} +.thumbnailBox div.readAndRecommend .num { font:.8em Tahoma;} +.thumbnailBox div.readAndRecommend .vr { color:#dddddd;} +.thumbnailBox div.readAndRecommend strong.num { font:bold .8em Tahoma; color:#ff6600;} /* pageNavigation */ .pageNavigation { display:block; padding:1.5em 0 2em 0; text-align:center; font:bold 11px Tahoma; } @@ -102,7 +102,7 @@ Jeong, Chan Myeong 070601~070630 .pageNavigation a.goToLast img { display:inline-block; padding:2px 0; position:relative; top:2px; _top:1px;} /* extraVars list */ -.extraVarsList { width:100%; border:1px solid #e0e1db; clear:both; margin-bottom:1em;} +.extraVarsList { width:100%; border:1px solid #e0e1db; clear:both; margin-bottom:1em; margin-top:1em;} .extraVarsList tr.notice { background:#f8f8f8;} .extraVarsList tr.notice .num { font-size:.9em; font-weight:bold;} .extraVarsList tr.bg1 { background:#ffffff} @@ -138,12 +138,13 @@ Jeong, Chan Myeong 070601~070630 .boardRead ul.uri { overflow:hidden; margin:0 0 2em .3em; float:right; clear:left;} .boardRead ul.uri li { font-size:8pt; color:#c5c7c0; } -.boardRead .userInfo { float:left; white-space:nowrap;} -.boardRead .userInfo .author { padding:0 .3em 0 0; color:#3074a5; margin-right:.3em;} -.boardRead .userInfo .ipaddress { font-size:.9em; font-family:Tahoma; color:#888888; margin-right:.5em; } +.boardRead .userInfo { float:left; white-space:nowrap; } +.boardRead .userInfo .author { color:#3074a5; } +.boardRead .userInfo .author a { font-size:.9em; color:#3074a5; text-decoration:none; } +.boardRead .userInfo .ipaddress { font-size:.9em; color:#AAAAAA; margin-top:.3em;} .boardRead .contentBody { width:100%; overflow:hidden; } -.boardRead .readBody { padding:0 .3em; color:#555555; overflow:hidden; margin-bottom:2em; clear:both; } +.boardRead .readBody { padding:0 .3em; color:#555555; overflow:hidden; margin-bottom:2em; clear:both; margin-top:2em;} .boardRead .readBody p { margin:1em 0; line-height:1.5em;} .boardRead .readBody .alignLeft { float:left; margin:0 1em 1em 0; } .boardRead .readBody .alignRight { float:right; margin:0 0 1em 1em; } @@ -188,16 +189,18 @@ Jeong, Chan Myeong 070601~070630 #trackbacks address .date { font:.8em Tahoma; color:#cccccc; float:right;} #reply { padding:.6em .6em; color:#666666; border:1px solid #e0e1db; margin-top:.5em;} -#reply li { padding:.6em .8em .6em .6em; line-height:1.25em; clear:both; border-bottom:1px dotted #EEEEEE; list-style:none;} +#reply li { padding:.6em .8em .6em .6em; line-height:1.25em; clear:both; border-bottom:1px dotted #EEEEEE; } #reply p { display:inline; margin-bottom:1em;} #reply .author { float:left; padding:0 .3em 0 0; font-size:.9em; color:#3074a5; margin:0 .3em .5em 0;} -#reply .author a { font-size:.9em; color:#3074a5; margin-right:.3em;} +#reply .author a { color:#3074a5; margin-right:.3em; text-decoration:none; } #reply .date { float:right; font:.8em Tahoma; color:#cccccc; margin:.3em 0 .5em 0;} #reply .replyOption { float:right; white-space:nowrap; margin-left:.2em;} #reply .replyOption img { vertical-align:middle;} #reply .replyContent { clear:left; } +#reply .replyContent p { display:block; } +#reply .replyContent li { padding:0; border:none; line-height:1.25em; } #reply .reply { background-color:#FAFAFA;} #reply .replyIndent { background:url(../images/common/iconReplyArrow.gif) no-repeat .0em .3em; padding-left:1.3em;} @@ -247,7 +250,7 @@ Jeong, Chan Myeong 070601~070630 .boardWrite .extra_vars .info { clear:both; padding:.5em 0 0 .6em; margin-left:14em; font-size:.9em; color:#999999; background:url(../images/common/iconArrowD8.gif) no-repeat left center;} .boardWrite .extra_vars ul li { float:left; margin-right:1em; } -.smallBox { border:1px solid #e0e1db; margin:5em auto 1em auto;} +.smallBox { border:1px solid #e0e1db; margin-left:auto; margin-right:auto; } .smallBox.w268 { width:268px;} .smallBox .header { position:relative; _width:100%; background:#ffffff url(../images/normal/bgH3.gif) no-repeat left bottom; overflow:hidden;} .smallBox .header h3 { clear:both; font-size:1.2em; padding:.8em 2em .6em 1.2em; border-bottom:3px solid #fe3614; } diff --git a/modules/board/skins/xe_gallery/header.html b/modules/board/skins/xe_gallery/header.html index 9b0ed7b9d..17d3a5dca 100644 --- a/modules/board/skins/xe_gallery/header.html +++ b/modules/board/skins/xe_gallery/header.html @@ -20,6 +20,11 @@ {@ $module_info->duration_new = 12 } + +{@ $module_info->thumbnail_type = 'crop'; } +{@ $module_info->thumbnail_width = 100; } +{@ $module_info->thumbnail_height = 100; } + {$module_info->header_text} diff --git a/modules/board/skins/xe_gallery/input_password_form.html b/modules/board/skins/xe_gallery/input_password_form.html index 985f1ffd5..136aa8b86 100644 --- a/modules/board/skins/xe_gallery/input_password_form.html +++ b/modules/board/skins/xe_gallery/input_password_form.html @@ -1,5 +1,5 @@ - +
@@ -23,5 +23,4 @@
- - + diff --git a/modules/board/skins/xe_gallery/js/board.js b/modules/board/skins/xe_gallery/js/board.js index 9044d6484..81c8d2099 100644 --- a/modules/board/skins/xe_gallery/js/board.js +++ b/modules/board/skins/xe_gallery/js/board.js @@ -4,19 +4,6 @@ * @brief board 모듈의 javascript **/ -/* 관리자가 카트 선택시 세션에 넣음 */ -function doAddCart(mid, obj) { - var srl = obj.value; - var check_flag = obj.checked?'add':'remove'; - - var params = new Array(); - params["mid"] = mid; - params["srl"] = srl; - params["check_flag"] = check_flag; - - exec_xml("board","procBoardAdminAddCart", params, null); -} - /* 글쓰기 작성후 */ function completeDocumentInserted(ret_obj) { var error = ret_obj['error']; diff --git a/modules/board/skins/xe_gallery/list.html b/modules/board/skins/xe_gallery/list.html index 6c422b7fc..1dce07363 100644 --- a/modules/board/skins/xe_gallery/list.html +++ b/modules/board/skins/xe_gallery/list.html @@ -10,17 +10,21 @@ - - + +
+ - - - + + + + - + - + - + + @@ -58,7 +62,11 @@ - - - + + + + @@ -84,55 +93,59 @@
+ + + + - - {$lang->title} @@ -42,11 +45,12 @@ {@ $order_type = "desc"; } - {$lang->readed_count}{$lang->readed_count}{$lang->voted_count}{$lang->voted_count}{$lang->date}{$lang->date}{$lang->last_update}
{$lang->notice} - document_srl])-->checked="checked" /> + isCarted())-->checked="checked" /> + + + + {$category_list[$document->get('category_srl')]->title} {$document->getTitleText($module_info->subject_cut_size)} @@ -73,9 +81,10 @@ {$document->printExtraImages(60*60*$module_info->duration_new)} {$document->get('readed_count')}{$document->get('voted_count')}{$document->getRegdate('Y-m-d')}{$document->get('readed_count')}{$document->get('voted_count')}{$document->getRegdate('Y-m-d')}{zdate($document->get('last_update'),'Y-m-d H:i')}
- - - - - - -
- - +{@ $height = $module_info->thumbnail_height + 40; } +{@ $height += 25 } +{@ $height += 25 } -
- - - - - -
- - document_srl])-->checked="checked" /> - - - {$document->getTitleText($module_info->subject_cut_size)} - - {$document->getTitleText(8,'')} - +
- - ({$document->getCommentCount()}) - + + - - [{$document->getTrackbackCount()}] - - -
-
{$document->getNickName()}
-
{$document->getRegdate('Y.m.d')}
-
-
-
- {$lang->readed_count} {$document->get('readed_count')} - | {$lang->voted_count} {$document->get('voted_count')} -
-
+
+ + + + + +
+ + {$category_list[$document->get('category_srl')]->title}
+ + + isCarted())-->checked="checked" /> -
+ + {$document->getTitleText($module_info->subject_cut_size)} + + + ({$document->getCommentCount()}) + + + + [{$document->getTrackbackCount()}] + + +
+
{$document->getNickName()}
+
{$document->getRegdate('Y.m.d')}
+
+
+
+ {$lang->readed_count} {$document->get('readed_count')} + + | + {$lang->voted_count} {$document->get('voted_count')} + +
+ + + + +
@@ -148,7 +161,7 @@
- {$lang->cmd_manage_document} + {$lang->cmd_manage_document}
diff --git a/modules/board/skins/xe_gallery/skin.xml b/modules/board/skins/xe_gallery/skin.xml index 3c783c441..a24f95e64 100644 --- a/modules/board/skins/xe_gallery/skin.xml +++ b/modules/board/skins/xe_gallery/skin.xml @@ -1,117 +1,180 @@ - 제로보드XE 게시판 기본 스킨 (갤러리형) - ゼロボードXE掲示板のデフォルトスキン(ギャラリースタイル) - Zeroboard XE board 基本皮肤(相册型) - ZeroboardXE Basic Board Skin (Gallery Style) - - (주)NHN - (株)NHN - (株)NHN - NHN Corp - - 제로보드XE 게시판의 갤러리형태의 기본 스킨입니다. - 디자인 : 서기정 (http://blog.naver.com/addcozy) - HTML/CSS : 정찬명 (http://naradesign.net) - - - ゼロボードXEのギャラリースタイルのデフォルトスキンです。 - デザイン:ソギジョン (http://blog.naver.com/addcozy) - HTML/CSS:ジョンチャンミョン (http://naradesign.net) - - - zeroboard XE Board的相册型基本皮肤。 - 设计 : Ki-Jeong Seo (http://blog.naver.com/addcozy) - HTML/CSS : Chan-Myung Jeong (http://naradesign.net) - - - This is the basic gallery style board skin of Zeroboard XE. - Design : Ki-Jeong Seo (http://blog.naver.com/addcozy) - HTML/CSS : Chan-Myung Jeong (http://naradesign.net) - - - - - 하얀색(기본) - 白(デフォルト) - 白色(基本) - White (default) - - - 청록색 - 青緑 - 青绿色 - Cyan - - - 초록색 - - 绿色 - Green - - - 빨간색 - - 红色 - Red - - - 보라색 - - 紫色 - Purple + 제로보드XE 게시판 기본 스킨 (갤러리형) + ゼロボードXE掲示板のデフォルトスキン(ギャラリースタイル) + Zeroboard XE board 基本皮肤(相册型) + ZeroboardXE Basic Board Skin (Gallery Style) + + (주)NHN + (株)NHN + (株)NHN + NHN Corp + + 제로보드XE 게시판의 갤러리형태의 기본 스킨입니다. + 디자인 : 서기정 (http://blog.naver.com/addcozy) + HTML/CSS : 정찬명 (http://naradesign.net) + + + ゼロボードXEのギャラリースタイルのデフォルトスキンです。 + デザイン:ソギジョン (http://blog.naver.com/addcozy) + HTML/CSS:ジョンチャンミョン (http://naradesign.net) + + + zeroboard XE Board的相册型基本皮肤。 + 设计 : Ki-Jeong Seo (http://blog.naver.com/addcozy) + HTML/CSS : Chan-Myung Jeong (http://naradesign.net) + + + This is the basic gallery style board skin of Zeroboard XE. + Design : Ki-Jeong Seo (http://blog.naver.com/addcozy) + HTML/CSS : Chan-Myung Jeong (http://naradesign.net) + + + + + 하얀색(기본) + 白(デフォルト) + 白色(基本) + White (default) + + + 청록색 + 青緑 + 青绿色 + Cyan + + + 초록색 + + 绿色 + Green + + + 빨간색 + + 红色 + Red + + + 보라색 + + 紫色 + Purple - - - - 정렬 대상 - ソート対象 - 排序对象 - Align Target - select - 등록된 순서 또는 변경된 순서로 정렬을 할 수 있습니다. - 登録された順、変更された順でソートできます。 - 可对主题按发表顺或最后更新顺进行排序。 - It can align articles as registered order or modified order. - newest - updated - - - 게시판 제목 - 掲示板タイトル - 版面标题 - Title of Board - 게시판의 제목을 적어주세요. - 掲示板タイトルを入力してください。 - 请输入版面标题。(留空为不显示) - Please input the title of board. - - - 게시판 부제목 - 掲示板サブタイトル - 版面副标题 - Subtitle of Board - 게시판 제목 옆에 나타날 부제목을 적어주세요. - 掲示板タイトルの横表示されるサブタイトルを入力してください。 - 请输入显示在版面标题旁的副标题。(留空为不显示) - Please input the subtitle of board which will be displayed beside of board title. - - - 게시판 상세 설명 - 掲示板の説明 - 版面详细说明 - Description of Board - 게시판 제목 아래 표시될 설명을 입력하실 수 있습니다. - 掲示板タイトルの下に表示される説明文入力してください。 - 请输入显示在版面标题下的说明。(留空为不显示) - You may input description which will be displayed under the board title. - - - new표시 시간 (hours) - Duration of indication for new item - 새로 등록된 게시물의 new 표시시간을 정할 수 있습니다. - You may set the duration of indication for fresh item. - 24 - - + + + + 정렬 대상 + ソート対象 + 排序对象 + Align Target + select + 등록된 순서 또는 변경된 순서로 정렬을 할 수 있습니다. + 登録された順、変更された順でソートできます。 + 可对主题按发表顺或最后更新顺进行排序。 + It can align articles as registered order or modified order. + newest + updated + + + 게시판 제목 + 掲示板タイトル + 版面标题 + Title of Board + 게시판의 제목을 적어주세요. + 掲示板タイトルを入力してください。 + 请输入版面标题。(留空为不显示) + Please input the title of board. + + + 게시판 부제목 + 掲示板サブタイトル + 版面副标题 + Subtitle of Board + 게시판 제목 옆에 나타날 부제목을 적어주세요. + 掲示板タイトルの横表示されるサブタイトルを入力してください。 + 请输入显示在版面标题旁的副标题。(留空为不显示) + Please input the subtitle of board which will be displayed beside of board title. + + + 게시판 상세 설명 + 掲示板の説明 + 版面详细说明 + Description of Board + 게시판 제목 아래 표시될 설명을 입력하실 수 있습니다. + 掲示板タイトルの下に表示される説明文入力してください。 + 请输入显示在版面标题下的说明。(留空为不显示) + You may input description which will be displayed under the board title. + + + new표시 시간 (hours) + new图标显示时间(hours) + Duration of indication for new item + 새로 등록된 게시물의 new 표시시간을 정할 수 있습니다. + 可以设置最新更新主题的new图标显示时间。 + You may set the duration of indication for fresh item. + 24 + + + 썸네일 생성 방법 + 썸네일 생성 방법을 선택할 수 있습니다. (crop : 꽉 채우기, ratio : 비율 맞추기) + crop + ratio + + + 썸네일 가로크기 + 썸네일의 가로 크기를 지정할 수 있습니다. (기본 100px) + 100 + + + 썸네일 세로크기 + 썸네일의 세로 크기를 지정할 수 있습니다. (기본 100px) + 100 + + + 글쓴이 표시 + 投稿者表示 + 显示昵称 + Display Author + Y + N + + + + 작성일 표시 + 作成日表示 + 显示发表日期 + Display Registered Date + Y + N + + + + 조회수 표시 + 照合数表示 + 显示查看数 + Display Hit + Y + N + + + + 추천수 표시 + 推薦数表示 + 显示推荐数 + Display Votes + Y + N + + + + 최근 변경시간 표시 + 最近の変更時間表示 + 显示最后更新时间 + Display Latest Update + N + Y + + + diff --git a/modules/board/skins/xe_gallery/view_document.html b/modules/board/skins/xe_gallery/view_document.html index 9d75a65f7..cb45971c8 100644 --- a/modules/board/skins/xe_gallery/view_document.html +++ b/modules/board/skins/xe_gallery/view_document.html @@ -44,7 +44,18 @@
-
{$oDocument->getNickName()}
+ +
+ + {$oDocument->getNickName()} + + {$oDocument->getNickName()} + +
+ +
{$oDocument->getNickName()}
+ +
{$oDocument->get('ipaddress')}
@@ -68,7 +79,17 @@ -
{$oDocument->getContent()}
+
+
+ + {@ $form_include = true; } + + + + {$oDocument->getContent()} + +
+
{@ $tag_list = $oDocument->get('tag_list') } diff --git a/modules/board/skins/xe_list/comment.html b/modules/board/skins/xe_list/comment.html index 8b5cad416..90d27cd3c 100644 --- a/modules/board/skins/xe_list/comment.html +++ b/modules/board/skins/xe_list/comment.html @@ -25,10 +25,20 @@
-
{htmlspecialchars($val->nick_name)}
+
+ + + {htmlspecialchars($val->nick_name)} + + {htmlspecialchars($val->nick_name)} + + +
{htmlspecialchars($val->nick_name)}
+ +
- {$val->content} + {$val->content}
diff --git a/modules/board/skins/xe_list/css/common.css b/modules/board/skins/xe_list/css/common.css index ba6fe9d05..521575f3a 100644 --- a/modules/board/skins/xe_list/css/common.css +++ b/modules/board/skins/xe_list/css/common.css @@ -40,8 +40,8 @@ Jeong, Chan Myeong 070601~070630 .boardList tr.bg2 { background:#fbfbfb;} .boardList th a { color:#3e3f3e; text-decoration:none; } .boardList th.num { background-position:-3px bottom; border-left:1px solid #ffffff; } -.boardList th.title { text-align:center; } -.boardList th.category { text-align:center; } +.boardList th.title { text-align:center; padding-left:1em; } +.boardList th.category { text-align:left; padding-left:1em; } .boardList th.title select { vertical-align:middle; margin-left:.5em; } .boardList th.reading { white-space:nowrap;} .boardList th.recommend { white-space:nowrap;} @@ -102,7 +102,7 @@ Jeong, Chan Myeong 070601~070630 .pageNavigation a.goToLast img { display:inline-block; padding:2px 0; position:relative; top:2px; _top:1px;} /* extraVars list */ -.extraVarsList { width:100%; border:1px solid #e0e1db; clear:both; margin-bottom:1em;} +.extraVarsList { width:100%; border:1px solid #e0e1db; clear:both; margin-bottom:1em; margin-top:1em;} .extraVarsList tr.notice { background:#f8f8f8;} .extraVarsList tr.notice .num { font-size:.9em; font-weight:bold;} .extraVarsList tr.bg1 { background:#ffffff} @@ -135,15 +135,16 @@ Jeong, Chan Myeong 070601~070630 .boardRead .dateAndModify { float:right; white-space:nowrap; font-size:.8em; color:#999999; position:relative;} .boardRead .dateAndModify strong { font-size:1em; font-family:Tahoma;} -.boardRead ul.uri { overflow:hidden; margin:0 0 2em .3em; float:right; clear:left;} +.boardRead ul.uri { overflow:hidden; margin:0 0 2em .3em; float:right; clear:left; } .boardRead ul.uri li { font-size:8pt; color:#c5c7c0; } -.boardRead .userInfo { float:left; white-space:nowrap;} -.boardRead .userInfo .author { padding:0 .3em 0 0; color:#3074a5; margin-right:.3em;} -.boardRead .userInfo .ipaddress { font-size:.9em; font-family:Tahoma; color:#888888; margin-right:.5em; } +.boardRead .userInfo { float:left; white-space:nowrap; } +.boardRead .userInfo .author { color:#3074a5; } +.boardRead .userInfo .author a { font-size:.9em; color:#3074a5; text-decoration:none; } +.boardRead .userInfo .ipaddress { font-size:.9em; color:#AAAAAA; margin-top:.3em;} .boardRead .contentBody { width:100%; overflow:hidden; } -.boardRead .readBody { padding:0 .3em; color:#555555; overflow:hidden; margin-bottom:2em; clear:both; } +.boardRead .readBody { padding:0 .3em; color:#555555; overflow:hidden; margin-bottom:2em; clear:both; margin-top:2em;} .boardRead .readBody p { margin:1em 0; line-height:1.5em;} .boardRead .readBody .alignLeft { float:left; margin:0 1em 1em 0; } .boardRead .readBody .alignRight { float:right; margin:0 0 1em 1em; } @@ -188,16 +189,18 @@ Jeong, Chan Myeong 070601~070630 #trackbacks address .date { font:.8em Tahoma; color:#cccccc; float:right;} #reply { padding:.6em .6em; color:#666666; border:1px solid #e0e1db; margin-top:.5em;} -#reply li { padding:.6em .8em .6em .6em; line-height:1.25em; clear:both; border-bottom:1px dotted #EEEEEE; list-style:none;} +#reply li { padding:.6em .8em .6em .6em; line-height:1.25em; clear:both; border-bottom:1px dotted #EEEEEE; } #reply p { display:inline; margin-bottom:1em;} #reply .author { float:left; padding:0 .3em 0 0; font-size:.9em; color:#3074a5; margin:0 .3em .5em 0;} -#reply .author a { font-size:.9em; color:#3074a5; margin-right:.3em;} +#reply .author a { color:#3074a5; margin-right:.3em; text-decoration:none; } #reply .date { float:right; font:.8em Tahoma; color:#cccccc; margin:.3em 0 .5em 0;} #reply .replyOption { float:right; white-space:nowrap; margin-left:.2em;} #reply .replyOption img { vertical-align:middle;} #reply .replyContent { clear:left; } +#reply .replyContent p { display:block; } +#reply .replyContent li { padding:0; border:none; line-height:1.25em; } #reply .reply { background-color:#FAFAFA;} #reply .replyIndent { background:url(../images/common/iconReplyArrow.gif) no-repeat .0em .3em; padding-left:1.3em;} @@ -247,7 +250,7 @@ Jeong, Chan Myeong 070601~070630 .boardWrite .extra_vars .info { clear:both; padding:.5em 0 0 .6em; margin-left:14em; font-size:.9em; color:#999999; background:url(../images/common/iconArrowD8.gif) no-repeat left center;} .boardWrite .extra_vars ul li { float:left; margin-right:1em; } -.smallBox { border:1px solid #e0e1db; margin:5em auto 1em auto;} +.smallBox { border:1px solid #e0e1db; margin-left:auto; margin-right:auto; } .smallBox.w268 { width:268px;} .smallBox .header { position:relative; _width:100%; background:#ffffff url(../images/normal/bgH3.gif) no-repeat left bottom; overflow:hidden;} .smallBox .header h3 { clear:both; font-size:1.2em; padding:.8em 2em .6em 1.2em; border-bottom:3px solid #fe3614; } diff --git a/modules/board/skins/xe_list/input_password_form.html b/modules/board/skins/xe_list/input_password_form.html index 985f1ffd5..136aa8b86 100644 --- a/modules/board/skins/xe_list/input_password_form.html +++ b/modules/board/skins/xe_list/input_password_form.html @@ -1,5 +1,5 @@ - +
@@ -23,5 +23,4 @@
- - + diff --git a/modules/board/skins/xe_list/js/board.js b/modules/board/skins/xe_list/js/board.js index 9044d6484..81c8d2099 100644 --- a/modules/board/skins/xe_list/js/board.js +++ b/modules/board/skins/xe_list/js/board.js @@ -4,19 +4,6 @@ * @brief board 모듈의 javascript **/ -/* 관리자가 카트 선택시 세션에 넣음 */ -function doAddCart(mid, obj) { - var srl = obj.value; - var check_flag = obj.checked?'add':'remove'; - - var params = new Array(); - params["mid"] = mid; - params["srl"] = srl; - params["check_flag"] = check_flag; - - exec_xml("board","procBoardAdminAddCart", params, null); -} - /* 글쓰기 작성후 */ function completeDocumentInserted(ret_obj) { var error = ret_obj['error']; diff --git a/modules/board/skins/xe_list/list.html b/modules/board/skins/xe_list/list.html index d69be8e9a..e9ace165a 100644 --- a/modules/board/skins/xe_list/list.html +++ b/modules/board/skins/xe_list/list.html @@ -10,21 +10,26 @@ - - - - - - - - + + +
+ + + + + + + - -
{$lang->no} + + + + + - - {$lang->title} @@ -83,7 +87,7 @@ - document_srl])-->checked="checked" /> + isCarted())-->checked="checked" /> @@ -114,7 +118,8 @@
+ +
@@ -130,7 +135,7 @@ diff --git a/modules/board/skins/xe_list/skin.xml b/modules/board/skins/xe_list/skin.xml index fab4d4c62..67f656958 100644 --- a/modules/board/skins/xe_list/skin.xml +++ b/modules/board/skins/xe_list/skin.xml @@ -183,11 +183,13 @@ - new표시 시간 (hours) - Duration of indication for new item - 새로 등록된 게시물의 new 표시시간을 정할 수 있습니다. - You may set the duration of indication for fresh item. - 24 + new표시 시간 (hours) + new图标显示时间(hours) + Duration of indication for new item + 새로 등록된 게시물의 new 표시시간을 정할 수 있습니다. + 可以设置最新更新主题的new图标显示时间。 + You may set the duration of indication for fresh item. + 24 diff --git a/modules/board/skins/xe_list/view_document.html b/modules/board/skins/xe_list/view_document.html index 9d75a65f7..cb45971c8 100644 --- a/modules/board/skins/xe_list/view_document.html +++ b/modules/board/skins/xe_list/view_document.html @@ -44,7 +44,18 @@
-
{$oDocument->getNickName()}
+ +
+ + {$oDocument->getNickName()} + + {$oDocument->getNickName()} + +
+ +
{$oDocument->getNickName()}
+ +
{$oDocument->get('ipaddress')}
@@ -68,7 +79,17 @@ -
{$oDocument->getContent()}
+
+
+ + {@ $form_include = true; } + + + + {$oDocument->getContent()} + +
+
{@ $tag_list = $oDocument->get('tag_list') } diff --git a/modules/board/skins/xe_webzine/comment.html b/modules/board/skins/xe_webzine/comment.html index 8b5cad416..cd417315e 100644 --- a/modules/board/skins/xe_webzine/comment.html +++ b/modules/board/skins/xe_webzine/comment.html @@ -25,7 +25,17 @@
-
{htmlspecialchars($val->nick_name)}
+
+ + + {htmlspecialchars($val->nick_name)} + + {htmlspecialchars($val->nick_name)} + + +
{htmlspecialchars($val->nick_name)}
+ +
{$val->content} diff --git a/modules/board/skins/xe_webzine/css/common.css b/modules/board/skins/xe_webzine/css/common.css index c21f59c63..57fc2a75e 100644 --- a/modules/board/skins/xe_webzine/css/common.css +++ b/modules/board/skins/xe_webzine/css/common.css @@ -39,21 +39,19 @@ Jeong, Chan Myeong 070601~070630 .boardList tr.bg1 { background:#ffffff} .boardList tr.bg2 { background:#fbfbfb;} .boardList th a { color:#3e3f3e; text-decoration:none; } -.boardList th.num, .boardList th.title, -.boardList th.category_title, +.boardList th.category, +.boardList th.num, .boardList th.reading, .boardList th.recommend, .boardList th.author, .boardList th.date { border-bottom:1px solid #e0e1db; padding:.5em;} .boardList th.num { background-position:-3px bottom; border-left:1px solid #ffffff; } -.boardList th.title { text-align:center; } -.boardList th.category_title { text-align:left; padding-left:10px;} -.boardList th.category_title select { vertical-align:middle; width:200px; } +.boardList th.title { text-align:center; padding-left:1em;} +.boardList th.category { text-align:left; padding-left:1em;} .boardList th.reading { white-space:nowrap;} .boardList th.recommend { white-space:nowrap;} -.boardList th.date { border-right:1px solid #ffffff;} .boardList th .sort { padding:0 .2em; vertical-align:middle;} .boardList td { border-bottom:1px solid #eff0ed; padding:.5em;} .boardList td.num { font:.8em tahoma; color:#999999; padding:.5em 1em; text-align:center;} @@ -61,7 +59,7 @@ Jeong, Chan Myeong 070601~070630 .boardList tr.notice td.notice { font-size:.9em; color:#999999; font-weight:bold; text-align:center;} .boardList td.thumb { padding:8px; width:145px; table-layout:fixed; white-space:nowrap;} .boardList td.thumb * { vertical-align:middle;} -.boardList td.title {padding-left:1em; } +.boardList td.title {padding-left:1em; height:1em; border-bottom:none;} .boardList td.title strong.category { font-size:1em; background:url(../images/common/line_1x10_e0e0e0.gif) no-repeat right 3px; padding-right:.5em; margin-right:.5em;} .boardList td.title.bold { font-size:1.2em; font-weight:bold;} .boardList td.title.bold a { position:relative; top:.3em;} @@ -73,7 +71,7 @@ Jeong, Chan Myeong 070601~070630 .boardList td.author a { font-size:1em; color:#333333;} .boardList td.reading { font:.8em Tahoma; color:#999999; text-align:center;} .boardList td.date { font:.8em Tahoma; color:#999999; text-align:center; white-space:nowrap;} -.boardList td.summary { border-top:none; vertical-align:top; color:#666666; line-height:1.25em; padding-left:20px;} +.boardList td.summary { border-top:none; vertical-align:top; color:#666666; line-height:1.25em; padding-left:1em;} .boardList td.summary a { color:#666666; text-decoration:none; line-height:inherit;} .boardList td.summary a:visited { color:#999999;} .boardList td input { _margin:-3px;} @@ -86,7 +84,7 @@ Jeong, Chan Myeong 070601~070630 .boardList.thumbnail { margin-top:-1px; border-bottom:none;} .boardList.thumbnail td { border-top:none; border-bottom:1px solid #eff0ed; padding:1.5em 0 0 1.5em; overflow:hidden;} -.boardList.thumbnail div.cell { float:left; width:130px; margin:0 1.5em 0 0; padding-bottom:1.5em;} +.boardList.thumbnail div.cell { float:left; margin:0 1.5em 0 0; padding-bottom:1.5em;} .boardList.thumbnail div.cell img.thumb { padding:2px; border:1px solid #e0e1db; display:block; margin-bottom:1em;} .boardList.thumbnail div.title { color:#444444; margin-bottom:.2em; padding-left:3px;} .boardList.thumbnail div.title a { color:#444444;} @@ -109,7 +107,7 @@ Jeong, Chan Myeong 070601~070630 .pageNavigation a.goToLast img { display:inline-block; padding:2px 0; position:relative; top:2px; _top:1px;} /* extraVars list */ -.extraVarsList { width:100%; border:1px solid #e0e1db; clear:both; margin-bottom:1em;} +.extraVarsList { width:100%; border:1px solid #e0e1db; clear:both; margin-bottom:1em; margin-top:1em;} .extraVarsList tr.notice { background:#f8f8f8;} .extraVarsList tr.notice .num { font-size:.9em; font-weight:bold;} .extraVarsList tr.bg1 { background:#ffffff} @@ -145,12 +143,13 @@ Jeong, Chan Myeong 070601~070630 .boardRead ul.uri { overflow:hidden; margin:0 0 2em .3em; float:right; clear:left;} .boardRead ul.uri li { font-size:8pt; color:#c5c7c0; } -.boardRead .userInfo { float:left; white-space:nowrap;} -.boardRead .userInfo .author { padding:0 .3em 0 0; color:#3074a5; margin-right:.3em;} -.boardRead .userInfo .ipaddress { font-size:.9em; font-family:Tahoma; color:#888888; margin-right:.5em; } +.boardRead .userInfo { float:left; white-space:nowrap; } +.boardRead .userInfo .author { color:#3074a5; } +.boardRead .userInfo .author a { font-size:.9em; color:#3074a5; text-decoration:none; } +.boardRead .userInfo .ipaddress { font-size:.9em; color:#AAAAAA; margin-top:.3em;} .boardRead .contentBody { width:100%; overflow:hidden; } -.boardRead .readBody { padding:0 .3em; color:#555555; overflow:hidden; margin-bottom:2em; clear:both; } +.boardRead .readBody { padding:0 .3em; color:#555555; overflow:hidden; margin-bottom:2em; clear:both; margin-top:2em;} .boardRead .readBody p { margin:1em 0; line-height:1.5em;} .boardRead .readBody .alignLeft { float:left; margin:0 1em 1em 0; } .boardRead .readBody .alignRight { float:right; margin:0 0 1em 1em; } @@ -195,16 +194,18 @@ Jeong, Chan Myeong 070601~070630 #trackbacks address .date { font:.8em Tahoma; color:#cccccc; float:right;} #reply { padding:.6em .6em; color:#666666; border:1px solid #e0e1db; margin-top:.5em;} -#reply li { padding:.6em .8em .6em .6em; line-height:1.25em; clear:both; border-bottom:1px dotted #EEEEEE; list-style:none;} +#reply li { padding:.6em .8em .6em .6em; line-height:1.25em; clear:both; border-bottom:1px dotted #EEEEEE; } #reply p { display:inline; margin-bottom:1em;} #reply .author { float:left; padding:0 .3em 0 0; font-size:.9em; color:#3074a5; margin:0 .3em .5em 0;} -#reply .author a { font-size:.9em; color:#3074a5; margin-right:.3em;} +#reply .author a { color:#3074a5; margin-right:.3em; text-decoration:none; } #reply .date { float:right; font:.8em Tahoma; color:#cccccc; margin:.3em 0 .5em 0;} #reply .replyOption { float:right; white-space:nowrap; margin-left:.2em;} #reply .replyOption img { vertical-align:middle;} #reply .replyContent { clear:left; } +#reply .replyContent p { display:block; } +#reply .replyContent li { padding:0; border:none; line-height:1.25em; } #reply .reply { background-color:#FAFAFA;} #reply .replyIndent { background:url(../images/common/iconReplyArrow.gif) no-repeat .0em .3em; padding-left:1.3em;} @@ -254,7 +255,7 @@ Jeong, Chan Myeong 070601~070630 .boardWrite .extra_vars .info { clear:both; padding:.5em 0 0 .6em; margin-left:14em; font-size:.9em; color:#999999; background:url(../images/common/iconArrowD8.gif) no-repeat left center;} .boardWrite .extra_vars ul li { float:left; margin-right:1em; } -.smallBox { border:1px solid #e0e1db; margin:5em auto 1em auto;} +.smallBox { border:1px solid #e0e1db; margin-left:auto; margin-right:auto; } .smallBox.w268 { width:268px;} .smallBox .header { position:relative; _width:100%; background:#ffffff url(../images/normal/bgH3.gif) no-repeat left bottom; overflow:hidden;} .smallBox .header h3 { clear:both; font-size:1.2em; padding:.8em 2em .6em 1.2em; border-bottom:3px solid #fe3614; } diff --git a/modules/board/skins/xe_webzine/header.html b/modules/board/skins/xe_webzine/header.html index c47025a56..268e27c2a 100644 --- a/modules/board/skins/xe_webzine/header.html +++ b/modules/board/skins/xe_webzine/header.html @@ -20,6 +20,11 @@ {@ $module_info->duration_new = 12 } + +{@ $module_info->thumbnail_type = 'crop'; } +{@ $module_info->thumbnail_width = 100; } +{@ $module_info->thumbnail_height = 100; } + {$module_info->header_text} diff --git a/modules/board/skins/xe_webzine/input_password_form.html b/modules/board/skins/xe_webzine/input_password_form.html index 985f1ffd5..dcaa6d92b 100644 --- a/modules/board/skins/xe_webzine/input_password_form.html +++ b/modules/board/skins/xe_webzine/input_password_form.html @@ -1,5 +1,5 @@ - +
@@ -24,4 +24,4 @@
- + diff --git a/modules/board/skins/xe_webzine/js/board.js b/modules/board/skins/xe_webzine/js/board.js index 9044d6484..81c8d2099 100644 --- a/modules/board/skins/xe_webzine/js/board.js +++ b/modules/board/skins/xe_webzine/js/board.js @@ -4,19 +4,6 @@ * @brief board 모듈의 javascript **/ -/* 관리자가 카트 선택시 세션에 넣음 */ -function doAddCart(mid, obj) { - var srl = obj.value; - var check_flag = obj.checked?'add':'remove'; - - var params = new Array(); - params["mid"] = mid; - params["srl"] = srl; - params["check_flag"] = check_flag; - - exec_xml("board","procBoardAdminAddCart", params, null); -} - /* 글쓰기 작성후 */ function completeDocumentInserted(ret_obj) { var error = ret_obj['error']; diff --git a/modules/board/skins/xe_webzine/list.html b/modules/board/skins/xe_webzine/list.html index ee7204aa8..6f3311deb 100644 --- a/modules/board/skins/xe_webzine/list.html +++ b/modules/board/skins/xe_webzine/list.html @@ -10,20 +10,25 @@ - - - - - - - - + +
+ + + + + + + + - - + - + {@ $order_icon = "buttonDescending.gif" } @@ -46,11 +50,13 @@ {@ $order_type = "desc"; } - + - + - + + + @@ -58,7 +64,7 @@ - @@ -69,10 +75,10 @@ - + - - - - + + + + + - - - + + + + - - - - + + + + + - {@ $_col_count = 5} + {@ $_col_count = 7} - {@ $_col_count = 6} + {@ $_col_count = 8} + + {@ $_col_count --; } + {@ $_col_count --; } + {@ $_col_count --; } + {@ $_col_count --; } + {@ $_col_count --; } + {@ $_col_count --; } - + -
{$lang->no} + {$lang->no} + + + + - - {$lang->title} {$lang->writer}{$lang->writer} {$lang->readed_count}{$lang->readed_count}{$lang->voted_count}{$lang->voted_count}{$lang->date}{$lang->date}{$lang->last_update}
+ {$lang->no_documents}
{$lang->notice}{$lang->notice} - document_srl])-->checked="checked" /> + isCarted())-->checked="checked" /> {$category_list[$document->get('category_srl')]->title} @@ -90,26 +96,28 @@ {$document->printExtraImages(60*60*$module_info->duration_new)}
{$document->getNickName()}
{$document->get('readed_count')}{$document->get('voted_count')}{$document->getRegdate('Y-m-d')}
{$document->getNickName()}
{$document->get('readed_count')>0?$document->get('readed_count'):' '}{$document->get('voted_count')>0?$document->get('voted_count'):' '}{$document->getRegdate('Y-m-d')}{zdate($document->get('last_update'),'Y-m-d H:i')}
{$no}{$no} - document_srl])-->checked="checked" /> + isCarted())-->checked="checked" /> {$category_list[$document->get('category_srl')]->title} @@ -126,23 +134,32 @@ {$document->printExtraImages(60*60*$module_info->duration_new)}
{$document->getNickName()}
{$document->get('readed_count')}{$document->get('voted_count')}{$document->getRegdate('Y-m-d')}
{$document->getNickName()}
{$document->get('readed_count')>0?$document->get('readed_count'):' '}{$document->get('voted_count')>0?$document->get('voted_count'):' '}{$document->getRegdate('Y-m-d')}{zdate($document->get('last_update'),'Y-m-d H:i')}
{$document->getSummary(120)}{$document->getSummary(120)} 
+ +
@@ -158,7 +175,7 @@ diff --git a/modules/board/skins/xe_webzine/skin.xml b/modules/board/skins/xe_webzine/skin.xml index 17d248057..222e38df0 100644 --- a/modules/board/skins/xe_webzine/skin.xml +++ b/modules/board/skins/xe_webzine/skin.xml @@ -1,127 +1,198 @@ - 제로보드XE 게시판 기본 스킨(웹진형) - ゼロボードXE掲示板のデフォルトスキン(ウェブジンスタイル) - Zeroboard XE Board 基本皮肤(网络杂志型) - ZeroboardXE Basic Board Skin (Webzine Style) - - (주)NHN - (株)NHN - (株)NHN - NHN Corp - - 제로보드XE 게시판의 웹진형태 기본 스킨입니다. - 디자인 : 서기정 (http://blog.naver.com/addcozy) - HTML/CSS : 정찬명 (http://naradesign.net) - - - ゼロボードXE掲示板のウェブジンスタイルのデフォルトスキンです。 - デザイン:ソギジョン (http://blog.naver.com/addcozy) - HTML/CSS:ジョンチャンミョン (http://naradesign.net) - - - zeroboard XE Board 网络杂志型基本皮肤。 - 设计 : Ki-Jeong Seo (http://blog.naver.com/addcozy) - HTML/CSS : Chan-Myung Jeong (http://naradesign.net) - - - This is the basic webzine style board skin of Zeroboard XE. - Design : Ki-Jeong Seo (http://blog.naver.com/addcozy) - HTML/CSS : Chan-Myung Jeong (http://naradesign.net) - - - - - 하얀색(기본) - 白(デフォルト) - 白色(基本) - White (default) - - - 청록색 - 青緑 - 青绿色 - Cyan - - - 초록색 - - 绿色 - Green - - - 빨간색 - - 红色 - Red - - - 보라색 - - 紫色 - Purple - - - - - 정렬 대상 - ソート対象 - 排序对象 - Align Target - select - 등록된 순서 또는 변경된 순서로 정렬을 할 수 있습니다. - 登録された順、変更された順でソートできます。 - 可对主题按发表顺或最后更新顺进行排序。 - It can align articles as registered order or modified order. - newest - updated + 제로보드XE 게시판 기본 스킨(웹진형) + ゼロボードXE掲示板のデフォルトスキン(ウェブジンスタイル) + Zeroboard XE Board 基本皮肤(网络杂志型) + ZeroboardXE Basic Board Skin (Webzine Style) + + (주)NHN + (株)NHN + (株)NHN + NHN Corp + + 제로보드XE 게시판의 웹진형태 기본 스킨입니다. + 디자인 : 서기정 (http://blog.naver.com/addcozy) + HTML/CSS : 정찬명 (http://naradesign.net) + + + ゼロボードXE掲示板のウェブジンスタイルのデフォルトスキンです。 + デザイン:ソギジョン (http://blog.naver.com/addcozy) + HTML/CSS:ジョンチャンミョン (http://naradesign.net) + + + zeroboard XE Board 网络杂志型基本皮肤。 + 设计 : Ki-Jeong Seo (http://blog.naver.com/addcozy) + HTML/CSS : Chan-Myung Jeong (http://naradesign.net) + + + This is the basic webzine style board skin of Zeroboard XE. + Design : Ki-Jeong Seo (http://blog.naver.com/addcozy) + HTML/CSS : Chan-Myung Jeong (http://naradesign.net) + + + + + 하얀색(기본) + 白(デフォルト) + 白色(基本) + White (default) + + + 청록색 + 青緑 + 青绿色 + Cyan + + + 초록색 + + 绿色 + Green + + + 빨간색 + + 红色 + Red + + + 보라색 + + 紫色 + Purple + + + + + 정렬 대상 + ソート対象 + 排序对象 + Align Target + 등록된 순서 또는 변경된 순서로 정렬을 할 수 있습니다. + 登録された順、変更された順でソートできます。 + 可对主题按发表顺或最后更新顺进行排序。 + It can align articles as registered order or modified order. + newest + updated + + + 게시판 제목 + 掲示板タイトル + 版面标题 + Title of Board + 게시판의 제목을 적어주세요. + 掲示板タイトルを入力してください。 + 请输入版面标题。(留空为不显示) + Please input the title of board. + + + 게시판 부제목 + 掲示板サブタイトル + 版面副标题 + Subtitle of Board + 게시판 제목 옆에 나타날 부제목을 적어주세요. + 掲示板タイトルの横表示されるサブタイトルを入力してください。 + 请输入显示在版面标题旁的副标题。(留空为不显示) + Please input the subtitle of board which will be displayed beside of board title. + + + 게시판 상세 설명 + 掲示板の説明 + 版面详细说明 + Description of Board + 게시판 제목 아래 표시될 설명을 입력하실 수 있습니다. + 掲示板タイトルの下に表示される説明文入力してください。 + 请输入显示在版面标题下的说明。(留空为不显示) + You may input description which will be displayed under the board title. + + + 제목 글자수 + タイトルの文字数 + 标题字数 + Length of Subject + 제목 글자수를 지정할 수 있습니다. (0또는 비워주시면 자르지 않습니다) + タイトルの文字数が指定できます(「0」または空欄の場合は、文字数を制限しません)。 + 可以指定标题字数。(0或留空为不限) + You may set length of title. (0 or blank value will not restrict the length) + + + new표시 시간 (hours) + new图标显示时间(hours) + Duration of indication for new item + 새로 등록된 게시물의 new 표시시간을 정할 수 있습니다. + 可以设置最新更新主题的new图标显示时间。 + You may set the duration of indication for fresh item. + 24 + + + 썸네일 생성 방법 + 썸네일 생성 방법을 선택할 수 있습니다. (crop : 꽉 채우기, ratio : 비율 맞추기) + crop + ratio + + + 썸네일 가로크기 + 썸네일의 가로 크기를 지정할 수 있습니다. (기본 100px) + 100 + + + 썸네일 세로크기 + 썸네일의 세로 크기를 지정할 수 있습니다. (기본 100px) + 100 + + + 번호 표시 + 番号表示 + 显示编号 + Dispay Number + Y + N + - - 게시판 제목 - 掲示板タイトル - 版面标题 - Title of Board - 게시판의 제목을 적어주세요. - 掲示板タイトルを入力してください。 - 请输入版面标题。(留空为不显示) - Please input the title of board. + + 글쓴이 표시 + 投稿者表示 + 显示昵称 + Display Author + Y + N + - - 게시판 부제목 - 掲示板サブタイトル - 版面副标题 - Subtitle of Board - 게시판 제목 옆에 나타날 부제목을 적어주세요. - 掲示板タイトルの横表示されるサブタイトルを入力してください。 - 请输入显示在版面标题旁的副标题。(留空为不显示) - Please input the subtitle of board which will be displayed beside of board title. + + 작성일 표시 + 作成日表示 + 显示发表日期 + Display Registered Date + Y + N + - - 게시판 상세 설명 - 掲示板の説明 - 版面详细说明 - Description of Board - 게시판 제목 아래 표시될 설명을 입력하실 수 있습니다. - 掲示板タイトルの下に表示される説明文入力してください。 - 请输入显示在版面标题下的说明。(留空为不显示) - You may input description which will be displayed under the board title. + + 조회수 표시 + 照合数表示 + 显示查看数 + Display Hit + Y + N + - - 제목 글자수 - タイトルの文字数 - 标题字数 - Length of Subject - 제목 글자수를 지정할 수 있습니다. (0또는 비워주시면 자르지 않습니다) - タイトルの文字数が指定できます(「0」または空欄の場合は、文字数を制限しません)。 - 可以指定标题字数。(0或留空为不限) - You may set length of title. (0 or blank value will not restrict the length) + + 추천수 표시 + 推薦数表示 + 显示推荐数 + Display Votes + Y + N + - - new표시 시간 (hours) - Duration of indication for new item - 새로 등록된 게시물의 new 표시시간을 정할 수 있습니다. - You may set the duration of indication for fresh item. - 24 + + 최근 변경시간 표시 + 最近の変更時間表示 + 显示最后更新时间 + Display Latest Update + N + Y + - + diff --git a/modules/board/skins/xe_webzine/view_document.html b/modules/board/skins/xe_webzine/view_document.html index 9d75a65f7..cb45971c8 100644 --- a/modules/board/skins/xe_webzine/view_document.html +++ b/modules/board/skins/xe_webzine/view_document.html @@ -44,7 +44,18 @@
-
{$oDocument->getNickName()}
+ +
+ + {$oDocument->getNickName()} + + {$oDocument->getNickName()} + +
+ +
{$oDocument->getNickName()}
+ +
{$oDocument->get('ipaddress')}
@@ -68,7 +79,17 @@ -
{$oDocument->getContent()}
+
+
+ + {@ $form_include = true; } + + + + {$oDocument->getContent()} + +
+
{@ $tag_list = $oDocument->get('tag_list') } diff --git a/modules/board/tpl/board_info.html b/modules/board/tpl/board_info.html index f5639c5e6..60b4026c4 100644 --- a/modules/board/tpl/board_info.html +++ b/modules/board/tpl/board_info.html @@ -49,19 +49,19 @@ {$lang->description} - {nl2br(htmlspecialchars($module_info->description))} + {nl2br(htmlspecialchars($module_info->description))}  {$lang->header_text} - {htmlspecialchars($module_info->header_text)} + {htmlspecialchars($module_info->header_text)}  {$lang->footer_text} - {htmlspecialchars($module_info->footer_text)} + {htmlspecialchars($module_info->footer_text)}  {$lang->admin_id} - {implode(",",$module_info->admin_id)} + {implode(",",$module_info->admin_id)}  diff --git a/modules/board/tpl/checked_list.html b/modules/board/tpl/checked_list.html deleted file mode 100644 index e4ec76628..000000000 --- a/modules/board/tpl/checked_list.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -
-

{$lang->cmd_manage_document}

-
- -
- - - -
- - - - - - - - - - - - - - - - - -
{count($document_list)}
{$lang->move_target_module} - -
{$lang->cmd_send_message} - -
-
- - - -
diff --git a/modules/board/tpl/header.html b/modules/board/tpl/header.html index 3f8938c6d..00c289916 100644 --- a/modules/board/tpl/header.html +++ b/modules/board/tpl/header.html @@ -5,7 +5,7 @@
-

{$module_info->mid} ({$lang->is_default}) | View

+

{$module_info->mid} ({$lang->is_default}) | View

    diff --git a/modules/board/tpl/js/board_admin.js b/modules/board/tpl/js/board_admin.js index 48c4c43a1..3251dcdb6 100644 --- a/modules/board/tpl/js/board_admin.js +++ b/modules/board/tpl/js/board_admin.js @@ -100,17 +100,3 @@ function doChangeCategory(fo_obj) { return true; } -/* 선택된 글의 삭제 또는 이동 */ -function doManageDocument(type, mid) { - var fo_obj = xGetElementById("fo_management"); - fo_obj.type.value = type; - - procFilter(fo_obj, manage_checked_document); -} - -/* 선택된 글의 삭제 또는 이동 후 */ -function completeManageDocument(ret_obj) { - if(opener) opener.location.href = opener.location.href; - alert(ret_obj['message']); - window.close(); -} diff --git a/modules/comment/comment.model.php b/modules/comment/comment.model.php index 04fca7956..39bf53deb 100644 --- a/modules/comment/comment.model.php +++ b/modules/comment/comment.model.php @@ -125,6 +125,13 @@ $comment_srl = $source_list[$i]->comment_srl; $parent_srl = $source_list[$i]->parent_srl; $member_srl = $source_list[$i]->member_srl; + + // OL/LI 태그를 위한 치환 처리 + $source_list[$i]->content = preg_replace('!<(ol|ul|blockquote)>!is','<\\1 style="margin-left:40px;">',$source_list[$i]->content); + + // url에 대해서 정규표현식으로 치환 + $source_list[$i]->content = preg_replace('!([^>^"^\'^=])(http|https|ftp|mms):\/\/([^ ^<^"^\']*)!is','$1$2://$3',' '.$source_list[$i]->content); + if(!$comment_srl) continue; if($is_admin || $this->isGranted($comment_srl) || $member_srl == $logged_info->member_srl) $source_list[$i]->is_granted = true; diff --git a/modules/document/conf/module.xml b/modules/document/conf/module.xml index e86b2095e..a67a9d408 100644 --- a/modules/document/conf/module.xml +++ b/modules/document/conf/module.xml @@ -1,12 +1,28 @@ + + + + + + + + + + + + + + + + diff --git a/modules/document/document.admin.controller.php b/modules/document/document.admin.controller.php index 428285695..853399e66 100644 --- a/modules/document/document.admin.controller.php +++ b/modules/document/document.admin.controller.php @@ -36,25 +36,134 @@ $this->setMessage( sprintf(Context::getLang('msg_checked_document_is_deleted'), $document_count) ); } + /** + * @brief 관리자가 글 선택시 세션에 담음 + **/ + function procDocumentAdminAddCart() { + $document_srl = Context::get('srl'); + + $oDocumentModel = &getModel('document'); + $oDocument = $oDocumentModel->getDocument($document_srl); + if(!$oDocument->isExists()) return; + + $oDocument->doCart(); + } + + /** + * @brief 세션에 담긴 선택글의 이동/ 삭제 + **/ + function procDocumentAdminManageCheckedDocument() { + $type = Context::get('type'); + $module_srl = Context::get('target_module'); + $category_srl = Context::get('target_category'); + $message_content = Context::get('message_content'); + if($message_content) $message_content = nl2br($message_content); + + $cart = Context::get('cart'); + if($cart) $document_srl_list = explode('|@|', $cart); + else $document_srl_list = array(); + + $document_srl_count = count($document_srl_list); + + // 쪽지 발송 + if($message_content) { + + $oMemberController = &getController('member'); + $oDocumentModel = &getModel('document'); + + $logged_info = Context::get('logged_info'); + + $title = cut_str($message_content,10,'...'); + $sender_member_srl = $logged_info->member_srl; + + for($i=0;$i<$document_srl_count;$i++) { + $document_srl = $document_srl_list[$i]; + $oDocument = $oDocumentModel->getDocument($document_srl); + if(!$oDocument->get('member_srl') || $oDocument->get('member_srl')==$sender_member_srl) continue; + + if($type=='move') $purl = sprintf("%s", $oDocument->getPermanentUrl(), $oDocument->getPermanentUrl()); + else $purl = ""; + $content .= sprintf("
    %s

    %s
    %s
    %s",$message_content, $purl, $oDocument->getTitleText(), $oDocument->getContent()); + + $oMemberController->sendMessage($sender_member_srl, $oDocument->get('member_srl'), $title, $content, false); + } + } + + if($type == 'move') { + if(!$module_srl) return new Object(-1, 'fail_to_move'); + + $output = $this->moveDocumentModule($document_srl_list, $module_srl, $category_srl); + if(!$output->toBool()) return new Object(-1, 'fail_to_move'); + + $msg_code = 'success_moved'; + + } elseif($type == 'copy') { + if(!$module_srl) return new Object(-1, 'fail_to_move'); + + $output = $this->copyDocumentModule($document_srl_list, $module_srl, $category_srl); + if(!$output->toBool()) return new Object(-1, 'fail_to_move'); + + $msg_code = 'success_registed'; + + } elseif($type =='delete') { + $oDB = &DB::getInstance(); + $oDB->begin(); + $oDocumentController = &getController('document'); + for($i=0;$i<$document_srl_count;$i++) { + $document_srl = $document_srl_list[$i]; + $output = $oDocumentController->deleteDocument($document_srl, true); + if(!$output->toBool()) return new Object(-1, 'fail_to_delete'); + } + $oDB->commit(); + $msg_code = 'success_deleted'; + } + + $_SESSION['document_management'] = array(); + + $this->setMessage($msg_code); + } + /** * @brief 특정 게시물들의 소속 모듈 변경 (게시글 이동시에 사용) **/ - function moveDocumentModule($document_srl_list, $module_srl, $source_module_srl) { + function moveDocumentModule($document_srl_list, $module_srl, $category_srl) { if(!count($document_srl_list)) return; - $args->document_srls = implode(',',$document_srl_list); - $args->module_srl = $module_srl; + $oDocumentModel = &getModel('document'); + $oDocumentController = &getController('document'); $oDB = &DB::getInstance(); $oDB->begin(); - // 게시물의 이동 - $output = executeQuery('document.updateDocumentModule', $args); - if(!$output->toBool()) { - $oDB->rollback(); - return $output; + for($i=0;$igetDocument($document_srl); + if(!$oDocument->isExists()) continue; + + $source_category_srl = $oDocument->get('category_srl'); + + unset($document_args); + $document_args->module_srl = $module_srl; + $document_args->category_srl = $category_srl; + $document_args->document_srl = $document_srl; + + // 게시물의 모듈 이동 + $output = executeQuery('document.updateDocumentModule', $document_args); + if(!$output->toBool()) { + $oDB->rollback(); + return $output; + } + + // 카테고리가 변경되었으면 검사후 없는 카테고리면 0으로 세팅 + if($source_category_srl != $category_srl) { + if($source_category_srl) $oDocumentController->updateCategoryCount($source_category_srl); + if($category_srl) $oDocumentController->updateCategoryCount($category_srl); + } } + $args->document_srls = implode(',',$document_srl_list); + $args->module_srl = $module_srl; + // 댓글의 이동 $output = executeQuery('comment.updateCommentModule', $args); if(!$output->toBool()) { @@ -75,31 +184,53 @@ $oDB->rollback(); return $output; } + + $oDB->commit(); + return new Object(); + } - // 첨부파일의 이동 (다운로드나 본문 첨부의 문제로 인하여 첨부파일은 이동하지 않기로 결정. 차후에 다시 고민) - /* - $image_dir = sprintf('./files/attach/images/%s/%s/', $source_module_srl, $document_srl); - $binary_dir = sprintf('./files/attach/binaries/%s/%s/', $source_module_srl, $document_srl); + /** + * @brief 게시글의 복사 + **/ + function copyDocumentModule($document_srl_list, $module_srl, $category_srl) { + if(!count($document_srl_list)) return; - $target_image_dir = sprintf('./files/attach/images/%s/%s/', $module_srl, $document_srl); - $target_binary_dir = sprintf('./files/attach/binaries/%s/%s/', $module_srl, $document_srl); + $oDocumentModel = &getModel('document'); + $oDocumentController = &getController('document'); + $oFileController = &getController('file'); - if(is_dir($image_dir)) { - FileHandler::moveDir($image_dir, $target_image_dir); - if(!is_dir($target_image_dir)) { + $oDB = &DB::getInstance(); + $oDB->begin(); + + for($i=0;$igetDocument($document_srl); + if(!$oDocument->isExists()) continue; + + $obj = null; + $obj = $oDocument->getObjectVars(); + $obj->document_srl = getNextSequence(); + $obj->category_srl = $category_srl; + $obj->password_is_hashed = true; + + // 첨부파일 미리 등록 + if($oDocument->hasUploadedFiles()) { + $files = $oDocument->getUploadedFiles(); + foreach($files as $key => $val) { + $file_info = array(); + $file_info['tmp_name'] = $val->uploaded_filename; + $file_info['name'] = $val->source_filename; + $oFileController->insertFile($file_info, $module_srl, $obj->document_srl, 0, true); + } + } + + // 글의 등록 + $output = $oDocumentController->insertDocument($obj, true); + if(!$output->toBool()) { $oDB->rollback(); - return new Object(-1,'fail'); + return $output; } } - - if(is_dir($binary_dir)) { - FileHandler::moveDir($binary_dir, $target_binary_dir); - if(!is_dir($target_binary_dir)) { - $oDB->rollback(); - return new Object(-1,'fail'); - } - } - */ $oDB->commit(); return new Object(); @@ -253,5 +384,45 @@ return new Object(); } + + /** + * @brief 문서 모듈의 기본설정 저장 + **/ + function procDocumentAdminInsertConfig() { + // 기본 정보를 받음 + $args = Context::gets('thumbnail_type'); + + // module Controller 객체 생성하여 입력 + $oModuleController = &getController('module'); + $output = $oModuleController->insertModuleConfig('document',$args); + return $output; + } + + /** + * @brief 모든 생성된 썸네일 삭제 + **/ + function procDocumentAdminDeleteAllThumbnail() { + + // files/attaches/images/ 디렉토리를 순환하면서 thumbnail_*.jpg 파일을 모두 삭제 + $this->deleteThumbnailFile('./files/attach/images'); + + $this->setMessage('success_deleted'); + } + + function deleteThumbnailFile($path) { + $directory = dir($path); + while($entry = $directory->read()) { + if ($entry != "." && $entry != "..") { + if (is_dir($path."/".$entry)) { + $this->deleteThumbnailFile($path."/".$entry); + } else { + if(!eregi('^thumbnail_([^\.]*)\.jpg$',$entry)) continue; + @unlink($path.'/'.$entry); + } + } + } + $directory->close(); + } + } ?> diff --git a/modules/document/document.admin.view.php b/modules/document/document.admin.view.php index 6879e6831..7d58e2321 100644 --- a/modules/document/document.admin.view.php +++ b/modules/document/document.admin.view.php @@ -77,5 +77,53 @@ $this->setTemplateFile('document_list'); } + /** + * @brief 문서 모듈 설정 + **/ + function dispDocumentAdminConfig() { + $oDocumentModel = &getModel('document'); + $config = $oDocumentModel->getDocumentConfig(); + Context::set('config',$config); + + // 템플릿 파일 지정 + $this->setTemplatePath($this->module_path.'tpl'); + $this->setTemplateFile('document_config'); + } + + /** + * @brief 관리자가 선택한 문서에 대한 관리 + **/ + function dispDocumentAdminManageDocument() { + // 선택한 목록을 세션에서 가져옴 + $flag_list = $_SESSION['document_management']; + if(count($flag_list)) { + foreach($flag_list as $key => $val) { + if(!is_bool($val)) continue; + $document_srl_list[] = $key; + } + + } + + if(count($document_srl_list)) { + $oDocumentModel = &getModel('document'); + $document_list = $oDocumentModel->getDocuments($document_srl_list, $this->grant->is_admin); + Context::set('document_list', $document_list); + } + + // 모듈의 목록을 가져옴 + $args->select_module = "'board','blog'"; + $output = executeQuery('document.getAllModules', $args); + $module_list = $output->data; + + if($module_list && !is_array($module_list)) $module_list = array($module_list); + Context::set('module_list', $module_list); + + // 팝업 레이아웃 선택 + $this->setLayoutPath('./common/tpl'); + $this->setLayoutFile('popup_layout'); + + $this->setTemplatePath($this->module_path.'tpl'); + $this->setTemplateFile('checked_list'); + } } ?> diff --git a/modules/document/document.class.php b/modules/document/document.class.php index dca58332e..ee4a6e0d3 100644 --- a/modules/document/document.class.php +++ b/modules/document/document.class.php @@ -23,6 +23,7 @@ $oModuleController = &getController('module'); $oModuleController->insertActionForward('document', 'view', 'dispDocumentAdminList'); $oModuleController->insertActionForward('document', 'view', 'dispDocumentPrint'); + $oModuleController->insertActionForward('document', 'view', 'dispDocumentAdminConfig'); $oDB = &DB::getInstance(); $oDB->addIndex("documents","idx_module_list_order", array("module_srl","list_order")); @@ -38,6 +39,7 @@ **/ function checkUpdate() { $oDB = &DB::getInstance(); + $oModuleModel = &getModel('module'); /** * 2007. 7. 23 : 확장변수(extra_vars1~20까지 추가) @@ -57,6 +59,12 @@ if(!$oDB->isIndexExists("documents","idx_module_readed_count")) return true; if(!$oDB->isIndexExists("documents","idx_module_voted_count")) return true; + /** + * 2007. 10. 11 : 관리자 페이지의 기본 설정 Action 추가, 게시글 관리 action 추가 + **/ + if(!$oModuleModel->getActionForward('dispDocumentAdminConfig')) return true; + if(!$oModuleModel->getActionForward('dispDocumentAdminManageDocument')) return true; + return false; } @@ -65,6 +73,8 @@ **/ function moduleUpdate() { $oDB = &DB::getInstance(); + $oModuleModel = &getModel('module'); + $oModuleController = &getController('module'); /** * 2007. 7. 23 : 확장변수(extra_vars1~20까지 추가) @@ -102,6 +112,14 @@ $oDB->addIndex("documents","idx_module_voted_count", array("module_srl","voted_count")); } + /** + * 2007. 10. 11 : 관리자 페이지의 기본 설정 Action 추가, 게시글 관리 action 추가 + **/ + if(!$oModuleModel->getActionForward('dispDocumentAdminConfig')) + $oModuleController->insertActionForward('document', 'view', 'dispDocumentAdminConfig'); + if(!$oModuleModel->getActionForward('dispDocumentAdminManageDocument')) + $oModuleController->insertActionForward('document', 'view', 'dispDocumentAdminManageDocument'); + return new Object(0,'success_updated'); } diff --git a/modules/document/document.item.php b/modules/document/document.item.php index 79acc18ea..e8304a02b 100644 --- a/modules/document/document.item.php +++ b/modules/document/document.item.php @@ -100,6 +100,23 @@ return $this->get('notify_message')=='Y' ? true : false; } + function doCart() { + if($this->isCarted()) $this->removeCart(); + else $this->addCart(); + } + + function addCart() { + $_SESSION['document_management'][$this->document_srl] = true; + } + + function removeCart() { + unset($_SESSION['document_management'][$this->document_srl]); + } + + function isCarted() { + return $_SESSION['document_management'][$this->document_srl]; + } + function notify($type, $content) { // useNotify가 아니면 return if(!$this->useNotify()) return; @@ -122,6 +139,24 @@ $oMemberController = &getController('member'); $oMemberController->sendMessage($sender_member_srl, $receiver_srl, $title, $content, false); } + + function isExistsHomepage() { + if(trim($this->get('homepage'))) return true; + return false; + } + + function getHomepageUrl() { + $url = trim($this->get('homepage')); + if(!$url) return; + + if(!eregi("^http:\/\/",$url)) $url = "http://".$url; + + return $url; + } + + function getMemberSrl() { + return $this->get('member_srl'); + } function getUserID() { return htmlspecialchars($this->get('user_id')); @@ -168,6 +203,9 @@ // OL/LI 태그를 위한 치환 처리 $content = preg_replace('!<(ol|ul|blockquote)>!is','<\\1 style="margin-left:40px;">',$content); + + // url에 대해서 정규표현식으로 치환 + $content = preg_replace('!([^>^"^\'^=])(http|https|ftp|mms):\/\/([^ ^<^"^\']*)!is','$1$2://$3',' '.$content); if($add_document_info) return sprintf('%s', $this->document_srl, $this->get('member_srl'), $content, $this->document_srl, $this->get('member_srl')); @@ -270,12 +308,12 @@ return $oTrackbackModel->getTrackbackList($this->document_srl, $is_admin); } - function thumbnailExists($width = 80, $height = 0) { - if(!$this->getThumbnail($width, $height)) return false; + function thumbnailExists($width = 80, $height = 0, $type = '') { + if(!$this->getThumbnail($width, $height, $type)) return false; return true; } - function getThumbnail($width = 80, $height = 0) { + function getThumbnail($width = 80, $height = 0, $thumbnail_type = '') { if(!$height) $height = $width; // 문서의 이미지 첨부파일 위치를 구함 @@ -297,6 +335,13 @@ // 썸네일 파일이 있으면 url return if(file_exists($thumbnail_file)) return Context::getRequestUri().$thumbnail_file; + + // 문서 모듈의 기본 설정에서 Thumbnail의 생성 방법을 구함 + if(!in_array($thumbnail_type, array('crop','ratio'))) { + $oDocumentModel = &getModel('document'); + $config = $oDocumentModel->getDocumentConfig(); + $thumbnail_type = $config->thumbnail_type; + } // 생성 시작 FileHandler::writeFile($thumbnail_file, '', 'w'); @@ -312,7 +357,7 @@ $filename = $file->uploaded_filename; if(!file_exists($filename)) continue; - FileHandler::createImageFile($filename, $thumbnail_file, $width, $height, 'jpg'); + FileHandler::createImageFile($filename, $thumbnail_file, $width, $height, 'jpg', $thumbnail_type); if(file_exists($thumbnail_file)) return Context::getRequestUri().$thumbnail_file; } } @@ -335,7 +380,7 @@ return; } - FileHandler::createImageFile($tmp_file, $thumbnail_file, $width, $height, 'jpg'); + FileHandler::createImageFile($tmp_file, $thumbnail_file, $width, $height, 'jpg', $config->thumbnail_type); @unlink($tmp_file); return Context::getRequestUri().$thumbnail_file; @@ -345,21 +390,11 @@ * @brief 새글, 최신 업데이트글, 비밀글, 이미지/동영상/첨부파일등의 아이콘 출력용 함수 * $time_interval 에 지정된 시간(초)로 새글/최신 업데이트글의 판별 **/ - function getExtraImages($time_interval = 7200) { + function getExtraImages($time_interval = 43200) { // 아이콘 목록을 담을 변수 미리 설정 $buffs = array(); - // 최신 시간 설정 - $time_check = date("YmdHis", time()-$time_interval); - - // 새글 체크 - if($this->get('regdate')>$time_check) $buffs[] = "new"; - else if($this->get('last_update')>$time_check) $buffs[] = "update"; - - // 비밀글 체크 - if($this->isSecret()) $buffs[] = "secret"; - $check_files = false; // 사진 이미지 체크 @@ -377,13 +412,24 @@ // 첨부파일 체크 if(!$check_files && $this->hasUploadedFiles()) $buffs[] = "file"; + // 비밀글 체크 + if($this->isSecret()) $buffs[] = "secret"; + + // 최신 시간 설정 + $time_check = date("YmdHis", time()-$time_interval); + + // 새글 체크 + if($this->get('regdate')>$time_check) $buffs[] = "new"; + else if($this->get('last_update')>$time_check) $buffs[] = "update"; + + return $buffs; } /** * @brief getExtraImages로 구한 값을 이미지 태그를 씌워서 리턴 **/ - function printExtraImages($time_check = 7200) { + function printExtraImages($time_check = 43200) { // 아이콘 디렉토리 구함 $path = sprintf('%s%s',getUrl(), 'modules/document/tpl/icons/'); @@ -392,7 +438,7 @@ $buff = null; foreach($buffs as $key => $val) { - $buff .= sprintf('%s', $path, $val, $val, $val); + $buff .= sprintf('%s', $path, $val, $val, $val); } return $buff; } diff --git a/modules/document/document.model.php b/modules/document/document.model.php index 446c6498c..bf97c5c9b 100644 --- a/modules/document/document.model.php +++ b/modules/document/document.model.php @@ -312,5 +312,35 @@ return $output; } + + /** + * @brief 특정 모듈의 분류를 구함 + **/ + function getDocumentCategories() { + $module_srl = Context::get('module_srl'); + $categories= $this->getCategoryList($module_srl); + if(!$categories) return; + + $output = ''; + foreach($categories as $category_srl => $category) { + $output .= sprintf("%d,%s\n",$category_srl, $category->title); + } + $this->add('categories', $output); + } + + /** + * @brief 문서 설정 정보를 구함 + **/ + function getDocumentConfig() { + if(!$GLOBLAS['__document_config__']) { + $oModuleModel = &getModel('module'); + $config = $oModuleModel->getModuleConfig('document'); + + if(!$config->thumbnail_type) $config->thumbnail_type = 'crop'; + $GLOBLAS['__document_config__'] = $config; + } + + return $GLOBLAS['__document_config__']; + } } ?> diff --git a/modules/document/lang/en.lang.php b/modules/document/lang/en.lang.php index 44ec73200..5162c806a 100644 --- a/modules/document/lang/en.lang.php +++ b/modules/document/lang/en.lang.php @@ -5,6 +5,13 @@ * @brief Document module's basic language pack **/ + $lang->document_list = 'Document list'; + $lang->thumbnail_type = 'Thumbnail Type'; + $lang->thumbnail_crop = 'Crop'; + $lang->thumbnail_ratio = 'Ratio'; + $lang->cmd_delete_all_thumbnail = 'Delete all thumbnails'; + $lang->move_target_module = "Target module for changing position"; + $lang->cmd_toggle_checked_document = '선택항목 반전'; $lang->cmd_delete_checked_document = 'Delete selected'; diff --git a/modules/document/lang/es.lang.php b/modules/document/lang/es.lang.php index 18b674152..461f01e72 100644 --- a/modules/document/lang/es.lang.php +++ b/modules/document/lang/es.lang.php @@ -5,6 +5,13 @@ * @sumario Paquete del idioma español para el módulo de documentos. **/ + $lang->document_list = 'Document list'; + $lang->thumbnail_type = 'Thumbnail Type'; + $lang->thumbnail_crop = 'Crop'; + $lang->thumbnail_ratio = 'Ratio'; + $lang->cmd_delete_all_thumbnail = 'Delete all thumbnails'; + $lang->move_target_module = "Módulo para cambiar de posición"; + $lang->cmd_toggle_checked_document = '선택항목 반전'; $lang->cmd_delete_checked_document = 'Eliminar lo seleccionado'; diff --git a/modules/document/lang/jp.lang.php b/modules/document/lang/jp.lang.php index 47aa81db8..b57b37786 100644 --- a/modules/document/lang/jp.lang.php +++ b/modules/document/lang/jp.lang.php @@ -5,6 +5,13 @@ * @brief ドキュメント(document)モジュルの基本言語パッケージ **/ + $lang->document_list = 'Document list'; + $lang->thumbnail_type = 'Thumbnail Type'; + $lang->thumbnail_crop = 'Crop'; + $lang->thumbnail_ratio = 'Ratio'; + $lang->cmd_delete_all_thumbnail = 'Delete all thumbnails'; + $lang->move_target_module = "移動対象モジュール"; + $lang->cmd_toggle_checked_document = '선택항목 반전'; $lang->cmd_delete_checked_document = '選択項目削除'; diff --git a/modules/document/lang/ko.lang.php b/modules/document/lang/ko.lang.php index 2c398727e..a255efe99 100644 --- a/modules/document/lang/ko.lang.php +++ b/modules/document/lang/ko.lang.php @@ -5,6 +5,12 @@ * @brief 문서(document) 모듈의 기본 언어팩 **/ + $lang->document_list = '문서 목록'; + $lang->thumbnail_type = '썸네일 생성 방법'; + $lang->thumbnail_crop = '잘라내기 (정해진 크기에 꽉 찬 모습의 썸네일을 만듭니다)'; + $lang->thumbnail_ratio = '비율 맞추기 (원본 이미지의 비율에 맞춥니다. 다만 정해진 크기에 여백이 생깁니다)'; + $lang->cmd_delete_all_thumbnail = '썸네일 모두 삭제'; + $lang->cmd_toggle_checked_document = '선택항목 반전'; $lang->cmd_delete_checked_document = '선택항목 삭제'; @@ -13,6 +19,8 @@ $lang->msg_is_secret = '비밀글입니다'; $lang->msg_checked_document_is_deleted = '%d개의 글이 삭제되었습니다'; + $lang->move_target_module = "이동 대상 모듈"; + // 관리자 페이지에서 검색할 대상 $lang->search_target_list = array( 'title' => '제목', diff --git a/modules/document/lang/zh-CN.lang.php b/modules/document/lang/zh-CN.lang.php index 486cffac5..0dddc1374 100644 --- a/modules/document/lang/zh-CN.lang.php +++ b/modules/document/lang/zh-CN.lang.php @@ -5,6 +5,13 @@ * @brief 文章(document)模块语言包 **/ + $lang->document_list = 'Document list'; + $lang->thumbnail_type = 'Thumbnail Type'; + $lang->thumbnail_crop = 'Crop'; + $lang->thumbnail_ratio = 'Ratio'; + $lang->cmd_delete_all_thumbnail = 'Delete all thumbnails'; + $lang->move_target_module = "移动目标模块"; + $lang->cmd_toggle_checked_document = '反选'; $lang->cmd_delete_checked_document = '删除所选'; diff --git a/modules/document/queries/getAllModules.xml b/modules/document/queries/getAllModules.xml new file mode 100644 index 000000000..e0a7672fe --- /dev/null +++ b/modules/document/queries/getAllModules.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/modules/document/queries/updateDocumentModule.xml b/modules/document/queries/updateDocumentModule.xml index 5c8f08166..8c8dafd50 100644 --- a/modules/document/queries/updateDocumentModule.xml +++ b/modules/document/queries/updateDocumentModule.xml @@ -4,8 +4,9 @@ + - + diff --git a/modules/document/tpl/checked_list.html b/modules/document/tpl/checked_list.html new file mode 100644 index 000000000..28547e410 --- /dev/null +++ b/modules/document/tpl/checked_list.html @@ -0,0 +1,74 @@ + + + + +
    +

    {$lang->cmd_manage_document}

    +
    + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + {$lang->cmd_select} +
      + +
    • {$document->getNickName()}
      {$document->getTitle()}
    • + +
    + +   + +
    {$lang->move_target_module} + +
    {$lang->category} + +
    {$lang->cmd_send_message} + +
    +
+ + + + + + diff --git a/modules/document/tpl/css/document.css b/modules/document/tpl/css/document.css index 229870652..fec819620 100644 --- a/modules/document/tpl/css/document.css +++ b/modules/document/tpl/css/document.css @@ -1 +1,5 @@ -body { margin:10px; font-size:.75em; font-family:sans-serif;} +.document_list_box { height:300px; overflow-y:scroll; overflow-x:hidden;} +.document_list { margin-top:.5em; overflow:hidden; white-space:nowrap; clear:both;} +.document_list input { float:left; margin-right:10px; } +.document_list address { float:left; width:100px; margin-right:10px; overflow:hidden; white-space:nowrap;} +.document_list .document_title { } diff --git a/modules/document/tpl/document_config.html b/modules/document/tpl/document_config.html new file mode 100644 index 000000000..8bb859f1f --- /dev/null +++ b/modules/document/tpl/document_config.html @@ -0,0 +1,24 @@ + + + +
+ + + + + + + +
{$lang->thumbnail_type} + thumbnail_type != 'ratio')-->checked="checked"/> {$lang->thumbnail_crop}
+ thumbnail_type == 'ratio')-->checked="checked"/> {$lang->thumbnail_ratio} +
+ + +
+ +
+
+ +
+
diff --git a/modules/document/tpl/document_list.html b/modules/document/tpl/document_list.html index 3f2460cda..4d1d8d60c 100644 --- a/modules/document/tpl/document_list.html +++ b/modules/document/tpl/document_list.html @@ -1,7 +1,7 @@ - + + -

{$lang->document} {$lang->cmd_management}

@@ -13,6 +13,13 @@ + + + + + + + @@ -38,9 +45,9 @@ - - - + + - + @@ -62,9 +69,7 @@ diff --git a/modules/document/tpl/filter/insert_config.xml b/modules/document/tpl/filter/insert_config.xml new file mode 100644 index 000000000..b600db293 --- /dev/null +++ b/modules/document/tpl/filter/insert_config.xml @@ -0,0 +1,7 @@ + +
+ + + + +
diff --git a/modules/document/tpl/filter/manage_checked_document.xml b/modules/document/tpl/filter/manage_checked_document.xml new file mode 100644 index 000000000..0c8383093 --- /dev/null +++ b/modules/document/tpl/filter/manage_checked_document.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/modules/document/tpl/header.html b/modules/document/tpl/header.html new file mode 100644 index 000000000..79d22e1f7 --- /dev/null +++ b/modules/document/tpl/header.html @@ -0,0 +1,10 @@ + + +

{$lang->document} {$lang->cmd_management}

+ +
+ +
diff --git a/modules/document/tpl/icons/file.gif b/modules/document/tpl/icons/file.gif index b57c1b912..c39a49aa0 100644 Binary files a/modules/document/tpl/icons/file.gif and b/modules/document/tpl/icons/file.gif differ diff --git a/modules/document/tpl/icons/image.gif b/modules/document/tpl/icons/image.gif index d26dd575c..128454cb7 100644 Binary files a/modules/document/tpl/icons/image.gif and b/modules/document/tpl/icons/image.gif differ diff --git a/modules/document/tpl/icons/movie.gif b/modules/document/tpl/icons/movie.gif index 8cb4c950f..104abed57 100644 Binary files a/modules/document/tpl/icons/movie.gif and b/modules/document/tpl/icons/movie.gif differ diff --git a/modules/document/tpl/js/document_admin.js b/modules/document/tpl/js/document_admin.js index de3f22c2b..ec123896e 100644 --- a/modules/document/tpl/js/document_admin.js +++ b/modules/document/tpl/js/document_admin.js @@ -6,4 +6,65 @@ function doCheckAll(bToggle) { if( !fo_obj[i].checked || !bToggle) fo_obj[i].checked = true; else fo_obj[i].checked = false; } } -} \ No newline at end of file +} + +/** + * @brief 모든 생성된 썸네일 삭제하는 액션 호출 + **/ +function doDeleteAllThumbnail() { + exec_xml('document','procDocumentAdminDeleteAllThumbnail',new Array(), completeDeleteAllThumbnail); +} + +function completeDeleteAllThumbnail(ret_obj) { + alert(ret_obj['message']); + location.reload(); +} + +/* 선택된 글의 삭제 또는 이동 */ +function doManageDocument(type) { + var fo_obj = xGetElementById("fo_management"); + fo_obj.type.value = type; + + procFilter(fo_obj, manage_checked_document); +} + +/* 선택된 글의 삭제 또는 이동 후 */ +function completeManageDocument(ret_obj) { + if(opener) opener.window.location.reload(); + alert(ret_obj['message']); + window.close(); +} + +/* 선택된 모듈의 카테고리 목록을 가져오는 함수 */ +function doGetCategoryFromModule(obj) { + var module_srl = obj.options[obj.selectedIndex].value; + + var params = new Array(); + params['module_srl'] = module_srl; + + var response_tags = new Array('error','message','categories'); + + exec_xml('document','getDocumentCategories',params, completeGetCategoryFromModules, response_tags); + +} + +function completeGetCategoryFromModules(ret_obj, response_tags) { + var obj = xGetElementById('target_category'); + var length = obj.options.length; + for(var i=0;isource_filename = $file_info['name']; $args->uploaded_filename = $filename; $args->download_count = $download_count; - $args->file_size = filesize($filename); + $args->file_size = @filesize($filename); $args->comment = NULL; $args->member_srl = $member_srl; $args->sid = md5(rand(rand(1111111,4444444),rand(4444445,9999999))); diff --git a/modules/file/tpl/file_list.html b/modules/file/tpl/file_list.html index e155df82f..9c2e539a0 100644 --- a/modules/file/tpl/file_list.html +++ b/modules/file/tpl/file_list.html @@ -39,8 +39,8 @@ - - + +
{$lang->no}
{$no}{htmlspecialchars($module_list[$oDocument->get('module_srl')]->browser_title)} + isCarted())-->checked="checked"/>{htmlspecialchars($module_list[$oDocument->get('module_srl')]->browser_title)} {$oDocument->getTitleText()} @@ -51,7 +58,7 @@ [{$oDocument->getTrackbackCount()}]
{$oDocument->getNickName()}
{$oDocument->getNickName()}
{$oDocument->get('readed_count')} {$oDocument->get('voted_count')} {$oDocument->getRegdate("Y-m-d")}
{$no} {$module_list[$val->module_srl]->browser_title}{htmlspecialchars($val->source_filename)}{$module_list[$val->module_srl]->browser_title}{htmlspecialchars($val->source_filename)} {$val->file_size} diff --git a/modules/install/lang/en.lang.php b/modules/install/lang/en.lang.php index e9d35a982..b6bf4c30f 100644 --- a/modules/install/lang/en.lang.php +++ b/modules/install/lang/en.lang.php @@ -162,8 +162,8 @@ EndOfLicense; $lang->admin_title = 'Administrator Info'; $lang->env_title = 'Configuration'; - $lang->use_optimizer = 'Optimizer 사용'; - $lang->about_optimizer = 'Optimizer를 사용하면 다수의 CSS/ JS파일을 통합/압축 전송하여 매우 빠르게 사이트 접속이 가능하게 합니다.
다만 CSS나 JS에 따라서 문제가 생길 수 있습니다. 이때는 Optimizer 비활성화 하시면 정상적인 동작은 가능합니다'; + $lang->use_optimizer = 'Enable Optimizer'; + $lang->about_optimizer = 'If optimizer is enabled, users can quickly access to this site, since multiple CSS / JS files are put together and compressed before transmission.
Nevertheless, this optimization might be problematic according to CSS or JS. If you disable it, it would work properly though it would work slower.'; $lang->use_rewrite = 'Use rewrite mod'; $lang->about_rewrite = "If web server provides rewrite mod, long URL such as http://blah/?document_srl=123 can be shortened like http://blah/123"; $lang->time_zone = 'Time zone'; diff --git a/modules/install/lang/zh-CN.lang.php b/modules/install/lang/zh-CN.lang.php index 200393501..84f237192 100644 --- a/modules/install/lang/zh-CN.lang.php +++ b/modules/install/lang/zh-CN.lang.php @@ -247,8 +247,8 @@ EndOfLicense; $lang->admin_title = '管理员信息'; $lang->env_title = '环境设置'; - $lang->use_optimizer = 'Optimizer 사용'; - $lang->about_optimizer = 'Optimizer를 사용하면 다수의 CSS/ JS파일을 통합/압축 전송하여 매우 빠르게 사이트 접속이 가능하게 합니다.
다만 CSS나 JS에 따라서 문제가 생길 수 있습니다. 이때는 Optimizer 비활성화 하시면 정상적인 동작은 가능합니다'; + $lang->use_optimizer = '使用Optimizer'; + $lang->about_optimizer = '使用Optimizer可以对大部分的CSS/ JS文件进行整合/压缩传送使之加快网站访问速度。
只是有时会发生小小的问题。这时候请暂时不要使用Optimizer。'; $lang->use_rewrite = '使用rewrite模块'; $lang->about_rewrite = '如服务器支持rewrite模块且选择此项,可以简化复杂的网址。
例如,http://域名/?document_srl=123简化为http://域名/123。'; $lang->time_zone = '时区'; diff --git a/modules/member/member.model.php b/modules/member/member.model.php index 0d21b9ce3..0751815bf 100644 --- a/modules/member/member.model.php +++ b/modules/member/member.model.php @@ -43,6 +43,7 @@ $member_info = $this->getMemberInfoByMemberSrl($member_srl); } $member_srl = $member_info->member_srl; + if(!$member_srl) return; // 변수 정리 $user_id = $member_info->user_id; diff --git a/modules/opage/tpl/index.html b/modules/opage/tpl/index.html index cd054f988..21074c2fc 100644 --- a/modules/opage/tpl/index.html +++ b/modules/opage/tpl/index.html @@ -26,7 +26,7 @@ - diff --git a/modules/page/tpl/index.html b/modules/page/tpl/index.html index b9d70ad4b..566778b7b 100644 --- a/modules/page/tpl/index.html +++ b/modules/page/tpl/index.html @@ -26,7 +26,7 @@ - diff --git a/modules/point/lang/en.lang.php b/modules/point/lang/en.lang.php index 2ca9ba4be..d86eed8ae 100644 --- a/modules/point/lang/en.lang.php +++ b/modules/point/lang/en.lang.php @@ -28,6 +28,7 @@ $lang->about_module_point = "You can set point for each module and modules which don't have any value will use default point.
All point will be restored on acting reverse."; + $lang->point_signup = 'Signup'; $lang->point_insert_document = 'On Writing'; $lang->point_delete_document = 'On Deleting'; $lang->point_insert_comment = 'On Adding Comments'; diff --git a/modules/point/lang/es.lang.php b/modules/point/lang/es.lang.php index b66647b53..92ad02ab5 100644 --- a/modules/point/lang/es.lang.php +++ b/modules/point/lang/es.lang.php @@ -28,6 +28,7 @@ $lang->about_module_point = "Usted puede definir los puntos para cada módulo y los módulos que no tengan ningun valor usarán punto predefinido.
Todos los puntos serán restituidos al actuar en forma contraria."; + $lang->point_signup = 'Fecha del'; $lang->point_insert_document = 'Al escribir documento'; $lang->point_delete_document = 'Al borrar documento'; $lang->point_insert_comment = 'Al agregar comentarios'; diff --git a/modules/point/lang/jp.lang.php b/modules/point/lang/jp.lang.php index d8d4aedb0..5d9820b23 100644 --- a/modules/point/lang/jp.lang.php +++ b/modules/point/lang/jp.lang.php @@ -28,6 +28,7 @@ $lang->about_module_point = 'モジュール別にポイントを指定することができますが、指定されていないモジュールでは、デフォルトポイントが使用されます。すべてのポイント数は、反対のアクションを行った際には原状復帰されます。'; + $lang->point_signup = '加入'; $lang->point_insert_document = '書き込み作成'; $lang->point_delete_document = '書き込み削除'; $lang->point_insert_comment = 'コメント作成'; diff --git a/modules/point/lang/ko.lang.php b/modules/point/lang/ko.lang.php index 1eb0c8bad..b602f8f90 100644 --- a/modules/point/lang/ko.lang.php +++ b/modules/point/lang/ko.lang.php @@ -28,6 +28,7 @@ $lang->about_module_point = '모듈별로 포인트를 지정할 수 있으며 지정되지 않은 모듈은 기본 포인트를 이용하게 됩니다
모든 점수는 반대 행동을 하였을 경우 원상복귀 됩니다.'; + $lang->point_signup = '가입'; $lang->point_insert_document = '글 작성'; $lang->point_delete_document = '글 삭제'; $lang->point_insert_comment = '댓글 작성'; diff --git a/modules/point/lang/zh-CN.lang.php b/modules/point/lang/zh-CN.lang.php index f80d3ae1b..ae482992f 100644 --- a/modules/point/lang/zh-CN.lang.php +++ b/modules/point/lang/zh-CN.lang.php @@ -28,6 +28,7 @@ $lang->about_module_point = '可以分别对各模块进行积分设置,没有被设置的模块将使用默认值。
所有积分在相反动作下恢复原始值。即:发表新帖后再删除得到的积分为0分。'; + $lang->point_signup = '注册'; $lang->point_insert_document = '发表新帖'; $lang->point_delete_document = '删除主题'; $lang->point_insert_comment = '发表评论'; diff --git a/modules/point/point.admin.controller.php b/modules/point/point.admin.controller.php index 2c0e0d312..7b41a43f0 100644 --- a/modules/point/point.admin.controller.php +++ b/modules/point/point.admin.controller.php @@ -61,13 +61,14 @@ // 변수 정리 $args = Context::getRequestVars(); + $config->signup = (int)$args->signup; $config->insert_document = (int)$args->insert_document; $config->insert_comment = (int)$args->insert_comment; $config->upload_file = (int)$args->upload_file; $config->download_file = (int)$args->download_file; foreach($args as $key => $val) { - preg_match("/^(insert_document|insert_comment|upload_file|download_file)_([0-9]+)$/", $key, $matches); + preg_match("/^(signup|insert_document|insert_comment|upload_file|download_file)_([0-9]+)$/", $key, $matches); if(!$matches[1]) continue; $name = $matches[1]; $module_srl = $matches[2]; @@ -95,6 +96,7 @@ // 변수 정리 $args = Context::getRequestVars(); + $config->signup_act = $args->signup_act; $config->insert_document_act = $args->insert_document_act; $config->delete_document_act = $args->delete_document_act; $config->insert_comment_act = $args->insert_comment_act; @@ -132,7 +134,8 @@ $config = $oModuleModel->getModuleConfig('point'); // 각 act값을 정리 - $act_list = sprintf("%s,%s,%s,%s,%s,%s,%s", + $act_list = sprintf("%s,%s,%s,%s,%s,%s,%s,%s", + $config->signup_act, $config->insert_document_act, $config->delete_document_act, $config->insert_comment_act, diff --git a/modules/point/point.admin.view.php b/modules/point/point.admin.view.php index 29cbb7c80..03949fc9b 100644 --- a/modules/point/point.admin.view.php +++ b/modules/point/point.admin.view.php @@ -60,10 +60,12 @@ **/ function dispPointAdminPointList() { $oPointModel = &getModel('point'); + $args->list_count = 20; $args->page = Context::get('page'); $output = $oPointModel->getMemberList($args); + // 템플릿에 쓰기 위해서 context::set Context::set('total_count', $output->total_count); Context::set('total_page', $output->total_page); diff --git a/modules/point/point.class.php b/modules/point/point.class.php index c0814c786..e09766a9c 100644 --- a/modules/point/point.class.php +++ b/modules/point/point.class.php @@ -43,6 +43,11 @@ /** * 모듈별 기본 점수 및 각 action 정의 (게시판,블로그외에 어떤 모듈이 생길지 모르니 act값을 명시한다 **/ + // 회원가입 + $config->signup = 10; + + $config->signup_act = 'procMemberInsert'; + // 글작성 $config->insert_document = 10; @@ -79,6 +84,12 @@ * @brief 설치가 이상이 없는지 체크하는 method **/ function checkUpdate() { + // point 모듈 정보 가져옴 + $oModuleModel = &getModel('module'); + $config = $oModuleModel->getModuleConfig('point'); + + if(!$config->signup || !$config->signup_act) return true; + return false; } @@ -86,6 +97,21 @@ * @brief 업데이트 실행 **/ function moduleUpdate() { + // point 모듈 정보 가져옴 + $oModuleModel = &getModel('module'); + $config = $oModuleModel->getModuleConfig('point'); + + if(!$config->signup || !$config->signup_act) { + $config->signup = 10; + $config->signup_act = 'procMemberInsert'; + + $oModuleController = &getController('module'); + $oModuleController->insertModuleConfig('point', $config); + + $oPointController = &getAdminController('point'); + $oPointController->cacheActList(); + } + return new Object(0, 'success_updated'); } diff --git a/modules/point/point.model.php b/modules/point/point.model.php index 12d6755ae..01f929f56 100644 --- a/modules/point/point.model.php +++ b/modules/point/point.model.php @@ -110,7 +110,7 @@ $config = $oModuleModel->getModuleConfig('point'); foreach($output->data as $key => $val) { - $output->data[$key]->level = $this->getLevel($point, $config->level_step); + $output->data[$key]->level = $this->getLevel($val->point, $config->level_step); } } diff --git a/modules/point/queries/getMemberCount.xml b/modules/point/queries/getMemberCount.xml new file mode 100644 index 000000000..e59d056e1 --- /dev/null +++ b/modules/point/queries/getMemberCount.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/modules/point/queries/getMemberList.xml b/modules/point/queries/getMemberList.xml index a03c40365..9634aabb8 100644 --- a/modules/point/queries/getMemberList.xml +++ b/modules/point/queries/getMemberList.xml @@ -21,6 +21,9 @@ + + + diff --git a/modules/point/queries/getMemberListWithinGroup.xml b/modules/point/queries/getMemberListWithinGroup.xml index f3ab2fad7..d449283c4 100644 --- a/modules/point/queries/getMemberListWithinGroup.xml +++ b/modules/point/queries/getMemberListWithinGroup.xml @@ -26,6 +26,9 @@ + + + diff --git a/modules/point/queries/getPointCount.xml b/modules/point/queries/getPointCount.xml new file mode 100644 index 000000000..d336275cf --- /dev/null +++ b/modules/point/queries/getPointCount.xml @@ -0,0 +1,8 @@ + + +
+ + + + + \ No newline at end of file diff --git a/modules/point/tpl/action_config.html b/modules/point/tpl/action_config.html index 9d571c0db..dcbb1a995 100644 --- a/modules/point/tpl/action_config.html +++ b/modules/point/tpl/action_config.html @@ -7,6 +7,10 @@
+ + + + diff --git a/modules/point/tpl/header.html b/modules/point/tpl/header.html index 175410b7b..54358016e 100644 --- a/modules/point/tpl/header.html +++ b/modules/point/tpl/header.html @@ -3,6 +3,13 @@
+ + +
+ Total {number_format($total_count)}, Page {number_format($page)}/{number_format($total_page)} +
+ +
  • class="on">{$lang->cmd_point_config}
  • class="on">{$lang->cmd_point_module_config}
  • diff --git a/modules/point/tpl/module_config.html b/modules/point/tpl/module_config.html index 0741b5f70..e398f8f7e 100644 --- a/modules/point/tpl/module_config.html +++ b/modules/point/tpl/module_config.html @@ -7,6 +7,7 @@
{$lang->point_signup}
{$lang->point_insert_document}
+ @@ -14,6 +15,7 @@ + @@ -22,6 +24,7 @@ + diff --git a/modules/poll/conf/module.xml b/modules/poll/conf/module.xml index 38ffc0de3..683c8f603 100644 --- a/modules/poll/conf/module.xml +++ b/modules/poll/conf/module.xml @@ -11,6 +11,7 @@ + diff --git a/modules/poll/lang/en.lang.php b/modules/poll/lang/en.lang.php index 4ed199b3c..3e4d13a26 100644 --- a/modules/poll/lang/en.lang.php +++ b/modules/poll/lang/en.lang.php @@ -13,6 +13,7 @@ $lang->cmd_poll_list = 'View poll list'; $lang->cmd_delete_checked_poll = 'Delete selected poll'; $lang->cmd_apply_poll = 'Apply poll'; + $lang->cmd_view_result = 'Preview result'; $lang->cmd_delete_checked_poll = 'Delete selected poll'; $lang->success_poll = 'Thank you for joining the poll.'; diff --git a/modules/poll/lang/es.lang.php b/modules/poll/lang/es.lang.php index 92a082ef6..e640e76ff 100644 --- a/modules/poll/lang/es.lang.php +++ b/modules/poll/lang/es.lang.php @@ -13,6 +13,7 @@ $lang->cmd_poll_list = 'Ver la lista de la encuesta'; $lang->cmd_delete_checked_poll = 'Eliminar la encuesta seleccionada'; $lang->cmd_apply_poll = 'Aplicar la encuesta'; + $lang->cmd_view_result = 'Preview result'; $lang->cmd_delete_checked_poll = 'Eliminar la encuesta seleccionada'; $lang->success_poll = 'Gracias por participar en la encuesta.'; diff --git a/modules/poll/lang/jp.lang.php b/modules/poll/lang/jp.lang.php index a4c4aa0d9..cf5798b21 100644 --- a/modules/poll/lang/jp.lang.php +++ b/modules/poll/lang/jp.lang.php @@ -13,6 +13,7 @@ $lang->cmd_poll_list = 'アンケートのリスト表示'; $lang->cmd_delete_checked_poll = '選択項目削除'; $lang->cmd_apply_poll = 'アンケート調査へ参加する'; + $lang->cmd_view_result = 'Preview result'; $lang->cmd_delete_checked_poll = '選択アンケート削除'; $lang->success_poll = 'アンケート調査へのご応募ありがとうございます。'; diff --git a/modules/poll/lang/ko.lang.php b/modules/poll/lang/ko.lang.php index f39c3f6c4..fd579635c 100644 --- a/modules/poll/lang/ko.lang.php +++ b/modules/poll/lang/ko.lang.php @@ -13,6 +13,7 @@ $lang->cmd_poll_list = '설문조사 목록 보기'; $lang->cmd_delete_checked_poll = '선택항목 삭제'; $lang->cmd_apply_poll = '설문 참여'; + $lang->cmd_view_result = '결과 보기'; $lang->cmd_delete_checked_poll = '선택 설문 삭제'; $lang->success_poll = '설문에 응하여 주셔서 감사합니다'; diff --git a/modules/poll/lang/zh-CN.lang.php b/modules/poll/lang/zh-CN.lang.php index eb99a2826..ae2bc1319 100644 --- a/modules/poll/lang/zh-CN.lang.php +++ b/modules/poll/lang/zh-CN.lang.php @@ -13,6 +13,7 @@ $lang->cmd_poll_list = '查看目录'; $lang->cmd_delete_checked_poll = '删除所选项目'; $lang->cmd_apply_poll = '参与投票'; + $lang->cmd_view_result = 'Preview result'; $lang->cmd_delete_checked_poll = '删除所选'; $lang->success_poll = '感谢您参与投票。'; diff --git a/modules/poll/poll.controller.php b/modules/poll/poll.controller.php index 0ae6f62a6..204d0d539 100644 --- a/modules/poll/poll.controller.php +++ b/modules/poll/poll.controller.php @@ -190,5 +190,18 @@ $this->add('tpl',$tpl); $this->setMessage('success_poll'); } + + /** + * @brief 결과 미리 보기 + **/ + function procPollViewResult() { + $poll_srl = Context::get('poll_srl'); + + $oPollModel = &getModel('poll'); + $tpl = $oPollModel->getPollResultHtml($poll_srl); + + $this->add('poll_srl', $poll_srl); + $this->add('tpl',$tpl); + } } ?> diff --git a/modules/poll/poll.model.php b/modules/poll/poll.model.php index 582f9f465..0f137e9ab 100644 --- a/modules/poll/poll.model.php +++ b/modules/poll/poll.model.php @@ -84,6 +84,51 @@ return $oTemplate->compile($tpl_path, $tpl_file); } + /** + * @brief 결과 html을 return + **/ + function getPollResultHtml($poll_srl) { + $args->poll_srl = $poll_srl; + + // 해당 설문조사에 대한 내용을 조사 + $output = executeQuery('poll.getPoll', $args); + if(!$output->data) return ''; + + $poll->style = $style; + $poll->poll_count = (int)$output->data->poll_count; + $poll->stop_date = $output->data->stop_date; + + $output = executeQuery('poll.getPollTitle', $args); + if(!$output->data) return; + if(!is_array($output->data)) $output->data = array($output->data); + foreach($output->data as $key => $val) { + $poll->poll[$val->poll_index_srl]->title = $val->title; + $poll->poll[$val->poll_index_srl]->checkcount = $val->checkcount; + $poll->poll[$val->poll_index_srl]->poll_count = $val->poll_count; + } + + $output = executeQuery('poll.getPollItem', $args); + foreach($output->data as $key => $val) { + $poll->poll[$val->poll_index_srl]->item[] = $val; + } + + $poll->poll_srl = $poll_srl; + + $tpl_file = "result"; + + Context::set('poll',$poll); + + // 기본 설정의 스킨, 컬러셋 설정 + $oModuleModel = &getModel('module'); + $poll_config = $oModuleModel->getModuleConfig('poll'); + if(!$poll_config->skin) $poll_config->skin = 'default'; + Context::set('poll_config', $poll_config); + $tpl_path = sprintf("%sskins/%s/", $this->module_path, $poll_config->skin); + + $oTemplate = &TemplateHandler::getInstance(); + return $oTemplate->compile($tpl_path, $tpl_file); + } + /** * @brief 선택된 설문조사 - 스킨의 컬러셋을 return **/ diff --git a/modules/poll/queries/getPollLog.xml b/modules/poll/queries/getPollLog.xml index 3cdd945b0..5e1344278 100644 --- a/modules/poll/queries/getPollLog.xml +++ b/modules/poll/queries/getPollLog.xml @@ -7,7 +7,9 @@ - - + + + + diff --git a/modules/poll/skins/default/form.html b/modules/poll/skins/default/form.html index 4cdc7e7bf..afdd700ce 100644 --- a/modules/poll/skins/default/form.html +++ b/modules/poll/skins/default/form.html @@ -64,7 +64,12 @@ - + diff --git a/modules/poll/skins/default/js/poll.js b/modules/poll/skins/default/js/poll.js index e497eee65..5bfc05e45 100644 --- a/modules/poll/skins/default/js/poll.js +++ b/modules/poll/skins/default/js/poll.js @@ -27,7 +27,7 @@ function doPoll(fo_obj) { for(var poll_srl_index in checkcount) { var count = checkcount[poll_srl_index]; var items = item[poll_srl_index]; - if(count > items.length) { + if(items.length < 1 || count < items.length) { alert(poll_alert_lang); return false; } @@ -42,10 +42,19 @@ function doPoll(fo_obj) { /* 설문 조사후 내용을 바꿀 함수 */ function completePoll(ret_obj) { - alert(ret_obj['message']); var poll_srl = ret_obj['poll_srl']; var tpl = ret_obj['tpl']; var width = xWidth("poll_"+poll_srl); xInnerHtml("poll_"+poll_srl, tpl); xWidth("poll_"+poll_srl, width); } + +/* 설문 미리 보기 */ +function doPollViewResult(poll_srl) { + var params = new Array(); + params['poll_srl'] = poll_srl; + + var response_tags = new Array('error','message','poll_srl', 'tpl'); + + exec_xml('poll','procPollViewResult', params, completePoll, response_tags); +} diff --git a/widgets/counter_status/conf/info.xml b/widgets/counter_status/conf/info.xml index 02c13795f..bb75a6d9a 100644 --- a/widgets/counter_status/conf/info.xml +++ b/widgets/counter_status/conf/info.xml @@ -2,14 +2,14 @@ 기본 카운터 위젯 接続カウンター - Basic Counter Widget - Widget de Contador Básico + Basic Counter Widget + Widget de Contador Básico 计数器 제로 Zero - zero - zero + zero + zero zero 기본 카운터 모듈을 이용하여 전체, 어제, 오늘의 접속현황을 표시합니다. @@ -22,8 +22,8 @@ This widget displays the number of people who have visited yesterday and today by using the basic counter module. 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. - - + + 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. diff --git a/widgets/newest_document/conf/info.xml b/widgets/newest_document/conf/info.xml index 0afd83701..dc9d3ed14 100644 --- a/widgets/newest_document/conf/info.xml +++ b/widgets/newest_document/conf/info.xml @@ -104,9 +104,11 @@ new 표시 시간 (hours) + new图标显示时间(hours) Duration of indication for new item text 새로 등록된 게시물의 new 표시시간을 정할 수 있습니다. (시간 단위) + 可以设置最新更新主题的new图标显示时间。 You may set the duration of indication for fresh item. (unit is hour) diff --git a/widgets/newest_document/skins/xe_official/skin.xml b/widgets/newest_document/skins/xe_official/skin.xml index 2fce8df16..ffa0ee8ef 100644 --- a/widgets/newest_document/skins/xe_official/skin.xml +++ b/widgets/newest_document/skins/xe_official/skin.xml @@ -3,10 +3,13 @@ XE 공식 레이아웃용 최신글 스킨 XEデフォルトレイアウト用の最新コンテンツ表示スキン XE 官方网站主题列表 + XE Official Layout's newest document skin + 제로 - Zero + zero zero + zero XE 공식 레이아웃에 적합한 최신글 스킨입니다. 디자인 : 이소라 (http://ra-ra.pe.kr) @@ -25,17 +28,24 @@ HTML/CSS : Chan-Myung Jeong(http://naradesign.net) 布局: zero (http://blog.nzeo.com) + + It is a skin suitable for the XE official layout. + Design : So-Ra Lee (http://ra-ra-.pe.kr) + HTML/CSS : Chan-Myung Jeong(http://naradesign.net) + Layout : zero (http://blog.nzeo.com) 흰색 바탕용 白い背景 白色背景 + White Background 어두운 바탕용 暗い背景 暗色背景 + Dark Background diff --git a/widgets/newest_images/conf/info.xml b/widgets/newest_images/conf/info.xml index f31ef65a2..79bc1f997 100644 --- a/widgets/newest_images/conf/info.xml +++ b/widgets/newest_images/conf/info.xml @@ -57,6 +57,19 @@ It cuts the length of subject and displays (10 letters as default). Muestra el título con el número de letras asignadas (predefinio: 10). + + 썸네일 생성 방법 + 썸네일 생성 방법을 선택할 수 있습니다. (crop : 꽉 채우기, ratio : 비율 맞추기) + select + + Crop (채우기) + crop + + + Ratio (비율 맞추기) + ratio + + 이미지 가로크기 イメージ横幅 @@ -70,6 +83,11 @@ You can set the width of image. (100 as default) Usted puede definir el ancho de la imagen. (predefinido:100) + + 이미지 세로크기 + 이미지의 세로 크기를 지정할 수 있습니다. (기본 100px) + text + 가로 이미지 수 イメージ数 @@ -181,12 +199,12 @@ Y - 표시하지 않음 - 不显示 - Hide - Ocultar + 표시하지 않음 + 不显示 + Hide + Ocultar N - - + + diff --git a/widgets/newest_images/newest_images.class.php b/widgets/newest_images/newest_images.class.php index d35cc2be2..9860ae000 100644 --- a/widgets/newest_images/newest_images.class.php +++ b/widgets/newest_images/newest_images.class.php @@ -19,10 +19,18 @@ $widget_info->title_length = (int)$args->title_length; if(!$widget_info->title_length) $widget_info->title_length = 10; + // 썸네일 생성 방법 + $widget_info->thumbnail_type = $args->thumbnail_type; + if(!$widget_info->thumbnail_type) $widget_info->thumbnail_type = 'crop'; + // 썸네일 가로 크기 $widget_info->thumbnail_width = (int)$args->thumbnail_width; if(!$widget_info->thumbnail_width) $widget_info->thumbnail_width = 100; + // 썸네일 세로 크기 + $widget_info->thumbnail_height = (int)$args->thumbnail_height; + if(!$widget_info->thumbnail_height) $widget_info->thumbnail_height = 100; + // 세로 이미지 수 $widget_info->rows_list_count = (int)$args->rows_list_count; if(!$widget_info->rows_list_count) $widget_info->rows_list_count = 1; diff --git a/widgets/newest_images/skins/default/list.html b/widgets/newest_images/skins/default/list.html index 662b09849..8b36d8ac1 100644 --- a/widgets/newest_images/skins/default/list.html +++ b/widgets/newest_images/skins/default/list.html @@ -23,7 +23,7 @@ {@ $oDocument = $widget_info->document_list[$i*$widget_info->cols_list_count + $j]}
 {$lang->point_signup} {$lang->point_insert_document} {$lang->point_insert_comment} {$lang->point_upload_file}
{$lang->is_default} {$config->point_name} {$config->point_name} {$config->point_name} {$config->point_name}
{$val->browser_title} ({$val->mid}) {$config->point_name} {$config->point_name} {$config->point_name} {$config->point_name}blank
+
+ + +
+
lbrows_list_count>1)-->class="bottomBorder"> -
+
{$oDocument->getTitleText($widget_info->title_length)} diff --git a/widgets/newest_images/skins/xe_official/list.html b/widgets/newest_images/skins/xe_official/list.html index 8b7732177..a7b7d15a5 100644 --- a/widgets/newest_images/skins/xe_official/list.html +++ b/widgets/newest_images/skins/xe_official/list.html @@ -19,7 +19,7 @@ {@ $oDocument = $widget_info->document_list[$i*$widget_info->cols_list_count + $j]}
rows_list_count>1)-->class="bottomBorder"> -
+