From 7d67cee78ebb4be44a856fada6e0cd3e4ed7e486 Mon Sep 17 00:00:00 2001 From: zero Date: Thu, 23 Apr 2009 11:17:41 +0000 Subject: [PATCH] =?UTF-8?q?cafeXE=201.=20=EB=A9=94=EC=9D=B8=20=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=A7=80=20=EC=83=9D=EC=84=B1=20::=20cafeXE=20?= =?UTF-8?q?=EA=B4=80=EB=A6=AC=EC=9E=90=20=ED=8E=98=EC=9D=B4=EC=A7=80?= =?UTF-8?q?=EC=97=90=EC=84=9C=20mid=20=EC=A7=80=EC=A0=95=20=EA=B0=80?= =?UTF-8?q?=EB=8A=A5=202.=20=EC=82=AC=EC=9A=A9=EC=9E=90=EA=B0=80=20?= =?UTF-8?q?=EC=B9=B4=ED=8E=98=EB=A5=BC=20=EC=83=9D=EC=84=B1=ED=95=98?= =?UTF-8?q?=EA=B8=B0=20=EC=9C=84=ED=95=9C=20=EC=98=B5=EC=85=98=EC=9D=84=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=203.=20=EC=82=AC=EC=9A=A9=EC=9E=90=20?= =?UTF-8?q?=EC=B9=B4=ED=8E=98=20=EC=83=9D=EC=84=B1=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6176 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/admin/tpl/config.html | 2 +- modules/admin/tpl/index.html | 14 +- modules/homepage/conf/module.xml | 13 +- .../homepage/homepage.admin.controller.php | 52 +++++- modules/homepage/homepage.admin.view.php | 19 +++ modules/homepage/homepage.class.php | 12 ++ modules/homepage/homepage.controller.php | 116 ++++++++++---- modules/homepage/homepage.model.php | 33 ++++ modules/homepage/homepage.view.php | 95 ++++++++--- modules/homepage/lang/en.lang.php | 15 +- modules/homepage/lang/es.lang.php | 15 +- modules/homepage/lang/jp.lang.php | 13 ++ modules/homepage/lang/ko.lang.php | 13 ++ modules/homepage/lang/zh-CN.lang.php | 13 ++ modules/homepage/lang/zh-TW.lang.php | 13 ++ modules/homepage/queries/getHomepageInfo.xml | 1 + modules/homepage/queries/getHomepageList.xml | 3 +- modules/homepage/queries/getMyCafes.xml | 24 +++ .../homepage/queries/getNewestComments.xml | 23 +++ .../homepage/queries/getNewestDocuments.xml | 23 +++ modules/homepage/queries/updateHomepage.xml | 1 + modules/homepage/schemas/homepages.xml | 1 + .../skins/xe_default/img/arrowNextA1.gif | Bin 0 -> 46 bytes .../skins/xe_default/img/arrowNextEndA1.gif | Bin 0 -> 52 bytes .../skins/xe_default/img/arrowPrevA1.gif | Bin 0 -> 47 bytes .../skins/xe_default/img/arrowPrevEndA1.gif | Bin 0 -> 51 bytes .../skins/xe_default/img/lineTextDiv.gif | Bin 0 -> 44 bytes .../skins/xe_default/img/lineVr11.gif | Bin 0 -> 44 bytes modules/homepage/skins/xe_default/index.html | 149 ++++++++++++++++++ modules/homepage/skins/xe_default/skin.xml | 53 +++++++ modules/homepage/skins/xe_default/style.css | 120 ++++++++++++++ modules/homepage/tpl/filter/cafe_creation.xml | 11 ++ modules/homepage/tpl/filter/insert_board.xml | 39 ----- modules/homepage/tpl/filter/insert_grant.xml | 11 -- modules/homepage/tpl/filter/insert_page.xml | 10 -- modules/homepage/tpl/index.html | 61 ++++++- modules/homepage/tpl/js/homepage.js | 11 ++ modules/homepage/tpl/layout_setup.html | 33 ++++ modules/homepage/tpl/redirect.html | 3 + modules/homepage/tpl/skin_info.html | 3 + modules/module/module.model.php | 2 + 41 files changed, 888 insertions(+), 132 deletions(-) create mode 100644 modules/homepage/queries/getMyCafes.xml create mode 100644 modules/homepage/queries/getNewestComments.xml create mode 100644 modules/homepage/queries/getNewestDocuments.xml create mode 100644 modules/homepage/skins/xe_default/img/arrowNextA1.gif create mode 100644 modules/homepage/skins/xe_default/img/arrowNextEndA1.gif create mode 100644 modules/homepage/skins/xe_default/img/arrowPrevA1.gif create mode 100644 modules/homepage/skins/xe_default/img/arrowPrevEndA1.gif create mode 100755 modules/homepage/skins/xe_default/img/lineTextDiv.gif create mode 100644 modules/homepage/skins/xe_default/img/lineVr11.gif create mode 100644 modules/homepage/skins/xe_default/index.html create mode 100644 modules/homepage/skins/xe_default/skin.xml create mode 100644 modules/homepage/skins/xe_default/style.css create mode 100644 modules/homepage/tpl/filter/cafe_creation.xml delete mode 100644 modules/homepage/tpl/filter/insert_board.xml delete mode 100644 modules/homepage/tpl/filter/insert_grant.xml delete mode 100644 modules/homepage/tpl/filter/insert_page.xml create mode 100644 modules/homepage/tpl/redirect.html create mode 100644 modules/homepage/tpl/skin_info.html diff --git a/modules/admin/tpl/config.html b/modules/admin/tpl/config.html index 201513c59..7e59d3cbe 100644 --- a/modules/admin/tpl/config.html +++ b/modules/admin/tpl/config.html @@ -35,7 +35,7 @@
{$lang->start_module}
- diff --git a/modules/admin/tpl/index.html b/modules/admin/tpl/index.html index 584789032..0374e8028 100644 --- a/modules/admin/tpl/index.html +++ b/modules/admin/tpl/index.html @@ -158,17 +158,21 @@
{$lang->current_version}
- + {$current_version} [{$lang->cmd_view}] -
{$lang->current_path}
- {$installed_path}/ +
{$lang->current_path}
-
{$lang->start_module}
- {cut_str($start_module->browser_title,10)} + {$installed_path}/ + + +
{$lang->start_module}
+ + + {cut_str($start_module->browser_title,10)}
{$lang->time_zone}
diff --git a/modules/homepage/conf/module.xml b/modules/homepage/conf/module.xml index e15f0932d..fcef201a7 100644 --- a/modules/homepage/conf/module.xml +++ b/modules/homepage/conf/module.xml @@ -19,6 +19,7 @@ + @@ -31,13 +32,13 @@ - - - + + + @@ -56,6 +57,7 @@ + @@ -68,14 +70,15 @@ - - + + + diff --git a/modules/homepage/homepage.admin.controller.php b/modules/homepage/homepage.admin.controller.php index 612a3d457..d9f45f974 100644 --- a/modules/homepage/homepage.admin.controller.php +++ b/modules/homepage/homepage.admin.controller.php @@ -14,7 +14,11 @@ * @brief 카페 설정 **/ function procHomepageAdminInsertConfig() { + global $lang; + $oModuleController = &getController('module'); + $oModuleModel = &getModel('module'); + $oHomepageModel = &getModel('homepage'); $vars = Context::getRequestVars(); @@ -24,8 +28,52 @@ if(strpos($key,'allow_service_')===false) continue; $args->allow_service[substr($key, strlen('allow_service_'))] = $val; } - if($vars->site_srl) $oModuleController->insertModulePartConfig('homepage', $vars->site_srl, $args); - else $oModuleController->insertModuleConfig('homepage', $args); + if($vars->site_srl) { + unset($vars->creation_group); + unset($vars->cafe_main_mid); + unset($vars->skin); + $oModuleController->insertModulePartConfig('homepage', $vars->site_srl, $args); + }else { + $args->access_type = $vars->access_type; + $args->default_domain = $vars->default_domain; + if(strpos($args->default_domain,':')===false) $args->default_domain = 'http://'.$args->default_domain; + if(substr($args->default_domain,-1)!='/') $args->default_domain .= '/'; + if($args->access_type != 'vid' && !$args->default_domain) return new Object(-1,sprintf($lang->filter->isnull, $lang->domain)); + + $args->cafe_main_mid = $vars->cafe_main_mid; + $args->browser_title = $vars->browser_title; + if(!$args->browser_title) $args->browser_title = 'cafeXE'; + if(!$args->cafe_main_mid) return new Object(-1,sprintf($lang->filter->isnull,$lang->cafe_main_mid)); + $args->skin = $vars->skin; + if(!$args->skin) $args->skin = 'xe_default'; + + $homepage_config = $oHomepageModel->getConfig(0); + $mid = $homepage_config->cafe_main_mid; + $module_info = $oModuleModel->getModuleInfoByMid($mid, 0); + if(!$module_info->module_srl) { + $module_args->site_srl = 0; + $module_args->mid = $args->cafe_main_mid; + $module_args->skin = $args->skin; + $module_args->browser_title = $args->browser_title; + $module_args->module = 'homepage'; + $output = $oModuleController->insertModule($module_args); + if(!$output->toBool()) return $output; + } else { + $module_args->module = 'homepage'; + $module_args->mid = $args->cafe_main_mid; + $module_args->skin = $args->skin; + $module_args->site_srl = 0; + $module_args->browser_title = $args->browser_title; + $module_args->module_srl = $module_info->module_srl; + $output = $oModuleController->updateModule($module_args); + if(!$output->toBool()) return $output; + } + + $module_info = $oModuleModel->getModuleInfoByMid($mid, 0); + $args->module_srl = $module_info->module_srl; + $args->creation_group = implode(',',explode('|@|',$vars->creation_group)); + $oModuleController->insertModuleConfig('homepage', $args); + } } /** diff --git a/modules/homepage/homepage.admin.view.php b/modules/homepage/homepage.admin.view.php index 10e37cb53..d82d66349 100644 --- a/modules/homepage/homepage.admin.view.php +++ b/modules/homepage/homepage.admin.view.php @@ -17,6 +17,7 @@ $oHomepageAdminModel = &getAdminModel('homepage'); $oHomepageModel = &getModel('homepage'); $oModuleModel = &getModel('module'); + $oMemberModel = &getModel('member'); // cafe 전체 설정을 구함 $homepage_config = $oHomepageModel->getConfig(); @@ -34,10 +35,17 @@ } Context::set('service_modules', $service_modules); + // 기본 사이트의 그룹 구함 + $groups = $oMemberModel->getGroups(0); + Context::set('groups', $groups); + // 생성된 카페 목록을 구함 $page = Context::get('page'); $output = $oHomepageAdminModel->getHomepageList($page); + // 카페 메인 스킨 설정 + Context::set('skins', $oModuleModel->getSkins($this->module_path)); + Context::set('total_count', $output->total_count); Context::set('total_page', $output->total_page); Context::set('page', $output->page); @@ -92,6 +100,17 @@ $this->setTemplateFile('delete'); } + + function dispHomepageAdminSkinSetup() { + $oModuleAdminModel = &getAdminModel('module'); + $oHomepageModel = &getModel('homepage'); + + $homepage_config = $oHomepageModel->getConfig(0); + $skin_content = $oModuleAdminModel->getModuleSkinHTML($homepage_config->module_srl); + Context::set('skin_content', $skin_content); + + $this->setTemplateFile('skin_info'); + } } ?> diff --git a/modules/homepage/homepage.class.php b/modules/homepage/homepage.class.php index 92f472ff3..f831dda22 100644 --- a/modules/homepage/homepage.class.php +++ b/modules/homepage/homepage.class.php @@ -12,6 +12,7 @@ **/ function moduleInstall() { $oModuleController = &getController('module'); + $oModuleController->insertTrigger('display', 'homepage', 'controller', 'triggerMemberMenu', 'before'); return new Object(); @@ -23,9 +24,14 @@ function checkUpdate() { $oModuleController = &getController('module'); $oModuleModel = &getModel('module'); + $oDB = &DB::getInstance(); // 2009. 02. 11 가상 사이트의 로그인 정보 영역에 관리 기능이 추가되어 표시되도록 트리거 등록 if(!$oModuleModel->getTrigger('display', 'homepage', 'controller', 'triggerMemberMenu', 'before')) return true; + + // 2009. 04. 23 카페의 설명 + if(!$oDB->isColumnExists("homepages","description")) return true; + return false; } @@ -35,11 +41,17 @@ function moduleUpdate() { $oModuleController = &getController('module'); $oModuleModel = &getModel('module'); + $oDB = &DB::getInstance(); // 2009. 02. 11 가상 사이트의 로그인 정보 영역에 관리 기능이 추가되어 표시되도록 트리거 등록 if(!$oModuleModel->getTrigger('display', 'homepage', 'controller', 'triggerMemberMenu', 'before')) $oModuleController->insertTrigger('display', 'homepage', 'controller', 'triggerMemberMenu', 'before'); + // 2009. 04. 23 카페의 설명 + if(!$oDB->isColumnExists("homepages","description")) + $oDB->addColumn("homepages","description","text"); + + return new Object(0, 'success_updated'); } diff --git a/modules/homepage/homepage.controller.php b/modules/homepage/homepage.controller.php index 2e6801ff7..ec39efa5f 100644 --- a/modules/homepage/homepage.controller.php +++ b/modules/homepage/homepage.controller.php @@ -18,7 +18,7 @@ $oLayoutModel = &getModel('layout'); $logged_info = Context::get('logged_info'); - if(!$oModuleModel->isSiteAdmin($logged_info)) return $this->stop('msg_not_permitted'); + if($this->act != 'procHomepageCafeCreation' && !$oModuleModel->isSiteAdmin($logged_info)) return $this->stop('msg_not_permitted'); // site_module_info값으로 홈페이지의 정보를 구함 $this->site_module_info = Context::get('site_module_info'); @@ -39,6 +39,54 @@ return $oModuleController->updateSite($args); } + function procHomepageCafeCreation() { + global $lang; + $oHomepageAdminController = &getAdminController('homepage'); + $oHomepageModel = &getModel('homepage'); + $oModuleModel = &getModel('module'); + $oModuleController = &getController('module'); + $oMemberModel = &getModel('member'); + $oMemberController = &getController('member'); + + if(!$oHomepageModel->isCreationGranted()) return new Object(-1,'msg_not_permitted'); + + $cafe_id = Context::get('cafe_id'); + if(!$cafe_id || $oModuleModel->isIDExists($cafe_id)) return new Object(-1,'msg_not_enabled_id'); + $cafe_title = Context::get('cafe_title'); + if(!$cafe_title) return new Object(-1,sprintf($lang->filter->isnull, $lang->cafe_title)); + $cafe_description = Context::get('cafe_description'); + if(!$cafe_description) return new Object(-1,sprintf($lang->filter->isnull, $lang->cafe_description)); + + $homepage_config = $oHomepageModel->getConfig(); + if($homepage_config->access_type == 'vid') $domain = $cafe_id; + else $domain = $homepage_config->default_domain.$cafe_id; + + $oHomepageAdminController->insertHomepage($cafe_title, $domain); + if(!$oHomepageAdminController->toBool()) return $output; + + $site_srl = $oHomepageAdminController->get('site_srl'); + + // 홈페이지 제목/내용 변경 + $homepage_info = $oHomepageModel->getHomepageInfo($site_srl); + $args->title = $cafe_title; + $args->description = $cafe_description; + $args->layout_srl = $homepage_info->layout_srl; + $args->site_srl = $site_srl; + $output = executeQuery('homepage.updateHomepage', $args); + if(!$output->toBool()) return $output; + + // 현재 사용자 가입 및 관리자 주기 + $logged_info = Context::get('logged_info'); + + $default_group = $oMemberModel->getDefaultGroup($site_srl); + $oMemberController->addMemberToGroup($logged_info->member_srl, $default_group->group_srl, $site_srl); + + $output = $oModuleController->insertSiteAdmin($site_srl, array($logged_info->user_id)); + + $this->setRedirectUrl(getSiteUrl($domain)); + + } + function procHomepageChangeLayout() { $oLayoutModel = &getModel('layout'); $oLayoutAdminController = &getAdminController('layout'); @@ -271,14 +319,6 @@ $this->add('xml_file', $xml_file); } - function procHomepageInsertBoard() { - $oBoardAdminController = &getAdminController('board'); - $output = $oBoardAdminController->procBoardAdminInsertBoard(); - if(is_object($output) && !$output->toBool()) return $output; - $this->add('module_srl', $oBoardAdminController->get('module_srl')); - $this->setMessage($oBoardAdminController->getMessage()); - } - function procHomepageDeleteGroup() { $oMemberAdminController = &getAdminController('member'); $group_srl = Context::get('group_srl'); @@ -346,29 +386,6 @@ $this->setMessage('success_registed'); } - function procHomepageInsertPage() { - $module_srl = Context::get('module_srl'); - - // 현 모듈의 권한 목록을 가져옴 - $oModuleModel = &getModel('module'); - $xml_info = $oModuleModel->getModuleActionXml('page'); - $grant_list = $xml_info->grant; - - if(count($grant_list)) { - foreach($grant_list as $key => $val) { - $group_srls = Context::get($key); - if($group_srls) $arr_grant[$key] = explode('|@|',$group_srls); - } - $grants = serialize($arr_grant); - } - - $oModuleController = &getController('module'); - $oModuleController->updateModuleGrant($module_srl, $grants); - - $this->add("module_srl", $args->module_srl); - $this->setMessage('success_registed'); - } - function procHomepageChangeIndex() { $index_mid = Context::get('index_mid'); if(!$index_mid) return new Object(-1,'msg_invalid_request'); @@ -381,6 +398,40 @@ return $output; } + function procHomepageInsertCafeBanner() { + global $lang; + + $oHomepageModel = &getModel('homepage'); + + $site_srl = Context::get('site_srl'); + if(!$site_srl) return new Object(-1,'msg_invalid_request'); + + $title = Context::get('cafe_title'); + if(!$title) return new Object(-1,sprintf($lang->filter->isnull,$lang->cafe_title)); + + $description = Context::get('cafe_description'); + if(!$description) return new Object(-1,sprintf($lang->filter->isnull,$lang->cafe_description)); + + // 홈페이지 제목/내용 변경 + $homepage_info = $oHomepageModel->getHomepageInfo($site_srl); + if(!$homepage_info->site_srl) return new Object(-1,'msg_invalid_request'); + $args->title = $title; + $args->description = $description; + $args->layout_srl = $homepage_info->layout_srl; + $args->site_srl = $homepage_info->site_srl; + $output = executeQuery('homepage.updateHomepage', $args); + if(!$output->toBool()) return $output; + + $cafe_banner = Context::get('cafe_banner'); + if($cafe_banner['name']) { + $banner_src = 'files/attach/cafe_banner/'.$homepage_info->site_srl.'.jpg'; + FileHandler::createImageFile($cafe_banner['tmp_name'], $banner_src,100,100,'jpg','crop'); + } + + $this->setTemplatePath($this->module_path.'tpl'); + $this->setTemplateFile('redirect.html'); + } + function triggerMemberMenu(&$content) { $site_module_info = Context::get('site_module_info'); $logged_info = Context::get('logged_info'); @@ -391,7 +442,6 @@ $oMemberController->addMemberMenu('dispHomepageManage','cmd_cafe_setup'); } return new Object(); - } } ?> diff --git a/modules/homepage/homepage.model.php b/modules/homepage/homepage.model.php index 4814cad62..78c1bca1d 100644 --- a/modules/homepage/homepage.model.php +++ b/modules/homepage/homepage.model.php @@ -23,6 +23,20 @@ $config->default_layout = 'cafeXE'; $config->enable_change_layout = 'N'; $config->allow_service = array('board'=>10,'page'=>2); + $config->creation_group = array(); + $config->cafe_main_mid = 'cafe'; + $config->skin = 'xe_default'; + $config->access_type = 'vid'; + $config->default_domain = ''; + } else { + $config->creation_group = explode(',',$config->creation_group); + if(!isset($config->cafe_main_mid)) $config->cafe_main_mid = 'cafe'; + if(!isset($config->skin)) $config->skin = 'xe_default'; + if(!isset($config->access_type)) $config->access_type = 'vid'; + if($config->default_domain) { + if(strpos($config->default_domain,':')===false) $config->default_domain = 'http://'.$config->default_domain; + if(substr($config->default_domain,-1)!='/') $config->default_domain .= '/'; + } } if($site_srl) { $part_config = $oModuleModel->getModulePartConfig('homepage', $site_srl); @@ -33,10 +47,29 @@ return $config; } + function isCreationGranted($member_info = null) { + if(!$member_info) $member_info = Context::get('logged_info'); + if(!$member_info->member_srl) return false; + if($member_info->is_admin == 'Y') return true; + + $config = $this->getConfig(0); + + if(!is_array($member_info->group_list) || !count($member_info->group_list) || !count($config->creation_group)) return; + + $keys = array_keys($member_info->group_list); + for($i=0,$c=count($keys);$i<$c;$i++) { + if(in_array($keys[$i],$config->creation_group)) return true; + } + return false; + } + function getHomepageInfo($site_srl) { $args->site_srl = $site_srl; $output = executeQuery('homepage.getHomepageInfo', $args); if(!$output->toBool() || !$output->data) return; + + $banner_src = 'files/attach/cafe_banner/'.$site_srl.'.jpg'; + if(file_exists(_XE_PATH_.$banner_src)) $output->data->cafe_banner = $banner_src.'?rnd='.filemtime(_XE_PATH_.$banner_src); return $output->data; } diff --git a/modules/homepage/homepage.view.php b/modules/homepage/homepage.view.php index 5c6914994..ab860afdb 100644 --- a/modules/homepage/homepage.view.php +++ b/modules/homepage/homepage.view.php @@ -17,32 +17,88 @@ function init() { $oModuleModel = &getModel('module'); - // 현재 접속 권한 체크하여 사이트 관리자가 아니면 접근 금지 - $logged_info = Context::get('logged_info'); - if(!Context::get('is_logged') || !$oModuleModel->isSiteAdmin($logged_info)) return $this->stop('msg_not_permitted'); - // site_module_info값으로 홈페이지의 정보를 구함 - $this->site_module_info = Context::get('site_module_info'); - $this->site_srl = $this->site_module_info->site_srl; - if(!$this->site_srl) return $this->stop('msg_invalid_request'); + if($this->act != 'dispHomepageIndex') { + // 현재 접속 권한 체크하여 사이트 관리자가 아니면 접근 금지 + $logged_info = Context::get('logged_info'); + if(!Context::get('is_logged') || !$oModuleModel->isSiteAdmin($logged_info)) return $this->stop('msg_not_permitted'); - // 홈페이지 정보를 추출하여 세팅 + // site_module_info값으로 홈페이지의 정보를 구함 + $this->site_module_info = Context::get('site_module_info'); + $this->site_srl = $this->site_module_info->site_srl; + if(!$this->site_srl) return $this->stop('msg_invalid_request'); + + // 홈페이지 정보를 추출하여 세팅 + $oHomepageModel = &getModel('homepage'); + $this->homepage_info = $oHomepageModel->getHomepageInfo($this->site_srl); + Context::set('homepage_info', $this->homepage_info); + + // 템플릿 디렉토리를 구함 + $template_path = sprintf("%stpl",$this->module_path); + $this->setTemplatePath($template_path); + + // 모듈 번호가 있으면 해동 모듈의 정보를 구해와서 세팅 + $module_srl = Context::get('module_srl'); + if($module_srl) { + $module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl); + if(!$module_info || $module_info->site_srl != $this->site_srl) return new Object(-1,'msg_invalid_request'); + $this->module_info = $module_info; + Context::set('module_info', $module_info); + } + } + } + + /** + * @brief 카페 메인 출력 + **/ + function dispHomepageIndex() { + $oHomepageAdminModel = &getAdminModel('homepage'); $oHomepageModel = &getModel('homepage'); - $this->homepage_info = $oHomepageModel->getHomepageInfo($this->site_srl); - Context::set('homepage_info', $this->homepage_info); - // 템플릿 디렉토리를 구함 - $template_path = sprintf("%stpl",$this->module_path); + $template_path = sprintf("%sskins/%s/",$this->module_path, $this->module_info->skin); + if(!is_dir($template_path)||!$this->module_info->skin) { + $this->module_info->skin = 'xe_default'; + $template_path = sprintf("%sskins/%s/",$this->module_path, $this->module_info->skin); + } $this->setTemplatePath($template_path); - // 모듈 번호가 있으면 해동 모듈의 정보를 구해와서 세팅 - $module_srl = Context::get('module_srl'); - if($module_srl) { - $module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl); - if(!$module_info || $module_info->site_srl != $this->site_srl) return new Object(-1,'msg_invalid_request'); - $this->module_info = $module_info; - Context::set('module_info', $module_info); + // 카페 목록을 구함 + $page = Context::get('page'); + $output = $oHomepageAdminModel->getHomepageList($page); + if($output->data && count($output->data)) { + foreach($output->data as $key => $val) { + $banner_src = 'files/attach/cafe_banner/'.$val->site_srl.'.jpg'; + if(file_exists(_XE_PATH_.$banner_src)) $output->data[$key]->cafe_banner = $banner_src.'?rnd='.filemtime(_XE_PATH_.$banner_src); + } } + Context::set('total_count', $output->total_count); + Context::set('total_page', $output->total_page); + Context::set('page', $output->page); + Context::set('homepage_list', $output->data); + Context::set('page_navigation', $output->page_navigation); + + // 카페 생성 권한 세팅 + if($oHomepageModel->isCreationGranted()) { + Context::set('isEnableCreateCafe', true); + Context::addJsFilter($this->module_path.'tpl/filter', 'cafe_creation.xml'); + } + + // 카페의 최신 글 추출 + $output = executeQueryArray('homepage.getNewestDocuments'); + Context::set('newest_documents', $output->data); + + // 카페의 최신 댓글 추출 + $output = executeQueryArray('homepage.getNewestComments'); + Context::set('newest_comments', $output->data); + + $logged_info = Context::get('logged_info'); + if($logged_info->member_srl) { + $myargs->member_srl = $logged_info->member_srl; + $output = executeQueryArray('homepage.getMyCafes', $myargs); + Context::set('my_cafes', $output->data); + } + + $this->setTemplateFile('index'); } /** @@ -56,7 +112,6 @@ $homepage_config = $oHomepageModel->getConfig($this->site_srl); Context::set('homepage_config', $homepage_config); - debugPrint($homepage_config); // 다운로드 되어 있는 레이아웃 목록을 구함 $layout_list = $oLayoutModel->getDownloadedLayoutList(); diff --git a/modules/homepage/lang/en.lang.php b/modules/homepage/lang/en.lang.php index f6ed6bd77..e648f7925 100644 --- a/modules/homepage/lang/en.lang.php +++ b/modules/homepage/lang/en.lang.php @@ -6,7 +6,10 @@ **/ $lang->cafe = "CafeXE"; + $lang->cafe_id = "카페 접속 ID"; $lang->cafe_title = "Title of cafe"; + $lang->cafe_description = 'Description of cafe'; + $lang->cafe_banner = 'Banner of Cafe'; $lang->module_type = "Type of target module"; $lang->board = "Board"; $lang->page = "Page"; @@ -15,6 +18,11 @@ $lang->cafe_info = "Cafe Infomation"; $lang->cafe_admin = "CafeXE administrator"; $lang->do_selected_member = "Change the selected members into : "; + $lang->cafe_latest_documents = '카페 최신 글'; + $lang->cafe_latest_comments = '카페 최신 댓글'; + $lang->mycafe_list = '가입한 카페'; + $lang->cafe_creation_type = '카페 접속 방법'; + $lang->about_cafe_creation_type = '사용자들이 카페를 생성할때 카페 접속 방법을 정해야 합니다. Site ID는 http://기본주소/ID 로 접속 가능하고 Domain 접속은 입력하신 도메인의 2차 도메인(http://domain.mydomain.net) 으로 카페가 생성됩니다'; $lang->default_layout = '기본 레이아웃'; $lang->about_default_layout = '카페가 생성될때 설정될 기본 레이아웃을 지정할 수 있습니다'; @@ -23,9 +31,13 @@ $lang->allow_service = '허용 서비스'; $lang->about_allow_service = '개별 카페에서 사용할 기본 서비스를 설정할 수 있습니다'; - $lang->cmd_make_cafe = 'create Cafe'; + $lang->cmd_make_cafe = 'Cafe creation'; $lang->cmd_import = 'Import'; $lang->cmd_export = 'Export'; + $lang->cafe_creation_privilege = 'Cafe creation privilege'; + + $lang->cafe_main_mid = '카페 메인 ID'; + $lang->about_cafe_main_mid = '카페 메인 페이지를 http://주소/ID 값으로 접속하기 위한 ID값을 입력해주세요.'; $lang->default_menus = array( 'home' => 'Home', @@ -87,6 +99,7 @@ $lang->confirm_change_layout = "If you change the layout, some information of the layout might be reset. Would you like to change it?"; $lang->confirm_delete_menu_item = "If you delete the menu item, the linked module(board or page) will be removed, too. Would you like to delete it?"; $lang->msg_module_count_exceed = '허용된 모듈의 개수를 초과하였기에 생성할 수 없습니다'; + $lang->msg_not_enabled_id = '사용할 수 없는 아이디입니다'; $lang->msg_same_site = '동일한 가상 사이트의 모듈은 이동할 수가 없습니다'; $lang->about_move_module = '가상사이트와 기본사이트간의 모듈을 옮길 수 있습니다.
다만 가상사이트끼리 모듈을 이동하거나 같은 이름의 mid가 있을 경우 예기치 않은 오류가 생길 수 있으니 꼭 가상 사이트와 기본 사이트간의 다른 이름을 가지는 모듈만 이동하세요'; ?> diff --git a/modules/homepage/lang/es.lang.php b/modules/homepage/lang/es.lang.php index d260583c3..13db3dd1a 100644 --- a/modules/homepage/lang/es.lang.php +++ b/modules/homepage/lang/es.lang.php @@ -6,7 +6,10 @@ **/ $lang->cafe = 'CafeXE'; + $lang->cafe_id = "카페 접속 ID"; $lang->cafe_title = 'Nombre de café'; + $lang->cafe_description = 'Description of cafe'; + $lang->cafe_banner = 'Banner of Cafe'; $lang->module_type = 'Meta'; $lang->board = 'Boletines'; $lang->page = 'Página'; @@ -15,6 +18,11 @@ $lang->cafe_info = 'Cafe Información'; $lang->cafe_admin = 'Gerente de café'; $lang->do_selected_member = 'Los miembros seleccionados: '; + $lang->cafe_latest_documents = '카페 최신 글'; + $lang->cafe_latest_comments = '카페 최신 댓글'; + $lang->mycafe_list = '가입한 카페'; + $lang->cafe_creation_type = '카페 접속 방법'; + $lang->about_cafe_creation_type = '사용자들이 카페를 생성할때 카페 접속 방법을 정해야 합니다. Site ID는 http://기본주소/ID 로 접속 가능하고 Domain 접속은 입력하신 도메인의 2차 도메인(http://domain.mydomain.net) 으로 카페가 생성됩니다'; $lang->default_layout = '기본 레이아웃'; $lang->about_default_layout = '카페가 생성될때 설정될 기본 레이아웃을 지정할 수 있습니다'; @@ -23,9 +31,13 @@ $lang->allow_service = '허용 서비스'; $lang->about_allow_service = '개별 카페에서 사용할 기본 서비스를 설정할 수 있습니다'; - $lang->cmd_make_cafe = '카페 생성'; + $lang->cmd_make_cafe = 'Café creación'; $lang->cmd_import = 'Import'; $lang->cmd_export = 'Export'; + $lang->cafe_creation_privilege = 'Café creación privilegio'; + + $lang->cafe_main_mid = '카페 메인 ID'; + $lang->about_cafe_main_mid = '카페 메인 페이지를 http://주소/ID 값으로 접속하기 위한 ID값을 입력해주세요.'; $lang->default_menus = array( 'home' => 'Inicio', @@ -86,6 +98,7 @@ $lang->confirm_change_layout = 'Si cambia el diseño de algunas de la información relativa al diseño puede desaparecer. ¿Te gustaría cambiar?'; $lang->confirm_delete_menu_item = 'Eliminación de un elemento de menú o de la página, el módulo está conectado con el boletín se eliminarán. Si desea eliminar?'; $lang->msg_module_count_exceed = '허용된 모듈의 개수를 초과하였기에 생성할 수 없습니다'; + $lang->msg_not_enabled_id = '사용할 수 없는 아이디입니다'; $lang->msg_same_site = '동일한 가상 사이트의 모듈은 이동할 수가 없습니다'; $lang->about_move_module = '가상사이트와 기본사이트간의 모듈을 옮길 수 있습니다.
다만 가상사이트끼리 모듈을 이동하거나 같은 이름의 mid가 있을 경우 예기치 않은 오류가 생길 수 있으니 꼭 가상 사이트와 기본 사이트간의 다른 이름을 가지는 모듈만 이동하세요'; ?> diff --git a/modules/homepage/lang/jp.lang.php b/modules/homepage/lang/jp.lang.php index 1b7971313..a43f5d077 100644 --- a/modules/homepage/lang/jp.lang.php +++ b/modules/homepage/lang/jp.lang.php @@ -6,7 +6,10 @@ **/ $lang->cafe = "CafeXE"; + $lang->cafe_id = "카페 접속 ID"; $lang->cafe_title = "ホームページ名"; + $lang->cafe_description = 'Description of cafe'; + $lang->cafe_banner = 'Banner of Cafe'; $lang->module_type = "タイプ"; $lang->board = "掲示板"; $lang->page = "ページ"; @@ -15,6 +18,11 @@ $lang->cafe_info = "Cafe Infomation"; $lang->cafe_admin = "ホームページ管理者"; $lang->do_selected_member = "選択した会員を : "; + $lang->cafe_latest_documents = '카페 최신 글'; + $lang->cafe_latest_comments = '카페 최신 댓글'; + $lang->mycafe_list = '가입한 카페'; + $lang->cafe_creation_type = '카페 접속 방법'; + $lang->about_cafe_creation_type = '사용자들이 카페를 생성할때 카페 접속 방법을 정해야 합니다. Site ID는 http://기본주소/ID 로 접속 가능하고 Domain 접속은 입력하신 도메인의 2차 도메인(http://domain.mydomain.net) 으로 카페가 생성됩니다'; $lang->default_layout = '기본 레이아웃'; $lang->about_default_layout = '카페가 생성될때 설정될 기본 레이아웃을 지정할 수 있습니다'; @@ -26,6 +34,10 @@ $lang->cmd_make_cafe = '카페 생성'; $lang->cmd_import = 'Import'; $lang->cmd_export = 'Export'; + $lang->cafe_creation_privilege = 'カフェの作成権限'; + + $lang->cafe_main_mid = '카페 메인 ID'; + $lang->about_cafe_main_mid = '카페 메인 페이지를 http://주소/ID 값으로 접속하기 위한 ID값을 입력해주세요.'; $lang->default_menus = array( 'home' => 'ホーム', @@ -86,6 +98,7 @@ $lang->confirm_change_layout = "レイアウトの変更時、一部のレイアウト情報が失われる可能性があります。 変更しますか?"; $lang->confirm_delete_menu_item = "メニューの削除時、リンクされている掲示板やページモジュールも一緒に削除されます。削除しますか?"; $lang->msg_module_count_exceed = '허용된 모듈의 개수를 초과하였기에 생성할 수 없습니다'; + $lang->msg_not_enabled_id = '사용할 수 없는 아이디입니다'; $lang->msg_same_site = '동일한 가상 사이트의 모듈은 이동할 수가 없습니다'; $lang->about_move_module = '가상사이트와 기본사이트간의 모듈을 옮길 수 있습니다.
다만 가상사이트끼리 모듈을 이동하거나 같은 이름의 mid가 있을 경우 예기치 않은 오류가 생길 수 있으니 꼭 가상 사이트와 기본 사이트간의 다른 이름을 가지는 모듈만 이동하세요'; ?> diff --git a/modules/homepage/lang/ko.lang.php b/modules/homepage/lang/ko.lang.php index 12b0ffddc..d06dfc9c8 100644 --- a/modules/homepage/lang/ko.lang.php +++ b/modules/homepage/lang/ko.lang.php @@ -6,7 +6,10 @@ **/ $lang->cafe = 'CafeXE'; + $lang->cafe_id = "카페 접속 ID"; $lang->cafe_title = 'Cafe 이름'; + $lang->cafe_description = 'Cafe 설명'; + $lang->cafe_banner = 'Cafe 배너이미지'; $lang->module_type = '대상'; $lang->board = '게시판'; $lang->page = '페이지'; @@ -15,6 +18,11 @@ $lang->cafe_info = '카페 정보'; $lang->cafe_admin = 'Cafe 관리자'; $lang->do_selected_member = '선택된 회원을 : '; + $lang->cafe_latest_documents = '카페 최신 글'; + $lang->cafe_latest_comments = '카페 최신 댓글'; + $lang->mycafe_list = '가입한 카페'; + $lang->cafe_creation_type = '카페 접속 방법'; + $lang->about_cafe_creation_type = '사용자들이 카페를 생성할때 카페 접속 방법을 정해야 합니다. Site ID는 http://기본주소/ID 로 접속 가능하고 Domain 접속은 입력하신 도메인의 2차 도메인(http://domain.mydomain.net) 으로 카페가 생성됩니다'; $lang->default_layout = '기본 레이아웃'; $lang->about_default_layout = '카페가 생성될때 설정될 기본 레이아웃을 지정할 수 있습니다'; @@ -26,6 +34,10 @@ $lang->cmd_make_cafe = '카페 생성'; $lang->cmd_import = '가져오기'; $lang->cmd_export = '내보내기'; + $lang->cafe_creation_privilege = '카페 생성 권한'; + + $lang->cafe_main_mid = '카페 메인 ID'; + $lang->about_cafe_main_mid = '카페 메인 페이지를 http://주소/ID 값으로 접속하기 위한 ID값을 입력해주세요.'; $lang->default_menus = array( 'home' => '홈', @@ -86,6 +98,7 @@ $lang->confirm_change_layout = '레이아웃을 변경할 경우 레이아웃 정보들 중 일부가 사라질 수가 있습니다. 변경하시겠습니까?'; $lang->confirm_delete_menu_item = '메뉴 항목 삭제시 연결되어 있는 게시판이나 페이지 모듈도 같이 삭제가 됩니다. 그래도 삭제하시겠습니까?'; $lang->msg_module_count_exceed = '허용된 모듈의 개수를 초과하였기에 생성할 수 없습니다'; + $lang->msg_not_enabled_id = '사용할 수 없는 아이디입니다'; $lang->msg_same_site = '동일한 가상 사이트의 모듈은 이동할 수가 없습니다'; $lang->about_move_module = '가상사이트와 기본사이트간의 모듈을 옮길 수 있습니다.
다만 가상사이트끼리 모듈을 이동하거나 같은 이름의 mid가 있을 경우 예기치 않은 오류가 생길 수 있으니 꼭 가상 사이트와 기본 사이트간의 다른 이름을 가지는 모듈만 이동하세요'; ?> diff --git a/modules/homepage/lang/zh-CN.lang.php b/modules/homepage/lang/zh-CN.lang.php index 76465b787..a7ef9fd9b 100644 --- a/modules/homepage/lang/zh-CN.lang.php +++ b/modules/homepage/lang/zh-CN.lang.php @@ -6,7 +6,10 @@ **/ $lang->cafe = "站点"; + $lang->cafe_id = "카페 접속 ID"; $lang->cafe_title = "站点名称"; + $lang->cafe_description = 'Description of cafe'; + $lang->cafe_banner = 'Banner of Cafe'; $lang->module_type = "对象"; $lang->board = "版面"; $lang->page = "页面"; @@ -15,6 +18,11 @@ $lang->cafe_info = "站点信息"; $lang->cafe_admin = "管理员"; $lang->do_selected_member = "把所选用户 : "; + $lang->cafe_latest_documents = '카페 최신 글'; + $lang->cafe_latest_comments = '카페 최신 댓글'; + $lang->mycafe_list = '가입한 카페'; + $lang->cafe_creation_type = '카페 접속 방법'; + $lang->about_cafe_creation_type = '사용자들이 카페를 생성할때 카페 접속 방법을 정해야 합니다. Site ID는 http://기본주소/ID 로 접속 가능하고 Domain 접속은 입력하신 도메인의 2차 도메인(http://domain.mydomain.net) 으로 카페가 생성됩니다'; $lang->default_layout = '기본 레이아웃'; $lang->about_default_layout = '카페가 생성될때 설정될 기본 레이아웃을 지정할 수 있습니다'; @@ -26,6 +34,10 @@ $lang->cmd_make_cafe = '카페 생성'; $lang->cmd_import = 'Import'; $lang->cmd_export = 'Export'; + $lang->cafe_creation_privilege = '咖啡厅建立特权'; + + $lang->cafe_main_mid = '카페 메인 ID'; + $lang->about_cafe_main_mid = '카페 메인 페이지를 http://주소/ID 값으로 접속하기 위한 ID값을 입력해주세요.'; $lang->default_menus = array( 'home' => '首页', @@ -86,6 +98,7 @@ $lang->confirm_change_layout = "切换布局可能一些原有的信息将无法显示。你确定要切换吗?"; $lang->confirm_delete_menu_item = "删除菜单:即同时删除链接到此菜单的版面或页面模块。你确定要删除吗?"; $lang->msg_module_count_exceed = '허용된 모듈의 개수를 초과하였기에 생성할 수 없습니다'; + $lang->msg_not_enabled_id = '사용할 수 없는 아이디입니다'; $lang->msg_same_site = '동일한 가상 사이트의 모듈은 이동할 수가 없습니다'; $lang->about_move_module = '가상사이트와 기본사이트간의 모듈을 옮길 수 있습니다.
다만 가상사이트끼리 모듈을 이동하거나 같은 이름의 mid가 있을 경우 예기치 않은 오류가 생길 수 있으니 꼭 가상 사이트와 기본 사이트간의 다른 이름을 가지는 모듈만 이동하세요'; ?> diff --git a/modules/homepage/lang/zh-TW.lang.php b/modules/homepage/lang/zh-TW.lang.php index 8d0c39301..6c9122013 100644 --- a/modules/homepage/lang/zh-TW.lang.php +++ b/modules/homepage/lang/zh-TW.lang.php @@ -6,7 +6,10 @@ **/ $lang->cafe = "虛擬網站"; + $lang->cafe_id = "카페 접속 ID"; $lang->cafe_title = "網站名稱"; + $lang->cafe_description = 'Description of cafe'; + $lang->cafe_banner = 'Banner of Cafe'; $lang->module_type = "目標"; $lang->board = "討論板"; $lang->page = "頁面"; @@ -15,6 +18,11 @@ $lang->cafe_info = "網站資訊"; $lang->cafe_admin = "網站管理者"; $lang->do_selected_member = "選擇會員 : "; + $lang->cafe_latest_documents = '카페 최신 글'; + $lang->cafe_latest_comments = '카페 최신 댓글'; + $lang->mycafe_list = '가입한 카페'; + $lang->cafe_creation_type = '카페 접속 방법'; + $lang->about_cafe_creation_type = '사용자들이 카페를 생성할때 카페 접속 방법을 정해야 합니다. Site ID는 http://기본주소/ID 로 접속 가능하고 Domain 접속은 입력하신 도메인의 2차 도메인(http://domain.mydomain.net) 으로 카페가 생성됩니다'; $lang->default_layout = '기본 레이아웃'; $lang->about_default_layout = '카페가 생성될때 설정될 기본 레이아웃을 지정할 수 있습니다'; @@ -26,6 +34,10 @@ $lang->cmd_make_cafe = '建立網站'; $lang->cmd_import = 'Import'; $lang->cmd_export = 'Export'; + $lang->cafe_creation_privilege = '咖啡廳建立特權'; + + $lang->cafe_main_mid = '카페 메인 ID'; + $lang->about_cafe_main_mid = '카페 메인 페이지를 http://주소/ID 값으로 접속하기 위한 ID값을 입력해주세요.'; $lang->default_menus = array( 'home' => '首頁', @@ -87,6 +99,7 @@ $lang->confirm_change_layout = "變換版面可能會使原來的資料無法顯示。確定要變換嗎?"; $lang->confirm_delete_menu_item = "刪除選單:刪除選單的同時,將會使連結到選單的討論板或頁面一起刪除。確定要刪除嗎?"; $lang->msg_module_count_exceed = '허용된 모듈의 개수를 초과하였기에 생성할 수 없습니다'; + $lang->msg_not_enabled_id = '사용할 수 없는 아이디입니다'; $lang->msg_same_site = '동일한 가상 사이트의 모듈은 이동할 수가 없습니다'; $lang->about_move_module = '가상사이트와 기본사이트간의 모듈을 옮길 수 있습니다.
다만 가상사이트끼리 모듈을 이동하거나 같은 이름의 mid가 있을 경우 예기치 않은 오류가 생길 수 있으니 꼭 가상 사이트와 기본 사이트간의 다른 이름을 가지는 모듈만 이동하세요'; ?> diff --git a/modules/homepage/queries/getHomepageInfo.xml b/modules/homepage/queries/getHomepageInfo.xml index 3b2325d47..2940ae3cd 100644 --- a/modules/homepage/queries/getHomepageInfo.xml +++ b/modules/homepage/queries/getHomepageInfo.xml @@ -6,6 +6,7 @@ + diff --git a/modules/homepage/queries/getHomepageList.xml b/modules/homepage/queries/getHomepageList.xml index 558f92013..5cd09f4ec 100644 --- a/modules/homepage/queries/getHomepageList.xml +++ b/modules/homepage/queries/getHomepageList.xml @@ -6,7 +6,8 @@ - + + diff --git a/modules/homepage/queries/getMyCafes.xml b/modules/homepage/queries/getMyCafes.xml new file mode 100644 index 000000000..993a5ef29 --- /dev/null +++ b/modules/homepage/queries/getMyCafes.xml @@ -0,0 +1,24 @@ + + + +
+
+
+ + + + + + + + + + + + + + + + + + diff --git a/modules/homepage/queries/getNewestComments.xml b/modules/homepage/queries/getNewestComments.xml new file mode 100644 index 000000000..f8a5675a2 --- /dev/null +++ b/modules/homepage/queries/getNewestComments.xml @@ -0,0 +1,23 @@ + + +
+
+
+
+ + + + + + + + + + + + + + + + + diff --git a/modules/homepage/queries/getNewestDocuments.xml b/modules/homepage/queries/getNewestDocuments.xml new file mode 100644 index 000000000..ff0db6b85 --- /dev/null +++ b/modules/homepage/queries/getNewestDocuments.xml @@ -0,0 +1,23 @@ + + +
+
+
+
+ + + + + + + + + + + + + + + + + diff --git a/modules/homepage/queries/updateHomepage.xml b/modules/homepage/queries/updateHomepage.xml index b809abd72..d24c536a1 100644 --- a/modules/homepage/queries/updateHomepage.xml +++ b/modules/homepage/queries/updateHomepage.xml @@ -4,6 +4,7 @@ + diff --git a/modules/homepage/schemas/homepages.xml b/modules/homepage/schemas/homepages.xml index c17897d7f..c207ced00 100644 --- a/modules/homepage/schemas/homepages.xml +++ b/modules/homepage/schemas/homepages.xml @@ -5,5 +5,6 @@ +
diff --git a/modules/homepage/skins/xe_default/img/arrowNextA1.gif b/modules/homepage/skins/xe_default/img/arrowNextA1.gif new file mode 100644 index 0000000000000000000000000000000000000000..15c36291e4cb2bc0eba9723c7e0b4d98b5e33ef7 GIT binary patch literal 46 ycmZ?wbhEHbWM*JxXkcWRIdkU!|Nj+#vM@3*Ff!;c00Bsbfr-_HXK1B2pE79h#MpaUX6G7L=2E&Z$v)&Rnf2Soq? literal 0 HcmV?d00001 diff --git a/modules/homepage/skins/xe_default/img/lineVr11.gif b/modules/homepage/skins/xe_default/img/lineVr11.gif new file mode 100644 index 0000000000000000000000000000000000000000..8c8291f992016f579fa6e93557398d62d0f9c69e GIT binary patch literal 44 tcmZ?wbhEHbWMtrGXkcKtd-pB_1B2pE79h#MpaUX6G7L=2E&Txu)&R+v2gLvY literal 0 HcmV?d00001 diff --git a/modules/homepage/skins/xe_default/index.html b/modules/homepage/skins/xe_default/index.html new file mode 100644 index 000000000..2d2b20650 --- /dev/null +++ b/modules/homepage/skins/xe_default/index.html @@ -0,0 +1,149 @@ + + + +
+ + + + +

{$module_info->comment}

+
+ + +
+ +
+ + +
+

{$module_info->intro_title}

+ + {$module_info->intro_description} + {$module_info->intro_url} +
+ + +
+ +
+ + +
+ +
+ +
+ + +
+ +

{$lang->cmd_make_cafe}

+
+ + + + + + + + + + + + + + + + + + + + + + +
{$lang->cafe_id}
+ +
{$lang->cafe_title}
{$lang->cafe_description}
+
+ + + +

{$lang->mycafe_list} ({count($my_cafes)})

+ + +
+ + + +
+

{$lang->cafe_latest_documents}

+ +
+ + + +
+

{$lang->cafe_latest_comments}

+ +
+ +
+ +
diff --git a/modules/homepage/skins/xe_default/skin.xml b/modules/homepage/skins/xe_default/skin.xml new file mode 100644 index 000000000..11d71e7a5 --- /dev/null +++ b/modules/homepage/skins/xe_default/skin.xml @@ -0,0 +1,53 @@ + + + Cafe 기본 Skin + + Cafe 기본 스킨입니다. + + 0.1 + 2009-04-03 + + + zero + + + GPL + + + + 기본 + + + + + + 제목 + 제목을 적어주세요. + + + 부제목 + 제목 옆에 나타날 부제목을 적어주세요. + + + 상세 설명 + 제목 아래 표시될 설명을 입력하실 수 있습니다. + + + 카페 소개 제목 + 소개할 카페의 제목을 입력해주세요. (메인 노출) + + + 카페 소개 내용 + 소개할 카페의 내용을 입력해주세요. (메인 노출) + + + 카페 소개 이미지 + 소개할 카페의 내용에 포함되는 이미지를 등록해주세요. (메인 노출) + + + 카페 소개 링크 + 소개할 카페의 링크를 입력해주세요. (http:// 모두 포함) + + + + diff --git a/modules/homepage/skins/xe_default/style.css b/modules/homepage/skins/xe_default/style.css new file mode 100644 index 000000000..e089a8c80 --- /dev/null +++ b/modules/homepage/skins/xe_default/style.css @@ -0,0 +1,120 @@ +@charset "utf-8"; + +/* header */ +.cafeHeader *{ margin:0 0 30px 0; padding:0;} +.cafeHeader .cafeTitle{ font-size:1em; letter-spacing:-.1em; margin-bottom:10px; border-bottom:3px solid; *zoom:1; background-repeat:no-repeat; background-position:left center;} +.cafeHeader .cafeTitle:after{ content:""; display:block; clear:both;} +.cafeHeader .cafeTitleText{ float:left; clear:both; margin-bottom:-3px; padding:5px 15px 5px 5px; border-bottom:3px solid; background-repeat:no-repeat; background-position:right bottom;} +.cafeHeader .cafeTitleText a{ text-decoration:none;} +.cafeHeader .cafeTitleText em{ font-style:normal; font-weight:normal;} +.cafeHeader .cafeDescription{ padding:7px 15px; -moz-border-radius:3px; -webkit-border-radius:3px; position:relative;} +.cafeHeader .cafeTitle{ border-color:#ddd; } +.cafeHeader .cafeTitleText{ border-color:#666; background-image:url(./img/lineVr11.gif);} +.cafeHeader .cafeTitleText a{ color:#000;} +.cafeHeader .cafeTitleText em{ color:#666;} +.cafeHeader .cafeDescription{ background:#f8f8f8; } + +/* layout */ +div.cafeBox { position:relative; padding:0 250px 0 0; *zoom:1; } +div.cafeBox:after{ content:""; display:block; clear:both;} +div.cafeBox a { text-decoration:none; } +div.cafeBox a:hover { text-decoration:underline; position:relative; } + +div.cafeLeftBox { position:relative; margin-bottom:20px; text-align:justify; float:left; width:100%;} +div.cafeRightBox { position:relative; width:230px; float:right; clear:right; margin-left:-230px; right:-250px; } + +hr.cafeHR { display:none; position:absolute;} + +/* intro */ +div.intro { border:4px solid #ddd; margin-bottom:20px; padding:10px; *zoom:1; overflow:hidden;} +div.intro h3 { width:100%; padding:0 0 5px 0; border-bottom:2px solid #aaa; margin-bottom:10px; } +div.intro img { padding:0; margin:10px; } +div.intro .url { text-align:right; display:block; } +div.intro .url a { color:#5B96C2; } + +/* cafe list */ +.cafeList div.tabContent { display:none; } +.cafeList{ position:relative; margin:0; padding:0; font-size:12px; line-height:1.5; *zoom:1;} +.cafeList:after{ content:""; display:block; clear:both;} +.cafeList li { list-style:none; clear:both; margin-bottom:10px; padding-bottom:10px; *zoom:1; overflow:hidden; border-bottom:1px dotted #ddd;} +.cafeList li p{ margin:0; padding:0;} +.cafeList li p.thumbArea{ position:relative; float:left; overflow:hidden; margin-right:10px; } +.cafeList li p.titleArea{ margin-bottom:4px; overflow:hidden; white-space:nowrap; padding-right:2px; font-size:16px; } +.cafeList li p.titleArea .board{ padding-right:5px;} +.cafeList li p.text{ margin-bottom:4px; clear:both; padding-left:10px;} +.cafeList li p.url { color:#5B96C2; float:left; clear:left; } +.cafeList li p.url a { color:#5B96C2!important; } +.cafeList li p.date { float:right; color:#999; font-weight:normal;} +.cafeList li .thumb{ text-decoration:none; overflow:hidden; width:100px; height:100px; } +.cafeList li .thumb img { margin:0 5px 5px 0; padding:1px; border:1px solid #eee; } +.cafeList li .title{ font-weight:bold;} +.cafeList li .replyNum a{ font:10px Tahoma; margin:0 -1px;} +.cafeList li .trackbackNum a{ font:10px Tahoma; margin:0 -1px;} +.cafeList li .author{ margin-right:10px;} +.cafeList li .date{ font:11px Tahoma; } +.cafeList li .hour{ font:11px Tahoma;} +.cafeList li .board{ color:#333; background:url(./img/lineTextDiv.gif) no-repeat right center;} +.cafeList li .title{ color:#666;} +.cafeList li .replyNum a{ color:#ff1a1a;} +.cafeList li .trackbackNum a{ color:#66c;} +.cafeList li .author{ color:#333;} +.cafeList li .category{ color:#333; background:url(./img/lineTextDiv.gif) no-repeat right center;} +.cafeList li .date{ font-weight:bold; } +.cafeList li .hour{ color:#888;} +.cafeList li .text{ color:#888;} + +/* Pagination Reset */ +.pagination{ padding:15px 0; margin:0; text-align:center;} +.pagination *{ margin:0; padding:0;} +.pagination img{ border:0;} +.pagination a, +.pagination strong{ position:relative; display:inline-block; text-decoration:none; line-height:normal; color:#333; font-family:Tahoma, Sans-serif; vertical-align:middle;} +.pagination a:hover, +.pagination a:active, +.pagination a:focus{ background-color:#f4f4f4 !important; } +.pagination strong{ color:#ff6600 !important;} +.pagination a.prev, +.pagination a.prevEnd, +.pagination a.next, +.pagination a.nextEnd{ font-weight:normal !important; border:none !important; margin:0 !important; white-space:nowrap; } + +/* Pagination A1 */ +.pagination.a1 a, +.pagination.a1 strong{ margin:0 -4px; padding:1px 10px 1px 8px; border:none; border-left:1px solid #ccc; border-right:1px solid #ddd; font-weight:bold; font-size:12px; background:#fff;} +.pagination.a1 a.prev{ padding-left:10px; background:#fff url(./img/arrowPrevA1.gif) no-repeat left center; } +.pagination.a1 a.prevEnd{ padding-left:15px; background:#fff url(./img/arrowPrevEndA1.gif) no-repeat left center; } +.pagination.a1 a.next{ padding-right:10px; background:#fff url(./img/arrowNextA1.gif) no-repeat right center; } +.pagination.a1 a.nextEnd{ padding-right:15px; background:#fff url(./img/arrowNextEndA1.gif) no-repeat right center; } + +/* cafe creation */ +#cafeCreation { margin-bottom:10px; overflow:hidden; *zoom:1; position:relative;} +#cafeCreation a { text-decoration:none; } +#cafeCreation a:hover { text-decoration:underline; } +#cafeCreation { margin-bottom:30px; position:relative; *zoom:1;} + +/* cafe context */ +div.cafeContext { margin-bottom:20px; } +div.cafeContext h3 { font-size:12px; color:#777; border-bottom:2px solid #ccc; padding:3px; margin:0 0 10px 0;} +div.cafeContext ul { list-style:none; margin:10px 5px; padding:0; } +div.cafeContext ul li { margin:0 0 3px 0; padding:0; color:#aaa; white-space:nowrap; overflow:hidden; height:20px; } +div.cafeContext ul li span { color:#5B96C2; cursor:pointer;} +div.cafeContext ul li a { color:#728694!important; } +div.cafeContext ul li a img { vertical-align:middle; } + +.cafeTable{ width:100%; border:0; margin:0 0 20px 0; padding:0;} +.cafeTable th div { white-space:nowrap; } +.cafeTable th, +.cafeTable td{ border:0; padding:5px 10px; vertical-align:top;} +.cafeTable th{ background:#f4f4f4;} +.cafeTable thead th{ border-top:2px solid #cfcfcf; border-bottom:1px solid #e5e5e5; background-image:url(../img/lineVrText.gif); background-repeat:no-repeat; background-position:left center;} +.cafeTable thead th:first-child{ background-image:none;} +.cafeTable tbody th{ border-bottom:1px solid #e5e5e5; text-align:left;} +.cafeTable td{ border-bottom:1px solid #f0f0f0;} + +.cafeTable th.button { text-align:right; } +.cafeTable td.alert { color:red !important; } +.cafeTable td.alert a { text-decoration:none; color:red !important; } + +input.cafeID { width:150px; } +input.cafeTitle { width:90%; } +textarea.cafeDescription{ width:90%; height:40px;} diff --git a/modules/homepage/tpl/filter/cafe_creation.xml b/modules/homepage/tpl/filter/cafe_creation.xml new file mode 100644 index 000000000..a7bf487bb --- /dev/null +++ b/modules/homepage/tpl/filter/cafe_creation.xml @@ -0,0 +1,11 @@ + +
+ + + + + + + + +
diff --git a/modules/homepage/tpl/filter/insert_board.xml b/modules/homepage/tpl/filter/insert_board.xml deleted file mode 100644 index ff8992f3e..000000000 --- a/modules/homepage/tpl/filter/insert_board.xml +++ /dev/null @@ -1,39 +0,0 @@ - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/modules/homepage/tpl/filter/insert_grant.xml b/modules/homepage/tpl/filter/insert_grant.xml deleted file mode 100644 index 07df597e6..000000000 --- a/modules/homepage/tpl/filter/insert_grant.xml +++ /dev/null @@ -1,11 +0,0 @@ - -
- - - - - - - - -
diff --git a/modules/homepage/tpl/filter/insert_page.xml b/modules/homepage/tpl/filter/insert_page.xml deleted file mode 100644 index ad8176d7c..000000000 --- a/modules/homepage/tpl/filter/insert_page.xml +++ /dev/null @@ -1,10 +0,0 @@ - -
- - - - - - - -
diff --git a/modules/homepage/tpl/index.html b/modules/homepage/tpl/index.html index 475bd483f..502a85da6 100644 --- a/modules/homepage/tpl/index.html +++ b/modules/homepage/tpl/index.html @@ -13,7 +13,7 @@
{$lang->no}
{$lang->title}
-
{$lang->domain} / {$lang->vid}
+
{$lang->domain} / Site ID
{$lang->regdate}
 
@@ -22,7 +22,7 @@ {$no} - {htmlspecialchars($val->homepage_title)} + {htmlspecialchars($val->cafe_title)} {$val->domain} {zdate($val->regdate,"Y-m-d")} {$lang->cmd_setup} @@ -80,10 +80,65 @@ -
+

{$lang->cmd_setup}

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/homepage/tpl/js/homepage.js b/modules/homepage/tpl/js/homepage.js index c998cdda5..37e6973f9 100644 --- a/modules/homepage/tpl/js/homepage.js +++ b/modules/homepage/tpl/js/homepage.js @@ -414,6 +414,17 @@ function toggleAccessType(target) { } } +function toggleCafeAccessType(target) { + switch(target) { + case 'domain' : + xGetElementById('accessCafeDomain').style.display = 'block'; + break; + case 'vid' : + xGetElementById('accessCafeDomain').style.display = 'none'; + break; + } +} + function importModule(id) { popopen( request_uri.setQuery('module','module').setQuery('act','dispModuleSelectList').setQuery('id',id).setQuery('type','single'), 'ModuleSelect'); } diff --git a/modules/homepage/tpl/layout_setup.html b/modules/homepage/tpl/layout_setup.html index 3787a414b..c45388dc6 100644 --- a/modules/homepage/tpl/layout_setup.html +++ b/modules/homepage/tpl/layout_setup.html @@ -4,6 +4,39 @@ +

{$lang->cafe_info}

+ + + + + + + +
{$lang->cafe_main_mid}
+ +

{$lang->about_cafe_main_mid}

+
{$lang->browser_title}
+ +
{$lang->skin}
+ + + {$lang->cmd_setup} + +
{$lang->cafe_creation_type}
+ + +
+ URL : +
+

{$lang->about_cafe_creation_type}

+
{$lang->cafe_creation_privilege}
+ + group_srl, $homepage_config->creation_group))-->checked="checked" value="{$val->group_srl}" id="creation_group_{$key}"/> + +
{$lang->default_layout}
+ + + + + + + + + + + + + + + +
{$lang->cafe_title}
{$lang->cafe_description}
{$lang->cafe_banner}
+ + cafe banner + + +
+ +
+

{$lang->cmd_select_index}

diff --git a/modules/homepage/tpl/redirect.html b/modules/homepage/tpl/redirect.html new file mode 100644 index 000000000..a8e3cefc1 --- /dev/null +++ b/modules/homepage/tpl/redirect.html @@ -0,0 +1,3 @@ + diff --git a/modules/homepage/tpl/skin_info.html b/modules/homepage/tpl/skin_info.html new file mode 100644 index 000000000..9692a3458 --- /dev/null +++ b/modules/homepage/tpl/skin_info.html @@ -0,0 +1,3 @@ +{$lang->cmd_back} + +{$skin_content} diff --git a/modules/module/module.model.php b/modules/module/module.model.php index 8dd123fa7..f092cc0f8 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -17,6 +17,8 @@ * @brief mid, vid 사용할 수 있는지 검사 **/ function isIDExists($id, $site_srl = 0) { + if(!preg_match('/^[a-z]{1}([a-z0-9_]+)$/i',$id)) return true; + // directory 및 rss/atom/api 등 예약어 검사 $dirs = FileHandler::readDir(_XE_PATH_); $dirs[] = 'rss';