mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-14 00:39:57 +09:00
cafeXE
1. 메인 페이지 생성 :: cafeXE 관리자 페이지에서 mid 지정 가능 2. 사용자가 카페를 생성하기 위한 옵션을 추가 3. 사용자 카페 생성 기능 추가 git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6176 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
010923790d
commit
7d67cee78e
41 changed files with 888 additions and 132 deletions
|
|
@ -35,7 +35,7 @@
|
|||
<tr>
|
||||
<th><div>{$lang->start_module}</div></th>
|
||||
<td>
|
||||
<select name="index_module_srl">
|
||||
<select name="index_module_srl" class="w200">
|
||||
<!--@foreach($mid_list as $key => $val)-->
|
||||
<option value="" disabled="disabled">{$key}</option>
|
||||
<!--@foreach($val as $k => $v)-->
|
||||
|
|
|
|||
|
|
@ -158,17 +158,21 @@
|
|||
<tbody>
|
||||
<tr>
|
||||
<th><div>{$lang->current_version}</div></th>
|
||||
<td>
|
||||
<td class="wide">
|
||||
<strong>{$current_version}</strong><!--@if($current_version == $released_version)--> [<a href="{$download_link}" onclick="window.open(this.href);return false;">{$lang->cmd_view}</a>]<!--@end-->
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><div>{$lang->current_path}</div></th>
|
||||
<td>{$installed_path}/</td>
|
||||
<th colspan="2"><div>{$lang->current_path}</div></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><div>{$lang->start_module}</div></th>
|
||||
<td><a href="{getSiteUrl('','','mid',$start_module->mid)}" onclick="window.open(this.href);return false;">{cut_str($start_module->browser_title,10)}</a></td>
|
||||
<td colspan="2">{$installed_path}/</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="2"><div>{$lang->start_module}</div></th>
|
||||
</tr>
|
||||
<Tr>
|
||||
<td colspan="2"><a href="{getSiteUrl('','','mid',$start_module->mid)}" onclick="window.open(this.href);return false;">{cut_str($start_module->browser_title,10)}</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><div>{$lang->time_zone}</div></th>
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
<permission action="dispHomepageBoardCategoryInfo" target="manager" />
|
||||
<permission action="dispHomepageBoardExtraVars" target="manager" />
|
||||
|
||||
<permission action="procHomepageCafeCreation" target="member" />
|
||||
<permission action="procHomepageChangeLayout" target="manager" />
|
||||
<permission action="procHomepageChangeLanguage" target="manager" />
|
||||
<permission action="procHomepageLayoutUpdate" target="manager" />
|
||||
|
|
@ -31,13 +32,13 @@
|
|||
<permission action="procHomepageInsertGroup" target="manager" />
|
||||
<permission action="procHomepageUpdateMemberGroup" target="manager" />
|
||||
<permission action="procHomepageDeleteMember" target="manager" />
|
||||
<permission action="procHomepageInsertBoard" target="manager" />
|
||||
<permission action="procHomepageInsertPage" target="manager" />
|
||||
<permission action="procHomepageUpdateBoardSkin" target="manager" />
|
||||
<permission action="procHomepageChangeIndex" target="manager" />
|
||||
</permissions>
|
||||
<actions>
|
||||
<action name="dispHomepageManage" type="view" standalone="true" index="true" />
|
||||
<action name="dispHomepageIndex" type="view" standalone="true" index="true" />
|
||||
|
||||
<action name="dispHomepageManage" type="view" standalone="true" />
|
||||
<action name="dispHomepageMemberGroupManage" type="view" standalone="true" />
|
||||
<action name="dispHomepageMemberManage" type="view" standalone="true" />
|
||||
<action name="dispHomepageTopMenu" type="view" standalone="true" />
|
||||
|
|
@ -56,6 +57,7 @@
|
|||
|
||||
<action name="getHomepageMenuItem" type="model" standalone="true" />
|
||||
|
||||
<action name="procHomepageCafeCreation" type="controller" standalone="true" />
|
||||
<action name="procHomepageChangeLayout" type="controller" standalone="true" />
|
||||
<action name="procHomepageChangeLanguage" type="controller" standalone="true" />
|
||||
<action name="procHomepageLayoutUpdate" type="controller" standalone="true" />
|
||||
|
|
@ -68,14 +70,15 @@
|
|||
<action name="procHomepageInsertGroup" type="controller" standalone="true" />
|
||||
<action name="procHomepageDeleteMember" type="controller" standalone="true" />
|
||||
<action name="procHomepageUpdateMemberGroup" type="controller" standalone="true" />
|
||||
<action name="procHomepageInsertBoard" type="controller" standalone="true" />
|
||||
<action name="procHomepageInsertPage" type="controller" standalone="true" />
|
||||
<action name="procHomepageChangeIndex" type="controller" standalone="true" />
|
||||
<action name="procHomepageInsertCafeBanner" type="controller" standalone="true" />
|
||||
|
||||
<action name="dispHomepageAdminContent" type="view" standalone="true" admin_index="true" />
|
||||
<action name="dispHomepageAdminSetup" type="view" standalone="true" />
|
||||
<action name="dispHomepageAdminSkinSetup" type="view" standalone="true" />
|
||||
<action name="dispHomepageAdminDelete" type="view" standalone="true" />
|
||||
|
||||
<action name="procHomepageAdminInsertConfig" type="controller" />
|
||||
<action name="procHomepageAdminInsertHomepage" type="controller" />
|
||||
<action name="procHomepageAdminUpdateHomepage" type="controller" />
|
||||
<action name="procHomepageAdminDeleteHomepage" type="controller" />
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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');
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -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');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -17,6 +17,8 @@
|
|||
function init() {
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
|
||||
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');
|
||||
|
|
@ -44,6 +46,60 @@
|
|||
Context::set('module_info', $module_info);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 카페 메인 출력
|
||||
**/
|
||||
function dispHomepageIndex() {
|
||||
$oHomepageAdminModel = &getAdminModel('homepage');
|
||||
$oHomepageModel = &getModel('homepage');
|
||||
|
||||
$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);
|
||||
|
||||
// 카페 목록을 구함
|
||||
$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');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 홈페이지 기본 관리
|
||||
|
|
@ -56,7 +112,6 @@
|
|||
|
||||
$homepage_config = $oHomepageModel->getConfig($this->site_srl);
|
||||
Context::set('homepage_config', $homepage_config);
|
||||
debugPrint($homepage_config);
|
||||
|
||||
// 다운로드 되어 있는 레이아웃 목록을 구함
|
||||
$layout_list = $oLayoutModel->getDownloadedLayoutList();
|
||||
|
|
|
|||
|
|
@ -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 = '가상사이트와 기본사이트간의 모듈을 옮길 수 있습니다.<br/>다만 가상사이트끼리 모듈을 이동하거나 같은 이름의 mid가 있을 경우 예기치 않은 오류가 생길 수 있으니 꼭 가상 사이트와 기본 사이트간의 다른 이름을 가지는 모듈만 이동하세요';
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -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 = '가상사이트와 기본사이트간의 모듈을 옮길 수 있습니다.<br/>다만 가상사이트끼리 모듈을 이동하거나 같은 이름의 mid가 있을 경우 예기치 않은 오류가 생길 수 있으니 꼭 가상 사이트와 기본 사이트간의 다른 이름을 가지는 모듈만 이동하세요';
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -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 = '가상사이트와 기본사이트간의 모듈을 옮길 수 있습니다.<br/>다만 가상사이트끼리 모듈을 이동하거나 같은 이름의 mid가 있을 경우 예기치 않은 오류가 생길 수 있으니 꼭 가상 사이트와 기본 사이트간의 다른 이름을 가지는 모듈만 이동하세요';
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -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 = '가상사이트와 기본사이트간의 모듈을 옮길 수 있습니다.<br/>다만 가상사이트끼리 모듈을 이동하거나 같은 이름의 mid가 있을 경우 예기치 않은 오류가 생길 수 있으니 꼭 가상 사이트와 기본 사이트간의 다른 이름을 가지는 모듈만 이동하세요';
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -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 = '가상사이트와 기본사이트간의 모듈을 옮길 수 있습니다.<br/>다만 가상사이트끼리 모듈을 이동하거나 같은 이름의 mid가 있을 경우 예기치 않은 오류가 생길 수 있으니 꼭 가상 사이트와 기본 사이트간의 다른 이름을 가지는 모듈만 이동하세요';
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -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 = '가상사이트와 기본사이트간의 모듈을 옮길 수 있습니다.<br/>다만 가상사이트끼리 모듈을 이동하거나 같은 이름의 mid가 있을 경우 예기치 않은 오류가 생길 수 있으니 꼭 가상 사이트와 기본 사이트간의 다른 이름을 가지는 모듈만 이동하세요';
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
</tables>
|
||||
<columns>
|
||||
<column name="homepages.*" />
|
||||
<column name="homepages.description" alias="cafe_description"/>
|
||||
<column name="sites.domain" alias="domain" />
|
||||
<column name="modules.*" />
|
||||
</columns>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,8 @@
|
|||
</tables>
|
||||
<columns>
|
||||
<column name="homepages.site_srl" alias="site_srl" />
|
||||
<column name="homepages.title" alias="homepage_title" />
|
||||
<column name="homepages.title" alias="cafe_title" />
|
||||
<column name="homepages.description" alias="cafe_description" />
|
||||
<column name="sites.domain" alias="domain" />
|
||||
<column name="modules.*" />
|
||||
</columns>
|
||||
|
|
|
|||
24
modules/homepage/queries/getMyCafes.xml
Normal file
24
modules/homepage/queries/getMyCafes.xml
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
<query id="getMyCafes" action="select">
|
||||
<tables>
|
||||
<table name="homepages" />
|
||||
<table name="sites" />
|
||||
<table name="modules" />
|
||||
<table name="member_group_member" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="homepages.site_srl" alias="site_srl" />
|
||||
<column name="homepages.title" alias="cafe_title" />
|
||||
<column name="homepages.description" alias="cafe_description" />
|
||||
<column name="sites.domain" alias="domain" />
|
||||
<column name="modules.*" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="sites.site_srl" default="homepages.site_srl" filter="number" notnull="notnull" />
|
||||
<condition operation="equal" column="modules.module_srl" default="sites.index_module_srl" pipe="and" />
|
||||
<condition operation="equal" column="member_group_member.site_srl" default="modules.site_srl" pipe="and" />
|
||||
<condition operation="equal" column="member_group_member.member_srl" var="member_srl" filter="number" notnull="notnull" pipe="and" />
|
||||
</conditions>
|
||||
<navigation>
|
||||
<index var="sort_index" default="member_group_member.regdate" order="desc" />
|
||||
</navigation>
|
||||
</query>
|
||||
23
modules/homepage/queries/getNewestComments.xml
Normal file
23
modules/homepage/queries/getNewestComments.xml
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
<query id="getNewestComments" action="select">
|
||||
<tables>
|
||||
<table name="homepages" />
|
||||
<table name="sites" />
|
||||
<table name="modules" />
|
||||
<table name="comments" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="sites.domain" alias="domain" />
|
||||
<column name="comments.*" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="homepages.site_srl" default="sites.site_srl" notnull="notnull" />
|
||||
<condition operation="equal" column="homepages.site_srl" default="modules.site_srl" notnull="notnull" pipe="and" />
|
||||
<condition operation="equal" column="comments.module_srl" default="modules.module_srl" notnull="notnull" pipe="and" />
|
||||
</conditions>
|
||||
<navigation>
|
||||
<index var="sort_index" default="comments.list_order" order="asc" />
|
||||
<list_count var="list_count" default="10" />
|
||||
<page_count var="page_count" default="10" />
|
||||
<page var="page" default="1" />
|
||||
</navigation>
|
||||
</query>
|
||||
23
modules/homepage/queries/getNewestDocuments.xml
Normal file
23
modules/homepage/queries/getNewestDocuments.xml
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
<query id="getNewestDocuments" action="select">
|
||||
<tables>
|
||||
<table name="homepages" />
|
||||
<table name="sites" />
|
||||
<table name="modules" />
|
||||
<table name="documents" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="sites.domain" alias="domain" />
|
||||
<column name="documents.*" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="homepages.site_srl" default="sites.site_srl" notnull="notnull" />
|
||||
<condition operation="equal" column="homepages.site_srl" default="modules.site_srl" notnull="notnull" pipe="and" />
|
||||
<condition operation="equal" column="documents.module_srl" default="modules.module_srl" notnull="notnull" pipe="and" />
|
||||
</conditions>
|
||||
<navigation>
|
||||
<index var="sort_index" default="documents.list_order" order="asc" />
|
||||
<list_count var="list_count" default="10" />
|
||||
<page_count var="page_count" default="10" />
|
||||
<page var="page" default="1" />
|
||||
</navigation>
|
||||
</query>
|
||||
|
|
@ -4,6 +4,7 @@
|
|||
</tables>
|
||||
<columns>
|
||||
<column name="title" var="title" notnull="notnull" />
|
||||
<column name="description" var="description" />
|
||||
<column name="layout_srl" var="layout_srl" notnull="notnull" />
|
||||
</columns>
|
||||
<conditions>
|
||||
|
|
|
|||
|
|
@ -5,5 +5,6 @@
|
|||
<column name="first_menu_srl" type="number" size="11" notnull="notnull" />
|
||||
<column name="second_menu_srl" type="number" size="11" notnull="notnull" />
|
||||
<column name="list_order" type="number" size="11" notnull="notnull" index="idx_list_order" />
|
||||
<column name="description" type="text" />
|
||||
<column name="regdate" type="date" />
|
||||
</table>
|
||||
|
|
|
|||
BIN
modules/homepage/skins/xe_default/img/arrowNextA1.gif
Normal file
BIN
modules/homepage/skins/xe_default/img/arrowNextA1.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 46 B |
BIN
modules/homepage/skins/xe_default/img/arrowNextEndA1.gif
Normal file
BIN
modules/homepage/skins/xe_default/img/arrowNextEndA1.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 52 B |
BIN
modules/homepage/skins/xe_default/img/arrowPrevA1.gif
Normal file
BIN
modules/homepage/skins/xe_default/img/arrowPrevA1.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 47 B |
BIN
modules/homepage/skins/xe_default/img/arrowPrevEndA1.gif
Normal file
BIN
modules/homepage/skins/xe_default/img/arrowPrevEndA1.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 51 B |
BIN
modules/homepage/skins/xe_default/img/lineTextDiv.gif
Executable file
BIN
modules/homepage/skins/xe_default/img/lineTextDiv.gif
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 44 B |
BIN
modules/homepage/skins/xe_default/img/lineVr11.gif
Normal file
BIN
modules/homepage/skins/xe_default/img/lineVr11.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 44 B |
149
modules/homepage/skins/xe_default/index.html
Normal file
149
modules/homepage/skins/xe_default/index.html
Normal file
|
|
@ -0,0 +1,149 @@
|
|||
<!--%import("./style.css")-->
|
||||
|
||||
<!--@if($module_info->title)-->
|
||||
<div class="cafeHeader">
|
||||
<div class="cafeTitle">
|
||||
<h2 class="cafeTitleText"><a href="{getUrl('','mid',$mid,'listStyle',$listStyle)}">{$module_info->title}<!--@if($module_info->sub_title)--> : <em>{$module_info->sub_title}</em><!--@end--></a></h2>
|
||||
</div>
|
||||
<!--@end-->
|
||||
|
||||
<!--@if($module_info->comment)-->
|
||||
<p class="cafeDescription">{$module_info->comment}</p>
|
||||
</div>
|
||||
<!--@end-->
|
||||
|
||||
<div class="cafeBox">
|
||||
|
||||
<div class="cafeLeftBox">
|
||||
|
||||
<!--@if($module_info->intro_title)-->
|
||||
<div class="intro">
|
||||
<h3>{$module_info->intro_title}</h3>
|
||||
<img src="{$module_info->intro_image}" alt="" align="left" />
|
||||
{$module_info->intro_description}
|
||||
<span class="url"><a href="{$module_info->intro_url}" onclick="window.open(this.href); return false;">{$module_info->intro_url}</a></span>
|
||||
</div>
|
||||
<!--@end-->
|
||||
|
||||
<div>
|
||||
<ul class="cafeList">
|
||||
<!--@foreach($homepage_list as $key => $val)-->
|
||||
<li>
|
||||
<p class="titleArea">
|
||||
<a class="title" href="{getSiteUrl($val->domain)}" onclick="window.open(this.href); return false;">{($val->cafe_title)}</a>
|
||||
</p>
|
||||
|
||||
<p class="text">
|
||||
<!--@if($val->cafe_banner)-->
|
||||
<a class="thumb" href="{$val->link}" onclick="window.open(this.href); return false;"><img src="{$val->cafe_banner}" width="100" height="100" align="left"/></a>
|
||||
<!--@end-->
|
||||
|
||||
<!--@if($val->cafe_description)-->
|
||||
{preg_replace('/<([^>]+)>/i','',$val->cafe_description)}
|
||||
<!--@end-->
|
||||
</p>
|
||||
|
||||
<p class="url">
|
||||
<a href="{getSiteUrl($val->domain)}" onclick="window.open(this.href); return false;">{getSiteUrl($val->domain)}</a>
|
||||
</p>
|
||||
<p class="date">
|
||||
{zdate($val->regdate,"Y/m/d H:i")}
|
||||
</p>
|
||||
</li>
|
||||
<!--@end-->
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="pagination a1">
|
||||
<a href="{getUrl('page','','document_srl','','division',$division,'last_division',$last_division)}" class="prevEnd">{$lang->first_page}</a>
|
||||
<!--@if($page_navigation)-->
|
||||
<!--@while($page_no = $page_navigation->getNextPage())-->
|
||||
<!--@if($page == $page_no)-->
|
||||
<strong>{$page_no}</strong>
|
||||
<!--@else-->
|
||||
<a href="{getUrl('page',$page_no,'document_srl','','division',$division,'last_division',$last_division)}">{$page_no}</a>
|
||||
<!--@end-->
|
||||
<!--@end-->
|
||||
<!--@end-->
|
||||
<a href="{getUrl('page',$page_navigation->last_page,'document_srl','','division',$division,'last_division',$last_division)}" class="nextEnd">{$lang->last_page}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class="cafeHR" />
|
||||
|
||||
<div class="cafeRightBox">
|
||||
|
||||
<!--@if($is_logged)-->
|
||||
<div class="cafeContext">
|
||||
<!--@if($isEnableCreateCafe)-->
|
||||
<h3>{$lang->cmd_make_cafe}</h3>
|
||||
<form action="./" method="post" onsubmit="return procFilter(this, cafe_creation);">
|
||||
<table cellspacing="0" class="cafeTable">
|
||||
<tr>
|
||||
<th><div>{$lang->cafe_id}</div></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="wide">
|
||||
<input type="text" name="cafe_id" class="inputTypeText cafeID" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><div>{$lang->cafe_title}</div></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="wide"><input type="text" name="cafe_title" class="inputTypeText cafeTitle"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><div>{$lang->cafe_description}</div></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><textarea name="cafe_description" class="inputTypeTextArea cafeDescription"></textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="button"><span class="button black strong"><input type="submit" value="{$lang->cmd_make_cafe}" /></span></th>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
<!--@end-->
|
||||
|
||||
<!--@if($my_cafes && count($my_cafes))-->
|
||||
<h3>{$lang->mycafe_list} ({count($my_cafes)})</h3>
|
||||
<ul>
|
||||
<!--@foreach($my_cafes as $key => $val)-->
|
||||
<li>
|
||||
<a href="{getSiteUrl($val->domain)}" onclick="window.open(this.href);return false;">{cut_str($val->cafe_title,30)}</a>
|
||||
</li>
|
||||
<!--@end-->
|
||||
</ul>
|
||||
<!--@end-->
|
||||
</div>
|
||||
<!--@end-->
|
||||
|
||||
<!--@if($newest_documents)-->
|
||||
<div class="cafeContext">
|
||||
<h3>{$lang->cafe_latest_documents}</h3>
|
||||
<ul>
|
||||
<!--@foreach($newest_documents as $key => $val)-->
|
||||
<li>
|
||||
<span class="member_{$val->member_srl}">{cut_str($val->nick_name,10)}</span> - <a href="{getSiteUrl($val->domain,'document_srl',$val->document_srl)}" onclick="window.open(this.href);return false;">{cut_str($val->title,30)}</a>
|
||||
</li>
|
||||
<!--@end-->
|
||||
</ul>
|
||||
</div>
|
||||
<!--@end-->
|
||||
|
||||
<!--@if($newest_comments)-->
|
||||
<div class="cafeContext">
|
||||
<h3>{$lang->cafe_latest_comments}</h3>
|
||||
<ul>
|
||||
<!--@foreach($newest_comments as $key => $val)-->
|
||||
<li>
|
||||
<span class="member_{$val->member_srl}">{cut_str($val->nick_name,10)}</span> - <a href="{getSiteUrl($val->domain,'document_srl',$val->document_srl)}#comment_{$val->comment_srl}" onclick="window.open(this.href);return false;">{cut_str(preg_replace('/<([^>]+)>/i','',$val->content),30)}</a>
|
||||
</li>
|
||||
<!--@end-->
|
||||
</ul>
|
||||
</div>
|
||||
<!--@end-->
|
||||
</div>
|
||||
|
||||
</div>
|
||||
53
modules/homepage/skins/xe_default/skin.xml
Normal file
53
modules/homepage/skins/xe_default/skin.xml
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<skin version="0.2">
|
||||
<title xml:lang="ko">Cafe 기본 Skin</title>
|
||||
<description xml:lang="ko">
|
||||
Cafe 기본 스킨입니다.
|
||||
</description>
|
||||
<version>0.1</version>
|
||||
<date>2009-04-03</date>
|
||||
|
||||
<author email_address="zero@xpressengine.com" link="http://blog.nzeo.com">
|
||||
<name xml:lang="ko">zero</name>
|
||||
</author>
|
||||
|
||||
<license>GPL</license>
|
||||
|
||||
<colorset>
|
||||
<color name="default">
|
||||
<title xml:lang="ko">기본</title>
|
||||
</color>
|
||||
</colorset>
|
||||
|
||||
<extra_vars>
|
||||
<var name="title" type="text">
|
||||
<title xml:lang="ko">제목</title>
|
||||
<description xml:lang="ko">제목을 적어주세요.</description>
|
||||
</var>
|
||||
<var name="sub_title" type="text">
|
||||
<title xml:lang="ko">부제목</title>
|
||||
<description xml:lang="ko">제목 옆에 나타날 부제목을 적어주세요.</description>
|
||||
</var>
|
||||
<var name="comment" type="textarea">
|
||||
<title xml:lang="ko">상세 설명</title>
|
||||
<description xml:lang="ko">제목 아래 표시될 설명을 입력하실 수 있습니다.</description>
|
||||
</var>
|
||||
<var name="intro_title" type="text">
|
||||
<title xml:lang="ko">카페 소개 제목</title>
|
||||
<description xml:lang="ko">소개할 카페의 제목을 입력해주세요. (메인 노출)</description>
|
||||
</var>
|
||||
<var name="intro_description" type="textarea">
|
||||
<title xml:lang="ko">카페 소개 내용</title>
|
||||
<description xml:lang="ko">소개할 카페의 내용을 입력해주세요. (메인 노출)</description>
|
||||
</var>
|
||||
<var name="intro_image" type="image">
|
||||
<title xml:lang="ko">카페 소개 이미지</title>
|
||||
<description xml:lang="ko">소개할 카페의 내용에 포함되는 이미지를 등록해주세요. (메인 노출)</description>
|
||||
</var>
|
||||
<var name="intro_url" type="text">
|
||||
<title xml:lang="ko">카페 소개 링크 </title>
|
||||
<description xml:lang="ko">소개할 카페의 링크를 입력해주세요. (http:// 모두 포함)</description>
|
||||
</var>
|
||||
</extra_vars>
|
||||
</skin>
|
||||
|
||||
120
modules/homepage/skins/xe_default/style.css
Normal file
120
modules/homepage/skins/xe_default/style.css
Normal file
|
|
@ -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;}
|
||||
11
modules/homepage/tpl/filter/cafe_creation.xml
Normal file
11
modules/homepage/tpl/filter/cafe_creation.xml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<filter name="cafe_creation" module="homepage" act="procHomepageCafeCreation">
|
||||
<form>
|
||||
<node target="cafe_id" required="true" filter="userid" minlength="4" maxlength="12"/>
|
||||
<node target="cafe_title" required="true" minlength="4" maxlength="20"/>
|
||||
<node target="cafe_description" required="true" minlength="10" maxlength="200"/>
|
||||
</form>
|
||||
<response>
|
||||
<tag name="error" />
|
||||
<tag name="message" />
|
||||
</response>
|
||||
</filter>
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
<filter name="insert_board" module="homepage" act="procHomepageInsertBoard" confirm_msg_code="confirm_submit">
|
||||
<form>
|
||||
<node target="mid" required="true" maxlength="40" filter="alpha_number" />
|
||||
<node target="browser_title" required="true" maxlength="250" />
|
||||
<node target="list_count" required="true" filter="number" />
|
||||
<node target="search_list_count" required="true" filter="number" />
|
||||
<node target="page_count" required="true" filter="number" />
|
||||
</form>
|
||||
<parameter>
|
||||
<param name="board_name" target="mid" />
|
||||
<param name="module_srl" target="module_srl" />
|
||||
<param name="module_category_srl" target="module_category_srl" />
|
||||
<param name="layout_srl" target="layout_srl" />
|
||||
<param name="skin" target="skin" />
|
||||
<param name="browser_title" target="browser_title" />
|
||||
<param name="use_category" target="use_category" />
|
||||
<param name="order_target" target="order_target" />
|
||||
<param name="order_type" target="order_type" />
|
||||
<param name="list_count" target="list_count" />
|
||||
<param name="search_list_count" target="search_list_count" />
|
||||
<param name="except_notice" target="except_notice" />
|
||||
<param name="consultation" target="consultation" />
|
||||
<param name="admin_mail" target="admin_mail" />
|
||||
<param name="page_count" target="page_count" />
|
||||
<param name="is_default" target="is_default" />
|
||||
<param name="description" target="description" />
|
||||
<param name="header_text" target="header_text" />
|
||||
<param name="footer_text" target="footer_text" />
|
||||
<param name="admin_id" target="admin_id" />
|
||||
</parameter>
|
||||
<response callback_func="completeInsertBoard">
|
||||
<tag name="error" />
|
||||
<tag name="message" />
|
||||
<tag name="module" />
|
||||
<tag name="act" />
|
||||
<tag name="page" />
|
||||
<tag name="module_srl" />
|
||||
</response>
|
||||
</filter>
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
<filter name="insert_grant" module="homepage" act="procHomepageInsertBoardGrant" confirm_msg_code="confirm_submit">
|
||||
<form>
|
||||
<node target="module_srl" required="true" />
|
||||
</form>
|
||||
<response callback_func="completeInsertGrant">
|
||||
<tag name="error" />
|
||||
<tag name="message" />
|
||||
<tag name="page" />
|
||||
<tag name="module_srl" />
|
||||
</response>
|
||||
</filter>
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
<filter name="insert_page" module="homepage" act="procHomepageInsertPage" confirm_msg_code="confirm_submit">
|
||||
<form>
|
||||
<node target="module_srl" required="true" filter="number" />
|
||||
</form>
|
||||
<parameter />
|
||||
<response callback_func="completeInsertPage">
|
||||
<tag name="error" />
|
||||
<tag name="message" />
|
||||
</response>
|
||||
</filter>
|
||||
|
|
@ -13,7 +13,7 @@
|
|||
<tr>
|
||||
<th scope="col"><div>{$lang->no}</div></th>
|
||||
<th scope="col" class="half_wide"><div>{$lang->title}</div></th>
|
||||
<th scope="col" class="half_wide"><div>{$lang->domain} / {$lang->vid}</div></th>
|
||||
<th scope="col" class="half_wide"><div>{$lang->domain} / Site ID</div></th>
|
||||
<th scope="col"><div>{$lang->regdate}</div></th>
|
||||
<th scope="col" colspan="3"><div> </div></th>
|
||||
</tr>
|
||||
|
|
@ -22,7 +22,7 @@
|
|||
<!--@foreach($homepage_list as $no => $val)-->
|
||||
<tr class="row{$cycle_idx}">
|
||||
<td>{$no}</td>
|
||||
<td><a href="{getSiteUrl($val->domain,'module','homepage','act','dispHomepageManage','site_srl',$val->site_srl)}">{htmlspecialchars($val->homepage_title)}</a></td>
|
||||
<td><a href="{getSiteUrl($val->domain,'module','homepage','act','dispHomepageManage','site_srl',$val->site_srl)}">{htmlspecialchars($val->cafe_title)}</a></td>
|
||||
<td><a href="{getSiteUrl($val->domain)}" onclick="window.open(this.href);return false;">{$val->domain}</a></td>
|
||||
<td>{zdate($val->regdate,"Y-m-d")}</td>
|
||||
<td><a href="{getUrl('act','dispHomepageAdminSetup','site_srl',$val->site_srl)}" class="buttonSet buttonSetting"><span>{$lang->cmd_setup}</span></a></td>
|
||||
|
|
@ -80,10 +80,65 @@
|
|||
</table>
|
||||
</form>
|
||||
|
||||
<form action="./" method="post" onsubmit="return procFilter(this, insert_config)">
|
||||
<form action="./" method="post" onsubmit="return procFilter(this, insert_config)" id="cafeSetup">
|
||||
<h3 class="xeAdmin">{$lang->cmd_setup}</h3>
|
||||
<table cellspacing="0" class="rowTable">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th colspan="2" scope="row"><div>{$lang->cafe_main_mid}</div></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<input type="input" name="cafe_main_mid" value="{$homepage_config->cafe_main_mid}" class="inputTypeText" />
|
||||
<p>{$lang->about_cafe_main_mid}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="2" scope="row"><div>{$lang->browser_title}</div></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<input type="input" name="browser_title" value="{$homepage_config->browser_title}" class="inputTypeText" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="2" scope="row"><div>{$lang->skin}</div></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<select name="skin">
|
||||
<!--@foreach($skins as $key => $val)-->
|
||||
<option value="{$key}" <!--@if($homepage_config->skin== $key)-->selected="selected"<!--@end-->>{$val->title}</option>
|
||||
<!--@end-->
|
||||
</select>
|
||||
<!--@if($homepage_config->module_srl)-->
|
||||
<a href="{getUrl('act','dispHomepageAdminSkinSetup','module_srl',$homepage_config->module_srl)}" class="button"><span>{$lang->cmd_setup}</span></a>
|
||||
<!--@end-->
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="2" scope="row"><div>{$lang->cafe_creation_type}</div></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<label for="chkCafeVid"><input type="radio" id="chkCafeVid" name="access_type" value="vid" onclick="toggleCafeAccessType('vid');" <!--@if($homepage_config->access_type=='vid')-->checked="checked"<!--@end--> /> {$lang->access_vid}</label>
|
||||
<label for="chkCafeDomain"><input type="radio" id="chkCafeDomain" name="access_type" value="domain" onclick="toggleCafeAccessType('domain');" <!--@if($homepage_config->access_type!='vid')-->checked="checked"<!--@end--> /> {$lang->access_domain}</label>
|
||||
<div id="accessCafeDomain" style="display:<!--@if($homepage_config->access_type=='vid')-->none<!--@end-->; margin-top:10px;">
|
||||
URL : <input type="text" name="default_domain" value="{$homepage_config->default_domain}" class="inputTypeText w200" />
|
||||
</div>
|
||||
<p>{$lang->about_cafe_creation_type}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="2" scope="row"><div>{$lang->cafe_creation_privilege}</div></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<!--@foreach($groups as $key => $val)-->
|
||||
<input type="checkbox" name="creation_group" <!--@if(in_array($val->group_srl, $homepage_config->creation_group))-->checked="checked"<!--@end--> value="{$val->group_srl}" id="creation_group_{$key}"/><label for="creation_group_{$key}">{$val->title}</label>
|
||||
<!--@end-->
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="2" scope="row"><div>{$lang->default_layout}</div></th>
|
||||
</tr>
|
||||
|
|
|
|||
|
|
@ -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');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,39 @@
|
|||
|
||||
<!--#include("_header.html")-->
|
||||
|
||||
<h4 class="xeAdmin">{$lang->cafe_info}</h4>
|
||||
<form method="post" action="{Context::getRequestUri()}" enctype="multipart/form-data" >
|
||||
<!--@if(isSiteID($site_module_info->domain))-->
|
||||
<input type="hidden" name="vid" value="{$site_module_info->domain}"/>
|
||||
<!--@end-->
|
||||
<input type="hidden" name="site_srl" value="{$homepage_info->site_srl}" />
|
||||
<input type="hidden" name="module" value="homepage" />
|
||||
<input type="hidden" name="act" value="procHomepageInsertCafeBanner" />
|
||||
<table cellspacing="0" class="rowTable">
|
||||
<tr>
|
||||
<th><div>{$lang->cafe_title}</div></th>
|
||||
<td class="wide"><input type="text" name="cafe_title" value="{htmlspecialchars($homepage_info->title)}" class="inputTypeText" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><div>{$lang->cafe_description}</div></th>
|
||||
<td class="wide"><textarea name="cafe_description" class="inputTypeTextArea" style="width:90%;">{htmlspecialchars($homepage_info->cafe_description)}</textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><div>{$lang->cafe_banner}</div></th>
|
||||
<td class="wide">
|
||||
<!--@if($homepage_info->cafe_banner)-->
|
||||
<img src="{$homepage_info->cafe_banner}" alt="cafe banner" style="display:block;margin-bottom:10px;"/>
|
||||
<!--@end-->
|
||||
<input type="file" name="cafe_banner" value="" class="inputTypeText" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="button" colspan="2">
|
||||
<span class="button black strong"><input type="submit" value="{$lang->cmd_save}" /></span>
|
||||
</th>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
|
||||
<h4 class="xeAdmin">{$lang->cmd_select_index}</h4>
|
||||
<form method="post" action="./" onsubmit="return procFilter(this,update_index_mid)" class="midDefault">
|
||||
|
|
|
|||
3
modules/homepage/tpl/redirect.html
Normal file
3
modules/homepage/tpl/redirect.html
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
<script type="text/javascript">
|
||||
history.back();
|
||||
</script>
|
||||
3
modules/homepage/tpl/skin_info.html
Normal file
3
modules/homepage/tpl/skin_info.html
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
<a href="{getUrl('act','dispHomepageAdminContent','module_srl','')}" class="button black fr"><span>{$lang->cmd_back}</span></a>
|
||||
|
||||
{$skin_content}
|
||||
|
|
@ -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';
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue