mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-14 00:39:57 +09:00
git-svn-id: http://xe-core.googlecode.com/svn/trunk@1031 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
a9e0caa781
commit
8ed36ce916
11 changed files with 164 additions and 16 deletions
|
|
@ -1,44 +1,33 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<skin>
|
||||
<title xml:lang="ko">게시판 기본 스킨</title>
|
||||
<title xml:lang="en">BBS default skin</title>
|
||||
<maker email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<description xml:lang="ko">board모듈의 default스킨</description>
|
||||
<description xml:lang="en">default skin of the board module</description>
|
||||
</maker>
|
||||
<colorset>
|
||||
<color name="normal" src="screenshot/normal.gif">
|
||||
<title xml:lang="ko">기본</title>
|
||||
<title xml:lang="en">normal</title>
|
||||
</color>
|
||||
<color name="deep" src="screenshot/blue.gif">
|
||||
<title xml:lang="ko">이상한거</title>
|
||||
<title xml:lang="en">deep</title>
|
||||
</color>
|
||||
</colorset>
|
||||
<extra_vars>
|
||||
<var name="title" type="text">
|
||||
<title xml:lang="ko">제목</title>
|
||||
<title xml:lang="en">title</title>
|
||||
<description xml:lang="ko">그냥 테스트용입니다</description>
|
||||
<description xml:lang="en">just for test..</description>
|
||||
</var>
|
||||
<var name="title2" type="text">
|
||||
<title xml:lang="ko">제목 2</title>
|
||||
<title xml:lang="en">title 2</title>
|
||||
<default>haha</default>
|
||||
</var>
|
||||
<var name="memo" type="textarea">
|
||||
<title xml:lang="ko">내용</title>
|
||||
<title xml:lang="en">memo</title>
|
||||
<default lang="ko">내용의 기본값</default>
|
||||
<default lang="en">default value of memo</default>
|
||||
</var>
|
||||
<var name="select" type="select">
|
||||
<title xml:lang="ko">선택1</title>
|
||||
<title xml:lang="en">select 1</title>
|
||||
<default>1</default>
|
||||
<default>2</default>
|
||||
<default>3</default>
|
||||
|
|
@ -47,21 +36,18 @@
|
|||
</var>
|
||||
<var name="checkbox" type="checkbox">
|
||||
<title xml:lang="ko">다중선택</title>
|
||||
<title xml:lang="en">multi select</title>
|
||||
<default>a</default>
|
||||
<default>b</default>
|
||||
<default>c</default>
|
||||
</var>
|
||||
<var name="radio" type="radio">
|
||||
<title xml:lang="ko">하나선택</title>
|
||||
<title xml:lang="en">one select</title>
|
||||
<default>A</default>
|
||||
<default>B</default>
|
||||
<default>C</default>
|
||||
</var>
|
||||
<var name="logo_image" type="image" width="60" height="60">
|
||||
<title xml:lang="ko">로고이미지</title>
|
||||
<title xml:lang="en">logo image</title>
|
||||
</var>
|
||||
</extra_vars>
|
||||
<skin>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* @file modules/board/js/plugin_admin.js
|
||||
* @file modules/plugin/js/plugin_admin.js
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief plugin 모듈의 관리자용 javascript
|
||||
**/
|
||||
|
|
|
|||
|
|
@ -5,8 +5,11 @@
|
|||
<action name="dispPollAdminList" type="view" admin_index="true" standalone="true" />
|
||||
<action name="dispPollAdminConfig" type="controller" standalone="true" />
|
||||
|
||||
<action name="getPollGetColorsetList" type="model" standalone="true" />
|
||||
|
||||
<action name="procInsert" type="controller" standalone="true" />
|
||||
<action name="procPoll" type="controller" standalone="true" />
|
||||
<action name="procPollAdminDeleteChecked" type="controller" standalone="true" />
|
||||
<action name="procPollAdminInsertConfig" type="controller" standalone="true" />
|
||||
</actions>
|
||||
</module>
|
||||
|
|
|
|||
|
|
@ -16,6 +16,12 @@
|
|||
$oModuleController->insertActionForward('poll', 'view', 'dispPollAdminList');
|
||||
$oModuleController->insertActionForward('poll', 'view', 'dispPollAdminConfig');
|
||||
|
||||
// 기본 스킨 설정
|
||||
$oModuleController = &getController('module');
|
||||
$config->skin = 'default';
|
||||
$config->colorset = 'normal';
|
||||
$oModuleController->insertModuleConfig('poll', $config);
|
||||
|
||||
return new Object();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -261,5 +261,18 @@
|
|||
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 설정 저장
|
||||
**/
|
||||
function procPollAdminInsertConfig() {
|
||||
$config->skin = Context::get('skin');
|
||||
$config->colorset = Context::get('colorset');
|
||||
|
||||
$oModuleController = &getController('module');
|
||||
$oModuleController->insertModuleConfig('poll', $config);
|
||||
|
||||
$this->setMessage('success_updated');
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -84,12 +84,33 @@
|
|||
|
||||
Context::set('poll',$poll);
|
||||
|
||||
$tpl_path = $this->module_path.'tpl';
|
||||
// 기본 설정의 스킨, 컬러셋 설정
|
||||
$oModuleModel = &getModel('module');
|
||||
$poll_config = $oModuleModel->getModuleConfig('poll');
|
||||
Context::set('poll_config', $poll_config);
|
||||
$tpl_path = sprintf("%sskins/%s/", $this->module_path, $poll_config->skin);
|
||||
|
||||
require_once("./classes/template/TemplateHandler.class.php");
|
||||
$oTemplate = new TemplateHandler();
|
||||
return $oTemplate->compile($tpl_path, $tpl_file);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 선택된 설문조사 - 스킨의 컬러셋을 return
|
||||
**/
|
||||
function getPollGetColorsetList() {
|
||||
$skin = Context::get('skin');
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$skin_info = $oModuleModel->loadSkinInfo($this->module_path, $skin);
|
||||
|
||||
for($i=0;$i<count($skin_info->colorset);$i++) {
|
||||
$colorset = sprintf('%s|@|%s', $skin_info->colorset[$i]->name, $skin_info->colorset[$i]->title);
|
||||
$colorset_list[] = $colorset;
|
||||
}
|
||||
|
||||
if(count($colorset_list)) $colorsets = implode("\n", $colorset_list);
|
||||
$this->add('colorset_list', $colorsets);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -59,5 +59,27 @@
|
|||
$this->setTemplateFile('poll_list');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 설문조사 스킨, 컬러셋 설정
|
||||
**/
|
||||
function dispPollAdminConfig() {
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
// 설정 정보 가져오기
|
||||
$config = $oModuleModel->getModuleConfig('poll');
|
||||
Context::set('config', $config);
|
||||
|
||||
// 스킨 정보 가져오기
|
||||
$skin_list = $oModuleModel->getSkins($this->module_path);
|
||||
Context::set('skin_list', $skin_list);
|
||||
|
||||
// 설정된 스킨의 컬러셋 설정
|
||||
Context::set('colorset_list', $skin_list[$config->skin]->colorset);
|
||||
|
||||
// 템플릿 지정
|
||||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
$this->setTemplateFile('config');
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
13
modules/poll/skins/default/skin.xml
Normal file
13
modules/poll/skins/default/skin.xml
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<skin>
|
||||
<title xml:lang="ko">설문조사 기본 스킨</title>
|
||||
<maker email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<description xml:lang="ko">설문조사 기본 스킨</description>
|
||||
</maker>
|
||||
<colorset>
|
||||
<color name="normal">
|
||||
<title xml:lang="ko">기본</title>
|
||||
</color>
|
||||
</colorset>
|
||||
<skin>
|
||||
35
modules/poll/tpl/config.html
Normal file
35
modules/poll/tpl/config.html
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
<!--%import("filter/insert_config.xml")-->
|
||||
<!--%import("js/poll_admin.js")-->
|
||||
<!--#include("./header.html")-->
|
||||
|
||||
<form action="./" method="get" onsubmit="return procFilter(this, insert_config);" id="fo_poll">
|
||||
|
||||
<table border="1">
|
||||
<tr>
|
||||
<th>{$lang->skin}</th>
|
||||
<td>
|
||||
<select name="skin" onchange="doDisplaySkinColorset(this);return false;">
|
||||
<!--@foreach($skin_list as $key => $val)-->
|
||||
<option value="{$key}" <!--@if($config->skin == $key)-->selected="true"<!--@end-->>{$val->title} ({$key})</option>
|
||||
<!--@end-->
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{$lang->colorset}</th>
|
||||
<td>
|
||||
<select name="colorset" id="poll_colorset">
|
||||
<!--@foreach($colorset_list as $key => $val)-->
|
||||
<option value="{$val->name}" <!--@if($config->colorset == $val->name)-->selected="true"<!--@end-->>{$val->title} ({$val->name})</option>
|
||||
<!--@end-->
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<input type="submit" value="{$lang->cmd_submit}" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</form>
|
||||
11
modules/poll/tpl/filter/insert_config.xml
Normal file
11
modules/poll/tpl/filter/insert_config.xml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<filter name="insert_config" module="poll" act="procPollAdminInsertConfig" confirm_msg_code="confirm_delete">
|
||||
<form>
|
||||
<node target="skin" required="true" />
|
||||
<node target="colorset" required="true" />
|
||||
</form>
|
||||
<parameter />
|
||||
<response>
|
||||
<tag name="error" />
|
||||
<tag name="message" />
|
||||
</response>
|
||||
</filter>
|
||||
38
modules/poll/tpl/js/poll_admin.js
Normal file
38
modules/poll/tpl/js/poll_admin.js
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
/**
|
||||
* @file modules/poll/js/poll_admin.js
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief poll 모듈의 관리자용 javascript
|
||||
**/
|
||||
|
||||
/* 플러그인 코드 생성시 스킨을 고르면 컬러셋의 정보를 표시 */
|
||||
function doDisplaySkinColorset(sel, colorset) {
|
||||
var skin = sel.options[sel.selectedIndex].value;
|
||||
|
||||
var params = new Array();
|
||||
params["skin"] = skin;
|
||||
params["colorset"] = colorset;
|
||||
|
||||
var response_tags = new Array("error","message","colorset_list");
|
||||
|
||||
exec_xml("poll", "getPollGetColorsetList", params, completeGetSkinColorset, response_tags, params);
|
||||
}
|
||||
|
||||
/* 서버에서 받아온 컬러셋을 표시 */
|
||||
function completeGetSkinColorset(ret_obj, response_tags, params, fo_obj) {
|
||||
var sel = xGetElementById("fo_poll").poll_colorset;
|
||||
var length = sel.options.length;
|
||||
var selected_colorset = params["colorset"];
|
||||
for(var i=0;i<length;i++) sel.remove(0);
|
||||
|
||||
var colorset_list = ret_obj["colorset_list"].split("\n");
|
||||
var selected_index = 0;
|
||||
for(var i=0;i<colorset_list.length;i++) {
|
||||
var tmp = colorset_list[i].split("|@|");
|
||||
if(selected_colorset && selected_colorset==tmp[0]) selected_index = i;
|
||||
var opt = new Option(tmp[1], tmp[0], false, false);
|
||||
sel.options.add(opt);
|
||||
}
|
||||
|
||||
sel.selectedIndex = selected_index;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue