#404 날짜 입력시 팝업창이 아닌 layer로 출력되는 공개 소스 이용하여 회원가입/정보수정, 게시판 확장필드등에서 날짜 입력 형태를 변경

git-svn-id: http://xe-core.googlecode.com/svn/sandbox@4071 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
zero 2008-04-04 09:36:23 +00:00
parent 95a74eaade
commit 456bdc70e5
14 changed files with 2395 additions and 27 deletions

127
common/js/calendar-en.js Normal file
View file

@ -0,0 +1,127 @@
// ** I18N
// Calendar EN language
// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
// Encoding: any
// Distributed under the same terms as the calendar itself.
// For translators: please use UTF-8 if possible. We strongly believe that
// Unicode is the answer to a real internationalized world. Also please
// include your contact information in the header, as can be seen above.
// full day names
Calendar._DN = new Array
("Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday");
// Please note that the following array of short day names (and the same goes
// for short month names, _SMN) isn't absolutely necessary. We give it here
// for exemplification on how one can customize the short day names, but if
// they are simply the first N letters of the full name you can simply say:
//
// Calendar._SDN_len = N; // short day name length
// Calendar._SMN_len = N; // short month name length
//
// If N = 3 then this is not needed either since we assume a value of 3 if not
// present, to be compatible with translation files that were written before
// this feature.
// short day names
Calendar._SDN = new Array
("Sun",
"Mon",
"Tue",
"Wed",
"Thu",
"Fri",
"Sat",
"Sun");
// First day of the week. "0" means display Sunday first, "1" means display
// Monday first, etc.
Calendar._FD = 0;
// full month names
Calendar._MN = new Array
("January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December");
// short month names
Calendar._SMN = new Array
("Jan",
"Feb",
"Mar",
"Apr",
"May",
"Jun",
"Jul",
"Aug",
"Sep",
"Oct",
"Nov",
"Dec");
// tooltips
Calendar._TT = {};
Calendar._TT["INFO"] = "About the calendar";
Calendar._TT["ABOUT"] =
"DHTML Date/Time Selector\n" +
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
"\n\n" +
"Date selection:\n" +
"- Use the \xab, \xbb buttons to select year\n" +
"- Use the " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " buttons to select month\n" +
"- Hold mouse button on any of the above buttons for faster selection.";
Calendar._TT["ABOUT_TIME"] = "\n\n" +
"Time selection:\n" +
"- Click on any of the time parts to increase it\n" +
"- or Shift-click to decrease it\n" +
"- or click and drag for faster selection.";
Calendar._TT["PREV_YEAR"] = "Prev. year (hold for menu)";
Calendar._TT["PREV_MONTH"] = "Prev. month (hold for menu)";
Calendar._TT["GO_TODAY"] = "Go Today";
Calendar._TT["NEXT_MONTH"] = "Next month (hold for menu)";
Calendar._TT["NEXT_YEAR"] = "Next year (hold for menu)";
Calendar._TT["SEL_DATE"] = "Select date";
Calendar._TT["DRAG_TO_MOVE"] = "Drag to move";
Calendar._TT["PART_TODAY"] = " (today)";
// the following is to inform that "%s" is to be the first day of week
// %s will be replaced with the day name.
Calendar._TT["DAY_FIRST"] = "Display %s first";
// This may be locale-dependent. It specifies the week-end days, as an array
// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
// means Monday, etc.
Calendar._TT["WEEKEND"] = "0,6";
Calendar._TT["CLOSE"] = "Close";
Calendar._TT["TODAY"] = "Today";
Calendar._TT["TIME_PART"] = "(Shift-)Click or drag to change value";
// date formats
Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
Calendar._TT["WK"] = "wk";
Calendar._TT["TIME"] = "Time:";

124
common/js/calendar-ko.js Normal file
View file

@ -0,0 +1,124 @@
// ** I18N
// Calendar KO language
// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
// Translation: Yourim Yi <yyi@yourim.net>
// Encoding: UTF-8
// lang : ko
// Distributed under the same terms as the calendar itself.
// For translators: please use UTF-8 if possible. We strongly believe that
// Unicode is the answer to a real internationalized world. Also please
// include your contact information in the header, as can be seen above.
// full day names
Calendar._DN = new Array
("일요일",
"월요일",
"화요일",
"수요일",
"목요일",
"금요일",
"토요일",
"일요일");
// Please note that the following array of short day names (and the same goes
// for short month names, _SMN) isn't absolutely necessary. We give it here
// for exemplification on how one can customize the short day names, but if
// they are simply the first N letters of the full name you can simply say:
//
// Calendar._SDN_len = N; // short day name length
// Calendar._SMN_len = N; // short month name length
//
// If N = 3 then this is not needed either since we assume a value of 3 if not
// present, to be compatible with translation files that were written before
// this feature.
// short day names
Calendar._SDN = new Array
("일",
"월",
"화",
"수",
"목",
"금",
"토",
"일");
// full month names
Calendar._MN = new Array
("1월",
"2월",
"3월",
"4월",
"5월",
"6월",
"7월",
"8월",
"9월",
"10월",
"11월",
"12월");
// short month names
Calendar._SMN = new Array
("1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"10",
"11",
"12");
// tooltips
Calendar._TT = {};
Calendar._TT["INFO"] = "calendar 소개";
Calendar._TT["ABOUT"] =
"DHTML Date/Time Selector\n" +
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
"\n"+
"최신 버전을 받으시려면 http://www.dynarch.com/projects/calendar/ 에 방문하세요\n" +
"\n"+
"GNU LGPL 라이센스로 배포됩니다. \n"+
"라이센스에 대한 자세한 내용은 http://gnu.org/licenses/lgpl.html 을 읽으세요." +
"\n\n" +
"날짜 선택:\n" +
"- 연도를 선택하려면 \xab, \xbb 버튼을 사용합니다\n" +
"- 달을 선택하려면 " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " 버튼을 누르세요\n" +
"- 계속 누르고 있으면 위 값들을 빠르게 선택하실 수 있습니다.";
Calendar._TT["ABOUT_TIME"] = "\n\n" +
"시간 선택:\n" +
"- 마우스로 누르면 시간이 증가합니다\n" +
"- Shift 키와 함께 누르면 감소합니다\n" +
"- 누른 상태에서 마우스를 움직이면 좀 더 빠르게 값이 변합니다.\n";
Calendar._TT["PREV_YEAR"] = "지난 해 (길게 누르면 목록)";
Calendar._TT["PREV_MONTH"] = "지난 달 (길게 누르면 목록)";
Calendar._TT["GO_TODAY"] = "오늘 날짜로";
Calendar._TT["NEXT_MONTH"] = "다음 달 (길게 누르면 목록)";
Calendar._TT["NEXT_YEAR"] = "다음 해 (길게 누르면 목록)";
Calendar._TT["SEL_DATE"] = "날짜를 선택하세요";
Calendar._TT["DRAG_TO_MOVE"] = "마우스 드래그로 이동 하세요";
Calendar._TT["PART_TODAY"] = " (오늘)";
Calendar._TT["DAY_FIRST"] = "%s 먼저 표시";
Calendar._TT["WEEKEND"] = "0,6";
Calendar._TT["CLOSE"] = "닫기";
Calendar._TT["TODAY"] = "오늘";
Calendar._TT["TIME_PART"] = "(Shift-)클릭 또는 드래그 하세요";
// date formats
Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
Calendar._TT["TT_DATE_FORMAT"] = "%b/%e [%a]";
Calendar._TT["WK"] = "주";
Calendar._TT["TIME"] = "시:";

202
common/js/calendar-setup.js Normal file
View file

@ -0,0 +1,202 @@
/* Copyright Mihai Bazon, 2002, 2003 | http://dynarch.com/mishoo/
* ---------------------------------------------------------------------------
*
* The DHTML Calendar
*
* Details and latest version at:
* http://dynarch.com/mishoo/calendar.epl
*
* This script is distributed under the GNU Lesser General Public License.
* Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
*
* This file defines helper functions for setting up the calendar. They are
* intended to help non-programmers get a working calendar on their site
* quickly. This script should not be seen as part of the calendar. It just
* shows you what one can do with the calendar, while in the same time
* providing a quick and simple method for setting it up. If you need
* exhaustive customization of the calendar creation process feel free to
* modify this code to suit your needs (this is recommended and much better
* than modifying calendar.js itself).
*/
// $Id: calendar-setup.js,v 1.25 2005/03/07 09:51:33 mishoo Exp $
/**
* This function "patches" an input field (or other element) to use a calendar
* widget for date selection.
*
* The "params" is a single object that can have the following properties:
*
* prop. name | description
* -------------------------------------------------------------------------------------------------
* inputField | the ID of an input field to store the date
* displayArea | the ID of a DIV or other element to show the date
* button | ID of a button or other element that will trigger the calendar
* eventName | event that will trigger the calendar, without the "on" prefix (default: "click")
* ifFormat | date format that will be stored in the input field
* daFormat | the date format that will be used to display the date in displayArea
* singleClick | (true/false) wether the calendar is in single click mode or not (default: true)
* firstDay | numeric: 0 to 6. "0" means display Sunday first, "1" means display Monday first, etc.
* align | alignment (default: "Br"); if you don't know what's this see the calendar documentation
* range | array with 2 elements. Default: [1900, 2999] -- the range of years available
* weekNumbers | (true/false) if it's true (default) the calendar will display week numbers
* flat | null or element ID; if not null the calendar will be a flat calendar having the parent with the given ID
* flatCallback | function that receives a JS Date object and returns an URL to point the browser to (for flat calendar)
* disableFunc | function that receives a JS Date object and should return true if that date has to be disabled in the calendar
* onSelect | function that gets called when a date is selected. You don't _have_ to supply this (the default is generally okay)
* onClose | function that gets called when the calendar is closed. [default]
* onUpdate | function that gets called after the date is updated in the input field. Receives a reference to the calendar.
* date | the date that the calendar will be initially displayed to
* showsTime | default: false; if true the calendar will include a time selector
* timeFormat | the time format; can be "12" or "24", default is "12"
* electric | if true (default) then given fields/date areas are updated for each move; otherwise they're updated only on close
* step | configures the step of the years in drop-down boxes; default: 2
* position | configures the calendar absolute position; default: null
* cache | if "true" (but default: "false") it will reuse the same calendar object, where possible
* showOthers | if "true" (but default: "false") it will show days from other months too
*
* None of them is required, they all have default values. However, if you
* pass none of "inputField", "displayArea" or "button" you'll get a warning
* saying "nothing to setup".
*/
Calendar.setup = function (params) {
function param_default(pname, def) { if (typeof params[pname] == "undefined") { params[pname] = def; } };
param_default("inputField", null);
param_default("displayArea", null);
param_default("button", null);
param_default("eventName", "click");
param_default("ifFormat", "%Y/%m/%d");
param_default("daFormat", "%Y/%m/%d");
param_default("singleClick", true);
param_default("disableFunc", null);
param_default("dateStatusFunc", params["disableFunc"]); // takes precedence if both are defined
param_default("dateText", null);
param_default("firstDay", null);
param_default("align", "Br");
param_default("range", [1900, 2999]);
param_default("weekNumbers", true);
param_default("flat", null);
param_default("flatCallback", null);
param_default("onSelect", null);
param_default("onClose", null);
param_default("onUpdate", null);
param_default("date", null);
param_default("showsTime", false);
param_default("timeFormat", "24");
param_default("electric", true);
param_default("step", 2);
param_default("position", null);
param_default("cache", false);
param_default("showOthers", false);
param_default("multiple", null);
var tmp = ["inputField", "displayArea", "button"];
for (var i in tmp) {
if (typeof params[tmp[i]] == "string") {
params[tmp[i]] = document.getElementById(params[tmp[i]]);
}
}
if (!(params.flat || params.multiple || params.inputField || params.displayArea || params.button)) {
alert("Calendar.setup:\n Nothing to setup (no fields found). Please check your code");
return false;
}
function onSelect(cal) {
var p = cal.params;
var update = (cal.dateClicked || p.electric);
if (update && p.inputField) {
p.inputField.value = cal.date.print(p.ifFormat);
if (typeof p.inputField.onchange == "function")
p.inputField.onchange();
}
if (update && p.displayArea)
p.displayArea.innerHTML = cal.date.print(p.daFormat);
if (update && typeof p.onUpdate == "function")
p.onUpdate(cal);
if (update && p.flat) {
if (typeof p.flatCallback == "function")
p.flatCallback(cal);
}
if (update && p.singleClick && cal.dateClicked)
cal.callCloseHandler();
};
if (params.flat != null) {
if (typeof params.flat == "string")
params.flat = document.getElementById(params.flat);
if (!params.flat) {
alert("Calendar.setup:\n Flat specified but can't find parent.");
return false;
}
var cal = new Calendar(params.firstDay, params.date, params.onSelect || onSelect);
cal.showsOtherMonths = params.showOthers;
cal.showsTime = params.showsTime;
cal.time24 = (params.timeFormat == "24");
cal.params = params;
cal.weekNumbers = params.weekNumbers;
cal.setRange(params.range[0], params.range[1]);
cal.setDateStatusHandler(params.dateStatusFunc);
cal.getDateText = params.dateText;
if (params.ifFormat) {
cal.setDateFormat(params.ifFormat);
}
if (params.inputField && typeof params.inputField.value == "string") {
cal.parseDate(params.inputField.value);
}
cal.create(params.flat);
cal.show();
return false;
}
var triggerEl = params.button || params.displayArea || params.inputField;
triggerEl["on" + params.eventName] = function() {
var dateEl = null;
if(params.displayArea) dateEl = params.displayArea;
else dateEl = params.inputField;
var dateFmt = params.inputField ? params.ifFormat : params.daFormat;
var mustCreate = false;
var cal = window.calendar;
if (dateEl)
params.date = Date.parseDate(dateEl.value || dateEl.innerHTML, dateFmt);
if (!(cal && params.cache)) {
window.calendar = cal = new Calendar(params.firstDay,
params.date,
params.onSelect || onSelect,
params.onClose || function(cal) { cal.hide(); });
cal.showsTime = params.showsTime;
cal.time24 = (params.timeFormat == "24");
cal.weekNumbers = params.weekNumbers;
mustCreate = true;
} else {
if (params.date)
cal.setDate(params.date);
cal.hide();
}
if (params.multiple) {
cal.multiple = {};
for (var i = params.multiple.length; --i >= 0;) {
var d = params.multiple[i];
var ds = d.print("%Y%m%d");
cal.multiple[ds] = d;
}
}
cal.showsOtherMonths = params.showOthers;
cal.yearStep = params.step;
cal.setRange(params.range[0], params.range[1]);
cal.params = params;
cal.setDateStatusHandler(params.dateStatusFunc);
cal.getDateText = params.dateText;
cal.setDateFormat(dateFmt);
if (mustCreate)
cal.create();
cal.refresh();
if (!params.position)
cal.showAtElement(params.button || params.displayArea || params.inputField, params.align);
else
cal.showAt(params.position[0], params.position[1]);
return false;
};
return cal;
};

1806
common/js/calendar.js Normal file

File diff suppressed because it is too large Load diff

View file

@ -319,3 +319,5 @@ html:not([lang*=""]) .boardList th { height:33px; }
.memberSignature { border:1px solid #e0e1db; padding:10px; margin-top:20px;} .memberSignature { border:1px solid #e0e1db; padding:10px; margin-top:20px;}
.memberSignature .profile { float:left; margin-right:20px; } .memberSignature .profile { float:left; margin-right:20px; }
.commentProfileImage { margin:0 0 10px 0; } .commentProfileImage { margin:0 0 10px 0; }
.display_date { cursor:pointer; width:80px; float:left; border:1px solid; border-color:#a6a6a6 #d8d8d8 #d8d8d8 #a6a6a6; height:1em; padding:3px; margin-right:10px;}

View file

@ -1,5 +1,15 @@
<!-- 이 파일은 extra_vars의 form을 출력하는 파일이며 다른 스킨에서 그대로 가져가서 css만 바꾸어 주면 된다 --> <!-- 이 파일은 extra_vars의 form을 출력하는 파일이며 다른 스킨에서 그대로 가져가서 css만 바꾸어 주면 된다 -->
<!-- calendar -->
<!--%import("../../../../common/js/calendar.js",optimized=false)-->
<!--@if($lang_type == 'ko')-->
<!--%import("../../../../common/js/calendar-ko.js",optimized=false)-->
<!--@else-->
<!--%import("../../../../common/js/calendar-en.js",optimized=false)-->
<!--@end-->
<!--%import("../../../../common/js/calendar-setup.js",optimized=false)-->
<!--%import("../../../../common/css/calendar-system.css",optimized=false)-->
<!-- type=select,checkbox이고 기본값이 , 로 연결되어 있으면 , 를 기준으로 explode하여 배열로 만든다 --> <!-- type=select,checkbox이고 기본값이 , 로 연결되어 있으면 , 를 기준으로 explode하여 배열로 만든다 -->
<!--@if(in_array($val->type,array('select','checkbox'))&&strpos($val->default,",")!==false)--> <!--@if(in_array($val->type,array('select','checkbox'))&&strpos($val->default,",")!==false)-->
{@ $val->default = explode(',',$val->default) } {@ $val->default = explode(',',$val->default) }
@ -56,8 +66,11 @@
<!-- 날짜 입력 --> <!-- 날짜 입력 -->
<!--@elseif($val->type == 'date')--> <!--@elseif($val->type == 'date')-->
<input type="hidden" name="{$val->column_name}" id="date_{$val->column_name}" value="{$val->value}" /> <input type="hidden" name="{$val->column_name}" id="date_{$val->column_name}" value="{$val->value}" />
<div class="fl inputTypeText w80" id="str_{$val->column_name}">{zdate($val->value,"Y-m-d")}</div> <div class="display_date" id="str_{$val->column_name}">{zdate($val->value,"Y-m-d")}</div>
<a href="#" onclick="open_calendar('{$val->column_name}','{$val->value}');return false;" class="button"><span>{$lang->cmd_open_calendar}</span></a>
<script type="text/javascript">
Calendar.setup( { firstDay : 0, inputField : "date_{$val->column_name}", ifFormat : "%Y%m%d", displayArea : "str_{$val->column_name}", daFormat : "%Y-%m-%d"});
</script>
<!--@end--> <!--@end-->
<!--@if($val->desc)--> <!--@if($val->desc)-->

View file

@ -277,3 +277,5 @@ h5 { padding:2px; }
.listWrite { margin-bottom:20px; } .listWrite { margin-bottom:20px; }
.display_date { cursor:pointer; width:80px; float:left; border:1px solid; border-color:#a6a6a6 #d8d8d8 #d8d8d8 #a6a6a6; height:1em; padding:3px; margin-right:10px;}

View file

@ -1,5 +1,15 @@
<!-- 이 파일은 extra_vars의 form을 출력하는 파일이며 다른 스킨에서 그대로 가져가서 css만 바꾸어 주면 된다 --> <!-- 이 파일은 extra_vars의 form을 출력하는 파일이며 다른 스킨에서 그대로 가져가서 css만 바꾸어 주면 된다 -->
<!-- calendar -->
<!--%import("../../../../common/js/calendar.js",optimized=false)-->
<!--@if($lang_type == 'ko')-->
<!--%import("../../../../common/js/calendar-ko.js",optimized=false)-->
<!--@else-->
<!--%import("../../../../common/js/calendar-en.js",optimized=false)-->
<!--@end-->
<!--%import("../../../../common/js/calendar-setup.js",optimized=false)-->
<!--%import("../../../../common/css/calendar-system.css",optimized=false)-->
<!-- type=select,checkbox이고 기본값이 , 로 연결되어 있으면 , 를 기준으로 explode하여 배열로 만든다 --> <!-- type=select,checkbox이고 기본값이 , 로 연결되어 있으면 , 를 기준으로 explode하여 배열로 만든다 -->
<!--@if(in_array($val->type,array('select','checkbox'))&&strpos($val->default,",")!==false)--> <!--@if(in_array($val->type,array('select','checkbox'))&&strpos($val->default,",")!==false)-->
{@ $val->default = explode(',',$val->default) } {@ $val->default = explode(',',$val->default) }
@ -56,8 +66,11 @@
<!-- 날짜 입력 --> <!-- 날짜 입력 -->
<!--@elseif($val->type == 'date')--> <!--@elseif($val->type == 'date')-->
<input type="hidden" name="{$val->column_name}" id="date_{$val->column_name}" value="{$val->value}" /> <input type="hidden" name="{$val->column_name}" id="date_{$val->column_name}" value="{$val->value}" />
<div class="fl inputTypeText w80" id="str_{$val->column_name}">{zdate($val->value,"Y-m-d")}</div> <div class="display_date" id="str_{$val->column_name}">{zdate($val->value,"Y-m-d")}</div>
<a href="#" onclick="open_calendar('{$val->column_name}','{$val->value}');return false;" class="button"><span>{$lang->cmd_open_calendar}</span></a>
<script type="text/javascript">
Calendar.setup( { firstDay : 0, inputField : "date_{$val->column_name}", ifFormat : "%Y%m%d", displayArea : "str_{$val->column_name}", daFormat : "%Y-%m-%d"});
</script>
<!--@end--> <!--@end-->
<!--@if($val->desc)--> <!--@if($val->desc)-->

View file

@ -1,9 +1,32 @@
<!--%import("js/counter_admin.js")--> <!--%import("js/counter_admin.js")-->
<!-- calendar -->
<!--%import("../../common/js/calendar.js",optimized=false)-->
<!--@if($lang_type == 'ko')-->
<!--%import("../../common/js/calendar-ko.js",optimized=false)-->
<!--@else-->
<!--%import("../../common/js/calendar-en.js",optimized=false)-->
<!--@end-->
<!--%import("../../common/js/calendar-setup.js",optimized=false)-->
<!--%import("../../common/css/calendar-system.css",optimized=false)-->
<script type="text/javascript">
function moveDate() {
xGetElementById('fo_calendar').submit();
return true;
}
</script>
<h3>{$lang->counter} <span class="gray">{$lang->cmd_management}</span></h3> <h3>{$lang->counter} <span class="gray">{$lang->cmd_management}</span></h3>
<div class="header4 gap1"> <div class="header4 gap1">
<form action="./index.php" method="get" id="fo_calendar">
<input type="hidden" name="module" value="{$module}" />
<input type="hidden" name="act" value="{$act}" />
<input type="hidden" name="selected_date" id="selected_date" value="{zDate('Ymd',$selected_date)}" />
<table cellspacing="0" class="summary"> <table cellspacing="0" class="summary">
<col width="124" /> <col width="124" />
<col /> <col />
@ -12,11 +35,19 @@
<tr> <tr>
<th scope="row">{$lang->total_counter}</th> <th scope="row">{$lang->total_counter}</th>
<td>Visitor <strong>{number_format($total_counter->unique_visitor)}</strong> &nbsp;/&nbsp; Pageview : <strong>{number_format($total_counter->pageview)}</strong></td> <td>Visitor <strong>{number_format($total_counter->unique_visitor)}</strong> &nbsp;/&nbsp; Pageview : <strong>{number_format($total_counter->pageview)}</strong></td>
<th scope="row">{zdate($selected_date, "Y-m-d")} <span class="vr">|</span> <a href="#" onclick="open_calendar(null, '{$selected_date}', 'changeSelectedDate');return false;"><img src="./images/buttonCalendar.gif" alt="calendar" width="16" height="13" /></a></th> <th scope="row">
<span id="str_selected_date">{zdate($selected_date, "Y-m-d")}</span> <span class="vr">|</span>
<img src="./images/buttonCalendar.gif" alt="calendar" width="16" height="13" id="trigger_calendar" />
<script type="text/javascript">
Calendar.setup( { firstDay : 0, inputField : "selected_date", ifFormat : "%Y%m%d", displayArea : "str_selected_date", daFormat : "%Y-%m-%d" , button : "trigger_calendar", onClose: moveDate } );
</script>
</th>
<td>Visitor : <strong>{number_format($selected_day_counter->unique_visitor)}</strong> &nbsp;/&nbsp; Pageview : <strong>{number_format($selected_day_counter->pageview)}</strong></td> <td>Visitor : <strong>{number_format($selected_day_counter->unique_visitor)}</strong> &nbsp;/&nbsp; Pageview : <strong>{number_format($selected_day_counter->pageview)}</strong></td>
</tr> </tr>
</table> </table>
</form>
<ul class="localNavigation"> <ul class="localNavigation">
<!--@foreach($lang->cmd_select_counter_type as $key => $val)--> <!--@foreach($lang->cmd_select_counter_type as $key => $val)-->
<li <!--@if($type==$key || (!$type && $key == "hour"))-->class="on"<!--@end-->><a href="{getUrl('type',$key)}">{$val}</a></li> <li <!--@if($type==$key || (!$type && $key == "hour"))-->class="on"<!--@end-->><a href="{getUrl('type',$key)}">{$val}</a></li>

View file

@ -108,7 +108,7 @@
.memberInfoTable td checkbox { border:0; } .memberInfoTable td checkbox { border:0; }
.memberInfoTable td .fl { margin-right:.5em;} .memberInfoTable td .fl { margin-right:.5em;}
.memberInfoTable td br { clear:both;} .memberInfoTable td br { clear:both;}
.memberInfoTable td p { margin:0; padding:0; font-size:.9em; color:#999999; padding-top:.5em; margin-right:.5em;} .memberInfoTable td p { clear:both; margin:0; padding:0; font-size:.9em; color:#999999; padding-top:.5em; margin-right:.5em;}
.memberInfoTable td label { color:#3f4040; padding-top:.3em; margin-right:.5em;} .memberInfoTable td label { color:#3f4040; padding-top:.3em; margin-right:.5em;}
.memberInfoTable td ul { list-style:none; } .memberInfoTable td ul { list-style:none; }
.memberInfoTable td .checkbox { border:none; } .memberInfoTable td .checkbox { border:none; }
@ -125,7 +125,8 @@
.checkbox li { float:left; margin-right:2em; } .checkbox li { float:left; margin-right:2em; }
.checkbox li input { border:none; } .checkbox li input { border:none; }
.str_birthday { cursor:pointer; float:left; width:80px; border:1px solid; border-color:#a6a6a6 #d8d8d8 #d8d8d8 #a6a6a6; height:1em; padding:3px 3px 3px 18px; margin-right:.3em;} .display_date { cursor:pointer; width:80px; float:left; border:1px solid; border-color:#a6a6a6 #d8d8d8 #d8d8d8 #a6a6a6; height:1em; padding:3px; }
.krZip .address2 { clear:both; margin-top:10px;} .krZip .address2 { clear:both; margin-top:10px;}
.extendDesc { clear:both; margin-top:0; font-size:.9em; color:#999999; } .extendDesc { clear:both; margin-top:0; font-size:.9em; color:#999999; }

View file

@ -1,9 +1,9 @@
{@ $member_title = $lang->msg_update_member} {@ $member_title = $lang->msg_update_member}
<!--#include("./common_header.html")--> <!--#include("./common_header.html")-->
<!--%import("../../tpl/js/signup_check.js")--> <!--%import("../../tpl/js/signup_check.js")-->
<!--%import("../../tpl/js/krzip_search.js")-->
<!--%import("filter/modify_info.xml")--> <!--%import("filter/modify_info.xml")-->
<!--@if($member_config->profile_image == 'Y')--> <!--@if($member_config->profile_image == 'Y')-->
<!--%import("filter/delete_profile_image.xml")--> <!--%import("filter/delete_profile_image.xml")-->
<!--@end--> <!--@end-->
@ -16,7 +16,15 @@
<!--%import("filter/delete_image_mark.xml")--> <!--%import("filter/delete_image_mark.xml")-->
<!--@end--> <!--@end-->
<!--%import("../../tpl/js/krzip_search.js")--> <!-- calendar -->
<!--%import("../../../../common/js/calendar.js",optimized=false)-->
<!--@if($lang_type == 'ko')-->
<!--%import("../../../../common/js/calendar-ko.js",optimized=false)-->
<!--@else-->
<!--%import("../../../../common/js/calendar-en.js",optimized=false)-->
<!--@end-->
<!--%import("../../../../common/js/calendar-setup.js",optimized=false)-->
<!--%import("../../../../common/css/calendar-system.css",optimized=false)-->
<form id="fo_insert_member" action="./" method="post" onsubmit="return procFilter(this, modify_info)" <!--@if($member_config->profile_image == 'Y' || $member_config->image_name=='Y' || $member_config->image_mark=='Y')-->enctype="multipart/form-data"<!--@end-->> <form id="fo_insert_member" action="./" method="post" onsubmit="return procFilter(this, modify_info)" <!--@if($member_config->profile_image == 'Y' || $member_config->image_name=='Y' || $member_config->image_mark=='Y')-->enctype="multipart/form-data"<!--@end-->>
<input type="hidden" name="mid" value="{$mid}" /> <input type="hidden" name="mid" value="{$mid}" />
@ -112,9 +120,12 @@
<th scope="row">{$lang->birthday}</th> <th scope="row">{$lang->birthday}</th>
<td> <td>
<input type="hidden" name="birthday" id="date_birthday" value="{$member_info->birthday}" /> <input type="hidden" name="birthday" id="date_birthday" value="{$member_info->birthday}" />
<div class="str_birthday" id="str_birthday" onclick="open_calendar('birthday','');return false;">{zdate($member_info->birthday,"Y-m-d")}</div> <div class="display_date" id="str_birthday">{zdate($member_info->birthday,"Y-m-d")}</div>
<a href="#" onclick="open_calendar('birthday','{$member_info->birthday}');return false;" class="button"><span>{$lang->cmd_open_calendar}</span></a>
<p>{$lang->about_birthday}</p> <p>{$lang->about_birthday}</p>
<script type="text/javascript">
Calendar.setup( { firstDay : 0, inputField : "date_birthday", ifFormat : "%Y%m%d", displayArea : "str_birthday", daFormat : "%Y-%m-%d" } );
</script>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -226,8 +237,11 @@
<!-- 날짜 입력 --> <!-- 날짜 입력 -->
<!--@elseif($val->column_type == 'date')--> <!--@elseif($val->column_type == 'date')-->
<input type="hidden" name="{$val->column_name}" id="date_{$val->column_name}" value="{$val->value}" /> <input type="hidden" name="{$val->column_name}" id="date_{$val->column_name}" value="{$val->value}" />
<div class="str_birthday" id="str_{$val->column_name}">{zdate($val->value,"Y-m-d")}</div> <div class="display_date" id="str_{$val->column_name}">{zdate($val->value,"Y-m-d")}</div>
<a href="#" onclick="open_calendar('{$val->column_name}','{$val->value}');return false;" class="button"><span>{$lang->cmd_open_calendar}</span></a>
<script type="text/javascript">
Calendar.setup( { firstDay : 0, inputField : "date_{$val->column_name}", ifFormat : "%Y%m%d", displayArea : "str_{$val->column_name}", daFormat : "%Y-%m-%d"});
</script>
<!--@end--> <!--@end-->

View file

@ -1,8 +1,18 @@
<!--#include("./common_header.html")-->
<!--%import("../../tpl/js/signup_check.js")--> <!--%import("../../tpl/js/signup_check.js")-->
<!--%import("../../tpl/js/krzip_search.js")-->
<!--%import("filter/signup.xml")--> <!--%import("filter/signup.xml")-->
<!--%import("../../tpl/js/krzip_search.js")--> <!-- calendar -->
<!--%import("../../../../common/js/calendar.js",optimized=false)-->
<!--@if($lang_type == 'ko')-->
<!--%import("../../../../common/js/calendar-ko.js",optimized=false)-->
<!--@else-->
<!--%import("../../../../common/js/calendar-en.js",optimized=false)-->
<!--@end-->
<!--%import("../../../../common/js/calendar-setup.js",optimized=false)-->
<!--%import("../../../../common/css/calendar-system.css",optimized=false)-->
<!--#include("./common_header.html")-->
<div class="boardHeader"> <div class="boardHeader">
<h3>{$lang->msg_new_member}</h3> <h3>{$lang->msg_new_member}</h3>
@ -78,8 +88,7 @@
<th scope="row">{$lang->birthday}</th> <th scope="row">{$lang->birthday}</th>
<td> <td>
<input type="hidden" name="birthday" id="date_birthday" value="" /> <input type="hidden" name="birthday" id="date_birthday" value="" />
<div class="str_birthday" id="str_birthday" onclick="open_calendar('birthday','');return false;">&nbsp;</div> <div class="display_date" id="str_birthday"></div>
<a href="#" onclick="open_calendar('birthday','');return false;" class="button"><span>{$lang->cmd_open_calendar}</span></a>
<p>{$lang->about_birthday}</p> <p>{$lang->about_birthday}</p>
</td> </td>
</tr> </tr>
@ -89,6 +98,9 @@
</tr> </tr>
</table> </table>
<script type="text/javascript">
Calendar.setup( { firstDay : 0, inputField : "date_birthday", ifFormat : "%Y%m%d", displayArea : "str_birthday", daFormat : "%Y-%m-%d"});
</script>
<!--@if($extend_form_list)--> <!--@if($extend_form_list)-->
<table cellspacing="0" class="memberInfoTable"> <table cellspacing="0" class="memberInfoTable">
@ -178,9 +190,11 @@
<!-- 날짜 입력 --> <!-- 날짜 입력 -->
<!--@elseif($val->column_type == 'date')--> <!--@elseif($val->column_type == 'date')-->
<input type="hidden" name="{$val->column_name}" id="date_{$val->column_name}" value="{$val->value}" /> <input type="hidden" name="{$val->column_name}" id="date_{$val->column_name}" value="{$val->value}" />
<div class="str_birthday" id="str_{$val->column_name}">{zdate($val->value,"Y-m-d")}</div> <div class="display_date" id="str_{$val->column_name}">{zdate($val->value,"Y-m-d")}</div>
<a href="#" onclick="open_calendar('{$val->column_name}','{$val->value}');return false;" class="button"><span>{$lang->cmd_open_calendar}</span></a>
<script type="text/javascript">
Calendar.setup( { firstDay : 0, inputField : "date_{$val->column_name}", ifFormat : "%Y%m%d", displayArea : "str_{$val->column_name}", daFormat : "%Y-%m-%d"});
</script>
<!--@end--> <!--@end-->
<div class="extendDesc">{$val->description}</div> <div class="extendDesc">{$val->description}</div>

View file

@ -5,3 +5,4 @@
.publicItem label { font-weight:normal; margin:0; padding:0; color:#666666;} .publicItem label { font-weight:normal; margin:0; padding:0; color:#666666;}
span.publicItem { display:inline; margin:0; font-weight:normal; color:#666666; } span.publicItem { display:inline; margin:0; font-weight:normal; color:#666666; }
.display_date { cursor:pointer; width:80px; float:left; border:1px solid; border-color:#a6a6a6 #d8d8d8 #d8d8d8 #a6a6a6; height:1em; padding:3px; }

View file

@ -2,6 +2,16 @@
<!--%import("filter/insert.xml")--> <!--%import("filter/insert.xml")-->
<!--%import("css/member_admin.css")--> <!--%import("css/member_admin.css")-->
<!-- calendar -->
<!--%import("../../common/js/calendar.js",optimized=false)-->
<!--@if($lang_type == 'ko')-->
<!--%import("../../common/js/calendar-ko.js",optimized=false)-->
<!--@else-->
<!--%import("../../common/js/calendar-en.js",optimized=false)-->
<!--@end-->
<!--%import("../../common/js/calendar-setup.js",optimized=false)-->
<!--%import("../../common/css/calendar-system.css",optimized=false)-->
<form id="fo_insert_member" action="./" method="get" onsubmit="return procFilter(this, insert)"> <form id="fo_insert_member" action="./" method="get" onsubmit="return procFilter(this, insert)">
<input type="hidden" name="page" value="{$page}" /> <input type="hidden" name="page" value="{$page}" />
<input type="hidden" name="member_srl" value="{$member_info->member_srl}" /> <input type="hidden" name="member_srl" value="{$member_info->member_srl}" />
@ -69,10 +79,12 @@
<th scope="row">{$lang->birthday}</th> <th scope="row">{$lang->birthday}</th>
<td> <td>
<input type="hidden" name="birthday" id="date_birthday" value="{$member_info->birthday}" /> <input type="hidden" name="birthday" id="date_birthday" value="{$member_info->birthday}" />
<div class="display_date" id="str_birthday">{zdate($member_info->birthday,"Y-m-d")}</div>
<p>{$lang->about_birthday}</p>
<div id="str_birthday" class="inputTypeDate fl" >{zdate($member_info->birthday,"Y-m-d")}</div> <script type="text/javascript">
<a href="#" onclick="open_calendar('birthday','{$member_info->birthday}');return false;" class="button"><span>{$lang->cmd_open_calendar}</span></a> Calendar.setup( { firstDay : 0, inputField : "date_birthday", ifFormat : "%Y%m%d", displayArea : "str_birthday", daFormat : "%Y-%m-%d" } );
<p class="clear">{$lang->about_birthday}</p> </script>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -110,8 +122,10 @@
<th scope="row">{$lang->limit_date}</th> <th scope="row">{$lang->limit_date}</th>
<td> <td>
<input type="hidden" name="limit_date" id="date_limit_date" value="{$member_info->limit_date}" /> <input type="hidden" name="limit_date" id="date_limit_date" value="{$member_info->limit_date}" />
<div id="str_limit_date" class="inputTypeDate fl" >{zdate($member_info->limit_date,"Y-m-d")}</div> <div id="str_limit_date" class="display_date" >{zdate($member_info->limit_date,"Y-m-d")}</div>
<a href="#" onclick="open_calendar('limit_date','{$member_info->limit_date}');return false;" class="button"><span>{$lang->cmd_open_calendar}<img src="../../admin/tpl/images/blank.gif" alt="" class="rightCap" /></span></a> <script type="text/javascript">
Calendar.setup( { firstDay : 0, inputField : "date_limit_date", ifFormat : "%Y%m%d", displayArea : "str_limit_date", daFormat : "%Y-%m-%d" } );
</script>
<p class="clear">{$lang->about_limit_date}</p> <p class="clear">{$lang->about_limit_date}</p>
</td> </td>
</tr> </tr>
@ -225,9 +239,13 @@
<!-- 날짜 입력 --> <!-- 날짜 입력 -->
<!--@elseif($val->column_type == 'date')--> <!--@elseif($val->column_type == 'date')-->
<input type="hidden" name="{$val->column_name}" id="date_{$val->column_name}" value="{htmlspecialchars($val->value)}" /> <input type="hidden" name="{$val->column_name}" id="date_{$val->column_name}" value="{$val->value}" />
<div id="str_{$val->column_name}" class="inputTypeDate fl" >{zdate($val->value,"Y-m-d")}</div> <div class="display_date" id="str_{$val->column_name}">{zdate($val->value,"Y-m-d")}</div>
<a href="#" onclick="open_calendar('{$val->column_name}','{$val->value}');return false;" class="button"><span>{$lang->cmd_open_calendar}</span></a>
<script type="text/javascript">
Calendar.setup( { firstDay : 0, inputField : "date_{$val->column_name}", ifFormat : "%Y%m%d", displayArea : "str_{$val->column_name}", daFormat : "%Y-%m-%d"});
</script>
<!--@end--> <!--@end-->
<!--@if($val->description)--><p class="clear">{htmlspecialchars($val->description)}</p><!--@end--> <!--@if($val->description)--><p class="clear">{htmlspecialchars($val->description)}</p><!--@end-->