위젯 검출 정규 표현식을 수정

git-svn-id: http://xe-core.googlecode.com/svn/sandbox@2892 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
zero 2007-11-01 10:28:42 +00:00
parent f9896fe51a
commit 90aa62a6ac
993 changed files with 9190 additions and 10457 deletions

View file

@ -136,13 +136,15 @@
}
// serialize하여 저장
$obj->category_xml_file = sprintf("./files/cache/blog_category/%s.xml.php", $module_srl);
$oDocumentModel = &getModel('document');
$obj->category_xml_file = $oDocumentModel->getCategoryXmlFile($module_srl);
$obj->mid = $module_info->mid;
$skin_vars = serialize($obj);
$oModuleController->updateModuleSkinVars($module_srl, $skin_vars);
// 레이아웃 확장변수 수정
$layout_args->mid = $obj->mid;
$layout_args->extra_vars = $skin_vars;
$layout_args->layout_srl = $module_srl;
$oLayoutAdminController = &getAdminController('layout');
@ -163,7 +165,7 @@
**/
function procBlogAdminInsertBlog() {
// 일단 입력된 값들을 모두 받아서 db 입력항목과 그외 것으로 분리
$args = Context::gets('module_srl','module_category_srl','blog_name','skin','browser_title','description','is_default','header_text','footer_text','admin_id','open_rss');
$args = Context::gets('module_srl','module_category_srl','blog_name','skin','browser_title','description','is_default','header_text','footer_text','admin_id');
$args->module = 'blog';
$args->mid = $args->blog_name;
unset($args->blog_name);
@ -175,6 +177,19 @@
unset($extra_var->page);
unset($extra_var->blog_name);
// 확장변수(20개로 제한된 고정 변수) 체크
$user_defined_extra_vars = array();
foreach($extra_var as $key => $val) {
if(substr($key,0,11)!='extra_vars_') continue;
preg_match('/^extra_vars_([0-9]+)_(.*)$/i', $key, $matches);
if(!$matches[1] || !$matches[2]) continue;
$user_defined_extra_vars[$matches[1]]->{$matches[2]} = $val;
unset($extra_var->{$key});
}
for($i=1;$i<=20;$i++) if(!$user_defined_extra_vars[$i]->name) unset($user_defined_extra_vars[$i]);
$extra_var->extra_vars = $user_defined_extra_vars;
$oDB = &DB::getInstance();
$oDB->begin();
@ -235,9 +250,9 @@
}
// 기본 카테고리 등록
$category_args->module_srl = $module_srl;
$category_args->module_srl = $args->module_srl;
$category_args->category_srl = getNextSequence();
$category_args->name = 'Story';
$category_args->title = 'Story';
$category_args->expand = 'N';
$this->procBlogAdminInsertCategory($category_args);
@ -251,6 +266,7 @@
}
// 레이아웃 수정
$layout_args->mid = $args->mid;
$layout_args->layout_srl = $layout_args->module_srl = $module_srl = $output->get('module_srl');
$layout_args->title = $args->browser_title;
$layout_args->layout_path = sprintf('./modules/blog/skins/%s/layout.html', $args->skin);
@ -272,6 +288,58 @@
$this->setMessage($msg_code);
}
/**
* @brief 카테고리 추가
**/
function procBlogAdminInsertCategory($args = null) {
// 입력할 변수 정리
if(!$args) $args = Context::gets('module_srl','category_srl','parent_srl','title','expand','group_srls');
if($args->expand !="Y") $args->expand = "N";
$args->group_srls = str_replace('|@|',',',$args->group_srls);
$args->parent_srl = (int)$args->parent_srl;
$oDocumentController = &getController('document');
$oDocumentModel = &getModel('document');
$oDB = &DB::getInstance();
$oDB->begin();
// 이미 존재하는지를 확인
if($args->category_srl) {
$category_info = $oDocumentModel->getCategory($args->category_srl);
if($category_info->category_srl != $args->category_srl) $args->category_srl = null;
}
// 존재하게 되면 update를 해준다
if($args->category_srl) {
$output = $oDocumentController->updateCategory($args);
if(!$output->toBool()) {
$oDB->rollback();
return $output;
}
// 존재하지 않으면 insert를 해준다
} else {
$output = $oDocumentController->insertCategory($args);
if(!$output->toBool()) {
$oDB->rollback();
return $output;
}
}
// XML 파일을 갱신하고 위치을 넘겨 받음
$xml_file = $oDocumentController->makeCategoryXmlFile($args->module_srl);
$oDB->commit();
$this->add('xml_file', $xml_file);
$this->add('module_srl', $args->module_srl);
$this->add('category_srl', $args->category_srl);
$this->add('parent_srl', $args->parent_srl);
}
/**
* @brief 블로그 삭제
**/
@ -291,7 +359,6 @@
// 레이아웃 삭제
$layout_args->layout_srl = $layout_args->module_srl = $module_srl;
$oLayoutAdminController = &getAdminController('layout');
$output = $oLayoutAdminController->deleteLayout($layout_args);
if(!$output->toBool()) {
@ -299,15 +366,6 @@
return $output;
}
// 블로그 카테고리 삭제
$category_args->module_srl = $module_srl;
$output = executeQuery('blog.deleteCategories', $category_args);
if(!$output->toBool()) {
$oDB->rollback();
return $output;
}
@unlink( sprintf('./files/cache/blog_category/%d.xml.php', $module_srl) );
$oDB->commit();
$this->add('module','blog');
@ -315,69 +373,6 @@
$this->setMessage('success_deleted');
}
/**
* @brief 카테고리 추가
**/
function procBlogAdminInsertCategory($args = null) {
// 입력할 변수 정리
if(!$args) $args = Context::gets('module_srl','category_srl','parent_srl','name','expand','group_srls');
if($args->expand !="Y") $args->expand = "N";
$args->group_srls = str_replace('|@|',',',$args->group_srls);
$args->parent_srl = (int)$args->parent_srl;
$oDB = &DB::getInstance();
$oDB->begin();
// 이미 존재하는지를 확인
$oBlogModel = &getModel('blog');
$category_info = $oBlogModel->getCategoryInfo($args->category_srl);
// 존재하게 되면 update를 해준다
if($category_info->category_srl == $args->category_srl) {
$output = executeQuery('blog.updateCategory', $args);
if(!$output->toBool()) {
$oDB->rollback();
return $output;
}
$oDocumentController = &getAdminController('document');
$document_args->category_srl = $args->category_srl;
$document_args->title = $args->name ;
$output = $oDocumentController->updateCategory($document_args);
if(!$output->toBool()) {
$oDB->rollback();
return $output;
}
// 존재하지 않으면 insert를 해준다
} else {
$args->listorder = -1*$args->category_srl;
$output = executeQuery('blog.insertCategory', $args);
if(!$output->toBool()) {
$oDB->rollback();
return $output;
}
$oDocumentController = &getAdminController('document');
$output = $oDocumentController->insertCategory($args->module_srl, $args->name, $args->category_srl);
if(!$output->toBool()) {
$oDB->rollback();
return $output;
}
}
// XML 파일을 갱신하고 위치을 넘겨 받음
$xml_file = $this->makeXmlFile($args->module_srl);
$oDB->commit();
$this->add('xml_file', $xml_file);
$this->add('module_srl', $args->module_srl);
$this->add('category_srl', $args->category_srl);
$this->add('parent_srl', $args->parent_srl);
}
/**
* @brief 카테고리 삭제
**/
@ -388,32 +383,17 @@
$oDB = &DB::getInstance();
$oDB->begin();
$oBlogModel = &getModel('blog');
$oDocumentModel = &getModel('document');
// 원정보를 가져옴
$category_info = $oBlogModel->getCategoryInfo($args->category_srl);
$category_info = $oDocumentModel->getCategory($args->category_srl);
if($category_info->parent_srl) $parent_srl = $category_info->parent_srl;
// 자식 노드가 있는지 체크하여 있으면 삭제 못한다는 에러 출력
$output = executeQuery('blog.getChildCategoryCount', $args);
if(!$output->toBool()) {
$oDB->rollback();
return $output;
}
if($output->data->count>0) {
$oDB->rollback();
return new Object(-1, 'msg_cannot_delete_for_child');
}
if($oDocumentModel->getCategoryChlidCount($args->category_srl)) return new Object(-1, 'msg_cannot_delete_for_child');
// DB에서 삭제
$output = executeQuery("blog.deleteCategory", $args);
if(!$output->toBool()) {
$oDB->rollback();
return $output;
}
$oDocumentController = &getAdminController('document');
$oDocumentController = &getController('document');
$output = $oDocumentController->deleteCategory($args->category_srl);
if(!$output->toBool()) {
$oDB->rollback();
@ -421,7 +401,7 @@
}
// XML 파일을 갱신하고 위치을 넘겨 받음
$xml_file = $this->makeXmlFile($args->module_srl);
$xml_file = $oDocumentController->makeCategoryXmlFile($args->module_srl);
$oDB->commit();
@ -437,26 +417,28 @@
$source_category_srl = Context::get('source_category_srl');
$target_category_srl = Context::get('target_category_srl');
$oBlogModel = &getModel('blog');
$target_category = $oBlogModel->getCategoryInfo($target_category_srl);
$source_category = $oBlogModel->getCategoryInfo($source_category_srl);
$oDocumentModel = &getModel('document');
$oDocumentController = &getController('document');
$target_category = $oDocumentModel->getCategory($target_category_srl);
$source_category = $oDocumentModel->getCategory($source_category_srl);
// source_category에 target_category_srl의 parent_srl, listorder 값을 입력
$source_args->category_srl = $source_category_srl;
$source_args->parent_srl = $target_category->parent_srl;
$source_args->listorder = $target_category->listorder;
$output = executeQuery('blog.updateCategoryParent', $source_args);
$output = $oDocumentController->updateCategory($source_args);
if(!$output->toBool()) return $output;
// target_category의 listorder값을 +1해 준다
$target_args->category_srl = $target_category_srl;
$target_args->parent_srl = $target_category->parent_srl;
$target_args->listorder = $target_category->listorder -1;
$output = executeQuery('blog.updateCategoryParent', $target_args);
$output = $oDocumentController->updateCategory($target_args);
if(!$output->toBool()) return $output;
// xml파일 재생성
$xml_file = $this->makeXmlFile($target_category->module_srl);
$xml_file = $oDocumentController->makeCategoryXmlFile($source_category->module_srl);
// return 변수 설정
$this->add('xml_file', $xml_file);
@ -474,104 +456,11 @@
$module_srl = Context::get('module_srl');
// xml파일 재생성
$xml_file = $this->makeXmlFile($module_srl);
$oDocumentController = &getController('document');
$xml_file = $oDocumentController->makeCategoryXmlFile($module_srl);
// return 값 설정
$this->add('xml_file',$xml_file);
}
/**
* @brief 블로그 카테고리를 xml파일로 저장
**/
function makeXmlFile($module_srl) {
// xml파일 생성시 필요한 정보가 없으면 그냥 return
if(!$module_srl) return;
// 캐시 파일의 이름을 지정
$xml_file = sprintf("./files/cache/blog_category/%s.xml.php", $module_srl);
// 모듈정보를 구해옴
$oModuleModel = &getModel('module');
$this->module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
// DB에서 module_srl 에 해당하는 메뉴 아이템 목록을 listorder순으로 구해옴
$oBlogModel = &getModel('blog');
$list = $oBlogModel->getCategoryList($module_srl);
// 구해온 데이터가 없다면 노드데이터가 없는 xml 파일만 생성
if(!$list) {
$xml_buff = "<root />";
FileHandler::writeFile($xml_file, $xml_buff);
return $xml_file;
}
// 구해온 데이터가 하나라면 array로 바꾸어줌
if(!is_array($list)) $list = array($list);
// 루프를 돌면서 tree 구성
$list_count = count($list);
for($i=0;$i<$list_count;$i++) {
$node = $list[$i];
$category_srl = $node->category_srl;
$parent_srl = $node->parent_srl;
$tree[$parent_srl][$category_srl] = $node;
}
// 세션 디렉토리 변경 구문
$php_script = "";
if(!ini_get('session.auto_start')) {
if(!is_dir("./files/sessions")) {
FileHandler::makeDir("./files/sessions");
@chmod("./files/sessions", 0777);
}
$php_script = 'session_cache_limiter("no-cache, must-revalidate"); ini_set("session.gc_maxlifetime", "18000"); if(is_dir("../../sessions")) session_save_path("../../sessions/"); session_start();';
}
// xml 캐시 파일 생성
$xml_buff = sprintf('<?php %s header("Content-Type: text/xml; charset=UTF-8"); header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); @session_start(); ?><root>%s</root>', $php_script, $this->getXmlTree($tree[0], $tree));
// 파일 저장
FileHandler::writeFile($xml_file, $xml_buff);
return $xml_file;
}
/**
* @brief array로 정렬된 노드들을 parent_srl을 참조하면서 recursive하게 돌면서 xml 데이터 생성
* 메뉴 xml파일은 node라는 tag가 중첩으로 사용되며 xml doc으로 관리자 페이지에서 메뉴를 구성해줌\n
* (tree_menu.js 에서 xml파일을 바로 읽고 tree menu를 구현)
**/
function getXmlTree($source_node, $tree) {
if(!$source_node) return;
foreach($source_node as $category_srl => $node) {
$child_buff = "";
// 자식 노드의 데이터 가져옴
if($category_srl && $tree[$category_srl]) $child_buff = $this->getXmlTree($tree[$category_srl], $tree);
// 변수 정리
$name = str_replace(array('&','"','<','>'),array('&amp;','&quot;','&lt;','&gt;'),$node->name);
$expand = $node->expand;
$group_srls = $node->group_srls;
// node->group_srls값이 있으면
if($group_srls) $group_check_code = sprintf('($_SESSION["is_admin"]==true||(is_array($_SESSION["group_srls"])&&count(array_intersect($_SESSION["group_srls"], array(%s)))))',$group_srls);
else $group_check_code = "true";
$attribute = sprintf(
'node_srl="%s" text="<?=(%s?"%s":"")?>" url="%s" expand="%s" ',
$category_srl,
$group_check_code,
$name,
getUrl('','mid',$this->module_info->mid,'category',$category_srl),
$expand
);
if($child_buff) $buff .= sprintf('<node %s>%s</node>', $attribute, $child_buff);
else $buff .= sprintf('<node %s />', $attribute);
}
return $buff;
}
}
?>

View file

@ -28,22 +28,22 @@
$group_list = $oMemberModel->getGroups();
Context::set('group_list', $group_list);
$oBlogModel = &getModel('blog');
$oDocumentModel = &getModel('document');
// parent_srl이 있고 category_srl 이 없으면 하부 메뉴 추가임
if(!$category_srl && $parent_srl) {
// 상위 메뉴의 정보를 가져옴
$parent_info = $oBlogModel->getCategoryInfo($parent_srl);
$parent_info = $oDocumentModel->getCategory($parent_srl);
// 추가하려는 메뉴의 기본 변수 설정
$category_info->category_srl = getNextSequence();
$category_info->parent_srl = $parent_srl;
$category_info->parent_category_name = $parent_info->name;
$category_info->parent_category_title = $parent_info->title;
// root에 메뉴 추가하거나 기존 메뉴의 수정일 경우
} else {
// category_srl 이 있으면 해당 메뉴의 정보를 가져온다
if($category_srl) $category_info = $oBlogModel->getCategoryInfo($category_srl);
if($category_srl) $category_info = $oDocumentModel->getCategory($category_srl);
// 찾아진 값이 없다면 신규 메뉴 추가로 보고 category_srl값만 구해줌
if(!$category_info->category_srl) {

View file

@ -111,6 +111,24 @@
$this->setTemplateFile('blog_insert');
}
/**
* @brief 블로그 추가 설정 보여줌
* 추가설정은 서비스형 모듈들에서 다른 모듈과의 연계를 위해서 설정하는 페이지임
**/
function dispBlogAdminBlogAdditionSetup() {
// content는 다른 모듈에서 call by reference로 받아오기에 미리 변수 선언만 해 놓음
$content = '';
// 추가 설정을 위한 트리거 호출
// 블로그 모듈이지만 차후 다른 모듈에서의 사용도 고려하여 trigger 이름을 공용으로 사용할 수 있도록 하였음
$output = ModuleHandler::triggerCall('module.dispAdditionSetup', 'before', $content);
$output = ModuleHandler::triggerCall('module.dispAdditionSetup', 'after', $content);
Context::set('setup_content', $content);
// 템플릿 파일 지정
$this->setTemplateFile('addition_setup');
}
/**
* @brief 블로그 삭제 화면 출력
**/
@ -177,10 +195,10 @@
$module_srl = $this->module_info->module_srl;
// 카테고리 정보를 가져옴
$oBlogModel = &getModel('blog');
$category_info = $oBlogModel->getCategory($module_srl);
$oDocumentModel = &getModel('document');
$category_xml_file = $oDocumentModel->getCategoryXmlFile($module_srl);
Context::set('category_info', $category_info);
Context::set('category_xml_file', $category_xml_file);
Context::addJsFile('./common/js/tree_menu.js');
Context::set('layout','none');

View file

@ -21,6 +21,7 @@
$oModuleController = &getController('module');
$oModuleController->insertActionForward('blog', 'view', 'dispBlogAdminContent');
$oModuleController->insertActionForward('blog', 'view', 'dispBlogAdminBlogInfo');
$oModuleController->insertActionForward('blog', 'view', 'dispBlogAdminBlogAdditionSetup');
$oModuleController->insertActionForward('blog', 'view', 'dispBlogAdminInsertBlog');
$oModuleController->insertActionForward('blog', 'view', 'dispBlogAdminDeleteBlog');
$oModuleController->insertActionForward('blog', 'view', 'dispBlogAdminSkinInfo');
@ -29,9 +30,6 @@
$oModuleController->insertActionForward('blog', 'view', 'dispBlogAdminGrantInfo');
$oModuleController->insertActionForward('blog', 'controller', 'procBlogAdminUpdateSkinInfo');
// 캐쉬로 사용할 디렉토리 생성
FileHandler::makeDir('./files/cache/blog_category');
return new Object();
}
@ -39,6 +37,13 @@
* @brief 설치가 이상이 없는지 체크하는 method
**/
function checkUpdate() {
$oModuleModel = &getModel('module');
/**
* 2007. 10. 17 : 게시판 모듈설정에 추가 설정 액션 설정
**/
if(!$oModuleModel->getActionForward('dispBlogAdminBlogAdditionSetup')) return true;
return false;
}
@ -46,7 +51,16 @@
* @brief 업데이트 실행
**/
function moduleUpdate() {
return new Object();
$oModuleModel = &getModel('module');
$oModuleController = &getController('module');
/**
* 2007. 10. 17 : 게시판 모듈설정에 추가 설정 액션 설정
**/
if(!$oModuleModel->getActionForward('dispBlogAdminBlogAdditionSetup'))
$oModuleController->insertActionForward('blog', 'view', 'dispBlogAdminBlogAdditionSetup');
return new Object(0, 'success_updated');
}
/**
@ -54,10 +68,10 @@
**/
function recompileCache() {
// 블로그 모듈의 캐시 파일 모두 삭제
FileHandler::removeFilesInDir("./files/cache/blog_category");
FileHandler::removeDir("./files/cache/blog_category");
$oModuleModel = &getModel('module');
$oBlogAdminController = &getAdminController('blog');
$oDocumentController = &getController('document');
// 블로그 모듈 목록을 모두 구함
$args->module = 'blog';
@ -68,7 +82,7 @@
// 블로그 모듈에서 사용되는 모든 메뉴 목록을 재 생성
foreach($list as $blog_item) {
$module_srl = $blog_item->module_srl;
$oBlogAdminController->makeXmlFile($module_srl);
$oDocumentController->makeCategoryXmlFile($module_srl);
}
}

View file

@ -96,7 +96,7 @@
if(!$this->grant->write_comment) return new Object(-1, 'msg_not_permitted');
// 댓글 입력에 필요한 데이터 추출
$obj = Context::gets('document_srl','comment_srl','parent_srl','content','password','nick_name','nick_name','member_srl','email_address','homepage');
$obj = Context::gets('document_srl','comment_srl','parent_srl','content','password','nick_name','nick_name','member_srl','email_address','homepage','is_secret','notify_message');
$obj->module_srl = $this->module_srl;
// comment 모듈의 model 객체 생성
@ -188,6 +188,7 @@
function procBlogVerificationPassword() {
// 비밀번호와 문서 번호를 받음
$password = md5(Context::get('password'));
$document_srl = Context::get('document_srl');
$comment_srl = Context::get('comment_srl');
@ -195,27 +196,23 @@
if($comment_srl) {
// 문서번호에 해당하는 글이 있는지 확인
$oCommentModel = &getModel('comment');
$data = $oCommentModel->getComment($comment_srl);
// comment_srl이 없으면 문서가 대상
$oComment = $oCommentModel->getComment($comment_srl);
if(!$oComment->isExists()) return new Object(-1, 'msg_invalid_request');
// 문서의 비밀번호와 입력한 비밀번호의 비교
if($oComment->get('password') != $password) return new Object(-1, 'msg_invalid_password');
$oComment->setGrant();
} else {
// 문서번호에 해당하는 글이 있는지 확인
$oDocumentModel = &getModel('document');
$data = $oDocumentModel->getDocument($document_srl);
}
$oDocument = $oDocumentModel->getDocument($document_srl);
if(!$oDocument->isExists()) return new Object(-1, 'msg_invalid_request');
// 글이 없을 경우 에러
if(!$data) return new Object(-1, 'msg_invalid_request');
// 문서의 비밀번호와 입력한 비밀번호의 비교
if($oDocument->get('password') != $password) return new Object(-1, 'msg_invalid_password');
// 문서의 비밀번호와 입력한 비밀번호의 비교
if($data->password != $password) return new Object(-1, 'msg_invalid_password');
// 해당 글에 대한 권한 부여
if($comment_srl) {
$oCommentController = &getController('comment');
$oCommentController->addGrant($comment_srl);
} else {
$oDocumentController = &getController('document');
$oDocumentController->addGrant($document_srl);
$oDocument->setGrant();
}
}

View file

@ -13,41 +13,5 @@
**/
function init() {
}
/**
* @brief DB 생성된 카테고리 정보를 구함
* 생성된 메뉴의 DB정보+XML정보를 return
**/
function getCategory($module_srl) {
$category_info->xml_file = sprintf('./files/cache/blog_category/%s.xml.php',$module_srl);
return $category_info;
}
/**
* @brief 특정 모듈의 전체 카테고리를 구함
**/
function getCategoryList($module_srl) {
$args->module_srl = $module_srl;
$args->sort_index = 'listorder';
$output = executeQuery('blog.getBlogCategories', $args);
if(!$output->toBool()) return;
return $output->data;
}
/**
* @brief 특정 카테고리의 정보를 return
* 정보중에 group_srls의 경우는 , 연결되어 들어가며 사용시에는 explode를 통해 array로 변환 시킴
**/
function getCategoryInfo($category_srl) {
if(!$category_srl) return;
// category_srl이 있으면 해당 메뉴의 정보를 가져온다
$args->category_srl= $category_srl;
$output = executeQuery('blog.getCategoryInfo', $args);
$node = $output->data;
if($node->group_srls) $node->group_srls = explode(',',$node->group_srls);
else $node->group_srls = array();
return $node;
}
}
?>

View file

@ -29,9 +29,6 @@
$template_path = sprintf("%sskins/%s/",$this->module_path, $this->module_info->skin);
$this->setTemplatePath($template_path);
// rss url
if($this->module_info->open_rss != 'N') Context::set('rss_url', getUrl('','mid',$this->mid,'act','rss'));
// 레이아웃의 정보를 속이기 위해서 layout_srl을 현 블로그의 module_srl로 입력
$this->module_info->layout_srl = $this->module_info->module_srl;
@ -47,7 +44,7 @@
if(file_exists($edited_layout)) $this->setEditedLayoutFile($edited_layout);
// 카테고리 xml 파일 위치 지정
$this->module_info->category_xml_file = sprintf('%s/files/cache/blog_category/%d.xml.php', getUrl(), $this->module_info->module_srl);
$this->module_info->category_xml_file = getUrl().$oDocumentModel->getCategoryXmlFile($this->module_info->module_srl);
// 메뉴 등록시 메뉴 정보를 구해옴
if($this->module_info->menu) {
@ -72,6 +69,16 @@
// 권한 체크
if(!$this->grant->list) return $this->dispBlogMessage('msg_not_permitted');
// 모듈정보를 확인하여 확장변수에서도 검색이 설정되어 있는지 확인
for($i=1;$i<=20;$i++) {
$ex_name = $this->module_info->extra_vars[$i]->name;
$ex_search = $this->module_info->extra_vars[$i]->search;
if($ex_name && $ex_search == 'Y') {
$search_option['extra_vars'.$i] = $ex_name;
}
}
Context::set('search_option', $search_option);
// 목록 구현에 필요한 변수들을 가져온다
$document_srl = Context::get('document_srl');
$page = Context::get('page');
@ -259,16 +266,19 @@
// 해당 댓글를 찾아본다
$oCommentModel = &getModel('comment');
$source_comment = $oCommentModel->getComment($parent_srl, $this->grant->manager);
$oSourceComment = $oCommentModel->getComment($parent_srl, $this->grant->manager);
// 댓글이 없다면 오류
if(!$source_comment) return $this->dispBlogMessage('msg_invalid_request');
if(!$oSourceComment->isExists()) return $this->dispBoardMessage('msg_invalid_request');
// 대상 댓글을 생성
$oComment = $oCommentModel->getComment();
$oComment->add('parent_srl', $parent_srl);
$oComment->add('document_srl', $oSourceComment->get('document_srl'));
// 필요한 정보들 세팅
Context::set('document_srl',$source_comment->document_srl);
Context::set('parent_srl',$parent_srl);
Context::set('comment_srl',NULL);
Context::set('source_comment',$source_comment);
Context::set('oSourceComment',$oSourceComment);
Context::set('oComment',$oComment);
// 댓글 에디터 세팅
Context::set('editor', $this->getCommentEditor($document_srl, 0, 400));
@ -292,19 +302,17 @@
// 해당 댓글를 찾아본다
$oCommentModel = &getModel('comment');
$comment = $oCommentModel->getComment($comment_srl, $this->grant->manager);
$oComment = $oCommentModel->getComment($comment_srl, $this->grant->manager);
// 댓글이 없다면 오류
if(!$comment) return $this->dispBlogMessage('msg_invalid_request');
Context::set('document_srl',$comment->document_srl);
if(!$oComment->isExists()) return $this->dispBoardMessage('msg_invalid_request');
// 글을 수정하려고 할 경우 권한이 없는 경우 비밀번호 입력화면으로
if($comment_srl&&$comment&&!$comment->is_granted) return $this->setTemplateFile('input_password_form');
if(!$oComment->isGranted()) return $this->setTemplateFile('input_password_form');
// 필요한 정보들 세팅
Context::set('comment_srl',$comment_srl);
Context::set('comment', $comment);
Context::set('oSourceComment', $oCommentModel->getComment());
Context::set('oComment', $oComment);
// 댓글 에디터 세팅
Context::set('editor', $this->getCommentEditor($document_srl, $comment_srl, 400));
@ -322,21 +330,21 @@
// 삭제할 댓글번호를 가져온다
$comment_srl = Context::get('comment_srl');
// 삭제하려는 댓글 있는지 확인
// 삭제하려는 댓글 있는지 확인
if($comment_srl) {
$oCommentModel = &getModel('comment');
$comment = $oCommentModel->getComment($comment_srl, $this->grant->manager);
$oComment = $oCommentModel->getComment($comment_srl, $this->grant->manager);
}
// 삭제하려는 글이 없으면 에러
if(!$comment) return $this->dispBlogContent();
if(!$oComment->isExists()) return $this->dispBlogContent();
Context::set('document_srl',$comment->document_srl);
// 권한이 없는 경우 비밀번호 입력화면으로
if($comment_srl&&$comment&&!$comment->is_granted) return $this->setTemplateFile('input_password_form');
if(!$oComment->isGranted()) return $this->setTemplateFile('input_password_form');
Context::set('comment',$comment);
Context::set('oComment',$oComment);
$this->setTemplateFile('delete_comment_form');
}

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<module version="0.1">
<module version="0.1" category="service">
<title xml:lang="ko">블로그</title>
<title xml:lang="jp">ブログ</title>
<title xml:lang="en">Blog</title>

View file

@ -63,6 +63,7 @@
<permission action="dispBlogAdminContent" target="manager" />
<permission action="dispBlogAdminBlogInfo" target="manager" />
<permission action="dispBlogAdminInsertBlog" target="manager" />
<permission action="dispBoardAdminBoardAdditionSetup" target="manager" />
<permission action="dispBlogAdminCategoryInfo" target="manager" />
<permission action="dispBlogAdminSkinInfo" target="manager" />
@ -97,6 +98,7 @@
<action name="dispBlogAdminContent" type="view" standalone="true" admin_index="true" />
<action name="dispBlogAdminBlogInfo" type="view" standalone="true" />
<action name="dispBoardAdminBoardAdditionSetup" type="view" standalone="true" />
<action name="dispBlogAdminInsertBlog" type="view" standalone="true" />
<action name="dispBlogAdminDeleteBlog" type="view" standalone="true" />
<action name="dispBlogAdminCategoryInfo" type="view" standalone="true" />

View file

@ -17,14 +17,14 @@
$lang->cmd_layout_edit = 'Edit layout';
// Item
$lang->parent_category_name = 'Parent category';
$lang->category_name = 'Category';
$lang->parent_category_title = 'Parent category';
$lang->category_title = 'Category';
$lang->expand = 'Expand';
$lang->category_group_srls = 'Accessable Group';
$lang->search_result = 'Search result';
// blah blah..
$lang->about_category_name = 'Please input category name';
$lang->about_category_title = 'Please input category name';
$lang->about_expand = 'By selecting this option, it will be always expanded';
$lang->about_category_group_srls = 'Only the selected group will be able to see current categories. (Manually open xml file to expose)';
$lang->about_layout_setup = 'You can manually modify blog layout code. Insert or manage the widget code anywhere you want';

View file

@ -17,14 +17,14 @@
$lang->cmd_layout_edit = 'Editar el diseño';
// Artículos
$lang->parent_category_name = 'Categoría Superior';
$lang->category_name = 'Nombre de la categoría';
$lang->parent_category_title = 'Categoría Superior';
$lang->category_title = 'Nombre de la categoría';
$lang->expand = 'Expandir';
$lang->category_group_srls = 'Limitar el grupo';
$lang->search_result = 'Resultado de la búsqueda';
// bla bla...
$lang->about_category_name = 'Ingresar el nombre de la categoría.';
$lang->about_category_title = 'Ingresar el nombre de la categoría.';
$lang->about_expand = 'Si seleccionas esta opción, siempre estará expandido.';
$lang->about_category_group_srls = 'Solo se verán los grupos seleccionados en la actual categoría. (Abrir manualmente en archivo xml para la exposición)';
$lang->about_layout_setup = 'Puede modificar manualmente el código del diseño de blog. Insertar o modificar el código de widget.';

View file

@ -17,14 +17,14 @@
$lang->cmd_layout_edit = 'レイアウト編集';
// 項目
$lang->parent_category_name = '上位カテゴリ名';
$lang->category_name = 'カテゴリ名';
$lang->parent_category_title = '上位カテゴリ名';
$lang->category_title = 'カテゴリ名';
$lang->expand = '拡張表示';
$lang->category_group_srls = 'グループ制限';
$lang->search_result = '検索結果';
// その他
$lang->about_category_name = 'カテゴリ名を入力して下さい';
$lang->about_category_title = 'カテゴリ名を入力して下さい';
$lang->about_expand = 'チェックすると常に開いた状態にします';
$lang->about_category_group_srls = '選択したグループのみ現在のカテゴリが見えるようになりますXMLファイルを直接閲覧すると表示されます';
$lang->about_layout_setup = 'ブログのレイアウトのコードを直接修正できます。ウィジェットコードを入力、又は管理して下さい';

View file

@ -17,14 +17,14 @@
$lang->cmd_layout_edit = '레이아웃 편집';
// 항목
$lang->parent_category_name = '상위 카테고리명';
$lang->category_name = '분류명';
$lang->parent_category_title = '상위 카테고리명';
$lang->category_title = '분류명';
$lang->expand = '펼침';
$lang->category_group_srls = '그룹제한';
$lang->search_result = '검색결과';
// 주절 주절..
$lang->about_category_name = '카테고리 이름을 입력해주세요';
$lang->about_category_title = '카테고리 이름을 입력해주세요';
$lang->about_expand = '선택하시면 늘 펼쳐진 상태로 있게 합니다';
$lang->about_category_group_srls = '선택하신 그룹만 현재 카테고리가 보이게 됩니다. (xml파일을 직접 열람하면 노출이 됩니다)';
$lang->about_layout_setup = '블로그의 레이아웃 코드를 직접 수정할 수 있습니다. 위젯 코드를 원하는 곳에 삽입하시거나 관리하세요';

View file

@ -17,14 +17,14 @@
$lang->cmd_layout_edit = '编辑布局';
// 项目
$lang->parent_category_name = '上级分类名';
$lang->category_name = '分类名';
$lang->parent_category_title = '上级分类名';
$lang->category_title = '分类名';
$lang->expand = '展开';
$lang->category_group_srls = '用户组';
$lang->search_result = '搜索结果';
// 信息、提示..
$lang->about_category_name = '请输入分类名。';
$lang->about_category_title = '请输入分类名。';
$lang->about_expand = '选择此项将维持展开状态。';
$lang->about_category_group_srls = '被选的用户组才可以查看此分类。';
$lang->about_layout_setup = '可直接编辑博客布局代码。可以把控件代码插入到您喜欢的位置。';

View file

@ -1,68 +1,88 @@
<!--%import("filter/insert_comment.xml")-->
<!--@if($oDocument->getCommentCount())-->
<ul class="replyZone">
<div class="replyBox">
<!--@foreach($oDocument->getComments() as $key => $val)-->
{@ $_comment_list = $oDocument->getComments() }
<!--@foreach($_comment_list as $key => $comment)-->
<li <!--@if($val->depth)-->class="reply"<!--@end-->>
<!--@if($val->depth)-->
<div style="margin-left:{($val->depth-1)*1.3}em" class="replyIndent">
<div class="replyItem <!--@if($comment->get('depth'))-->reply<!--@end-->">
<!--@if($comment->get('depth'))-->
<div style="margin-left:{($comment->get('depth')-1)*20}px" class="replyIndent">
<!--@end-->
<a name="comment_{$key}"></a>
<a name="comment_{$comment->comment_srl}"></a>
<div class="replyOption">
<!--@if($val->is_granted || !$val->member_srl || $grant->is_admin)-->
<a href="{getUrl('act','dispBlogDeleteComment','comment_srl',$val->comment_srl)}"><img src="./images/common/buttonDeleteX.gif" alt="{$lang->cmd_delete}" width="12" height="13" /></a>
<a href="{getUrl('act','dispBlogModifyComment','comment_srl',$val->comment_srl)}"><img src="./images/{$module_info->colorset}/buttonModifyE.gif" alt="{$lang->cmd_modify}" width="20" height="17" /></a>
<!--@if($comment->isGranted())-->
<a href="{getUrl('act','dispBlogDeleteComment','comment_srl',$comment->comment_srl)}"><img src="./images/common/buttonDeleteX.gif" alt="{$lang->cmd_delete}" width="12" height="13" /></a>
<a href="{getUrl('act','dispBlogModifyComment','comment_srl',$comment->comment_srl)}"><img src="./images/{$module_info->colorset}/buttonModifyE.gif" alt="{$lang->cmd_modify}" width="20" height="17" /></a>
<!--@end-->
<a href="{getUrl('act','dispBlogReplyComment','comment_srl',$val->comment_srl)}"><img src="./images/{$module_info->colorset}/buttonReply.gif" alt="{$lang->cmd_reply}" width="20" height="17" /></a>
<a href="{getUrl('act','dispBlogReplyComment','comment_srl',$comment->comment_srl)}"><img src="./images/{$module_info->colorset}/buttonReply.gif" alt="{$lang->cmd_reply}" width="20" height="17" /></a>
</div>
<div class="date">
{zdate($val->regdate, "Y.m.d H:i")}
<strong>{$comment->getRegdate('Y.m.d')}</strong> {$comment->getRegdate('H:i:s')}
<!--@if($grant->is_admin)-->
({$val->ipaddress})
({$comment->get('ipaddress')})
<!--@end-->
</div>
<div class="author">
<!--@if(!$val->member_srl)-->
<!--@if($val->homepage)-->
<a href="{$val->homepage}" onclick="window.open(this.href);return false;">{htmlspecialchars($val->nick_name)}</a>
<!--@if(!$comment->member_srl)-->
<!--@if($comment->homepage)-->
<a href="{$comment->homepage}" onclick="window.open(this.href);return false;">{$comment->getNickName()}</a>
<!--@else-->
{htmlspecialchars($val->nick_name)}
{$comment->getNickName()}
<!--@end-->
<!--@else-->
<div class="member_{$val->member_srl}">{htmlspecialchars($val->nick_name)}</div>
<div class="member_{$comment->member_srl}">{$comment->getNickName()}</div>
<!--@end-->
</div>
<!--@if($comment->get('voted_count')!=0)-->
<div class="voted">
({$lang->voted_count}:
<strong>{$comment->get('voted_count')}</strong>)
</div>
<!--@end-->
<div class="clear"></div>
<div class="replyContent">
{$val->content}
<!--@if(!$comment->isAccessible())-->
<!--%import("filter/input_password.xml")-->
<strong>{$lang->msg_is_secret}</strong>
<form action="./" method="get" onsubmit="return procFilter(this, input_password)">
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="page" value="{$page}" />
<input type="hidden" name="document_srl" value="{$comment->get('document_srl')}" />
<input type="hidden" name="comment_srl" value="{$comment->get('comment_srl')}" />
<div class="inputPassword">
<input type="password" name="password" class="inputTypeText" /><span class="button"><input type="submit" value="{$lang->cmd_input}" accesskey="s" /></span>
</div>
</form>
<!--@else-->
{$comment->getContent(true)}
<!--@end-->
</div>
<!--@if($val->uploaded_count && $val->uploaded_list)-->
<!--@if($comment->hasUploadedFIles())-->
<div class="fileAttached">
<ul>
<!--@foreach($val->uploaded_list as $key => $file)-->
{@ $_uploaded_files = $comment->getUploadedFiles() }
<!--@foreach($_uploaded_files as $key => $file)-->
<li><a href="{getUrl('')}{$file->download_url}">{$file->source_filename} ({FileHandler::filesize($file->file_size)})({number_format($file->download_count)})</a></li>
<!--@end-->
</ul>
</div>
<!--@end-->
<!--@if($val->depth)-->
<!--@if($comment->get('depth'))-->
</div>
<!--@end-->
</li>
</div>
<!--@end-->
</ul>
<!--@end-->
<!-- 댓글 입력 폼 -->
<!--@if($grant->write_comment && !$oDocument->isLocked())-->
<!--#include("./comment_form.html")-->
</div>
<!--@end-->

View file

@ -1,69 +1,68 @@
<!--%import("filter/insert_comment.xml")-->
<!--%import("js/blog.js")-->
<!--@if($source_comment || $comment)-->
<!--#include("header.html")-->
<!--@end-->
<!--#include("header.html")-->
<!-- 만약 댓글의 답을 다는 것이라면 원문 보여줌 -->
<!--@if($source_comment)-->
<ul class="replyZone">
<li>
<div class="member_{$source_comment->member_srl} author">{htmlspecialchars($source_comment->nick_name)}</div>
<!--@if($oSourceComment->isExists())-->
<div class="replyBox">
<div class="replyItem">
<div class="author"><div class="member_{$oSourceComment->getMemberSrl()}">{$oSourceComment->getNickName()}</div></div>
<div class="date">
{zdate($source_comment->regdate, "Y.m.d H:i")}
{$oSourceComment->getRegdate("Y.m.d H:i")}
<!--@if($grant->is_admin)-->
({$source_comment->ipaddress})
({$oSourceComment->get('ipaddress')})
<!--@end-->
</div>
<div class="clear"></div>
<div class="replyContent">
{$source_comment->content}
<div class="replyContent gap1">
{$oSourceComment->getContent(false)}
</div>
</li>
</ul>
</div>
</div>
<!--@end-->
<!-- 글쓰기 폼 -->
<!--%import("filter/insert_comment.xml")-->
<div class="blogWrite">
<form action="./" method="post" onsubmit="return procFilter(this, insert_comment)" <!--@if($grant->fileupload)-->enctype="multipart/form-data"<!--@end--> class="blogEditor" >
<fieldset>
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="document_srl" value="{$document_srl?$document_srl:$comment->document_srl}" />
<input type="hidden" name="comment_srl" value="{$comment_srl}" />
<input type="hidden" name="parent_srl" value="{$parent_srl}" />
<input type="hidden" name="content" value="{htmlspecialchars($comment->content)}" />
<input type="hidden" name="document_srl" value="{$oComment->get('document_srl')}" />
<input type="hidden" name="comment_srl" value="{$oComment->get('comment_srl')}" />
<input type="hidden" name="content" value="{htmlspecialchars($oComment->get('content'))}" />
<input type="hidden" name="parent_srl" value="{$oComment->get('parent_srl')}" />
<!--@if(!$is_logged)-->
<div class="userNameAndPw">
<!--@if(!$is_logged)-->
<label for="userName">{$lang->writer}</label>
<input type="text" name="nick_name" value="{$comment->nick_name}" class="userName inputTypeText" id="userName"/>
<input type="text" name="nick_name" value="{$oComment->get('nick_name')}" class="userName inputTypeText" id="userName"/>
<label for="userPw">{$lang->password}</label>
<input type="password" name="password" value="" id="userPw" class="userPw inputTypeText" />
<label for="emailAddress">{$lang->email_address}</label>
<input type="text" name="email_address" value="{htmlspecialchars($comment->email_address)}" id="emailAddress" class="emailAddress inputTypeText"/>
<input type="text" name="email_address" value="{htmlspecialchars($oComment->get('email_address'))}" id="emailAddress" class="emailAddress inputTypeText"/>
<label for="homePage">{$lang->homepage}</label>
<input type="text" name="homepage" value="{htmlspecialchars($comment->homepage)}" id="homePage" class="homePage inputTypeText"/>
</div>
<!--@end-->
<input type="text" name="homepage" value="{htmlspecialchars($oComment->get('homepage'))}" id="homePage" class="homePage inputTypeText"/>
<!--@else-->
<input type="checkbox" name="notify_message" value="Y" <!--@if($oComment->useNotify())-->checked="checked"<!--@end--> id="notify_message" />
<label for="notify_message">{$lang->notify}</label>
<!--@end-->
<div class="commentForm">
<div>{$editor?$editor:$comment_editor[$document_srl]}</div>
<div class="tRight">
<span class="button"><input type="submit" value="{$lang->cmd_comment_registration}" accesskey="s" /></span>
</div>
<input type="checkbox" name="is_secret" value="Y" <!--@if($oComment->isSecret())-->checked="checked"<!--@end--> id="is_secret" />
<label for="is_secret">{$lang->secret}</label>
</div>
<div <!--@if($is_logged)-->class="borderTop"<!--@end-->>{$editor}</div>
</fieldset>
<div class="commentButton tRight">
<span class="button"><input type="button" value="{$lang->cmd_back}" onclick="location.href='{getUrl('act','')}'"/></span>
<span class="button"><input type="submit" value="{$lang->cmd_comment_registration}" accesskey="s" /></span>
</div>
</form>
</div>
<!--@if($source_comment)-->
<!--#include("footer.html")-->
<!--@end-->
<!--#include("footer.html")-->

View file

@ -1,63 +1,56 @@
@charset "utf-8";
/*
NHN UIT Lab. WebStandardization Team (http://html.nhndesign.com/)
Jeong, Chan Myeong 070601~070630
*/
.gap1 { margin-top:.8em; }
.commentButton { margin:.8em 0 .8em 0; }
/* pathNavigation */
.pathNavigation { background:url(../images/common/bullet_3x3_d8d8d8.gif) no-repeat left .4em; padding:0 0 0 .5em; color:#999999; margin:0 0 1.5em 0;}
.pathNavigation * { font-size:.9em;}
.pathNavigation a { color:#999999;}
.pathNavigation strong { color:#666666;}
/**
* Header
**/
.blogHeader2 { width:100%; overflow:hidden; padding:1em 0 1em 0; color:#444444;}
.blogHeader2 h3 { float:left; font-size:1.4em; padding-left:1.2em; background:url(../images/common/iconH3.gif) no-repeat .5em center;}
.blogHeader2 .info { float:right; position:relative; top:.4em;}
.blogHeader2 .info q { quotes:none; font-weight:bold;}
.blogHeader2 .info strong { font:bold .9em Tahoma; color:#ff6600;}
/* blog Title */
.blogHeader { border:1px solid #e1e1dd; border-bottom:none; background:#ffffff url(../images/common/bgH3.gif) repeat-x left bottom; overflow:hidden; _width:100%;}
.blogHeader h3 { float:left; font-size:1.2em; padding:1em 2em .7em 1.2em; background:#ffffff url(../images/common/lineH3.gif) no-repeat right bottom;}
/* blogComment */
.blogComment { color:#AEAEAE; position:relative; border:1px solid #DDDDDD; overflow:hidden;padding:.8em; margin-top:.4em;}
.blogComment a { color:#f38d2a; text-decoration:none; border-bottom:1px dotted #f38d2a;}
/* blog Description */
.blogDescription { color:#AEAEAE; border:1px solid #DDDDDD; overflow:hidden; padding:1em; margin-top:1em;}
/* blogInformation */
/* blog Information */
.blogInformation { width:100%; clear:both; margin:1em 0 .5em 0; overflow:hidden; color:#666666;}
.articleNum { float:left; padding:0 0 0 15px; }
.accountNavigation { float:right; overflow:hidden;}
.accountNavigation li { float:left; padding:0 .5em 0 .6em; background:url(../images/common/line_1x10_e0e0e0.gif) no-repeat left .4em; list-style:none;}
.accountNavigation li a { font-size:11px; white-space:nowrap; color:#666666; text-decoration:none;}
.accountNavigation li.rss { background:none; padding-top:.4em;}
.accountNavigation li.join { background:none; padding-top:.4em;}
.accountNavigation li.myInfo { padding-top:.4em; background:none;}
.accountNavigation li.admin { padding-top:.4em;}
.accountNavigation li.admin a { display:block; background:url(../images/common/iconAdmin.gif) no-repeat left .1em; padding:0 0 0 1.2em;}
.accountNavigation li.setup { padding-top:.4em;}
.accountNavigation li.setup a { display:block; background:url(../images/common/iconSetup.gif) no-repeat left .1em; padding:0 0 0 1.2em;}
.accountNavigation li.loginAndLogout { background:none; padding-left:0;}
/* gallery sub menu */
.blogSubMenu { margin:0 0 .5em 0; padding:1em 0 .5em .5em; border-bottom:1px solid #e0e1db;}
.blogSubMenu a { text-decoration:none; color:#666666; vertical-align:bottom; background:url(../images/common/line_1x10_e0e0e0.gif) no-repeat right 5px; padding-left:10px; padding-right:10px; _padding-top:5px; position:relative; top:5px; }
.blogSubMenu img.sort { vertical-align:middle; }
/* blogList */
.blogList { width:100%; position:relative; border:1px solid #e0e1db;}
.blogList tr.notice { background:#f8f8f8;}
.blogList tr.notice .num { font-size:.9em; font-weight:bold;}
/* list */
.blogList { width:100%; border:1px solid #e0e1db; border-top:none;}
.blogListNoTopBorder { border:none; }
.blogList th { color:#3e3f3e; font-weight:normal; border-top:1px solid #e0e1db; border-bottom:1px solid #ffffff; padding-top:5px; white-space:nowrap; height:33px; overflow:hidden;}
.blogList th.no_line { background-position:-3px bottom; }
.blogList th a { color:#3e3f3e; text-decoration:none; }
.blogList th.num { border-left:1px solid #ffffff; }
.blogList th.checkbox { text-align:center; }
.blogList th.title { text-align:center; padding-left:1em; }
.blogList th.topic { text-align:left; padding-left:1em; }
.blogList th.category { text-align:left; padding-left:1em; }
.blogList th.category select { vertical-align:middle; width:200px; height:20px;}
.blogList th.reading, th.recommend , th.date { white-space:nowrap;}
.blogList th .sort { padding:0 .2em; vertical-align:middle;}
.blogList tr.notice { background:#f8f8f8; }
.blogList tr.notice .num { font-weight:bold;}
.blogList tr.bg1 { background:#ffffff}
.blogList tr.bg2 { background:#fbfbfb;}
.blogList th a { color:#3e3f3e; text-decoration:none; }
.blogList th.num { background-position:-3px bottom; border-left:1px solid #ffffff; }
.blogList th.title.first-child { background-position:-3px bottom;}
.blogList th.title { text-align:center; }
.blogList th.category { text-align:left; }
.blogList th.title select { vertical-align:middle; margin-left:.5em; }
.blogList th.reading { white-space:nowrap;}
.blogList th.recommend { white-space:nowrap;}
.blogList th.date { border-right:1px solid #ffffff;}
.blogList th .sort { padding:0 .2em; vertical-align:middle;}
.blogList td { border-top:1px solid #eff0ed; padding:.5em;}
.blogList td.num { font:.8em tahoma; color:#999999; padding:.5em 1em; text-align:center;}
.blogList td.checkbox { font:.8em tahoma; color:#999999; text-align:center;}
.blogList tr.notice td.num { padding:.5em; white-space:nowrap;}
.blogList td.thumb { padding:.5em 0 .5em .5em; width:145px; table-layout:fixed; white-space:nowrap;}
.blogList td.thumb * { vertical-align:middle;}
.blogList tr.notice td.notice { font-size:.9em; color:#999999; font-weight:bold; text-align:center;}
.blogList td.thumb img { border:1px solid #E0E1DB; padding:3px; }
.blogList td.title {padding-left:1em; }
.blogList 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;}
.blogList td.title.bold { font-size:1.2em; font-weight:bold;}
@ -66,99 +59,103 @@ Jeong, Chan Myeong 070601~070630
.blogList td.title,
.blogList td.title a { color:#444444; text-decoration:none;}
.blogList td.title a:visited { color:#777777;}
.blogList td.topic { padding-left:1em; color:#888888; }
.blogList td.topic strong a { font-size:1.2em; font-weight:bold; text-decoration:none; color:#444444; }
.blogList td.topic strong a:visited { color:#777777; }
.blogList td.topic .category { background:url(../images/common/line_1x10_e0e0e0.gif) no-repeat left 3px; padding-left:.5em; margin-left:.5em; color:#AAAAAA; }
.blogList td.topic div.author { margin-top:.5em; color:#BBBBBB; font-size:0.8em; }
.blogList td.topic div.author strong { font-size:1.2em; font-weight:normal; color:#666666; }
.blogList td.commentCount { font:bold .8em Tahoma; color:#888888; text-align:center; }
.blogList td.latestPost { color:#888888; }
.blogList td.latestPost div.author { margin-top:.5em; color:#BBBBBB; font-size:0.8em; }
.blogList td.latestPost div.author strong { font-size:1.2em; font-weight:normal; color:#666666; }
.blogList td.latestPost div.date { font-size:0.8em; margin-top:.5em; }
.blogList td.latestPost div.date strong { font-family:Tahoma; font-weight:normal; color:#666666; }
.blogListNoTopBorder td { border-top:none; border-bottom:1px solid #eff0ed; padding:.5em;}
.blogList td.webzineTitle { padding-left:1em; color:#777777;}
.blogList td.webzineTitle strong.category { font-size:1em; background:url(../images/common/line_1x10_e0e0e0.gif) no-repeat right 3px; padding-right:.5em; margin-right:.5em;}
.blogList td.webzineTitle.bold { font-size:1.2em; font-weight:bold;}
.blogList td.webzineTitle * { vertical-align:middle;}
.blogList td.webzineTitle,
.blogList td.webzineTitle a { color:#444444; text-decoration:none;}
.blogList td.webzineTitle a:visited { color:#777777;}
.blogList td.summary { border-top:none; vertical-align:top; color:#666666; line-height:1.25em; padding-left:1em;}
.blogList td.summary a { color:#666666; text-decoration:none; line-height:inherit;}
.blogList td.summary a:visited { color:#999999;}
.blogList td .replyAndTrackback img.trackback { margin-bottom:-.1em;}
.blogList td .replyAndTrackback strong { font:bold 1em Tahoma;}
.blogList td .replyAndTrackback { font:.8em Tahoma; }
.blogList td.author { color:#333333; font-size:.95em; padding-left:1em;}
.blogList td.author a { font-size:1em; color:#333333;}
.blogList td.reading { font:.8em Tahoma; color:#999999; text-align:center;}
.blogList td.recommend { font:bold .8em Tahoma; text-align:center;}
.blogList td.date { font:.8em Tahoma; color:#999999; text-align:center; white-space:nowrap;}
.blogList td.summary { border-top:none; vertical-align:top; color:#666666; line-height:1.25em;}
.blogList td.summary a { color:#666666; text-decoration:none; line-height:inherit;}
.blogList td.summary a:visited { color:#999999;}
.blogList td input { _margin:-3px;}
.blogList td .replyAndTrackback img.trackback { margin-bottom:-.1em;}
.blogList td .replyAndTrackback strong { font:bold 1em Tahoma;}
.blogList td.title.bold .replyAndTrackback { font:.6em Tahoma; color:#ff6600; position:relative; top:.3em;}
.blogList td .replyAndTrackback strong { font:bold 1em Tahoma;}
.blogList td .thumbnailSmall { margin:0 .3em 0 .3em;}
.blogList td .thumbnailSmall img { border:1px solid #bcbdb6;}
.blogList td .thumbnailMedium { margin:0 .3em 0 .3em;}
.blogList td .thumbnailMedium img { border:1px solid #e0e1db; padding:3px;}
.buttonTypeGo { border:none; cursor:pointer; width:24px; height:20px; _position:relative; _top:3px; font:.75em Tahoma; text-align:center;}
*:first-child+html .buttonTypeGo { position:relative; top:3px; }
.blogList.thumbnail { margin-top:-1px; border-bottom:none;}
.blogList.thumbnail td { border-top:none; border-bottom:1px solid #eff0ed; padding:1.5em 0 0 1.5em; overflow:hidden;}
.blogList.thumbnail div.cell { float:left; width:130px; margin:0 1.5em 0 0; padding-bottom:1.5em;}
.blogList.thumbnail div.cell img.thumb { padding:2px; border:1px solid #e0e1db; display:block; margin-bottom:1em;}
.blogList.thumbnail div.title { color:#444444; margin-bottom:.2em; padding-left:3px;}
.blogList.thumbnail div.title a { color:#444444;}
.blogList.thumbnail div.nameAndDate { font-size:.9em; color:#999999; margin-bottom:.2em; padding-left:3px;}
.blogList.thumbnail div.nameAndDate a { color:#999999;}
.blogList.thumbnail div.nameAndDate .date { font:.8em Tahoma; color:#999999;}
.blogList.thumbnail div.readAndRecommend { font-size:.9em; color:#666666; padding-left:3px;}
.blogList.thumbnail div.readAndRecommend .num { font:.8em Tahoma;}
.blogList.thumbnail div.readAndRecommend .vr { color:#dddddd;}
.blogList.thumbnail div.readAndRecommend strong.num { font:bold .8em Tahoma; color:#ff6600;}
.thumbnailBox { margin-top:1em; clear:both; overflow:hidden; border-bottom:1px solid #e0e1db; }
.thumbnailBox div.cell { display:block; float:left; overflow:hidden; margin-bottom:1em; margin-right:1em;}
.thumbnailBox div.cell img.thumb { padding:2px; border:1px solid #e0e1db; display:block; margin-bottom:1em; margin-left:auto;margin-right:auto;}
.thumbnailBox div.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;}
/* list button */
.leftButtonBox { float: left; margin-top:1em;}
.rightButtonBox { float: right; margin-top:1em;}
/* pageNavigation */
.pageNavigation { display:block; padding:1.5em 0 2em 0; text-align:center; font:bold .8em Tahoma; }
.pageNavigation { display:block; margin-top:1em; text-align:center; font:bold 11px Tahoma; margin-top:1.5em;}
.pageNavigation a { position:relative; margin-left:-4px; font:bold 1em Tahoma; color:#666666; display:inline-block; padding:1px 7px 2px 6px; border-left:1px solid #dedfde; border-right:1px solid #CCCCCC; text-decoration:none; line-height:1em; }
.pageNavigation .current { position:relative; margin-left:-4px; font:bold 11px Tahoma; display:inline-block; padding:1px 7px 1px 6px; border-left:1px solid #dedfde; text-decoration:none; line-height:1em; }
.pageNavigation a:hover { background:#F7F7F7; text-decoration:none; }
.pageNavigation a:visited { color:#999999;}
.pageNavigation a.goToFirst,
.pageNavigation a.goToLast { border:none; border-right:1px solid #ffffff; border-left:1px solid #ffffff; z-index:99; vertical-align:top; padding:0px 7px 4px 6px;}
.pageNavigation a.goToFirst img,
.pageNavigation a.goToLast img { display:inline-block; padding:2px 0; position:relative; top:2px; _top:1px;}
.pageNavigation a:visited { color:#999999; }
.pageNavigation a.goToFirst, .pageNavigation a.goToLast { border:none; border-right:1px solid #ffffff; border-left:1px solid #ffffff; z-index:99; vertical-align:top; padding:0px 7px 4px 6px;}
.pageNavigation a.goToFirst img, .pageNavigation a.goToLast img { display:inline-block; padding:2px 0; position:relative; top:2px; _top:1px;}
.blogRead .dateAndModify { float:right; white-space:nowrap;}
.blogRead .dateAndModify { font-size:.8em; color:#999999; float:left; position:relative; top:.3em;}
.blogRead .dateAndModify strong { font-size:1em; font-family:Tahoma;}
.blogRead .dateAndModify ul { display:inline;}
.blogRead .dateAndModify ul li { float:left; margin-left:.3em; list-style:none;}
/* extraVars list */
.extraVarsList { width:100%; border:1px solid #e0e1db; clear:both; margin-bottom:1em;}
.extraVarsList tr.notice { background:#f8f8f8;}
.extraVarsList tr.notice .num { font-size:.9em; font-weight:bold;}
.extraVarsList tr.bg1 { background:#ffffff}
.extraVarsList tr.bg2 { background:#fbfbfb;}
.extraVarsList th { color:#3e3f3e; font-weight:bold; padding:.8em .5em .5em .5em; border-bottom:1px solid #eff0ed; border-right:1px solid #eff0ed;}
.extraVarsList td { border-bottom:1px solid #eff0ed; padding:.5em .5em .5em 1em;}
/* blogSearch */
.blogSearch { text-align:center; clear:both; width:100%;}
.blogSearch fieldset { border:none; display:inline; overflow:visible; position:relative;}
.blogSearch fieldset legend { overflow:hidden; width:1px; height:1px; font-size:.001em;}
.blogSearch * { vertical-align:middle;}
.blogSearch select { float:left;}
.blogSearch input { float:left; margin:0 .3em; background:#fbfbfb;}
.searchButton ul { overflow:hidden;}
.searchButton li { float:left; margin-right:.3em; list-style:none;}
/* Search Form */
.blogSearch { margin-left:auto; margin-right:auto; clear:both; text-align:center;}
.blogSearch select { height:20px; }
.blogSearch input { height:18px; }
/* blogRead */
.blogRead { position:relative; _width:100%; margin:0 0 0 0; border:1px solid #e0e1db;}
.blogRead .originalContent { padding:2em 1.2em 2em 1.2em;}
.blogRead .readHeader { width:100%; padding-bottom:.5em; margin-bottom:1em; border-bottom:1px solid #eff0ed; overflow:hidden;}
.blogRead { padding:0; margin:0; }
.blogRead .originalContent { padding:1.5em .5em .5em .5em;}
.blogRead .readHeader { padding:0 0 .5em 0; margin-bottom:1em; overflow:hidden;}
.blogRead .titleAndCategory { float:left;}
.blogRead .titleAndCategory h4 { font-size:1.4em; display:inline; padding-left:.2em;}
.blogRead .titleAndCategory h4 a { color:#000000; }
.blogRead .titleAndCategory .vr { font-size:.9em; margin:0 .3em; color:#c5c7c0;}
.blogRead .titleAndCategory .cotegory { font-size:.9em; color:#999999; white-space:nowrap;}
.blogRead .blogTitle{ clear:both; }
.blogRead .blogTitle h4 { font-size:1.4em; display:inline; }
.blogRead .dateAndModify { float:right; white-space:nowrap;}
.blogRead .dateAndModify .num { font-size:.9em; font-family:Tahoma; color:#999999; margin-right:.5em; float:left; position:relative; top:.3em;}
.blogRead .dateAndModify .num strong { font-size:1em; font-family:Tahoma;}
.blogRead .dateAndModify ul { display:inline;}
.blogRead .dateAndModify ul li { float:left; margin-left:.3em;}
.blogRead .dateAndCategory { float:left; overflow:hidden; white-space:nowrap; font-size:.9em; color:#888888; padding-top:1em; padding-left:.2em; }
.blogRead .dateAndCategory a { text-decoration:underline; color:#666666; }
.blogRead ul.uri { overflow:hidden; margin:0 0 2em .3em; float:right; clear:left;}
.blogRead .userInfo { white-space:nowrap; float:left; color:#3074a5; padding-top:1em; padding-left:.2em; font-size:.9em; margin-left:1em; }
.blogRead .userInfo a { font-size:.9em; color:#3074a5; text-decoration:none; }
.blogRead .userInfo .ipaddress { font-size:.9em; color:#AAAAAA; }
.blogRead .readedAndVoted { float:right; overflow:hidden; white-space:nowrap; font-size:.9em; color:#888888; padding-top:1em; padding-left:.2em; }
.blogRead ul.uri { overflow:hidden; margin:0 0 2em .3em; }
.blogRead ul.uri li { font-size:8pt; color:#c5c7c0; }
.blogRead .userInfo { float:left; white-space:nowrap;}
.blogRead .userInfo .author { padding:0 .3em 0 0; color:#3074a5; margin-right:.3em;}
.blogRead .userInfo .ipaddress { font-size:.9em; font-family:Tahoma; color:#888888; margin-right:.5em; }
.blogRead .contentBody { width:100%; overflow:hidden; }
.blogRead .readBody { padding:0 .3em; color:#555555; overflow:hidden; margin-bottom:2em; clear:both; }
.blogRead .readBody { padding:0 .3em; color:#555555; overflow:hidden; margin-bottom:2em; clear:both; margin-top:2em;}
.blogRead .readBody p { margin:1em 0; line-height:1.5em;}
.blogRead .readBody .alignLeft { float:left; margin:0 1em 1em 0; }
.blogRead .readBody .alignRight { float:right; margin:0 0 1em 1em; }
@ -171,76 +168,73 @@ Jeong, Chan Myeong 070601~070630
.blogRead .readFooter .tag li { display:inline;}
.blogRead .readFooter .tag a { color:#444444;}
.blogRead .readFooter .tag .tagIcon { vertical-align:middle;}
.blogRead .readFooter .fileAttached { _width:100%; border:1px solid #eaeae7; overflow:hidden; background:#fbfbfb;}
.blogRead .readFooter .fileAttached { border:1px solid #eaeae7; overflow:hidden; background:#fbfbfb;}
.blogRead .readFooter .fileAttached h5 { font-weight:normal; color:#999999; float:left; font-size:1em; margin:.5em .5em 0 .5em; line-height:1.5em;}
.blogRead .readFooter .fileAttached ul { float:left; margin-top:.5em; padding-bottom:1em; }
.blogRead .readFooter .fileAttached li { display:inline; margin-right:.75em; line-height:1.5em;}
.blogRead .readFooter .fileAttached li a { text-decoration:none; font-size:.9em; padding:.1em 0 .1em 1.5em; white-space:nowrap; color:#444444; }
.blogRead .readFooter .fileAttached li a:visited { color:#777777;}
.blogRead .buttonBox { float:right; height:40px; margin-right:1em;}
.blogRead .replyAndTrackback li { margin-left:1em; padding-left:1.4em; float:left; list-style:none;}
.blogRead .replyAndTrackbackBox { overflow:hidden; height:40px; float:left;}
.blogRead .replyAndTrackback li { margin-top:10px; _margin-top:8px; margin-left:1em; padding-left:1.4em; float:left; list-style:none;}
.blogRead .replyAndTrackback li.reply { background:url(../images/common/iconReply.gif) no-repeat left top;}
.blogRead .replyAndTrackback li.reply a { position:relative; top:-.3em; _top:-.6em;}
.blogRead .replyAndTrackback li.reply a { _position:relative; _top:-.6em;}
.blogRead .replyAndTrackback li.trackback { background:url(../images/common/iconTrackback.gif) no-repeat left top;}
.blogRead .replyAndTrackback li.trackback a { position:relative; top:-.3em; _top:0em;}
.blogRead .replyAndTrackback li.trackback a { _position:relative; _top:0em;}
.blogRead .replyAndTrackback a { color:#333333; white-space:nowrap; text-decoration:none;}
.blogRead .replyAndTrackback a#toggleReply { background:url(../images/common/buttonToggleReply.gif) no-repeat right top;}
.blogRead .replyAndTrackback a#toggleTrackback { background:url(../images/common/buttonToggleReply.gif) no-repeat right -13px;}
.blogRead .replyAndTrackback .listButton { position:relative; right: 10px; top:-7px; _top:-6px; float:right;}
.blogRead .replyAndTrackback .listButton { float:right; margin:0 1em 0 0; position:relative; top:-5px; _top:-7px;}
/* extraVars list */
.extraVarsList { width:100%; border:1px solid #e0e1db; clear:both; margin-bottom:1em; margin-top:1em; border-bottom:none;}
.extraVarsList tr.notice { background:#f8f8f8;}
.extraVarsList tr.notice .num { font-size:.9em; font-weight:bold;}
.extraVarsList tr.bg1 { background:#ffffff}
.extraVarsList tr.bg2 { background:#fbfbfb;}
.extraVarsList th { color:#3e3f3e; font-weight:bold; padding:.8em .5em .5em .5em; border-bottom:1px solid #e0e1db; border-right:1px solid #e0e1db;}
.extraVarsList td { border-bottom:1px solid #e0e1db; padding:.5em .5em .5em 1em; white-space:nowrap; overflow:hidden;}
#trackbacks { padding:.6em .6em; color:#666666; border:1px solid #e0e1db;;margin-top:.5em;}
#trackbacks li { padding:.6em .8em .6em .6em; line-height:1.25em; border-bottom:1px dotted #EEEEEE; list-style:none;}
#trackbacks p { display:inline; margin-bottom:1em;}
#trackbacks a { color:#666666; text-decoration:none;}
#trackbacks div { clear:both; }
#trackbacks address { display:block; padding:0 .3em 0 0; }
#trackbacks address a { font-size:.9em; color:#3074a5; margin-right:.3em; float:left;}
#trackbacks address .date { font:.8em Tahoma; color:#cccccc; float:right;}
.trackbackBox { padding:.6em .6em; color:#666666; border-top:1px dotted #e0e1db;;margin-top:.5em;}
.trackbackBox .trackbackItem { padding:.6em .8em .6em .6em; line-height:1.25em; border-bottom:1px dotted #EEEEEE; list-style:none;}
.trackbackBox p { display:inline; margin-bottom:1em;}
.trackbackBox a { color:#666666; text-decoration:none;}
.trackbackBox div { clear:both; }
.trackbackBox address { display:block; padding:0 .3em 0 0; }
.trackbackBox address a { font-size:.9em; color:#3074a5; margin-right:.3em; float:left;}
.trackbackBox address .date { font:.8em Tahoma; color:#cccccc; float:right;}
ul.replyZone { padding:.6em .6em; color:#666666; border:1px solid #e0e1db; margin-top:.5em;}
ul.replyZone li { padding:.6em .8em .6em .6em; line-height:1.25em; clear:both; border-bottom:1px dotted #EEEEEE;}
ul.replyZone p { display:inline; margin-bottom:1em;}
ul.replyZone .author { float:left; padding:0 .3em 0 0; font-size:.9em; color:#3074a5; margin:0 .3em .5em 0;}
ul.replyZone .author a { font-size:.9em; color:#3074a5; margin-right:.3em;}
ul.replyZone .date { float:right; font:.8em Tahoma; color:#cccccc; margin:.3em 0 .5em 0;}
.replyBox { padding:.6em .6em; color:#666666; border-top:1px dotted #e0e1db; margin-top:.5em;}
.replyBox .replyItem { padding:.6em .8em .6em .6em; line-height:1.25em; clear:both; border-bottom:1px dotted #EEEEEE; list-style:none;}
.replyBox p { display:inline; margin-bottom:1em;}
.replyBox .author { float:left; padding:0 .3em 0 0; font-size:.9em; color:#3074a5; margin:0 .3em .5em 0;}
.replyBox .author a { color:#3074a5; margin-right:.3em; text-decoration:none; }
.replyBox .voted { float:left; font-size:.9em; color:#AAAAAA; margin:0 .3em .5em 1em;}
.replyBox .date { float:right; font:.8em Tahoma; color:#cccccc; margin:.3em 0 .5em 0;}
ul.replyZone .replyOption { float:right; white-space:nowrap; margin-left:.2em;}
ul.replyZone .replyOption img { vertical-align:middle;}
.replyBox .replyOption { float:right; white-space:nowrap; margin-left:.2em;}
.replyBox .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;}
.replyBox .replyContent { clear:left; }
.replyBox .replyContent p { display:block; }
.replyBox .replyContent ul li { padding:0; border:none; line-height:1.25em; list-style:disc;}
.replyBox .replyContent ol li { padding:0; border:none; line-height:1.25em; list-style:decimal;}
.replyBox .reply { background-color:#FAFAFA;}
.replyBox .replyIndent { background:url(../images/common/iconReplyArrow.gif) no-repeat .0em .3em; padding-left:1.3em;}
.replyBox .fileAttached { _width:99%; border:1px solid #eaeae7; overflow:hidden; background:#fbfbfb; margin-top:.3em; list-style:none;}
.replyBox .fileAttached ul { float:left; padding:.3em 1em .2em 0; margin-left:.5em; _margin-left:.25em;}
.replyBox .fileAttached li a { font-size:.9em; white-space:nowrap; position:relative; color:#444444; }
.replyBox .fileAttached li a:visited { color:#777777;}
#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 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 { 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;}
#reply li .fileAttached { _width:100%; border:1px solid #eaeae7; overflow:hidden; background:#fbfbfb; margin-top:.3em; list-style:none;}
#reply li .fileAttached ul { float:left; padding:.3em 1em .2em 0; margin-left:.5em; _margin-left:.25em;}
#reply li .fileAttached li a { font-size:.9em; white-space:nowrap; position:relative; color:#444444; }
#reply li .fileAttached li a:visited { color:#777777;}
.commentButton { margin-top:.5em; }
/* blogEditor */
.blogEditor { padding:.5em 0 1em 0; width:100%; overflow:hidden;}
.blogEditor.reply { padding:.5em 1em 1em 1em; width:auto; overflow:hidden;}
.blogEditor legend { position:absolute; overflow:hidden; width:1px; height:1px; font-size:.001em;}
.blogEditor fieldset { _width:100%; border:1px solid #eaeae7; }
.blogEditor fieldset { _width:100%; border:1px solid #eaeae7; border-top:none;}
.blogEditor .userNameAndPw { position:relative; background:#fbfbfb; border-top:1px solid #eaeae7; border-bottom:1px solid #e1e1e1; padding:.5em 1em; white-space:nowrap;}
.blogEditor .userNameAndPw * { vertical-align:middle;}
.blogEditor .userNameAndPw label { margin-right:.2em; color:#666760;}
@ -250,20 +244,20 @@ ul.replyZone .replyIndent { background:url(../images/common/iconReplyArrow.gif)
.blogEditor .userNameAndPw .emailAddress { width:6em;}
.blogEditor .userNameAndPw .homePage { width:6em;}
.blogEditor .userNameAndPw .checkSecret { position:absolute; right:2em; top:.7em;}
.blogEditor .buttonReply { position:relative; float:left; left:50%; margin:.5em 0 0 -2em; _padding-bottom:1em;}
.blogEditor .commentForm { width:100%; padding-bottom:.5em;}
.blogEditor .borderTop { border-top:1px solid #eaeae7; }
/* blogWrite */
.blogWrite { width:100%; position:relative;}
.blogWrite .userNameAndPw { margin-bottom:-1px;}
.blogWrite .blogEditor fieldset { width:auto; position:relative;}
.blogWrite div.title { border-bottom:1px solid #eff0ed; border-top:1px solid #eff0ed; padding:.5em 0; white-space:nowrap;}
.blogWrite div.title { border-bottom:1px solid #eff0ed; border-top:1px solid #eff0ed; padding:.5em 0 .5em 1em; white-space:nowrap;}
.blogWrite div.title label.title { display:block; float:left; font-weight:bold; padding:.4em 0 0 1.5em; width:8em; white-space:nowrap;}
.blogWrite div.title input#title { width:60%;}
.blogWrite .option { border-bottom:1px solid #e1e1e1; padding:.5em 0; overflow:hidden; width:100%;}
.blogWrite .option { border-bottom:1px solid #e1e1e1; padding:.5em 0 .5em 1em; overflow:hidden; _height:20px; }
.blogWrite .option dt { display:block; float:left; font-weight:bold; padding:.3em 0 0 1.5em; width:8em; white-space:nowrap;}
.blogWrite .option dd { float:left; margin-right:1em; padding-top:.2em; _padding-top:.1em;}
.blogWrite .option dd * { vertical-align:middle;}
.blogWrite .option dd select { width:7em; font-size:.95em;height:20px;}
.blogWrite .inputTypeText { background:#fbfbfb;}
.blogWrite .trackbackURI { clear:both; border-top:1px solid #eff0ed; padding:4px 0 .8em 0;}
.blogWrite .trackbackURI label { display:block; float:left; color:#333333; font-weight:bold; padding:.4em 0 0 1.5em; width:11em;}
@ -286,3 +280,8 @@ ul.replyZone .replyIndent { background:url(../images/common/iconReplyArrow.gif)
.smallBox .inputPassword { position:relative; border:none; padding:2em 2em 1.5em 2em;}
.smallBox .inputPassword .inputTypeText { float:left; margin-right:.5em; width:8em;}
.smallBox .inputPassword legend { position:absolute; overflow:hidden; width:1px; height:1px; font-size:.001em; text-indent:-100em;}
/* 게시물의 팝업 메뉴 */
.comment_popup_menu, .document_popup_menu { text-align:right; margin-top:3em; clear:both; display:block; background:url(../images/common/document_menu.gif) no-repeat right top; padding-right:16px; height:18px; }
.comment_popup_menu span, .document_popup_menu span { cursor:pointer; display:inline; background:none; padding:0 0 0 0; margin:0 0 0 0; }

View file

@ -1,8 +1,8 @@
@charset "utf-8";
/*
NHN UIT Lab. WebStandardization Team (http://html.nhndesign.com/)
Jeong, Chan Myeong 070601~070630
*/
/* blog Title */
.blogHeader { position:relative; _width:100%; border-top:1px solid #d1d9db; border-bottom:none; background:#ffffff url(../images/common/bgH3.gif) no-repeat right bottom; overflow:hidden;}
.blogHeader h3 { float:left; clear:both; font-size:1.2em; padding:1em 2em .7em 1.2em; border-left:1px solid #d1d9db; border-bottom:3px solid #2895c0; background:url(../images/common/lineH3.gif) no-repeat right bottom;}
#blog_category { position:relative; border:1px solid #e0e1db; background:url(../images/cyan/bgBoxTypeB.gif) repeat-x left top; margin-bottom:.7em; }
.boxTypeB { position:relative; border:1px solid #e0e1db; background:url(../images/cyan/bgBoxTypeB.gif) repeat-x left top; margin-bottom:.7em;}
@ -11,31 +11,27 @@ Jeong, Chan Myeong 070601~070630
#bodyWrap #accountNavigation li { float:left; margin-right:-1px; background:url(../images/cyan/blogHeaderVr.gif) no-repeat right center;}
#bodyWrap #header { clear:both; height:9.5em; margin:10px 10px .5em 10px; border:1px solid #e0e1dc; border-bottom:none; background:#fbfbfb url(../images/cyan/blogHeaderLine.gif) no-repeat left bottom; overflow:hidden;}
/* blogHeader */
.blogHeader { position:relative; _width:100%; border-top:1px solid #d1d9db; border-bottom:none; background:#ffffff url(../images/common/bgH3.gif) no-repeat right bottom; overflow:hidden;}
.blogHeader h3 { float:left; clear:both; font-size:1.2em; padding:1em 2em .7em 1.2em; border-left:1px solid #d1d9db; border-bottom:3px solid #2895c0; background:url(../images/common/lineH3.gif) no-repeat right bottom;}
/* account Navigation */
#blogAccountNavigation li.join a { background:url(../images/cyan/iconMyInfo.gif) no-repeat left top; padding-left:14px; }
#blogAccountNavigation li.myInfo a { background:url(../images/cyan/iconMyInfo.gif) no-repeat left top; padding-left:14px; }
.accountNavigation li.join a { display:block; background:url(../images/cyan/iconMyInfo.gif) no-repeat left .1em; padding:0 0 0 1.2em;}
.accountNavigation li.myInfo a { display:block; background:url(../images/cyan/iconMyInfo.gif) no-repeat left .1em; padding:0 0 0 1.2em;}
.articleNum { float:left; background:url(../images/cyan/iconArticle.gif) no-repeat left top; padding:0 0 0 1.5em; margin:.5em 0 0 0;}
#reply li .fileAttached li { border:0px; display:inline; margin-right:.75em; line-height:1.5em; padding:.1em 0 .1em 1.5em; background:url(../images/cyan/iconFile.gif) no-repeat left;}
/* blog Information */
.articleNum { float:left; background:url(../images/cyan/iconArticle.gif) no-repeat left top; }
.articleNum strong { font:bold 11px Tahoma; color:#2895c0;}
.blogHeader2 .info strong { font:bold .9em Tahoma; color:#2895c0;}
.blogList th { color:#3e3f3e; font-weight:normal; border-bottom:1px solid #ffffff; padding:.5em .5em .3em .5em; background:#ffffff url(../images/cyan/lineBoardListTh.gif) no-repeat left bottom;white-space:nowrap;}
.blogList td.recommend { font:bold .8em Tahoma; color:#2895c0; text-align:center;}
.blogList td .replyAndTrackback { font:.8em Tahoma; color:#2895c0; cursor:default; position:relative; top:-.2em;}
.blogList td.title.bold .replyAndTrackback { font:.6em Tahoma; color:#2895c0; cursor:default; position:relative; top:.3em;}
.blogList td.reply { font:bold .8em Tahoma; color:#2895c0; text-align:center;}
/* style.list */
.blogList th { background:#ffffff url(../images/cyan/lineBlogListTh.gif) no-repeat left bottom; }
.blogList td.recommend { color:#2895c0; }
.blogList td .replyAndTrackback { color:#2895c0; }
.buttonTypeGo { background:url(../images/cyan/buttonTypeInput24.gif) no-repeat; }
.buttonTypeGo { border:none; cursor:pointer; width:24px; height:20px; background:url(../images/cyan/buttonTypeInput24.gif) no-repeat; font:.75em Tahoma; text-align:center;}
/* pageNavigation */
.pageNavigation .current { color:#2895c0; border-right:1px solid #CCCCCC; }
.blogRead .replyAndTrackback { overflow:hidden; _width:100%; padding:.8em 0em; height:1.2em; background:url(../images/cyan/bgBoardListTh.gif) repeat-x left bottom; border-top:1px solid #b1c9d3; border-bottom:2px solid #2895c0;}
.blogRead .replyAndTrackback a strong { color:#2895c0;}
.blogRead .readFooter .fileAttached li a { font-size:.9em; padding:.1em 0 .1em 1.5em; white-space:nowrap; color:#444444; background:url(../images/cyan/iconFile.gif) no-repeat left top;}
.pageNavigation .current { position:relative; margin-left:-4px; font:bold 1em Tahoma; color:#2895c0; display:inline-block; padding:1px 7px 1px 6px; border-left:1px solid #dedfde; border-right:1px solid #CCCCCC; text-decoration:none; line-height:1em; }
/* blogRead */
blogRead .readFooter .fileAttached li a { background:url(../images/cyan/iconFile.gif) no-repeat left top;}
/* replyAndTrackback */
.replyAndTrackback { background:url(../images/cyan/bgBlogListTh.gif) repeat-x left 0px; }
.replyAndTrackback a strong { color:#2895c0;}
.replyBox .fileAttached li { border:0px; display:inline; margin-right:.75em; line-height:1.5em; padding:.1em 0 .1em 1.5em; background:url(../images/cyan/iconFile.gif) no-repeat left;}

View file

@ -1,8 +1,8 @@
@charset "utf-8";
/*
NHN UIT Lab. WebStandardization Team (http://html.nhndesign.com/)
Jeong, Chan Myeong 070601~070630
*/
/* blog Title */
.blogHeader { position:relative; _width:100%; border-top:1px solid #d1d9db; border-bottom:none; background:#ffffff url(../images/common/bgH3.gif) no-repeat right bottom; overflow:hidden;}
.blogHeader h3 { float:left; clear:both; font-size:1.2em; padding:1em 2em .7em 1.2em; border-left:1px solid #d0dbd1; border-bottom:3px solid #38b549; background:url(../images/common/lineH3.gif) no-repeat right bottom;}
#blog_category { position:relative; border:1px solid #e0e1db; background:url(../images/green/bgBoxTypeB.gif) repeat-x left top; margin-bottom:.7em; }
.boxTypeB { position:relative; border:1px solid #e0e1db; background:url(../images/green/bgBoxTypeB.gif) repeat-x left top; margin-bottom:.7em;}
@ -11,30 +11,28 @@ Jeong, Chan Myeong 070601~070630
#bodyWrap #accountNavigation li { float:left; margin-right:-1px; background:url(../images/green/blogHeaderVr.gif) no-repeat right center;}
#bodyWrap #header { clear:both; height:9.5em; margin:10px 10px .5em 10px; border:1px solid #e0e1dc; border-bottom:none; background:#fbfbfb url(../images/green/blogHeaderLine.gif) no-repeat left bottom; overflow:hidden;}
.articleNum { float:left; background:url(../images/green/iconArticle.gif) no-repeat left top; padding:0 0 0 1.5em; margin:.5em 0 0 0;}
#reply li .fileAttached li { border:0px; display:inline; margin-right:.75em; line-height:1.5em; padding:.1em 0 .1em 1.5em; background:url(../images/green/iconFile.gif) no-repeat left;}
.blogRead .readFooter .fileAttached li a { font-size:.9em; padding:.1em 0 .1em 1.5em; white-space:nowrap; color:#444444; background:url(../images/green/iconFile.gif) no-repeat left top;}
.accountNavigation li.join a { display:block; background:url(../images/green/iconMyInfo.gif) no-repeat left .1em; padding:0 0 0 1.2em;}
.accountNavigation li.myInfo a { display:block; background:url(../images/green/iconMyInfo.gif) no-repeat left .1em; padding:0 0 0 1.2em;}
.blogList th { color:#3e3f3e; font-weight:normal; border-bottom:1px solid #ffffff; padding:.5em .5em .3em .5em; background:#ffffff url(../images/green/lineBoardListTh.gif) no-repeat left bottom;white-space:nowrap;}
/* account Navigation */
#blogAccountNavigation li.join a { background:url(../images/green/iconMyInfo.gif) no-repeat left top; padding-left:14px; }
#blogAccountNavigation li.myInfo a { background:url(../images/green/iconMyInfo.gif) no-repeat left top; padding-left:14px; }
.blogList td.recommend { font:bold .8em Tahoma; color:#38b549; text-align:center;}
/* blog Information */
.articleNum { float:left; background:url(../images/green/iconArticle.gif) no-repeat left top; }
.articleNum strong { font:bold 11px Tahoma; color:#ff6600;}
.pageNavigation .current { position:relative; margin-left:-4px; font:bold 1em Tahoma; color:#38b549; display:inline-block; padding:1px 7px 1px 6px; border-left:1px solid #dedfde; border-right:1px solid #CCCCCC; text-decoration:none; line-height:1em; }
/* style.list */
.blogList th { background:#ffffff url(../images/green/lineBlogListTh.gif) no-repeat left bottom; }
.blogList td.recommend { color:#38b549; }
.blogList td .replyAndTrackback { color:#38b549; }
.buttonTypeGo { background:url(../images/green/buttonTypeInput24.gif) no-repeat; }
.blogList td .replyAndTrackback { font:.8em Tahoma; color:#38b549; cursor:default; position:relative; top:-.2em;}
.blogList td.title.bold .replyAndTrackback { font:.6em Tahoma; color:#ff6600; cursor:default; position:relative; top:.3em;}
.blogList td.reply { font:bold .8em Tahoma; color:#38b549; text-align:center;}
/* pageNavigation */
.pageNavigation .current { color:#38b549; border-right:1px solid #CCCCCC; }
/* blogHeader */
.blogHeader { position:relative; _width:100%; border-top:1px solid #d1d9db; border-bottom:none; background:#ffffff url(../images/common/bgH3.gif) no-repeat right bottom; overflow:hidden;}
.blogHeader h3 { float:left; clear:both; font-size:1.2em; padding:1em 2em .7em 1.2em; border-left:1px solid #d0dbd1; border-bottom:3px solid #38b549; background:url(../images/common/lineH3.gif) no-repeat right bottom;}
/* blogRead */
.blogRead .readFooter .fileAttached li a { background:url(../images/green/iconFile.gif) no-repeat left top;}
.articleNum strong { font:bold 11px Tahoma; color:#d0dbd1;}
.blogHeader2 .info strong { font:bold .9em Tahoma; color:#d0dbd1;}
.blogRead .replyAndTrackback { overflow:hidden; _width:100%; padding:.8em 0em; height:1.2em; background:url(../images/green/bgBoardListTh.gif) repeat-x left bottom; border-top:1px solid #bdd4b8; border-bottom:2px solid #38b549;}
.blogRead .replyAndTrackback a strong { color:#38b549;}
.buttonTypeGo { border:none; cursor:pointer; width:24px; height:20px; background:url(../images/green/buttonTypeInput24.gif) no-repeat; font:.75em Tahoma; text-align:center;}
/* replyAndTrackback */
.replyAndTrackback { background:url(../images/green/bgBlogListTh.gif) repeat-x left 0px; }
.replyAndTrackback a strong { color:#38b549;}
.replyBox .fileAttached li { border:0px; display:inline; margin-right:.75em; line-height:1.5em; padding:.1em 0 .1em 1.5em; background:url(../images/green/iconFile.gif) no-repeat left;}

View file

@ -26,17 +26,16 @@ a { text-decoration:none; }
#bodyWrap #accountNavigation { float:right; margin:1em 1em 0 0; padding-bottom:.5em; overflow:hidden;}
#bodyWrap #accountNavigation li a { display:block; float:left; padding:0 .75em; color:#888888; white-space:nowrap;}
.accountNavigation { float:right; padding-bottom:.5em; overflow:hidden;}
.accountNavigation li { float:left; padding:0 .5em 0 .6em; background:url(../images/common/line_1x10_e0e0e0.gif) no-repeat left .4em;}
.accountNavigation li a { font-size:11px; white-space:nowrap; color:#666666;}
.accountNavigation li.rss { background:none; padding-top:.4em;}
.accountNavigation li.join { background:none; padding-top:.4em;}
.accountNavigation li.join a { display:block; background:url(../images/common/iconMyInfo.gif) no-repeat left .1em; padding:0 0 0 1.2em;}
.accountNavigation li.myInfo { padding-top:.4em;}
.accountNavigation li.myInfo a { display:block; background:url(../images/common/iconMyInfo.gif) no-repeat left .1em; padding:0 0 0 1.2em;}
.accountNavigation li.admin { background:none; padding-top:.4em;}
.accountNavigation li.admin a { display:block; background:url(../images/common/iconAdmin.gif) no-repeat left .1em; padding:0 0 0 1.2em;}
.accountNavigation li.loginAndLogout { background:none; padding-left:0;}
/* account Navigation */
#blogAccountNavigation { float:right; margin:1em; }
#blogAccountNavigation li { float:left; margin-left:7px; list-style:none; padding-top:3px;}
#blogAccountNavigation li a { font-size:12px; white-space:nowrap; color:#666666; text-decoration:none;}
#blogAccountNavigation li.setup a { background:url(../images/common/iconSetup.gif) no-repeat left top; padding-left:14px; }
#blogAccountNavigation li.admin a { background:url(../images/common/iconAdmin.gif) no-repeat left top; padding-left:12px; }
#blogAccountNavigation li.listType { margin-left:5px; }
#blogAccountNavigation li.loginAndLogout { background:url(../images/common/line_1x10_e0e0e0.gif) no-repeat left 5px; padding-left:8px; _padding-top:5px;}
#blogAccountNavigation li.write a { background:url(../images/common/iconWrite.gif) no-repeat left center; padding-left:14px;}
*:first-child+html #blogAccountNavigation li.loginAndLogout { padding-top:5px; }
/* Blog header Child*/
#bodyWrap #header h1 { font-size:2em; padding:.8em 0 .2em 30px; letter-spacing:-.05em;}
@ -67,12 +66,6 @@ div#profile dl#hello dt { color:#333333; margin-bottom:.2em;}
div#profile dl#hello dt a { color:#333333;}
div#profile dl#hello dd { color:#777777; margin-bottom:1em;}
div#profile ul#admin { overflow:hidden; height:1.2em;}
div#profile ul#admin li { float:left; padding-right:.6em;}
div#profile ul#admin li a { display:block; padding-left:1.2em;}
div#profile ul#admin li.write a { background:url(../images/common/iconWrite.gif) no-repeat left center;}
div#profile ul#admin li.setup { padding-left:.7em; background:url(../images/common/blogHeaderVr.gif) no-repeat left center;}
div#profile ul#admin li.setup a { background:url(../images/common/iconSetup.gif) no-repeat left center;}
div#profile ul#admin li a { color:#666666;}
div#blog_category { background-color:#FFFFFF; }

View file

@ -1,8 +1,8 @@
@charset "utf-8";
/*
NHN UIT Lab. WebStandardization Team (http://html.nhndesign.com/)
Jeong, Chan Myeong 070601~070630
*/
/* blog Title */
.blogHeader { position:relative; _width:100%; border-top:1px solid #d1d9db; border-bottom:none; background:#ffffff url(../images/common/bgH3.gif) no-repeat right bottom; overflow:hidden;}
.blogHeader h3 { float:left; clear:both; font-size:1.2em; padding:1em 2em .7em 1.2em; border-left:1px solid #d1d9db; border-bottom:3px solid #ac19a9; background:url(../images/common/lineH3.gif) no-repeat right bottom;}
#blog_category { position:relative; border:1px solid #e0e1db; background:url(../images/purple/bgBoxTypeB.gif) repeat-x left top; margin-bottom:.7em; }
.boxTypeB { position:relative; border:1px solid #e0e1db; background:url(../images/purple/bgBoxTypeB.gif) repeat-x left top; margin-bottom:.7em;}
@ -11,30 +11,27 @@ Jeong, Chan Myeong 070601~070630
#bodyWrap #accountNavigation li { float:left; margin-right:-1px; background:url(../images/purple/blogHeaderVr.gif) no-repeat right center;}
#bodyWrap #header { clear:both; height:9.5em; margin:10px 10px .5em 10px; border:1px solid #e0e1dc; border-bottom:none; background:#fbfbfb url(../images/purple/blogHeaderLine.gif) no-repeat left bottom; overflow:hidden;}
.articleNum { float:left; background:url(../images/purple/iconArticle.gif) no-repeat left top; padding:0 0 0 1.5em; margin:.5em 0 0 0;}
#reply li .fileAttached li { border:0px; display:inline; margin-right:.75em; line-height:1.5em; padding:.1em 0 .1em 1.5em; background:url(../images/purple/iconFile.gif) no-repeat left;}
.blogRead .readFooter .fileAttached li a { font-size:.9em; padding:.1em 0 .1em 1.5em; white-space:nowrap; color:#444444; background:url(../images/purple/iconFile.gif) no-repeat left top;}
.accountNavigation li.join a { display:block; background:url(../images/purple/iconMyInfo.gif) no-repeat left .1em; padding:0 0 0 1.2em;}
.accountNavigation li.myInfo a { display:block; background:url(../images/purple/iconMyInfo.gif) no-repeat left .1em; padding:0 0 0 1.2em;}
.blogList th { color:#3e3f3e; font-weight:normal; border-bottom:1px solid #ffffff; padding:.5em .5em .3em .5em; background:#ffffff url(../images/purple/lineBoardListTh.gif) no-repeat left bottom;white-space:nowrap;}
.blogList td.recommend { font:bold .8em Tahoma; color:#b1ae00; text-align:center;}
.pageNavigation .current { position:relative; margin-left:-4px; font:bold 1em Tahoma; color:#b1ae00; display:inline-block; padding:1px 7px 1px 6px; border-left:1px solid #dedfde; border-right:1px solid #CCCCCC; text-decoration:none; line-height:1em; }
.blogList td .replyAndTrackback { font:.8em Tahoma; color:#b1ae00; cursor:default; position:relative; top:-.2em;}
.blogList td.title.bold .replyAndTrackback { font:.6em Tahoma; color:#b1ae00; cursor:default; position:relative; top:.3em;}
.blogList td.reply { font:bold .8em Tahoma; color:#b1ae00; text-align:center;}
/* blogHeader */
.blogHeader { position:relative; _width:100%; border-top:1px solid #d1d9db; border-bottom:none; background:#ffffff url(../images/common/bgH3.gif) no-repeat right bottom; overflow:hidden;}
.blogHeader h3 { float:left; clear:both; font-size:1.2em; padding:1em 2em .7em 1.2em; border-left:1px solid #d1d9db; border-bottom:3px solid #ac19a9; background:url(../images/common/lineH3.gif) no-repeat right bottom;}
/* account Navigation */
#blogAccountNavigation li.join a { background:url(../images/purple/iconMyInfo.gif) no-repeat left top; padding-left:14px; }
#blogAccountNavigation li.myInfo a { background:url(../images/purple/iconMyInfo.gif) no-repeat left top; padding-left:14px; }
/* blog Information */
.articleNum { float:left; background:url(../images/purple/iconArticle.gif) no-repeat left top; }
.articleNum strong { font:bold 11px Tahoma; color:#b1ae00;}
.blogHeader2 .info strong { font:bold .9em Tahoma; color:#b1ae00;}
.blogRead .replyAndTrackback { overflow:hidden; _width:100%; padding:.8em 0em; height:1.2em; background:url(../images/purple/bgBoardListTh.gif) repeat-x left bottom; border-top:1px solid #dbc9db; border-bottom:2px solid #ac19a9;}
.blogRead .replyAndTrackback a strong { color:#b1ae00;}
/* style.list */
.blogList th { background:#ffffff url(../images/purple/lineBlogListTh.gif) no-repeat left bottom; }
.blogList td.recommend { color:#b1ae00; }
.blogList td .replyAndTrackback { color:#b1ae00; }
.buttonTypeGo { background:url(../images/purple/buttonTypeInput24.gif) no-repeat; }
.buttonTypeGo { border:none; cursor:pointer; width:24px; height:20px; background:url(../images/purple/buttonTypeInput24.gif) no-repeat; font:.75em Tahoma; text-align:center;}
/* pageNavigation */
.pageNavigation .current { color:#b1ae00; border-right:1px solid #CCCCCC; }
/* blogRead */
.blogRead .readFooter .fileAttached li a { background:url(../images/purple/iconFile.gif) no-repeat left top;}
/* replyAndTrackback */
.replyAndTrackback { background:url(../images/purple/bgBlogListTh.gif) repeat-x left 0px; }
.replyAndTrackback a strong { color:#b1ae00;}
.replyBox .fileAttached li { border:0px; display:inline; margin-right:.75em; line-height:1.5em; padding:.1em 0 .1em 1.5em; background:url(../images/purple/iconFile.gif) no-repeat left;}

View file

@ -1,8 +1,8 @@
@charset "utf-8";
/*
NHN UIT Lab. WebStandardization Team (http://html.nhndesign.com/)
Jeong, Chan Myeong 070601~070630
*/
/* blog Title */
.blogHeader { position:relative; _width:100%; border-top:1px solid #d1d9db; border-bottom:none; background:#ffffff url(../images/common/bgH3.gif) no-repeat right bottom; overflow:hidden;}
.blogHeader h3 { float:left; clear:both; font-size:1.2em; padding:1em 2em .7em 1.2em; border-left:1px solid #d1d9db; border-bottom:3px solid #ed135a; background:url(../images/common/lineH3.gif) no-repeat right bottom;}
#blog_category { position:relative; border:1px solid #e0e1db; background:url(../images/red/bgBoxTypeB.gif) repeat-x left top; margin-bottom:.7em; }
.boxTypeB { position:relative; border:1px solid #e0e1db; background:url(../images/red/bgBoxTypeB.gif) repeat-x left top; margin-bottom:.7em;}
@ -11,30 +11,27 @@ Jeong, Chan Myeong 070601~070630
#bodyWrap #accountNavigation li { float:left; margin-right:-1px; background:url(../images/red/blogHeaderVr.gif) no-repeat right center;}
#bodyWrap #header { clear:both; height:9.5em; margin:10px 10px .5em 10px; border:1px solid #e0e1dc; border-bottom:none; background:#fbfbfb url(../images/red/blogHeaderLine.gif) no-repeat left bottom; overflow:hidden;}
.articleNum { float:left; background:url(../images/red/iconArticle.gif) no-repeat left top; padding:0 0 0 1.5em; margin:.5em 0 0 0;}
#reply li .fileAttached li { border:0px; display:inline; margin-right:.75em; line-height:1.5em; padding:.1em 0 .1em 1.5em; background:url(../images/red/iconFile.gif) no-repeat left;}
.blogRead .readFooter .fileAttached li a { font-size:.9em; padding:.1em 0 .1em 1.5em; white-space:nowrap; color:#444444; background:url(../images/red/iconFile.gif) no-repeat left top;}
.accountNavigation li.join a { display:block; background:url(../images/red/iconMyInfo.gif) no-repeat left .1em; padding:0 0 0 1.2em;}
.accountNavigation li.myInfo a { display:block; background:url(../images/red/iconMyInfo.gif) no-repeat left .1em; padding:0 0 0 1.2em;}
.blogList th { color:#3e3f3e; font-weight:normal; border-bottom:1px solid #ffffff; padding:.5em .5em .3em .5em; background:#ffffff url(../images/red/lineBoardListTh.gif) no-repeat left bottom; white-space:nowrap;}
.blogList td.recommend { font:bold .8em Tahoma; color:#ff6600; text-align:center;}
.pageNavigation .current { position:relative; margin-left:-4px; font:bold 1em Tahoma; color:#ff6600; display:inline-block; padding:1px 7px 1px 6px; border-left:1px solid #dedfde; border-right:1px solid #CCCCCC; text-decoration:none; line-height:1em; }
.blogList td .replyAndTrackback { font:.8em Tahoma; color:#ff6600; cursor:default; position:relative; top:-.2em;}
.blogList td.title.bold .replyAndTrackback { font:.6em Tahoma; color:#ff6600; cursor:default; position:relative; top:.3em;}
.blogList td.reply { font:bold .8em Tahoma; color:#ff6600; text-align:center;}
/* blogHeader */
.blogHeader { position:relative; _width:100%; border-top:1px solid #d1d9db; border-bottom:none; background:#ffffff url(../images/common/bgH3.gif) no-repeat right bottom; overflow:hidden;}
.blogHeader h3 { float:left; clear:both; font-size:1.2em; padding:1em 2em .7em 1.2em; border-left:1px solid #d1d9db; border-bottom:3px solid #ed135a; background:url(../images/common/lineH3.gif) no-repeat right bottom;}
/* account Navigation */
#blogAccountNavigation li.join a { background:url(../images/red/iconMyInfo.gif) no-repeat left top; padding-left:14px; }
#blogAccountNavigation li.myInfo a { background:url(../images/red/iconMyInfo.gif) no-repeat left top; padding-left:14px; }
/* blog Information */
.articleNum { float:left; background:url(../images/red/iconArticle.gif) no-repeat left top; }
.articleNum strong { font:bold 11px Tahoma; color:#ff6600;}
.blogHeader2 .info strong { font:bold .9em Tahoma; color:#ff6600;}
.blogRead .replyAndTrackback { overflow:hidden; _width:100%; padding:.8em 0em; height:1.2em; background:url(../images/red/bgBoardListTh.gif) repeat-x left bottom; border-top:1px solid #e0e1db; border-bottom:2px solid #ed135a;}
.blogRead .replyAndTrackback a strong { color:#ff6600;}
/* style.list */
.blogList th { background:#ffffff url(../images/red/lineBlogListTh.gif) no-repeat left bottom; }
.blogList td.recommend { color:#ff6600; }
.blogList td .replyAndTrackback { color:#ff6600; }
.buttonTypeGo { background:url(../images/red/buttonTypeInput24.gif) no-repeat; }
.buttonTypeGo { border:none; cursor:pointer; width:24px; height:20px; background:url(../images/red/buttonTypeInput24.gif) no-repeat; font:.75em Tahoma; text-align:center;}
/* pageNavigation */
.pageNavigation .current { color:#ff6600; border-right:1px solid #CCCCCC; }
/* blogRead */
.blogRead .readFooter .fileAttached li a { background:url(../images/red/iconFile.gif) no-repeat left top;}
/* replyAndTrackback */
.replyAndTrackback { background:url(../images/red/bgBlogListTh.gif) repeat-x left 0px; }
.replyAndTrackback a strong { color:#ff6600;}
.replyBox .fileAttached li { border:0px; display:inline; margin-right:.75em; line-height:1.5em; padding:.1em 0 .1em 1.5em; background:url(../images/red/iconFile.gif) no-repeat left;}

View file

@ -1,8 +1,8 @@
@charset "utf-8";
/*
NHN UIT Lab. WebStandardization Team (http://html.nhndesign.com/)
Jeong, Chan Myeong 070601~070630
*/
/* blog Title */
.blogHeader { position:relative; _width:100%; border:1px solid #e1e1dd; border-bottom:none; background:#ffffff url(../images/common/bgH3.gif) repeat-x left bottom; overflow:hidden;}
.blogHeader h3 { float:left; clear:both; font-size:1.2em; padding:1em 2em .7em 1.2em; border-bottom:3px solid #fe3614; background:#ffffff url(../images/common/lineH3.gif) no-repeat right bottom;}
#blog_category { position:relative; border:1px solid #e0e1db; background:url(../images/white/bgBoxTypeB.gif) repeat-x left top; margin-bottom:.7em; }
.boxTypeB { position:relative; border:1px solid #e0e1db; background:url(../images/white/bgBoxTypeB.gif) repeat-x left top; margin-bottom:.7em;}
@ -11,29 +11,27 @@ Jeong, Chan Myeong 070601~070630
#bodyWrap #accountNavigation li { float:left; margin-right:-1px; background:url(../images/white/blogHeaderVr.gif) no-repeat right center;}
#bodyWrap #header { clear:both; height:9.5em; margin:10px 10px .5em 10px; border:1px solid #e0e1dc; border-bottom:none; background:#fbfbfb url(../images/white/blogHeaderLine.gif) no-repeat left bottom; overflow:hidden;}
.articleNum { float:left; background:url(../images/white/iconArticle.gif) no-repeat left top; padding:0 0 0 1.5em; margin:.5em 0 0 0;}
#reply li .fileAttached li { border:0px; display:inline; margin-right:.75em; line-height:1.5em; padding:.1em 0 .1em 1.5em; background:url(../images/white/iconFile.gif) no-repeat left;}
.blogRead .readFooter .fileAttached li a { font-size:.9em; padding:.1em 0 .1em 1.5em; white-space:nowrap; color:#444444; background:url(../images/white/iconFile.gif) no-repeat left top;}
.accountNavigation li.join a { display:block; background:url(../images/white/iconMyInfo.gif) no-repeat left .1em; padding:0 0 0 1.2em;}
.accountNavigation li.myInfo a { display:block; background:url(../images/white/iconMyInfo.gif) no-repeat left .1em; padding:0 0 0 1.2em;}
.blogList th { color:#3e3f3e; font-weight:normal; border-bottom:1px solid #ffffff; padding:.5em .5em .3em .5em; background:#ffffff url(../images/white/lineBoardListTh.gif) no-repeat left bottom;white-space:nowrap;}
.blogList td.recommend { font:bold .8em Tahoma; color:#ff6600; text-align:center;}
.pageNavigation .current { position:relative; margin-left:-4px; font:bold 1em Tahoma; color:#ff6600; display:inline-block; padding:1px 7px 1px 6px; border-left:1px solid #dedfde; border-right:1px solid #CCCCCC; text-decoration:none; line-height:1em; }
.blogList td .replyAndTrackback { font:.8em Tahoma; color:#ff6600; position:relative; top:-.2em;}
.blogList td.title.bold .replyAndTrackback { font:.6em Tahoma; color:#ff6600; position:relative; top:.3em;}
.blogList td.reply { font:bold .8em Tahoma; color:#ff6600; text-align:center;}
/* blogHeader */
.blogHeader { position:relative; _width:100%; border:1px solid #e1e1dd; border-bottom:none; background:#ffffff url(../images/common/bgH3.gif) repeat-x left bottom; overflow:hidden;}
.blogHeader h3 { float:left; clear:both; font-size:1.2em; padding:1em 2em .7em 1.2em; border-bottom:3px solid #fe3614; background:#ffffff url(../images/common/lineH3.gif) no-repeat right bottom;}
/* account Navigation */
#blogAccountNavigation li.join a { background:url(../images/white/iconMyInfo.gif) no-repeat left top; padding-left:14px; }
#blogAccountNavigation li.myInfo a { background:url(../images/white/iconMyInfo.gif) no-repeat left top; padding-left:14px; }
/* blog Information */
.articleNum { float:left; background:url(../images/white/iconArticle.gif) no-repeat left top; }
.articleNum strong { font:bold 11px Tahoma; color:#ff6600;}
.blogHeader2 .info strong { font:bold .9em Tahoma; color:#ff6600;}
.blogRead .replyAndTrackback { overflow:hidden; _width:100%; padding:.8em 0em; height:1.2em; background:url(../images/white/bgBoardListTh.gif) repeat-x left bottom; border-top:1px solid #e0e1db; border-bottom:2px solid #666760;}
.blogRead .replyAndTrackback a strong { color:#ff6600;}
/* style.list */
.blogList th { background:#ffffff url(../images/white/lineBlogListTh.gif) no-repeat left bottom; }
.blogList td.recommend { color:#ff6600; }
.blogList td .replyAndTrackback { color:#ff6600; }
.buttonTypeGo { background:url(../images/white/buttonTypeInput24.gif) no-repeat; }
.buttonTypeGo { border:none; cursor:pointer; width:24px; height:20px; background:url(../images/white/buttonTypeInput24.gif) no-repeat; font:.75em Tahoma; text-align:center;}
/* pageNavigation */
.pageNavigation .current { color:#ff6600; border-right:1px solid #CCCCCC; }
/* blogRead */
.blogRead .readFooter .fileAttached li a { background:url(../images/white/iconFile.gif) no-repeat left top;}
/* replyAndTrackback */
.replyAndTrackback { background:url(../images/white/bgBlogListTh.gif) repeat-x left 0px; }
.replyAndTrackback a strong { color:#ff6600;}
.replyBox .fileAttached li { border:0px; display:inline; margin-right:.75em; line-height:1.5em; padding:.1em 0 .1em 1.5em; background:url(../images/white/iconFile.gif) no-repeat left;}

View file

@ -10,12 +10,12 @@
<form action="./" method="get" onsubmit="return procFilter(this, delete_comment)">
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="page" value="{$page}" />
<input type="hidden" name="document_srl" value="{$document_srl}" />
<input type="hidden" name="comment_srl" value="{$comment_srl}" />
<input type="hidden" name="document_srl" value="{$oComment->get('document_srl')}" />
<input type="hidden" name="comment_srl" value="{$oComment->get('comment_srl')}" />
<div class="inputPassword tCenter gap1">
<div class="inputPassword tCenter">
<span class="button"><input type="submit" value="{$lang->cmd_delete}" accesskey="s" /></span>
<a href="{getUrl('act','')}" class="button"><span>{$lang->cmd_cancel}</span></a>
<a href="{getUrl('act','','comment_srl','')}" class="button"><span>{$lang->cmd_cancel}</span></a>
</div>
</form>

View file

@ -12,7 +12,7 @@
<input type="hidden" name="page" value="{$page}" />
<input type="hidden" name="document_srl" value="{$document_srl}" />
<div class="inputPassword tCenter gap1">
<div class="inputPassword tCenter">
<span class="button"><input type="submit" value="{$lang->cmd_delete}" accesskey="s" /></span>
<a href="{getUrl('act','')}" class="button"><span>{$lang->cmd_cancel}</span></a>
</div>

View file

@ -0,0 +1,65 @@
<!-- 이 파일은 extra_vars의 form을 출력하는 파일이며 다른 스킨에서 그대로 가져가서 css만 바꾸어 주면 된다 -->
<!-- type=select,checkbox이고 기본값이 , 로 연결되어 있으면 , 를 기준으로 explode하여 배열로 만든다 -->
<!--@if(in_array($val->type,array('select','checkbox'))&&strpos($val->default,",")!==false)-->
{@ $val->default = explode(',',$val->default) }
<!--@end-->
<!-- 확장변수의 이름을 지정 -->
{@ $val->column_name = "extra_vars".$key}
<!-- 확장변수의 값을 documentItem::getExtraValue로 가져옴 -->
{@ $val->value = $oDocument->getExtraValue($key)}
<!-- 일반 text -->
<!--@if($val->type == 'text')-->
<input type="text" name="{$val->column_name}" value="{htmlspecialchars($val->value)}" class="inputTypeText w400" />
<!-- 홈페이지 주소 -->
<!--@elseif($val->type == 'homepage')-->
<input type="text" name="{$val->column_name}" value="{htmlspecialchars($val->value)}" class="inputTypeText w400" />
<!-- Email 주소 -->
<!--@elseif($val->type == 'email_address')-->
<input type="text" name="{$val->column_name}" value="{htmlspecialchars($val->value)}" class="inputTypeText w400" />
<!-- 전화번호 -->
<!--@elseif($val->type == 'tel')-->
<input type="text" name="{$val->column_name}" value="{htmlspecialchars($val->value[0])}" size="4" class="inputTypeText" />
<input type="text" name="{$val->column_name}" value="{htmlspecialchars($val->value[1])}" size="4" class="inputTypeText" />
<input type="text" name="{$val->column_name}" value="{htmlspecialchars($val->value[2])}" size="4" class="inputTypeText" />
<!-- textarea -->
<!--@elseif($val->type == 'textarea')-->
<textarea name="{$val->column_name}" class="inputTypeTextArea w400">{htmlspecialchars($val->value)}</textarea>
<!-- 다중 선택 -->
<!--@elseif($val->type == 'checkbox')-->
<!--@if($val->default)-->
<ul style="list-style:none;">
<!--@foreach($val->default as $v)-->
<li><input type="checkbox" name="{$val->column_name}" value="{$v}" <!--@if(is_array($val->value)&&in_array($v, $val->value))-->checked="checked"<!--@end-->/> {$v}</li>
<!--@end-->
</ul>
<!--@end-->
<!-- 단일 선택 -->
<!--@elseif($val->type == 'select')-->
<select name="{$val->column_name}">
<!--@if($val->default)-->
<!--@foreach($val->default as $v)-->
<option value="{$v}" <!--@if($v == $val->value)-->selected="selected"<!--@end-->>{$v}</option>
<!--@end-->
<!--@end-->
</select>
<!-- 날짜 입력 -->
<!--@elseif($val->type == 'date')-->
<input type="hidden" name="{$val->column_name}" id="date_{$val->column_name}" value="{$val->value}" />
<div class="fl inputTypeText w80" id="str_{$val->column_name}">{zdate($val->value,"Y-m-d")}</div>
<a href="#" onclick="open_calendar('{$val->column_name}','{$val->value}');return false;" class="button"><span>{$lang->cmd_open_calendar}</span></a>
<!--@end-->
<!--@if($val->desc)-->
<p class="info">{$val->desc}</p>
<!--@end-->

View file

@ -0,0 +1,57 @@
<!-- 이 파일은 extra_vars의 결과값을 출력하는 파일이며 다른 스킨에서 그대로 가져가서 css만 바꾸어 주면 된다 -->
<!-- 확장변수의 이름을 지정 -->
{@ $val->column_name = "extra_vars".$key}
<!-- 확장변수의 값을 documentItem::getExtraValue로 가져옴 -->
{@ $val->value = $oDocument->getExtraValue($key)}
<!-- 일반 text -->
<!--@if($val->type == 'text')-->
{htmlspecialchars($val->value)}
<!-- 홈페이지 주소 -->
<!--@elseif($val->type == 'homepage')-->
<!--@if($val->value)-->
<a href="{htmlspecialchars($val->value)}" onclick="window.open(this.href);return false;">{$val->value}</a>
<!--@else-->
&nbsp;
<!--@end-->
<!-- Email 주소 -->
<!--@elseif($val->type == 'email_address')-->
<!--@if($val->value)-->
<a href="mailto:{htmlspecialchars($val->value)}">{$val->value}</a>
<!--@else-->
&nbsp;
<!--@end-->
<!-- 전화번호 -->
<!--@elseif($val->type == 'tel')-->
{htmlspecialchars($val->value[0])}
<!--@if($val->value[1])-->-<!--@end-->
{htmlspecialchars($val->value[1])}
<!--@if($val->value[2])-->-<!--@end-->
{htmlspecialchars($val->value[2])}
<!-- textarea -->
<!--@elseif($val->type == 'textarea')-->
{nl2br(htmlspecialchars($val->value))}
<!-- 다중 선택 -->
<!--@elseif($val->type == 'checkbox')-->
<!--@foreach($val->value as $v)-->
{@ $_tmp_value[] = htmlspecialchars($v)}
<!--@end-->
{implode(",",$_tmp_value)}
<!-- 단일 선택 -->
<!--@elseif($val->type == 'select')-->
{htmlspecialchars($val->value)}
<!-- 날짜 입력 -->
<!--@elseif($val->type == 'date')-->
{zdate($val->value,"Y-m-d")}
<!--@end-->
<!--@if(!$val->value)-->&nbsp;<!--@end-->

View file

@ -1 +0,0 @@
{$module_info->footer_text}

View file

@ -1,2 +0,0 @@
{$module_info->header_text}

View file

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 43 B

After

Width:  |  Height:  |  Size: 43 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 B

After

Width:  |  Height:  |  Size: 101 B

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 306 B

After

Width:  |  Height:  |  Size: 321 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 567 B

After

Width:  |  Height:  |  Size: 988 B

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 5 KiB

After

Width:  |  Height:  |  Size: 5 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 B

View file

Before

Width:  |  Height:  |  Size: 204 B

After

Width:  |  Height:  |  Size: 204 B

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 3 KiB

After

Width:  |  Height:  |  Size: 3 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 197 B

After

Width:  |  Height:  |  Size: 197 B

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 567 B

View file

Before

Width:  |  Height:  |  Size: 197 B

After

Width:  |  Height:  |  Size: 197 B

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 197 B

After

Width:  |  Height:  |  Size: 197 B

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 197 B

After

Width:  |  Height:  |  Size: 197 B

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Before After
Before After

View file

@ -1,7 +1,7 @@
<!--%import("filter/input_password.xml")-->
<!--@if(!$form_include)--><!--#include("header.html")--><!--@end-->
<div class="smallBox w268">
<div class="smallBox w400">
<div class="header">
<h3>{$lang->msg_input_password}</h3>
@ -13,18 +13,14 @@
<input type="hidden" name="document_srl" value="{$document_srl}" />
<input type="hidden" name="comment_srl" value="{$comment_srl}" />
<div class="inputPassword tCenter">
<div class="inputPassword">
<input type="password" name="password" id="cpw" class="inputTypeText" />
<div class="tCenter gap1">
<span class="button"><input type="submit" value="{$lang->cmd_input}" accesskey="s" /></span>
<a href="{getUrl('act','')}" class="button"><span>{$lang->cmd_cancel}</span></a>
</div>
<span class="button"><input type="submit" value="{$lang->cmd_input}" accesskey="s" /></span>
<a href="{getUrl('act','')}" class="button"><span>{$lang->cmd_cancel}</span></a>
</div>
</form>
</div>
<!--@if(!$form_include)--><!--#include("footer.html")--><!--@end-->

View file

@ -13,16 +13,6 @@ var blog_tree_menu_folder_list = new Array();
// 노드의 정보를 가지고 있을 변수
var blog_node_info_list = new Array();
// 카테고리별 문서 수를 가지고 있는 전역 변수
var category_document_count = new Array();
var total_document_count = 0;
// 카테고리의 문서 갯수를 세팅하는 함수
function setDocumentCount(node_srl, document_count) {
category_document_count[node_srl] = document_count;
total_document_count += document_count;
}
// 카테고리의 node_srl로 문서 갯수를 리턴하는 함수
function getDocumentCount(node_srl) {
return parseInt(category_document_count[node_srl],10);
@ -60,6 +50,7 @@ function blogDrawTreeMenu(oXml, callback_func, resopnse_tags, null_func, param)
var zone = xGetElementById("blog_category");
var html = "";
var document_count = 0;
// 받아온 xml내용을 이용하여 트리 메뉴 그림
var xmlDoc = oXml.getResponseXml();
@ -74,13 +65,14 @@ function blogDrawTreeMenu(oXml, callback_func, resopnse_tags, null_func, param)
var root = xmlDoc.getElementsByTagName("root")[0];
var output = blogDrawNode(root,0);
html += output.html;
document_count += parseInt(output.document_count,10);
}
// 제목 지정
var title_class = "selected";
if(blog_menu_selected) title_class = "unselected";
var title_html = '<div class="title_box"><span class="'+title_class+'" id="blog_title" onclick="location.href=\''+index_url+'\';return false;" >'+title+'</span> <span class="document_count">';
if(total_document_count) title_html += '('+total_document_count+')';
if(document_count) title_html += '('+document_count+')';
html = title_html+'</span></div><div class="category_list">'+html+'</div>';
// 출력하려는 zone이 없다면 load후에 출력하도록 함
@ -102,7 +94,7 @@ function blogDrawTeeMenu(html) {
// root부터 시작해서 recursive하게 노드를 표혐
function blogDrawNode(parent_node, depth) {
var output = {html:"", expand:"N"}
var output = {html:"", expand:"N", document_count:0}
for (var i=0; i< parent_node.childNodes.length; i++) {
var html = "";
@ -117,6 +109,7 @@ function blogDrawNode(parent_node, depth) {
var text = node.getAttribute("text");
var url = node.getAttribute("url");
var expand = node.getAttribute("expand");
var document_count = parseInt(node.getAttribute("document_count"),10);
if(!text) continue;
// 자식 노드가 있는지 확인
@ -161,6 +154,7 @@ function blogDrawNode(parent_node, depth) {
var chtml = child_output.html;
var cexpand = child_output.expand;
if(cexpand == "Y") expand = "Y";
document_count += parseInt(child_output.document_count,10);
// 무조건 펼침이 아닐 경우
if(expand!="Y") {
@ -223,11 +217,10 @@ function blogDrawNode(parent_node, depth) {
if(selected) text_class = "selected";
var document_count_text = "";
var document_count = getDocumentCount(node_srl);
if(document_count>0) document_count_text = '<span class="document_count">('+document_count+')</span>';
if(document_count) document_count_text = '<span class="document_count">('+document_count+')</span>';
// 왼쪽 폴더/페이지와 텍스트 위치를 맞추기 위해;;; table태그 일단 사용. 차후 바꾸자..
html += '<div id="'+zone_id+'" class="node_item">'+
html += '<div id="'+zone_id+'" class="node_item" style="overflow:hidden;white-space:nowrap;">'+
'<div id="'+zone_id+'_line" class="'+line_class+'">'+
'<table border="0" cellspacing="0" cellpadding="0"><tr><td height="19"><img src="'+request_uri+'/common/tpl/images/blank.gif" width="18" height="18" alt="" id="'+zone_id+'_folder" '+click_str+' /></td>'+
'<td><a href="#" id="'+zone_id+'_node" class="'+text_class+'" onclick="blogSelectNode(\''+url+'\');return false;">'+text+'</a>'+document_count_text+'</td></tr></table>'+
@ -240,6 +233,8 @@ function blogDrawNode(parent_node, depth) {
output.html += html;
if(expand=="Y") output.expand = "Y";
output.document_count += parseInt(document_count,10);
}
return output;
}

View file

@ -1,24 +1,25 @@
<!-- 레이아웃과 연동될 css 파일 import -->
<!--%import("css/layout.css")-->
<!--%import("css/blog_tree_menu.css")-->
<!--%import("css/layout.css")-->
<!--%import("css/blog_tree_menu.css")-->
<!-- JS 파일 로드 -->
<!--%import("js/blog_tree_menu.js")-->
<!--%import("js/blog.js")-->
<!--%import("js/blog.js")-->
<!--%import("js/blog_tree_menu.js")-->
<!-- 컬러셋 체크 -->
<!--@if(!$layout_info->colorset)-->
{@$layout_info->colorset = "white"}
<!--@end-->
<!--@if(!$layout_info->colorset)-->
{@$layout_info->colorset = "white"}
<!--@end-->
<!-- CSS 파일 로드 (컬러셋에 따라서) -->
<!--%import("css/common.css")-->
<!--@if($layout_info->colorset == "cyan")--> <!--%import("css/cyan.css")-->
<!--@elseif($layout_info->colorset == "red")--> <!--%import("css/red.css")-->
<!--@elseif($layout_info->colorset == "green")--> <!--%import("css/green.css")-->
<!--@elseif($layout_info->colorset == "purple")--> <!--%import("css/purple.css")-->
<!--@else--> <!--%import("css/white.css")-->
<!--@end-->
<!--%import("css/common.css")-->
<!--@if($layout_info->colorset == "cyan")--> <!--%import("css/cyan.css")-->
<!--@elseif($layout_info->colorset == "red")--> <!--%import("css/red.css")-->
<!--@elseif($layout_info->colorset == "green")--> <!--%import("css/green.css")-->
<!--@elseif($layout_info->colorset == "purple")--> <!--%import("css/purple.css")-->
<!--@else--> <!--%import("css/white.css")-->
<!--@end-->
<!--@if($layout_info->background_image)-->
<style type="text/css">
@ -27,13 +28,12 @@
<!--@end-->
<script type="text/javascript">
// 블로그 카테고리의 글 갯수를 javascript변수로 설정
<!--@foreach($category_list as $key => $val)-->setDocumentCount({$key}, {(int)$val->document_count});<!--@end-->
// 블로그 카테고리를 js/blog_tree_menu.js를 이용해서 표시
blogLoadTreeMenu("{$layout_info->category_xml_file}", "{$layout_info->category_name?$layout_info->category_name:'categories'}", "{getUrl('','mid',$layout_info->mid)}");
</script>
<!-- 상단 텍스트 출력 -->
{$layout_info->header_text}
<div id="bodyWrap">
@ -41,25 +41,36 @@
<div id="header">
<!-- 회원 관련 기능 -->
<ul id="accountNavigation">
<!-- 비로그인 상태 -->
<ul id="blogAccountNavigation">
<!--@if(!$is_logged)-->
<li><a href="{getUrl('act','dispMemberSignUpForm')}">{$lang->cmd_signup}</a></li>
<li class="loginAndLogout"><a href="{getUrl('act','dispMemberLoginForm')}">{$lang->cmd_login}</a> </li>
<!-- 로그인 되었을 때 -->
<!--@else-->
<li><a href="{getUrl('act','dispMemberInfo')}">{$lang->cmd_view_member_info}</a></li>
<li class="loginAndLogout"><a href="{getUrl('act','dispMemberLogout')}">{$lang->cmd_logout}</a></li>
<!-- 비로그인 상태 -->
<li class="join"><a href="{getUrl('mid',$layout_info->mid,'act','dispMemberSignUpForm')}">{$lang->cmd_signup}</a></li>
<li class="loginAndLogout"><a href="{getUrl('act','dispMemberLoginForm')}">{$lang->cmd_login}</a></li>
<!--@if($logged_info->is_admin == 'Y')-->
<li class="loginAndLogout"><a href="{getUrl('','module','admin')}">{$lang->cmd_management}</a> </li>
<!--@else-->
<!-- 로그인 되었을 때 -->
<!-- 관리자이면 설정 버튼 출력 -->
<!--@if($grant->is_admin)-->
<li class="write"><a href="{getUrl('mid', $layout_info->mid, 'act','dispBlogWrite','document_srl','')}">{$lang->cmd_write}</a></li>
<li class="setup"><a href="{getUrl('mid',$layout_info->mid,'act','dispBlogAdminBlogInfo')}">{$lang->cmd_setup}</a></li>
<!--@end-->
<!-- 최고관리자이면 관리자 페이지 버튼 출력 -->
<!--@if($logged_info->is_admin == 'Y')-->
<li class="admin"><a href="{getUrl('','module','admin','act','dispBlogAdminContent')}" onclick="window.open(this.href); return false;">{$lang->cmd_management}</a></li>
<!--@end-->
<li class="myInfo"><a href="{getUrl('act','dispMemberInfo')}">{$lang->cmd_view_member_info}</a></li>
<li class="loginAndLogout"><a href="{getUrl('act','dispMemberLogout')}">{$lang->cmd_logout}</a></li>
<!--@end-->
<!--@if($rss_url)-->
<li class="rss"><a href="{$rss_url}"><img src="./images/common/iconRss.gif" alt="RSS" width="13" height="13" /></a></li>
<!--@end-->
<!-- RSS -->
<li class="rss"><a href="{getUrl('','mid',$layout_info->mid,'act','rss')}"><img src="./images/iconRss.gif" alt="RSS" width="12" height="12" /></a></li>
<li class="skin_info"><a href="{getUrl('','module','module','act','dispModuleSkinInfo','selected_module',$module_info->module, 'skin', $module_info->skin)}" onclick="popopen(this.href,'skinInfo'); return false;"><img src="./images/common/buttonHelp.gif" alt="Skin Info" width="13" height="13"/></a></li>
</ul>
@ -89,6 +100,7 @@
<div id="columnLeft">
<!-- 프로필 -->
<!--@if($layout_info->profile_image || $layout_info->profile)-->
<div id="profile" class="boxTypeA">
<!--@if($layout_info->profile_image)-->
<img src="{$layout_info->profile_image}" border="0" alt="my profile image" width="160" class="profile"/>
@ -99,56 +111,51 @@
<dl id="hello">
<dd>{$layout_info->profile}</dd>
</dl>
<!--@end-->
<!--@if($grant->is_admin)-->
<ul id="admin">
<li class="write"><a href="{getUrl('mid', $layout_info->mid, 'act','dispBlogWrite','document_srl','')}">{$lang->cmd_write}</a></li>
<li class="setup"><a href="{getUrl('mid', $layout_info->mid, 'act','dispBlogAdminBlogInfo')}">{$lang->cmd_setup}</a></li>
</ul>
<!--@end-->
</div>
<!-- 카테고리 출력 -->
<div id="blog_category"></div>
<!--@end-->
<!-- 검색폼 -->
<div id="searchBox">
<form action="{getUrl()}" method="post">
<input type="hidden" name="mid" value="{$layout_info->mid}" />
<input name="search_keyword" type="text" class="inputTypeText w100" value="<!--@if(!$search_target)-->{htmlspecialchars($search_keyword)}<!--@end-->" />
<span class="button"><input type="submit" value="{$lang->cmd_search}"/></span>
<input name="search_keyword" type="text" class="inputTypeText w140" value="<!--@if(!$search_target)-->{htmlspecialchars($search_keyword)}<!--@end-->" />
<input type="image" alt="search" src="./images/common/find_button.gif" width="21" height="21" align="absmiddle" />
</form>
</div>
<!-- 카테고리 출력 -->
<div id="blog_category"></div>
<!-- 왼쪽 위젯 출력 위치 -->
<!-- 최근문서 출력 -->
<img src="./common/tpl/images/blank.gif" class="zbxe_widget_output" widget="newest_document" skin="blog_newest_document" colorset="{$layout_info->colorset}" title="Recent Articles" order_target="list_order" order_type="desc" list_count="10" mid_list="{$layout_info->mid}" />
<img src="./images/common/blank.gif" class="zbxe_widget_output" widget="newest_document" skin="blog_newest_document" colorset="{$layout_info->colorset}" title="Recent Articles" order_target="list_order" order_type="desc" list_count="10" mid_list="{$layout_info->mid}" />
<!-- 최근댓글 출력 -->
<img src="./common/tpl/images/blank.gif" class="zbxe_widget_output" widget="newest_comment" skin="blog_newest_comment" colorset="{$layout_info->colorset}" title="Recent Comments" list_count="10" mid_list="{$layout_info->mid}" />
<img src="./images/common/blank.gif" class="zbxe_widget_output" widget="newest_comment" skin="blog_newest_comment" colorset="{$layout_info->colorset}" title="Recent Comments" list_count="10" mid_list="{$layout_info->mid}" />
<!-- 엮인글들 -->
<img src="./common/tpl/images/blank.gif" class="zbxe_widget_output" widget="newest_trackback" skin="blog_newest_trackback" colorset="{$layout_info->colorset}" title="Recent Trackbacks" list_count="5" mid_list="{$layout_info->mid}" />
<img src="./images/common/blank.gif" class="zbxe_widget_output" widget="newest_trackback" skin="blog_newest_trackback" colorset="{$layout_info->colorset}" title="Recent Trackbacks" list_count="5" mid_list="{$layout_info->mid}" />
<!-- 꼬리표들 -->
<img src="./common/tpl/images/blank.gif" class="zbxe_widget_output" widget="tag_list" skin="blog_tag_list" colorset="{$layout_info->colorset}" title="Site Tags" list_count="60" mid_list="{$layout_info->mid}" />
<img src="./images/common/blank.gif" class="zbxe_widget_output" widget="tag_list" skin="blog_tag_list" colorset="{$layout_info->colorset}" title="Site Tags" list_count="60" mid_list="{$layout_info->mid}" />
<!-- 월별 현황들 -->
<img src="./common/tpl/images/blank.gif" class="zbxe_widget_output" widget="archive_list" skin="blog_archive_list" colorset="{$layout_info->colorset}" title="Archives" mid_list="{$layout_info->mid}" />
<img src="./images/common/blank.gif" class="zbxe_widget_output" widget="archive_list" skin="blog_archive_list" colorset="{$layout_info->colorset}" title="Archives" mid_list="{$layout_info->mid}" />
<!-- 달력 -->
<img src="./common/tpl/images/blank.gif" class="zbxe_widget_output" widget="calendar" skin="blog_calendar_list" colorset="{$layout_info->colorset}" mid_list="{$layout_info->mid}" />
<img src="./images/common/blank.gif" class="zbxe_widget_output" widget="calendar" skin="blog_calendar_list" colorset="{$layout_info->colorset}" mid_list="{$layout_info->mid}" />
<!-- 카운터 -->
<img src="./common/tpl/images/blank.gif" class="zbxe_widget_output" widget="counter_status" skin="styx_flash" colorset="{$layout_info->colorset}" />
<img src="./images/common/blank.gif" class="zbxe_widget_output" widget="image_counter" widget_margin_left="5px" widget_margin_bottom="10px" graph_width="170" graph_height="100" day_range="5" />
<!-- 언어선택 위젯 -->
<img src="/site/common/tpl/images/blank.gif" class="zbxe_widget_output" widget="language_select" skin="default" colorset="normal" widget_cache="0" />
<img src="./images/common/blank.gif" class="zbxe_widget_output" widget="language_select" skin="default" colorset="normal" widget_cache="0" />
<!-- powered by zbxe -->
<div id="poweredbyzbxe">
<a href="http://www.zeroboard.com" onclick="window.open(this.href);return false;"><img src="./images/poweredbyzbxe.png" alt="powered by zeroboard XE" /></a>
<a href="http://www.zeroboard.com" onclick="window.open(this.href);return false;"><img src="./images/common/poweredbyzbxe.png" alt="powered by zeroboard XE" /></a>
</div>
</div>
@ -159,3 +166,6 @@
</div>
</div>
<!-- 하단 텍스트 출력 -->
{$layout_info->footer_text}

View file

@ -1,60 +1,28 @@
<!--#include("header.html")-->
<!-- 검색된 글 목록이 있고 권한이 있을 경우 출력 -->
<!--@if($document_list && $grant->list)-->
<!-- 검색어가 사용되었을 경우 목록형태로 출력 -->
<!--@if($search_keyword)-->
<div class="blogHeader2">
<h3>{$lang->search_result}</h3>
<span class="info">
<q>&quot;{$search_keyword}&quot;</q> {$lang->search_result} : <strong>{$total_count}</strong>
</span>
</div>
<!-- 검색어가 사용되었을 경우 목록형태로 출력 -->
<!--#include("./style.list.html")-->
<table cellspacing="0" class="blogList">
<thead>
<tr>
<th colspan="2" class="title first-child" scope="col">{$lang->title}</th>
<th class="reply" scope="col">{$lang->comment}</th>
<th class="reply" scope="col">{$lang->trackback}</th>
<th scope="col" class="date">{$lang->regdate}</th>
</tr>
</thead>
<tbody>
<!--@foreach($document_list as $no => $oDocument)-->
<tr class="bg{($no+1)%2+1}">
<td class="num">{$no}</td>
<td class="title"><a href="{$oDocument->getPermanentUrl()}" onclick="window.open(this.href);return false;">{$oDocument->getTitleText()}</a></td>
<td class="reply"><!--@if($oDocument->getCommentCount())-->{number_format($oDocument->getCommentCount())}<!--@else-->&nbsp;<!--@end--></td>
<td class="reply"><!--@if($oDocument->getTrackbackCount())-->{number_format($oDocument->getTrackbackCount())}<!--@else-->&nbsp;<!--@end--></td>
<td class="date">{$oDocument->getRegdate("Y. m. d")}</td>
</tr>
<!--@end-->
</tbody>
</table>
<!-- 검색어가 없다면 내용을 바로 출력 -->
<!--@else-->
<!-- 검색어가 없다면 내용을 바로 출력 -->
<!--@foreach($document_list as $no => $oDocument)-->
<!--#include("./view_document.html")-->
<!--@end-->
<!--@end-->
<!--@end-->
<!-- 페이지 네비게이션 -->
<div class="pageNavigation">
<a href="{getUrl('page','','document_srl','')}" class="goToFirst"><img src="./images/common/bottomGotoFirst.gif" alt="{$lang->first_page}" width="7" height="5" /></a>
<!--@while($page_no = $page_navigation->getNextPage())-->
<!--@if($page == $page_no)-->
<span class="current">{$page_no}</span>
<!--@else-->
<a href="{getUrl('page',$page_no,'document_srl','')}">{$page_no}</a>
<div class="pageNavigation">
<a href="{getUrl('page','','document_srl','')}" class="goToFirst"><img src="./images/common/bottomGotoFirst.gif" alt="{$lang->first_page}" width="7" height="5" /></a>
<!--@while($page_no = $page_navigation->getNextPage())-->
<!--@if($page == $page_no)-->
<span class="current">{$page_no}</span>
<!--@else-->
<a href="{getUrl('page',$page_no,'document_srl','')}">{$page_no}</a>
<!--@end-->
<!--@end-->
<!--@end-->
<a href="{getUrl('page',$page_navigation->last_page,'document_srl','')}" class="goToLast"><img src="./images/common/bottomGotoLast.gif" alt="{$lang->last_page}" width="7" height="5" /></a>
</div>
<!--#include("footer.html")-->
<a href="{getUrl('page',$page_navigation->last_page,'document_srl','')}" class="goToLast"><img src="./images/common/bottomGotoLast.gif" alt="{$lang->last_page}" width="7" height="5" /></a>
</div>

View file

@ -5,10 +5,10 @@
<title xml:lang="zh-CN">Zeroboard XE博客默认皮肤</title>
<title xml:lang="en">Default Skin of Zeroboard XE blog</title>
<maker email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">(주)NHN</name>
<name xml:lang="jp">NHN</name>
<name xml:lang="zh-CN">(株)NHN</name>
<name xml:lang="en">NHN Corp</name>
<name xml:lang="ko">zero</name>
<name xml:lang="jp">zero</name>
<name xml:lang="zh-CN">zero</name>
<name xml:lang="en">zero</name>
<description xml:lang="ko">
제로보드XE 블로그 기본 스킨입니다.
디자인 : 서기정 (http://blog.naver.com/addcozy)

View file

@ -0,0 +1,74 @@
<!-- 게시판 정보 -->
<div class="blogInformation">
<!-- 게시물 수 -->
<!--@if($total_count)-->
<div class="articleNum">{$lang->document_count} <strong>{number_format($total_count)}</strong></div>
<!--@end-->
</div>
<!-- 목록 출력 -->
<form action="./" method="get">
{@ $_col_count = 6 }
<table cellspacing="0" summary="" class="blogList">
<col width="80" />
<col />
<!--@if($module_info->display_writer == 'Y')--><col width="120" />{@ $_col_count++}<!--@end-->
<col width="60" />
<col width="60" />
<col width="90" />
<col width="90" />
<thead>
<tr>
<th scope="col" class="num no_line">{$lang->no}</th>
<th scope="col" class="title">{$lang->title}</th>
<!--@if($module_info->display_writer == 'Y')--><th class="author" scope="col">{$lang->writer}</th><!--@end-->
<th class="reading" scope="col">{$lang->readed_count}</th>
<th class="recommend" scope="col">{$lang->voted_count}</th>
<th scope="col" class="date">{$lang->date}</th>
<th scope="col" class="date">{$lang->last_update}</th>
</tr>
</thead>
<tbody>
<!--@if(!$document_list)-->
<!-- 게시물이 없으면 등록된 글이 없음을 표시 -->
<tr class="bg0 tCenter">
<td colspan="{$_col_count}" class="title">
{$lang->no_documents}
</td>
</tr>
<!--@else-->
<!-- 일반 글 출력 -->
<!--@foreach($document_list as $no => $document)-->
<tr class="bg{($no+1)%2+1}">
<td class="num"><!--@if($document_srl == $document->document_srl)--><img src="./images/common/iconArrowD8.gif" border="0" alt="" /><!--@else-->{$no}<!--@end--></td>
<td class="title">
<a href="{getUrl('','category',$document->get('category_srl'),'document_srl',$document->document_srl )}">{$document->getTitle($module_info->subject_cut_size)}</a>
<!--@if($document->getCommentCount())-->
<span class="replyAndTrackback" title="Replies"><img src="./images/common/iconReply.gif" alt="" width="12" height="12" class="icon" /> <strong>{$document->getCommentCount()}</strong></span>
<!--@end-->
<!--@if($document->getTrackbackCount())-->
<span class="replyAndTrackback" title="Trackbacks"><img src="./images/common/iconTrackback.gif" alt="" width="12" height="13" class="trackback icon" /> <strong>{$document->getTrackbackCount()}</strong></span>
<!--@end-->
{$document->printExtraImages(60*60*$module_info->duration_new)}
</td>
<!--@if($module_info->display_writer=='Y')--><td class="author"><div class="member_{$document->get('member_srl')}">{$document->getNickName()}</div></td><!--@end-->
<td class="reading">{(int)$document->get('readed_count')}</td>
<td class="recommend">{(int)$document->get('voted_count')}</td>
<td class="date">{$document->getRegdate('Y-m-d')}</td>
<td class="date">{zdate($document->get('last_update'),'Y-m-d H:i')}</td>
</tr>
<!--@end-->
<!--@end-->
</tbody>
</table>
</form>

View file

@ -1,24 +1,24 @@
<!-- 엮인글 목록 -->
<!--@if($oDocument->getTrackbackCount())-->
<ul id="trackbacks">
<div class="trackbackBox">
<!--@foreach($oDocument->getTrackbacks() as $key => $val)-->
<li>
<div class="trackbackItem">
<a name="trackback_{$val->trackback_srl}"></a>
<address>
<a href="{$val->url}" onclick="winopen(this.href);return false;">{htmlspecialchars($val->title)} - {htmlspecialchars($val->blog_name)}</a>
<a href="{getUrl('act','dispBoardDeleteTrackback','trackback_srl',$val->trackback_srl)}"><img src="./images/common/buttonDeleteX.gif" border="0" alt="delete" width="12" height="13" /></a>
<a href="{getUrl('act','dispBlogDeleteTrackback','trackback_srl',$val->trackback_srl)}"><img src="./images/common/buttonDeleteX.gif" border="0" alt="delete" width="12" height="13" /></a>
<span class="date">
{zdate($val->regdate, "Y.m.d H:i")}
({$val->ipaddress})
</span>
</address>
<div>
<a href="{$val->url}" onclick="winopen(this.href);return false;">{cut_str($val->excerpt,100,'...')}</a>
<a href="{$val->url}" onclick="winopen(this.href);return false;">{$val->excerpt}</a>
</div>
</li>
</div>
<!--@end-->
</ul>
</div>
<!--@end-->

View file

@ -2,21 +2,34 @@
<div class="blogRead">
<div class="originalContent">
<div class="readHeader">
<div class="titleAndCategory">
<h4><a href="{$oDocument->getPermanentUrl()}">{$oDocument->getTitleText()}</a></h4>
<!--@if($oDocument->get('category_srl'))-->
<span class="vr">|</span><span class="category">{$category_list[$oDocument->get('category_srl')]->title}</span>
<!--@end-->
<div class="blogTitle">
<h4>{$oDocument->getTitle()}</h4>
</div>
<div class="dateAndModify">
<strong>{$oDocument->getRegdate('Y.m.d')}</strong> {$oDocument->getRegdate('H:i:s')}
<div class="dateAndCategory">
Posted <strong>{$oDocument->getRegdate('Y.m.d')}</strong> {$oDocument->getRegdate('H:i:s')}
at <a href="{getUrl('','mid',$mid,'category',$oDocument->get('category_srl'))}">{$category_list[$oDocument->get('category_srl')]->title}</a>
</div>
<!--@if($oDocument->isEditable())-->
<a href="{getUrl('act','dispBlogWrite','document_srl',$oDocument->document_srl)}" class="button"><span>{$lang->cmd_modify}</span></a>
<a href="{getUrl('act','dispBlogDelete','document_srl',$oDocument->document_srl)}" class="button"><span>{$lang->cmd_delete}</span></a>
<!--@if($module_info->display_writer == 'Y')-->
<div class="userInfo">
by <span class="member_{$oDocument->get('member_srl')}">{$oDocument->getNickName()}</span>
<!--@if($grant->is_admin)-->
<span class="ipaddress">{$oDocument->get('ipaddress')}</span>
<!--@end-->
</div>
<!--@end-->
<div class="readedAndVoted">
<!--@if($oDocument->get('readed_count')!=0)-->
{$lang->readed_count}: <strong>{$oDocument->get('readed_count')}</strong>
<!--@end--><!--@if($oDocument->get('readed_count')!=0&&$oDocument->get('voted_count')!=0)-->,<!--@end-->
<!--@if($oDocument->get('voted_count')!=0)-->
{$lang->voted_count}: <strong>{$oDocument->get('voted_count')}</strong>
<!--@end-->
</div>
<div class="clear"></div>
</div>
<ul class="uri">
@ -26,28 +39,45 @@
<!--@end-->
</ul>
<!--@if($module_info->display_writer == "on")-->
<div class="userInfo">
<div class="author member_{$oDocument->get('member_srl')}">{$oDocument->getNickName()}</div>
<!--@if($grant->is_admin)-->
<div class="ipaddress">{$oDocument->get('ipaddress')}</div>
<!--@end-->
</div>
<!--@if($oDocument->isExtraVarsExists())-->
<table cellspacing="0" summary="" class="extraVarsList">
<col width="150" />
<col />
<!--@foreach($module_info->extra_vars as $key => $val)-->
<!--@if($val->name)-->
<tr class="bg{($key+1)%2+1}">
<th scope="row">{$val->name}</th>
<td>
<!-- 확장변수(extra_var)의 type에 따른 값을 출력하기 위해서 특별히 제작된 파일을 include 한다 -->
<!--#include("./extra_var_value.html")-->
</td>
</tr>
<!--@end-->
<!--@end-->
</table>
<!--@end-->
<div class="readBody">
<div class="contentBody">
<!--@if($oDocument->isSecret() && !$oDocument->isGranted())-->
{@ $form_include = true; }
<!--#include("./input_password_form.html")-->
<!--%import("filter/input_password.xml")-->
<strong>{$lang->msg_is_secret}</strong>
<form action="./" method="get" onsubmit="return procFilter(this, input_password)">
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="page" value="{$page}" />
<input type="hidden" name="document_srl" value="{$oDocument->document_srl}" />
<div class="inputPassword">
<input type="password" name="password" id="cpw" class="inputTypeText" /><span class="button"><input type="submit" value="{$lang->cmd_input}" accesskey="s" /></span>
</div>
</form>
<!--@else-->
{$oDocument->getContent()}
<!--@end-->
</div>
</div>
<div class="readFooter">
{@ $tag_list = $oDocument->get('tag_list') }
<!--@if(count($tag_list))-->
@ -73,34 +103,88 @@
<li><a href="{getUrl('')}{$file->download_url}">{$file->source_filename} ({FileHandler::filesize($file->file_size)})({number_format($file->download_count)})</a></li>
<!--@end-->
</ul>
<div class="clear"></div>
</div>
<!--@end-->
</div>
</div>
<ul class="replyAndTrackback">
<div class="replyAndTrackbackBox">
<ul class="replyAndTrackback">
<!--@if($grant->write_comment && $oDocument->allowComment()) -->
<li class="reply"><a href="#comment">{$lang->comment} : <strong>{$oDocument->getCommentcount()}</strong></a></li>
<!--@end-->
<!--@if($grant->write_comment && $oDocument->allowComment()) -->
<li class="reply"><a href="#comment_top_{$oDocument->document_srl}">{$lang->comment} <strong>{$oDocument->getCommentCount()}</strong></a></li>
<!--@end-->
<!--@if($oDocument->allowTrackback())-->
<li class="trackback"><a href="#trackback">{$lang->trackback} : <strong>{$oDocument->getTrackbackCount()}</strong></a></li>
<!--@end-->
</ul>
</div>
<!--@if($oDocument->allowTrackback())-->
<li class="trackback"><a href="#trackback_{$oDocument->document_srl}">{$lang->trackback} <strong>{$oDocument->getTrackbackCount()}</strong></a></li>
<!-- 목록, 수정/삭제 버튼 -->
<div class="buttonBox">
<!--@if($oDocument->isEditable())-->
<a href="{getUrl('act','dispBlogWrite','document_srl',$oDocument->document_srl)}" class="button"><span>{$lang->cmd_modify}</span></a>
<a href="{getUrl('act','dispBlogDelete','document_srl',$oDocument->document_srl)}" class="button"><span>{$lang->cmd_delete}</span></a>
<!--@end-->
<li class="listButton"><a href="{getUrl('','act','dispDocumentPrint','document_srl',$oDocument->document_srl)}" onclick="winopen(this.href);return false;" class="button"><span>{$lang->cmd_print}</span></a></li>
</ul>
</div>
<div class="clear"></div>
</div>
<!-- 엮인글 파일 include -->
<a name="trackback_{$oDocument->document_srl}"></a>
<!--@if($oDocument->allowTrackback())-->
<!--#include("./trackback.html")-->
<!--@end-->
<!-- 댓글 파일 include -->
<a name="comment_top_{$oDocument->document_srl}"></a>
<!--@if($grant->write_comment && $oDocument->allowComment())-->
{@ $document_srl = $oDocument->document_srl; }
<!-- 엮인글 -->
<!--@if($oDocument->allowTrackback())-->
<a name="trackback"></a>
<!--#include("./trackback.html")-->
<!--@end-->
<!-- 댓글 -->
<a name="comment"></a>
<!--#include("./comment.html")-->
<!--@end-->
<!-- 댓글 입력 폼 -->
<!--@if($grant->write_comment && !$oDocument->isLocked() && $oDocument->allowComment() )-->
<!--%import("filter/insert_comment.xml")-->
<div class="blogWrite">
<form action="./" method="post" onsubmit="return procFilter(this, insert_comment)" <!--@if($grant->fileupload)-->enctype="multipart/form-data"<!--@end--> class="blogEditor" >
<fieldset>
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="document_srl" value="{$oDocument->document_srl}" />
<input type="hidden" name="comment_srl" value="" />
<input type="hidden" name="content" value="" />
<div class="userNameAndPw">
<!--@if(!$is_logged)-->
<label for="userName">{$lang->writer}</label>
<input type="text" name="nick_name" value="" class="userName inputTypeText" id="userName"/>
<label for="userPw">{$lang->password}</label>
<input type="password" name="password" value="" id="userPw" class="userPw inputTypeText" />
<label for="emailAddress">{$lang->email_address}</label>
<input type="text" name="email_address" value="" id="emailAddress" class="emailAddress inputTypeText"/>
<label for="homePage">{$lang->homepage}</label>
<input type="text" name="homepage" value="" id="homePage" class="homePage inputTypeText"/>
<!--@else-->
<input type="checkbox" name="notify_message" value="Y" id="notify_message" />
<label for="notify_message">{$lang->notify}</label>
<!--@end-->
<input type="checkbox" name="is_secret" value="Y" id="is_secret" />
<label for="is_secret">{$lang->secret}</label>
</div>
<div <!--@if($is_logged)-->class="borderTop"<!--@end-->>{$editor?$editor:$comment_editor[$oDocument->document_srl]}</div>
</fieldset>
<div class="commentButton tRight">
<span class="button"><input type="submit" value="{$lang->cmd_comment_registration}" accesskey="s" /></span>
</div>
</form>
</div>
<!--@end-->

View file

@ -25,8 +25,6 @@
<!--@end-->
<div class="title">
<label for="title" class="title">{$lang->title}</label>
<select name="category_srl" >
<option value="">{$lang->category}</option>
<!--@foreach($category_list as $val)-->
@ -38,11 +36,17 @@
</div>
<dl class="option">
<dt>{$lang->cmd_option}</dt>
<!--@if($grant->manager)-->
{@ $_color = array('555555','222288','226622','2266EE','8866CC','88AA66','EE2222','EE6622','EEAA22','EEEE22') }
<dd><select name="title_color" id="title_color" <!--@if($oDocument->get('title_color'))-->style="background-color:#{$oDocument->get('title_color')};"<!--@end--> onchange="this.style.backgroundColor=this.options[this.selectedIndex].style.backgroundColor;">
<option value="" style="background-color:none;">{$lang->title_color}</option>
<!--@foreach($_color as $_col)-->
<option value="{$_col}" style="background-color:#{$_col}" <!--@if($oDocument->get('title_color')==$_col)-->selected="selected"<!--@end-->>{$lang->title_color}</option>
<!--@end-->
</select></dd>
<dd>
<input type="checkbox" name="is_notice" value="Y" <!--@if($oDocument->isNotice())-->checked="checked"<!--@end--> id="is_notice" />
<label for="is_notice">{$lang->notice}</label>
<input type="checkbox" name="title_bold" id="title_bold" value="Y" <!--@if($oDocument->get('title_bold')=='Y')-->checked="checked"<!--@end--> />
<label for="title_bold">{$lang->title_bold}</label>
</dd>
<dd>
<input type="checkbox" name="lock_comment" value="Y" <!--@if($oDocument->isLocked())-->checked="checked"<!--@end--> id="lock_comment" />
@ -61,36 +65,48 @@
<input type="checkbox" name="allow_trackback" value="Y" <!--@if($oDocument->allowTrackback())-->checked="checked"<!--@end--> id="allow_trackback" />
<label for="allow_trackback">{$lang->allow_trackback}</label>
</dd>
<!--@if($is_logged)-->
<dd>
<input type="checkbox" name="notify_message" value="Y" <!--@if($oDocument->useNotify())-->checked="checked"<!--@end--> id="notify_message" />
<label for="notify_message">{$lang->notify}</label>
</dd>
<!--@end-->
</dl>
<div>{$editor}</div>
<div class="trackbackURI">
<label for="trackbackURI">{$lang->cmd_send_trackback}</label>
<input type="text" name="trackback_url" id="trackbackURI" class="inputTypeText" />
<select name="trackback_charset">
<option value='UTF-8'>UTF-8</option>
<option value='EUC-KR'>EUC-KR</option>
<option value='EUC-JP'>EUC-JP</option>
<option value='SHIFT_JIS'>SHIFT_JIS</option>
<option value='EUC-CN'>EUC-CN</option>
<option value='HZ'>HZ</option>
<option value='BIG5'>BIG5</option>
</select>
</div>
<div class="tag">
<label for="tag_input">{$lang->tag}</label>
<input type="text" name="tags" id="tag_input" value="{htmlspecialchars($oDocument->get('tags'))}" class="inputTypeText" />
<p class="info">{$lang->about_tag}</p>
</div>
<!--@foreach($module_info->extra_vars as $key => $val)-->
<!--@if($val->name)-->
<div class="extra_vars">
<label>{$val->name} <!--@if($val->is_required=='Y')-->*<!--@end--></label>
<!-- 확장변수(extra_var)의 type에 따른 form을 출력하기 위해서 특별히 제작된 파일을 include 한다 -->
<!--#include("./extra_var_form.html")-->
</div>
<!--@end-->
<!--@end-->
</fieldset>
<div class="tRight gap1">
<span class="button"><input type="button" value="{$lang->cmd_preview}" onclick="doDocumentPreview(this); return false;" /></span>
<span class="button"><input type="submit" value="{$lang->cmd_write}" accesskey="s" /></span>
<div class="fl gap1">
<!--@if($is_logged)-->
<span class="button"><input type="button" value="{$lang->cmd_save}" onclick="doDocumentSave(this); return false;" /></span>
<span class="button"><input type="button" value="{$lang->cmd_load}" onclick="doDocumentLoad(this); return false;" /></span>
<!--@end-->
</div>
<div class="fr gap1">
<span class="button"><input type="button" value="{$lang->cmd_back}" onclick="location.href='{getUrl('act','')}'" /></span>
<span class="button"><input type="button" value="{$lang->cmd_preview}" onclick="doDocumentPreview(this); return false;" /></span>
<span class="button"><input type="submit" value="{$lang->cmd_publish}" accesskey="s" /></span>
</div>
<div class="clear"></div>
</form>
</div>
<!--#include("footer.html")-->

View file

@ -0,0 +1,3 @@
<!--#include("header.html")-->
{$setup_content}

View file

@ -6,12 +6,10 @@
<input type="hidden" name="page" value="{$page}" />
<input type="hidden" name="module_srl" value="{$module_info->module_srl}" />
<table cellspacing="0" class="tableType4">
<table cellspacing="0" class="adminTable">
<col width="150" />
<col />
<tr>
<th scope="row" colspan="2">{$lang->confirm_delete}</th>
</tr>
<caption>{$lang->confirm_delete}</caption>
<tr>
<th scope="row">{$lang->module_name}</th>
<td>{$module_info->mid}</td>

View file

@ -1,6 +1,6 @@
<!--#include("header.html")-->
<table cellspacing="0" class="tableType4">
<table cellspacing="0" class="adminTable">
<col width="150" />
<col />
<tr>
@ -21,10 +21,6 @@
<th scope="row">{$lang->browser_title}</th>
<td>{htmlspecialchars($module_info->browser_title)}</td>
</tr>
<tr>
<th scope="row">{$lang->open_rss}</th>
<td>{$lang->open_rss_types[$module_info->open_rss]}</td>
</tr>
<tr>
<th scope="row">{$lang->list_count}</th>
<td>{$module_info->list_count?$module_info->list_count:20}</td>
@ -49,11 +45,54 @@
<th scope="row">{$lang->admin_id}</th>
<td><!--@if(is_array($module_info->admin_id))-->{implode(",",$module_info->admin_id)}<!--@end-->&nbsp;</td>
</tr>
<tr>
<th scope="row" colspan="2" class="button">
<a href="{getUrl('act','dispBlogAdminInsertBlog')}" class="button"><span>{$lang->cmd_modify}</span></a>
<!--@if($module=="admin")-->
<a href="{getUrl('act','dispBlogAdminContent','module_srl','')}" class="button"><span>{$lang->cmd_blog_list}</span></a>
<!--@end-->
</th>
</tr>
</table>
<div class="gap1 tRight">
<a href="{getUrl('act','dispBlogAdminInsertBlog')}" class="button"><span>{$lang->cmd_modify}</span></a>
<!--@if($module=="admin")-->
<a href="{getUrl('act','dispBlogAdminContent','module_srl','')}" class="button"><span>{$lang->cmd_blog_list}</span></a>
<!--@for($i=1;$i<=20;$i++)-->
<!--@if($module_info->extra_vars[$i])-->
{@ $extra_vars_name = $module_info->extra_vars[$i]->name}
{@ $extra_vars_type = $module_info->extra_vars[$i]->type}
{@ $extra_vars_is_required = $module_info->extra_vars[$i]->is_required=='Y'?'Y':'N'}
{@ $extra_vars_default_value = $module_info->extra_vars[$i]->default?$module_info->extra_vars[$i]->default:'&nbsp;'}
{@ $extra_vars_desc = $module_info->extra_vars[$i]->desc?$module_info->extra_vars[$i]->desc:'&nbsp;'}
{@ $extra_vars_search = $module_info->extra_vars[$i]->search=='Y'?'Y':'N'}
<div class="gap1"></div>
<table cellspacing="0" class="adminTable">
<col width="150" />
<col />
<caption>{$lang->extra_vars} {$i}</caption>
<tr>
<th>{$lang->column_name}</th>
<td>{$extra_vars_name}</td>
</tr>
<tr>
<th>{$lang->column_type}</th>
<td>{$extra_vars_type}</td>
</tr>
<tr>
<th>{$lang->is_required}</th>
<td>{$extra_vars_is_required}</td>
</tr>
<tr>
<th>{$lang->default_value}</th>
<td>{$extra_vars_default_value}</td>
</tr>
<tr>
<th>{$lang->description}</th>
<td>{$extra_vars_desc}</td>
</tr>
<tr>
<th>{$lang->cmd_search}</th>
<td>{$extra_vars_search}</td>
</tr>
</table>
<!--@end-->
</div>
<!--@end-->

View file

@ -3,6 +3,8 @@
<!--#include("header.html")-->
<div class="gap1"></div>
<form action="./" method="post" onsubmit="return procFilter(this, insert_blog)" enctype="multipart/form-data">
<input type="hidden" name="page" value="{$page}" />
<input type="hidden" name="module_srl" value="{$module_srl}" />
@ -11,10 +13,9 @@
<!--@end-->
<input type="hidden" name="use_category" value="Y" />
<table cellspacing="0" class="tableType2">
<table cellspacing="0" class="adminTable">
<col width="150" />
<col />
<tr>
<th scope="row">{$lang->mid}</th>
<td>
@ -62,17 +63,6 @@
<p>{$lang->about_skin}</p>
</td>
</tr>
<tr>
<th scope="row">{$lang->open_rss}</th>
<td>
<select name="open_rss">
<!--@foreach($lang->open_rss_types as $key=>$val)-->
<option value="{$key}" <!--@if($module_info->open_rss==$key)-->selected="selected"<!--@end-->>{$val}</option>
<!--@end-->
</select>
<p>{$lang->about_open_rss}</p>
</td>
</tr>
<tr>
<th scope="row">{$lang->list_count}</th>
<td>
@ -116,10 +106,67 @@
<p>{$lang->about_admin_id}</p>
</td>
</tr>
<tr>
<th scope="row" colspan="2" class="button"><span class="button"><input type="submit" value="{$lang->cmd_registration}" accesskey="s" /></span></th>
</tr>
</table>
<div class="tRight gap1">
<span class="button"><input type="submit" value="{$lang->cmd_registration}" accesskey="s" /></span>
</div>
<!--@for($i=1;$i<=20;$i++)-->
<div class="gap1"></div>
{@ $extra_vars_name = ''}
{@ $extra_vars_type = ''}
{@ $extra_vars_is_required = ''}
{@ $extra_vars_default_value = ''}
{@ $extra_vars_desc = ''}
{@ $extra_vars_search = ''}
<!--@if($module_info->extra_vars[$i])-->
{@ $extra_vars_name = $module_info->extra_vars[$i]->name}
{@ $extra_vars_type = $module_info->extra_vars[$i]->type}
{@ $extra_vars_is_required = $module_info->extra_vars[$i]->is_required}
{@ $extra_vars_default_value = $module_info->extra_vars[$i]->default}
{@ $extra_vars_desc = $module_info->extra_vars[$i]->desc}
{@ $extra_vars_search = $module_info->extra_vars[$i]->search}
<!--@end-->
<table cellspacing="0" class="adminTable ">
<col width="150" />
<col />
<caption>{$lang->extra_vars} {$i}</caption>
<tr>
<th>{$lang->column_name}</th>
<td><input type="text" name="extra_vars_{$i}_name" value="{$extra_vars_name}" class="inputTypeText w200" /> </td>
</tr>
<tr>
<th>{$lang->column_type}</th>
<td>
<select name="extra_vars_{$i}_type">
<!--@foreach($lang->column_type_list as $key => $val)-->
<!--@if($key != 'kr_zip')-->
<option value="{$key}" <!--@if($extra_vars_type==$key)-->selected="selected"<!--@end-->>{$lang->column_type_list[$key]}</option>
<!--@end-->
<!--@end-->
</select>
</td>
</tr>
<tr>
<th>{$lang->is_required}</th>
<td><input type="checkbox" name="extra_vars_{$i}_is_required" value="Y" <!--@if($extra_vars_is_required=='Y')-->checked="checked"<!--@end--> /></td>
</tr>
<tr>
<th>{$lang->default_value}</th>
<td><input type="text" name="extra_vars_{$i}_default" value="{$extra_vars_default_value}" class="inputTypeText w400" /><p>{$lang->about_extra_vars_default_value}</p></td>
</tr>
<tr>
<th>{$lang->description}</th>
<td><input type="text" name="extra_vars_{$i}_desc" value="{$extra_vars_desc}" class="inputTypeText w400" /></td>
</tr>
<tr>
<th>{$lang->cmd_search}</th>
<td><input type="checkbox" name="extra_vars_{$i}_search" value="Y" <!--@if($extra_vars_search=='Y')-->checked="checked"<!--@end--> /></td>
</tr>
<tr>
<th scope="row" colspan="2" class="button"><span class="button"><input type="submit" value="{$lang->cmd_registration}" accesskey="s" /></span></th>
</tr>
</table>
<!--@end-->
</form>

View file

@ -1,20 +1,20 @@
<input type="hidden" name="category_srl" value="{$category_info->category_srl}" />
<input type="hidden" name="parent_srl" value="{$category_info->parent_srl}" />
<table cellspacing="0" class="tableType2">
<table cellspacing="0" class="adminTable">
<col width="140" />
<col width="*" />
<!--@if($category_info->parent_category_name)-->
<!--@if($category_info->parent_category_title)-->
<tr>
<th scope="row">{$lang->parent_category_name}</th>
<td>{$category_info->parent_category_name}</td>
<th scope="row">{$lang->parent_category_title}</th>
<td>{$category_info->parent_category_title}</td>
</tr>
<!--@end-->
<tr>
<th scope="row">{$lang->category_name}</th>
<th scope="row">{$lang->category_title}</th>
<td>
<input type="text" name="category_name" value="{htmlspecialchars($category_info->name)}" class="inputTypeText" />
<p>{$lang->about_category_name}</p>
<input type="text" name="category_title" value="{htmlspecialchars($category_info->title)}" class="inputTypeText" />
<p>{$lang->about_category_title}</p>
</td>
</tr>
<tr>
@ -25,25 +25,24 @@
</td>
</tr>
<tr>
<th scope="row">{$lang->category_group_srls}</th>
<th scope="row">{$lang->category_group_srls} <input type="checkbox" onclick="checkboxSelectAll(this.form, 'group_srls'); return false;" /></th>
<td>
<!--@foreach($group_list as $key=>$val)-->
<input type="checkbox" name="group_srls" value="{$key}" id="group_{$key}" <!--@if(is_array($category_info->group_srls)&&in_array($key, $category_info->group_srls))-->checked="checked"<!--@end--> class="checkbox" /> <label for="group_{$key}">{$val->title}</label>
<div><input type="checkbox" name="group_srls" value="{$key}" id="group_{$key}" <!--@if(is_array($category_info->group_srls)&&in_array($key, $category_info->group_srls))-->checked="checked"<!--@end--> class="checkbox" /> <label for="group_{$key}">{$val->title}</label></div>
<!--@end-->
<p>{$lang->about_category_group_srls}</p>
</td>
</tr>
<tr>
<th scope="row" colspan="2" class="button">
<!--@if($category_info->title)-->
<a href="#" onclick="doDeleteCategory('{$category_srl->category_srl}');return false" class="button"><span>{$lang->cmd_delete}</span></a>
<!--@end-->
<a href="#" onclick="hideCategoryInfo();return false" class="button"><span>{$lang->cmd_close}</span></a>
<span class="button"><input type="submit" value="{$lang->cmd_save}" /></span>
<!--@if($category_info->title)-->
<a href="#" onclick="doInsertCategory('{$category_info->category_srl}');return false" class="button"><span>{$lang->cmd_make_child}</span></a>
<!--@end-->
</th>
</tr>
</table>
<div class="fl gap1">
<!--@if($category_info->name)-->
<a href="#" onclick="doDeleteCategory('{$category_srl->category_srl}');return false" class="button"><span>{$lang->cmd_delete}</span></a>
<!--@end-->
<a href="#" onclick="hideCategoryInfo();return false" class="button"><span>{$lang->cmd_close}</span></a>
</div>
<div class="fr gap1">
<span class="button"><input type="submit" value="{$lang->cmd_save}" /></span>
<!--@if($category_info->name)-->
<a href="#" onclick="doInsertCategory('{$category_info->category_srl}');return false" class="button"><span>{$lang->cmd_make_child}</span></a>
<!--@end-->
</div>

View file

@ -4,16 +4,24 @@
<!--%import("css/blog.css")-->
<!--%import("js/blog_admin.js")-->
<h3>{$lang->blog} <span class="gray">{$lang->cmd_management}</span></h3>
<div class="menuManagement">
<script type="text/javascript">
var category_title = "{$lang->category}";
</script>
<script type="text/javascript">
var category_title = "{$lang->category}";
</script>
<h3>{$lang->blog} <span class="gray">{$lang->cmd_management}</span></h3>
<div class="infoText">{nl2br($lang->about_blog_category)}</div>
<div class="gap">
<a href="#" onclick="doInsertCategory(0);return false;" class="button"><span>{$lang->cmd_insert}</span></a>
<a href="#" onclick="doReloadTreeCategory('{$module_info->module_srl}');return false;" class="button"><span>{$lang->cmd_remake_cache}</span></a>
<a href="#" onclick="openAllTreeMenu('category');return false;" class="button"><span>{$lang->cmd_open_all}</span></a>
<a href="#" onclick="closeAllTreeMenu('category');return false;" class="button"><span>{$lang->cmd_close_all}</span></a>
<a href="#" onclick="window.close();return false;" class="button"><span>{$lang->cmd_close}</span></a>
</div>
<p class="gap1"><input type="checkbox" class="checkbox" id="category_enable_move" onclick="hideCategoryInfo()" /> <label for="category_enable_move">{$lang->cmd_enable_move_category}</label></p>
<!-- 카테고리의 위/아래, 삭제와 관련된 form -->
<form id="fo_move_category" action="./" method="get">
<input type="hidden" name="module_srl" />
@ -24,34 +32,15 @@
<div class="gap1">
<form id="fo_category" action="./" method="get" onsubmit="return procFilter(this, insert_category)">
<input type="hidden" name="module_srl" value="{$module_info->module_srl}" />
<input type="hidden" name="xml_file" value="{$category_info->xml_file}" />
<input type="hidden" name="xml_file" value="{$category_xml_file}" />
<table class="menuListZone">
<tr>
<td class="category_zone">
<div id="category_list">
<div id="zone_category"></div>
<p><input type="checkbox" class="checkbox" id="category_enable_move" onclick="hideCategoryInfo()" /> <label for="category_enable_move">{$lang->cmd_enable_move_category}</label></p>
</div>
</td>
<td>
<div id="category_info"></div>
</td>
</tr>
</table>
<div class="fl gap1">
<a href="#" onclick="doInsertCategory(0);return false;" class="button"><span>{$lang->cmd_insert}</span></a>
<a href="#" onclick="openAllTreeMenu('category');return false;" class="button"><span>{$lang->cmd_open_all}</span></a>
<a href="#" onclick="closeAllTreeMenu('category');return false;" class="button"><span>{$lang->cmd_close_all}</span></a>
<a href="#" onclick="doReloadTreeCategory('{$module_info->module_srl}');return false;" class="button"><span>{$lang->cmd_remake_cache}</span></a>
<a href="#" onclick="window.close();return false;" class="button"><span>{$lang->cmd_close}</span></a>
</div>
<div id="category_list">
<div id="zone_category"></div>
</div>
<div id="category_info"></div>
</form>
<script type="text/javascript">
loadTreeMenu("{$category_info->xml_file}", "category", "zone_category", category_title, '', doGetCategoryInfo, 0, doMoveTree);
loadTreeMenu("{$category_xml_file}", "category", "zone_category", category_title, '', doGetCategoryInfo, 0, doMoveTree);
</script>
</div>
</div>

View file

@ -1,12 +1,11 @@
@charset "utf-8";
h3 { margin:0 20px 0 20px; }
.menuManagement { margin:20px; }
body { margin:10px; }
.menuListZone { table-layout:fixed; }
.menuListZone td { vertical-align:top; }
.menuListZone td.category_zone { padding-right:10px; }
#category_list { padding:.5em 0 .5em 0; margin-bottom:2em; }
#category_list .checkbox { margin-top:1em; border:0px; }
#menu_zone_info { background-color:#FFFFFF; z-index:999; display:none; overflow:hidden; padding-left:10px; border-left:1px dashed #CCCCCC; }
#category_info { background-color:#FFFFFF; z-index:999; display:none; overflow:hidden; padding-left:10px; border-left:1px dashed #CCCCCC; }
#category_list { padding:.5em 0 .5em 0; margin-bottom:2em; width:250px; overflow:hidden; float:left; }
#category_info { margin-left:10px; width:560px; _width:540px; float:left; }
*:first-child+html #category_info { width:550px; }

View file

@ -19,7 +19,126 @@
<param name="header_text" target="header_text" />
<param name="footer_text" target="footer_text" />
<param name="admin_id" target="admin_id" />
<param name="open_rss" target="open_rss" />
<param name="extra_vars_1_name" target="extra_vars_1_name" />
<param name="extra_vars_1_type" target="extra_vars_1_type" />
<param name="extra_vars_1_is_required" target="extra_vars_1_is_required" />
<param name="extra_vars_1_search" target="extra_vars_1_search" />
<param name="extra_vars_1_default" target="extra_vars_1_default" />
<param name="extra_vars_1_desc" target="extra_vars_1_desc" />
<param name="extra_vars_2_name" target="extra_vars_2_name" />
<param name="extra_vars_2_type" target="extra_vars_2_type" />
<param name="extra_vars_2_is_required" target="extra_vars_2_is_required" />
<param name="extra_vars_2_search" target="extra_vars_2_search" />
<param name="extra_vars_2_default" target="extra_vars_2_default" />
<param name="extra_vars_2_desc" target="extra_vars_2_desc" />
<param name="extra_vars_3_name" target="extra_vars_3_name" />
<param name="extra_vars_3_type" target="extra_vars_3_type" />
<param name="extra_vars_3_is_required" target="extra_vars_3_is_required" />
<param name="extra_vars_3_search" target="extra_vars_3_search" />
<param name="extra_vars_3_default" target="extra_vars_3_default" />
<param name="extra_vars_3_desc" target="extra_vars_3_desc" />
<param name="extra_vars_4_name" target="extra_vars_4_name" />
<param name="extra_vars_4_type" target="extra_vars_4_type" />
<param name="extra_vars_4_is_required" target="extra_vars_4_is_required" />
<param name="extra_vars_4_search" target="extra_vars_4_search" />
<param name="extra_vars_4_default" target="extra_vars_4_default" />
<param name="extra_vars_4_desc" target="extra_vars_4_desc" />
<param name="extra_vars_5_name" target="extra_vars_5_name" />
<param name="extra_vars_5_type" target="extra_vars_5_type" />
<param name="extra_vars_5_is_required" target="extra_vars_5_is_required" />
<param name="extra_vars_5_search" target="extra_vars_5_search" />
<param name="extra_vars_5_default" target="extra_vars_5_default" />
<param name="extra_vars_5_desc" target="extra_vars_5_desc" />
<param name="extra_vars_6_name" target="extra_vars_6_name" />
<param name="extra_vars_6_type" target="extra_vars_6_type" />
<param name="extra_vars_6_is_required" target="extra_vars_6_is_required" />
<param name="extra_vars_6_search" target="extra_vars_6_search" />
<param name="extra_vars_6_default" target="extra_vars_6_default" />
<param name="extra_vars_6_desc" target="extra_vars_6_desc" />
<param name="extra_vars_7_name" target="extra_vars_7_name" />
<param name="extra_vars_7_type" target="extra_vars_7_type" />
<param name="extra_vars_7_is_required" target="extra_vars_7_is_required" />
<param name="extra_vars_7_search" target="extra_vars_7_search" />
<param name="extra_vars_7_default" target="extra_vars_7_default" />
<param name="extra_vars_7_desc" target="extra_vars_7_desc" />
<param name="extra_vars_8_name" target="extra_vars_8_name" />
<param name="extra_vars_8_type" target="extra_vars_8_type" />
<param name="extra_vars_8_is_required" target="extra_vars_8_is_required" />
<param name="extra_vars_8_search" target="extra_vars_8_search" />
<param name="extra_vars_8_default" target="extra_vars_8_default" />
<param name="extra_vars_8_desc" target="extra_vars_8_desc" />
<param name="extra_vars_9_name" target="extra_vars_9_name" />
<param name="extra_vars_9_type" target="extra_vars_9_type" />
<param name="extra_vars_9_is_required" target="extra_vars_9_is_required" />
<param name="extra_vars_9_search" target="extra_vars_9_search" />
<param name="extra_vars_9_default" target="extra_vars_9_default" />
<param name="extra_vars_9_desc" target="extra_vars_9_desc" />
<param name="extra_vars_10_name" target="extra_vars_10_name" />
<param name="extra_vars_10_type" target="extra_vars_10_type" />
<param name="extra_vars_10_is_required" target="extra_vars_10_is_required" />
<param name="extra_vars_10_search" target="extra_vars_10_search" />
<param name="extra_vars_10_default" target="extra_vars_10_default" />
<param name="extra_vars_10_desc" target="extra_vars_10_desc" />
<param name="extra_vars_11_name" target="extra_vars_11_name" />
<param name="extra_vars_11_type" target="extra_vars_11_type" />
<param name="extra_vars_11_is_required" target="extra_vars_11_is_required" />
<param name="extra_vars_11_search" target="extra_vars_11_search" />
<param name="extra_vars_11_default" target="extra_vars_11_default" />
<param name="extra_vars_11_desc" target="extra_vars_11_desc" />
<param name="extra_vars_12_name" target="extra_vars_12_name" />
<param name="extra_vars_12_type" target="extra_vars_12_type" />
<param name="extra_vars_12_is_required" target="extra_vars_12_is_required" />
<param name="extra_vars_12_search" target="extra_vars_12_search" />
<param name="extra_vars_12_default" target="extra_vars_12_default" />
<param name="extra_vars_12_desc" target="extra_vars_12_desc" />
<param name="extra_vars_13_name" target="extra_vars_13_name" />
<param name="extra_vars_13_type" target="extra_vars_13_type" />
<param name="extra_vars_13_is_required" target="extra_vars_13_is_required" />
<param name="extra_vars_13_search" target="extra_vars_13_search" />
<param name="extra_vars_13_default" target="extra_vars_13_default" />
<param name="extra_vars_13_desc" target="extra_vars_13_desc" />
<param name="extra_vars_14_name" target="extra_vars_14_name" />
<param name="extra_vars_14_type" target="extra_vars_14_type" />
<param name="extra_vars_14_is_required" target="extra_vars_14_is_required" />
<param name="extra_vars_14_search" target="extra_vars_14_search" />
<param name="extra_vars_14_default" target="extra_vars_14_default" />
<param name="extra_vars_14_desc" target="extra_vars_14_desc" />
<param name="extra_vars_15_name" target="extra_vars_15_name" />
<param name="extra_vars_15_type" target="extra_vars_15_type" />
<param name="extra_vars_15_is_required" target="extra_vars_15_is_required" />
<param name="extra_vars_15_search" target="extra_vars_15_search" />
<param name="extra_vars_15_default" target="extra_vars_15_default" />
<param name="extra_vars_15_desc" target="extra_vars_15_desc" />
<param name="extra_vars_16_name" target="extra_vars_16_name" />
<param name="extra_vars_16_type" target="extra_vars_16_type" />
<param name="extra_vars_16_is_required" target="extra_vars_16_is_required" />
<param name="extra_vars_16_search" target="extra_vars_16_search" />
<param name="extra_vars_16_default" target="extra_vars_16_default" />
<param name="extra_vars_16_desc" target="extra_vars_16_desc" />
<param name="extra_vars_17_name" target="extra_vars_17_name" />
<param name="extra_vars_17_type" target="extra_vars_17_type" />
<param name="extra_vars_17_is_required" target="extra_vars_17_is_required" />
<param name="extra_vars_17_search" target="extra_vars_17_search" />
<param name="extra_vars_17_default" target="extra_vars_17_default" />
<param name="extra_vars_17_desc" target="extra_vars_17_desc" />
<param name="extra_vars_18_name" target="extra_vars_18_name" />
<param name="extra_vars_18_type" target="extra_vars_18_type" />
<param name="extra_vars_18_is_required" target="extra_vars_18_is_required" />
<param name="extra_vars_18_search" target="extra_vars_18_search" />
<param name="extra_vars_18_default" target="extra_vars_18_default" />
<param name="extra_vars_18_desc" target="extra_vars_18_desc" />
<param name="extra_vars_19_name" target="extra_vars_19_name" />
<param name="extra_vars_19_type" target="extra_vars_19_type" />
<param name="extra_vars_19_is_required" target="extra_vars_19_is_required" />
<param name="extra_vars_19_search" target="extra_vars_19_search" />
<param name="extra_vars_19_default" target="extra_vars_19_default" />
<param name="extra_vars_19_desc" target="extra_vars_19_desc" />
<param name="extra_vars_20_name" target="extra_vars_20_name" />
<param name="extra_vars_20_type" target="extra_vars_20_type" />
<param name="extra_vars_20_is_required" target="extra_vars_20_is_required" />
<param name="extra_vars_20_search" target="extra_vars_20_search" />
<param name="extra_vars_20_default" target="extra_vars_20_default" />
<param name="extra_vars_20_desc" target="extra_vars_20_desc" />
</parameter>
<response callback_func="completeInsertBlog">
<tag name="error" />

View file

@ -2,13 +2,13 @@
<form>
<node target="module_srl" required="true" />
<node target="category_srl" required="true" />
<node target="category_name" required="true" />
<node target="category_title" required="true" />
</form>
<parameter>
<param name="module_srl" target="module_srl" />
<param name="category_srl" target="category_srl" />
<param name="parent_srl" target="parent_srl" />
<param name="name" target="category_name" />
<param name="title" target="category_title" />
<param name="expand" target="expand" />
<param name="group_srls" target="group_srls" />
</parameter>

View file

@ -5,11 +5,12 @@
<input type="hidden" name="page" value="{$page}" />
<input type="hidden" name="module_srl" value="{$module_srl}" />
<table cellspacing="0" class="tableType3">
<table cellspacing="0" class="adminTable">
<col width="130" />
<col width="*" />
<col width="80" />
<col width="80" />
<caption>{$lang->about_grant}</caption>
<thead>
<tr>
<th scope="col">{$lang->grant}</th>
@ -23,19 +24,20 @@
<th scope="row">{$val->title}</th>
<td class="left">
<!--@foreach($group_list as $k => $v)-->
<input type="checkbox" class="checkbox" name="{$key}" value="{$v->group_srl}" id="grant_{$key}_{$v->group_srl}" <!--@if(is_array($module_info->grants[$key])&&in_array($v->group_srl,$module_info->grants[$key]))-->checked="checked"<!--@end-->/>
<label for="grant_{$key}_{$v->group_srl}">{$v->title}</label>
<div>
<input type="checkbox" class="checkbox" name="{$key}" value="{$v->group_srl}" id="grant_{$key}_{$v->group_srl}" <!--@if(is_array($module_info->grants[$key])&&in_array($v->group_srl,$module_info->grants[$key]))-->checked="checked"<!--@end-->/>
<label for="grant_{$key}_{$v->group_srl}">{$v->title}</label>
</div>
<!--@end-->
</td>
<td><a href="#" onclick="doSelectAll(this, '{$key}')" class="blue">{$lang->cmd_select_all}</a></td>
<td><a href="#" onclick="doUnSelectAll(this, '{$key}')" class="red">{$lang->cmd_unselect_all}</a></td>
<th class="centerButton"><a href="#" onclick="doSelectAll(this, '{$key}')" class="blue">{$lang->cmd_select_all}</a></th>
<th class="centerButton"><a href="#" onclick="doUnSelectAll(this, '{$key}')" class="red">{$lang->cmd_unselect_all}</a></th>
</tr>
<!--@end-->
<tr>
<th scope="row" colspan="4" class="button"><span class="button"><input type="submit" value="{$lang->cmd_save}" accesskey="s" /></span></th>
</tr>
</tbody>
</table>
<div class="tRight gap1">
<span class="button"><input type="submit" value="{$lang->cmd_save}" accesskey="s" /></span>
</div>
</form>

View file

@ -4,6 +4,7 @@
{@
$blog_menu_list = array(
'dispBlogAdminBlogInfo'=>$lang->cmd_view_info,
'dispBlogAdminBlogAdditionSetup'=>$lang->cmd_addition_setup,
'dispBlogAdminCategoryInfo'=>$lang->cmd_manage_category,
'dispBlogAdminGrantInfo'=>$lang->cmd_manage_grant,
'dispBlogAdminSkinInfo'=>$lang->cmd_manage_skin,
@ -13,10 +14,15 @@
<h3>{$lang->blog} <span class="gray">{$lang->cmd_management}</span></h3>
<div class="infoText">{nl2br($lang->about_blog)}</div>
<!--@if($module_info)-->
<div class="header4">
<!--@if($module_info->mid)-->
<h4>{$module_info->mid} <!--@if($module_info->is_default=='N')--><span class="bracket">({$lang->is_default})</span><!--@end--> <span class="vr">|</span> <a href="{getUrl('','mid',$module_info->mid)}" onclick="window.open(this.href); return false;" class="view">View</a></h4>
<!--@if($module=="admin")-->
<div class="header4">
<!--@if($module_info->mid)-->
<h4>{$module_info->mid} <!--@if($module_info->is_default=='N')--><span class="bracket">({$lang->is_default})</span><!--@end--> <span class="vr">|</span> <a href="{getUrl('','mid',$module_info->mid)}" onclick="window.open(this.href); return false;" class="view">View</a></h4>
<!--@end-->
</div>
<!--@end-->
<ul class="localNavigation">
@ -33,5 +39,6 @@
<!--@end-->
<!--@end-->
</ul>
</div>
<div class="clear"></div>
<!--@end-->

View file

@ -1,24 +1,19 @@
<!--#include("header.html")-->
<div class="infoText">{nl2br($lang->about_blog)}</div>
<!-- 정보 -->
<div class="tableSummaryType1">
Total <strong>{number_format($total_count)}</strong>, Page <strong>{number_format($page)}</strong>/{number_format($total_page)}
</div>
<!-- 목록 -->
<table cellspacing="0" class="tableType1">
<table cellspacing="0" class="adminTable">
<col width="50" />
<col width="150" />
<col width="120" />
<col />
<col width="40" />
<col width="80" />
<col width="100" />
<col width="80" />
<col width="40" />
<col width="40" />
<col width="40" />
<col width="50" />
<col width="50" />
<col width="50" />
<thead>
<tr>
<th scope="col">{$lang->no}</th>
@ -34,13 +29,10 @@
<option value="">---------</option>
<option value="-1">{$lang->cmd_management}</option>
</select>
<span class="button"><input type="submit" name="go_button" id="go_button" value="GO" /></span>
<input type="submit" name="go_button" id="go_button" value="GO" class="buttonTypeGo" />
</form>
</th>
<th scope="col">{$lang->browser_title} / {$lang->mid}</th>
<th scope="col">{$lang->is_default}</th>
<th scope="col">{$lang->skin}</th>
<th scope="col">{$lang->admin_id}</th>
<th scope="col">{$lang->mid} / {$lang->browser_title}</th>
<th scope="col">{$lang->regdate}</th>
<th scope="col">{$lang->cmd_view}</th>
<th scope="col">{$lang->cmd_copy}</th>
@ -60,15 +52,11 @@
{$module_category[$val->module_category_srl]->title}
<!--@end-->
</td>
<td class="left subject">
<a href="{getUrl('act','dispBlogAdminBlogInfo','module_srl',$val->module_srl)}" class="blue">{htmlspecialchars($val->browser_title)}</a><br />
{$val->mid}
<td class="subject">
{$val->mid} - <a href="{getUrl('act','dispBlogAdminBlogInfo','module_srl',$val->module_srl)}" class="blue">{htmlspecialchars($val->browser_title)}</a>
</td>
<td class="tahoma">{$val->is_default}</td>
<td class="tahoma">{$val->skin}</td>
<td class="tahoma">{$val->admin_id}&nbsp;</td>
<td class="tahoma">{zdate($val->regdate,"Y-m-d")}</td>
<td class="blue"><a href="{getUrl('','mid',$val->mid)}" onclick="window.open(this.href);return false;">{$lang->cmd_view}</a></td>
<td class="green"><a href="{getUrl('','mid',$val->mid)}" onclick="window.open(this.href);return false;">{$lang->cmd_view}</a></td>
<td class="blue"><a href="./?module=module&act=dispModuleAdminCopyModule&module_srl={$val->module_srl}" onclick="popopen(this.href);return false;">{$lang->cmd_copy}</a></td>
<td class="red"><!--@if($val->is_default!='Y')--><a href="{getUrl('act','dispBlogAdminDeleteBlog','module_srl', $val->module_srl)}">{$lang->cmd_delete}</a><!--@else-->&nbsp;<!--@end--></td>
</tr>

View file

@ -178,7 +178,7 @@ function completeGetCategoryTplInfo(ret_obj, response_tags) {
obj.style.display = 'block';
var fo_obj = xGetElementById("fo_category");
fo_obj.category_name.focus();
fo_obj.category_title.focus();
var x = _xPos + 50;
var y = _yPos - xHeight(obj)/2+ xScrollTop();

View file

@ -7,12 +7,10 @@
<input type="hidden" name="module_srl" value="{$module_srl}" />
<input type="hidden" name="page" value="{$page}" />
<table cellspacing="0" class="tableType3">
<table cellspacing="0" class="adminTable">
<col width="150" />
<col />
<tr>
<th scope="row" colspan="2">{$lang->skin_default_info}</th>
</tr>
<caption>{$lang->skin_default_info}</caption>
<tr>
<th scope="row">{$lang->skin}</th>
<td class="left" >{$skin_info->title}</td>
@ -31,16 +29,14 @@
</tr>
<tr>
<th scope="row">{$lang->description}</th>
<td class="left" >{nl2br($skin_info->maker->description)}</td>
<td class="left" >{nl2br(trim($skin_info->maker->description))}</td>
</tr>
</table>
<table cellspacing="0" class="tableType3">
<table cellspacing="0" class="adminTable">
<col width="150" />
<col />
<tr>
<th scope="row" colspan="2">{$lang->extra_vars}</th>
</tr>
<caption>{$lang->extra_vars}</caption>
<tr valign="top">
<th scope="row">{$lang->colorset}</th>
<td class="left" >
@ -58,7 +54,6 @@
<img src="{$val->screenshot}" alt="{$val->title}" style="border:1px solid #888888;padding:2px;margin:2px;"/>
<!--@end-->
</div>
<!--@if($key%2==1)--><div class="clear"></div><!--@end-->
<!--@end-->
</td>
</tr>
@ -130,11 +125,11 @@
</td>
</tr>
<!--@end-->
<tr>
<th scope="row" colspan="2" class="button"><span class="button"><input type="submit" value="{$lang->cmd_registration}" accesskey="s" /></span></th>
</tr>
</table>
<div class="gap1 tRight">
<span class="button"><input type="submit" value="{$lang->cmd_registration}" accesskey="s" /></span>
</div>
</form>
<iframe name="hidden_iframe" frameborder="0" style="display:none"></iframe>