set svn property - svn:eol-style LF

git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@8253 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
taggon 2011-04-01 06:51:30 +00:00
parent 9802eaa60a
commit 620b03d184
763 changed files with 114595 additions and 114595 deletions

View file

@ -1,62 +1,62 @@
@charset "utf-8";
.widget_title { border:1px solid #DDDDDD; margin:10px 5px 5px 0; padding:3px; }
.widget_mid_list { margin:0 0 5px 10px; }
.widget_description { color:#AAAAAA; border-top:1px dotted #EEEEEE; margin:5px 0 0 0; padding:5px 0 0 0; }
#colorset_area { margin-top:.5em; }
#colorset_area .header { float:left; margin-right:.5em; padding-top:.2em;}
#colorset_area .footer { float:left; }
#zonePageContent { overflow:hidden; width:100%; padding:none !important; margin:none !important;}
.pageAddContent { width:700px; }
.widgetOutput { float:left; cursor:move; z-index:998; overflow:hidden; position:relative; width:100%; }
.widgetOutput .widgetBorder { border:1px solid #C7DBE9; z-index:999; }
.widgetOutput .widgetBoxBorder { border:1px solid #D2E9C7; z-index:999; }
.widgetOutput .widgetResize { background:transparent url("../images/btn_resize.gif") no-repeat left bottom; width:12px; height:12px; position:absolute; bottom:1px; right:1px; cursor:pointer; z-index:1000;}
.widgetOutput .widgetResizeLeft { background:transparent url("../images/btn_resize_left.gif") no-repeat left bottom; width:12px; height:12px; position:absolute; bottom:0; left:1px; cursor:pointer; z-index:1000;}
.widgetOutput .widgetBoxResize { background:transparent url("../images/btn_resize.gif") no-repeat left bottom; width:12px; height:12px; position:absolute; bottom:1px; right:1px; cursor:pointer; z-index:1000;}
.widgetOutput .widgetBoxResizeLeft { background:transparent url("../images/btn_resize_left.gif") no-repeat left bottom; width:12px; height:12px; position:absolute; bottom:0; left:1px; cursor:pointer; z-index:1000;}
.widgetButtons { z-index:9999; overflow:hidden; *zoom:1; float:left; padding:3px; position:absolute; visibility:hidden;}
#widgetButton { background-color:#C7DBE9;left:0; top:0;}
#widgetBoxButton { background-color:#D2E9C7; right:0; top:0;}
.widgetButtons div { float:left; }
.widgetButtons .widgetStyle { background:transparent url("../images/widgetstyle_setup.gif") no-repeat 1px 1px; width:14px; height:14px; cursor:pointer; z-index:1000;}
.widgetButtons .widgetSetup { background:transparent url("../images/widget_setup.gif") no-repeat 1px 1px; width:14px; height:14px; cursor:pointer; z-index:1000;}
.widgetButtons .widgetCopy { background:transparent url("../images/widget_copy.gif") no-repeat 1px 1px; width:14px; height:14px; cursor:pointer; z-index:1000;}
.widgetButtons .widgetSize { background:transparent url("../images/widget_size.gif") no-repeat 1px 1px; width:14px; height:14px; cursor:pointer; z-index:1000;}
.widgetButtons .widgetRemove { background:transparent url("../images/widget_remove.gif") no-repeat 1px 1px; width:14px; height:14px; cursor:pointer; z-index:1000;}
.widgetButtons .widgetBoxCopy { background:transparent url("../images/widget_copy.gif") no-repeat 1px 1px; width:14px; height:14px; cursor:pointer; z-index:1000;}
.widgetButtons .widgetBoxSize { background:transparent url("../images/widget_size.gif") no-repeat 1px 1px; width:14px; height:14px; cursor:pointer; z-index:1000;}
.widgetButtons .widgetBoxRemove { background:transparent url("../images/widget_remove.gif") no-repeat 1px 1px; width:14px; height:14px; cursor:pointer; z-index:1000;}
#pageSizeLayer { width:500px; overflow:hidden; border:1px solid #888888; background:#FFFFFF; z-index:2000; position:absolute; }
#pageSizeLayer table { border:0; width:100%; table-layout:fixed; }
#pageSizeLayer table th { padding:4px 0 4px 0; background-color:#DEDEDE; text-align:center; color:#888888;}
#pageSizeLayer table th.line { border-top:1px dotted #EEEEEE; }
#pageSizeLayer table td { padding:4px 10px 4px 10px; background-color:#EFEFEF;}
#pageSizeLayer table td div { margin-bottom:5px; }
#pageSizeLayer table td.line { border-top:1px dotted #999999; }
#pageSizeLayer table td.buttonBox { background-color:#FFFFFF; white-space:nowrap; overflow:hidden; vertical-align:top; text-align:center; border-top:1px solid #888888; color:#DDDDDD;}
#pageSizeLayer .input { background:#FFFFFF; border:1px solid #AAAAAA; padding:1px; font:8pt verdana; width:60px; }
#pageSizeLayer .full_input { background:#FFFFFF; border:1px solid #AAAAAA; padding:1px; font:8pt verdana; width:90%; }
#pageSizeLayer .small_input { background:#FFFFFF; border:1px solid #AAAAAA; padding:1px; font:8pt verdana; width:20px; }
#pageSizeLayer .color_input { background:#FFFFFF; border:1px solid #AAAAAA; padding:1px; font:8pt verdana; width:44px; }
#pageSizeLayer .submit { width:90%; border:1px solid #DEDEDE; background-color:#FFFFFF;}
.help { padding:5px 0; background-color:#EFEFEF; border-top:1px solid #CCCCCC; }
ul.midCommand { float:left; margin:0 0 0 10px;; padding:0; *zoom:1; }
ul.midCommand li { display:block; margin-bottom:5px; list-style:none;}
a.widgetStyle { float:left; margin:0 10px 10px 0; border:1px solid #fff; overflow:hidden; *zoom:1; width:96px; height:96px; position:relative; text-decoration:none;}
a.widgetStyle:hover { border:1px dashed #ccc; }
a.widgetStyle:hover span { display:none; }
a.widgetStyle.selected { border:1px dashed #999; }
a.widgetStyle img {width:96px; height:96px; margin:1px; }
a.widgetStyle span { position:absolute; left:0; bottom:0; display:block; width:96px; background-color:#888; color:#fff; padding:4px 3px 3px 3px; opacity:.8; filter:alpha(opacity=80); text-align:center; font-family:tahoma;}
@charset "utf-8";
.widget_title { border:1px solid #DDDDDD; margin:10px 5px 5px 0; padding:3px; }
.widget_mid_list { margin:0 0 5px 10px; }
.widget_description { color:#AAAAAA; border-top:1px dotted #EEEEEE; margin:5px 0 0 0; padding:5px 0 0 0; }
#colorset_area { margin-top:.5em; }
#colorset_area .header { float:left; margin-right:.5em; padding-top:.2em;}
#colorset_area .footer { float:left; }
#zonePageContent { overflow:hidden; width:100%; padding:none !important; margin:none !important;}
.pageAddContent { width:700px; }
.widgetOutput { float:left; cursor:move; z-index:998; overflow:hidden; position:relative; width:100%; }
.widgetOutput .widgetBorder { border:1px solid #C7DBE9; z-index:999; }
.widgetOutput .widgetBoxBorder { border:1px solid #D2E9C7; z-index:999; }
.widgetOutput .widgetResize { background:transparent url("../images/btn_resize.gif") no-repeat left bottom; width:12px; height:12px; position:absolute; bottom:1px; right:1px; cursor:pointer; z-index:1000;}
.widgetOutput .widgetResizeLeft { background:transparent url("../images/btn_resize_left.gif") no-repeat left bottom; width:12px; height:12px; position:absolute; bottom:0; left:1px; cursor:pointer; z-index:1000;}
.widgetOutput .widgetBoxResize { background:transparent url("../images/btn_resize.gif") no-repeat left bottom; width:12px; height:12px; position:absolute; bottom:1px; right:1px; cursor:pointer; z-index:1000;}
.widgetOutput .widgetBoxResizeLeft { background:transparent url("../images/btn_resize_left.gif") no-repeat left bottom; width:12px; height:12px; position:absolute; bottom:0; left:1px; cursor:pointer; z-index:1000;}
.widgetButtons { z-index:9999; overflow:hidden; *zoom:1; float:left; padding:3px; position:absolute; visibility:hidden;}
#widgetButton { background-color:#C7DBE9;left:0; top:0;}
#widgetBoxButton { background-color:#D2E9C7; right:0; top:0;}
.widgetButtons div { float:left; }
.widgetButtons .widgetStyle { background:transparent url("../images/widgetstyle_setup.gif") no-repeat 1px 1px; width:14px; height:14px; cursor:pointer; z-index:1000;}
.widgetButtons .widgetSetup { background:transparent url("../images/widget_setup.gif") no-repeat 1px 1px; width:14px; height:14px; cursor:pointer; z-index:1000;}
.widgetButtons .widgetCopy { background:transparent url("../images/widget_copy.gif") no-repeat 1px 1px; width:14px; height:14px; cursor:pointer; z-index:1000;}
.widgetButtons .widgetSize { background:transparent url("../images/widget_size.gif") no-repeat 1px 1px; width:14px; height:14px; cursor:pointer; z-index:1000;}
.widgetButtons .widgetRemove { background:transparent url("../images/widget_remove.gif") no-repeat 1px 1px; width:14px; height:14px; cursor:pointer; z-index:1000;}
.widgetButtons .widgetBoxCopy { background:transparent url("../images/widget_copy.gif") no-repeat 1px 1px; width:14px; height:14px; cursor:pointer; z-index:1000;}
.widgetButtons .widgetBoxSize { background:transparent url("../images/widget_size.gif") no-repeat 1px 1px; width:14px; height:14px; cursor:pointer; z-index:1000;}
.widgetButtons .widgetBoxRemove { background:transparent url("../images/widget_remove.gif") no-repeat 1px 1px; width:14px; height:14px; cursor:pointer; z-index:1000;}
#pageSizeLayer { width:500px; overflow:hidden; border:1px solid #888888; background:#FFFFFF; z-index:2000; position:absolute; }
#pageSizeLayer table { border:0; width:100%; table-layout:fixed; }
#pageSizeLayer table th { padding:4px 0 4px 0; background-color:#DEDEDE; text-align:center; color:#888888;}
#pageSizeLayer table th.line { border-top:1px dotted #EEEEEE; }
#pageSizeLayer table td { padding:4px 10px 4px 10px; background-color:#EFEFEF;}
#pageSizeLayer table td div { margin-bottom:5px; }
#pageSizeLayer table td.line { border-top:1px dotted #999999; }
#pageSizeLayer table td.buttonBox { background-color:#FFFFFF; white-space:nowrap; overflow:hidden; vertical-align:top; text-align:center; border-top:1px solid #888888; color:#DDDDDD;}
#pageSizeLayer .input { background:#FFFFFF; border:1px solid #AAAAAA; padding:1px; font:8pt verdana; width:60px; }
#pageSizeLayer .full_input { background:#FFFFFF; border:1px solid #AAAAAA; padding:1px; font:8pt verdana; width:90%; }
#pageSizeLayer .small_input { background:#FFFFFF; border:1px solid #AAAAAA; padding:1px; font:8pt verdana; width:20px; }
#pageSizeLayer .color_input { background:#FFFFFF; border:1px solid #AAAAAA; padding:1px; font:8pt verdana; width:44px; }
#pageSizeLayer .submit { width:90%; border:1px solid #DEDEDE; background-color:#FFFFFF;}
.help { padding:5px 0; background-color:#EFEFEF; border-top:1px solid #CCCCCC; }
ul.midCommand { float:left; margin:0 0 0 10px;; padding:0; *zoom:1; }
ul.midCommand li { display:block; margin-bottom:5px; list-style:none;}
a.widgetStyle { float:left; margin:0 10px 10px 0; border:1px solid #fff; overflow:hidden; *zoom:1; width:96px; height:96px; position:relative; text-decoration:none;}
a.widgetStyle:hover { border:1px dashed #ccc; }
a.widgetStyle:hover span { display:none; }
a.widgetStyle.selected { border:1px dashed #999; }
a.widgetStyle img {width:96px; height:96px; margin:1px; }
a.widgetStyle span { position:absolute; left:0; bottom:0; display:block; width:96px; background-color:#888; color:#fff; padding:4px 3px 3px 3px; opacity:.8; filter:alpha(opacity=80); text-align:center; font-family:tahoma;}

View file

@ -1,9 +1,9 @@
<filter name="style_generate_code_in_page" module="widget" act="procWidgetGenerateCodeInPage">
<response callback_func="completeGenerateCodeInPage">
<tag name="error" />
<tag name="message" />
<tag name="widget_code" />
<tag name="tpl" />
<tag name="css_header" />
</response>
</filter>
<filter name="style_generate_code_in_page" module="widget" act="procWidgetGenerateCodeInPage">
<response callback_func="completeGenerateCodeInPage">
<tag name="error" />
<tag name="message" />
<tag name="widget_code" />
<tag name="tpl" />
<tag name="css_header" />
</response>
</filter>

File diff suppressed because it is too large Load diff

View file

@ -1,470 +1,470 @@
/**
* @file modules/widget/js/widget_admin.js
* @author NHN (developers@xpressengine.com)
* @brief widget 모듈의 관리자용 javascript
**/
/* 생성된 코드를 textarea에 출력 */
function completeGenerateCode(ret_obj) {
var widget_code = ret_obj["widget_code"];
widget_code = widget_code.replace(/&/g, "&amp;");
widget_code = widget_code.replace(/\'/g, "&apos;");
var zone = xGetElementById("widget_code");
zone.value = widget_code;
}
/* 생성된 코드를 페이지 zone에 출력 */
function completeGenerateCodeInPage(ret_obj,response_tags,params,fo_obj) {
var widget_code = ret_obj["widget_code"];
if(!opener || !widget_code) {
window.close();
return;
}
opener.doAddWidgetCode(widget_code);
window.close();
}
/* 위젯 코드 생성시 스킨을 고르면 컬러셋의 정보를 표시 */
function doDisplaySkinColorset(sel, colorset) {
var skin = sel.options[sel.selectedIndex].value;
if(!skin) {
xGetElementById("colorset_area").style.display = "none";
setFixedPopupSize();
return;
}
var params = new Array();
params["selected_widget"] = xGetElementById("fo_widget").selected_widget.value;
params["skin"] = skin;
params["colorset"] = colorset;
var response_tags = new Array("error","message","colorset_list");
exec_xml("widget", "procWidgetGetColorsetList", params, completeGetSkinColorset, response_tags, params);
}
/* 서버에서 받아온 컬러셋을 표시 */
function completeGetSkinColorset(ret_obj, response_tags, params, fo_obj) {
var sel = jQuery("#fo_widget")[0].widget_colorset;
var length = sel.options.length;
var selected_colorset = params["colorset"];
for(var i=0;i<length;i++) sel.remove(0);
if(!ret_obj["colorset_list"]) return;
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;
jQuery("#colorset_area").show();
setFixedPopupSize();
}
var selected_node = null;
/* 페이지 모듈에서 위젯스타일 수정하려고 할 경우 */
function getWidgetVars() {
if(!opener || !opener.selectedWidget || !opener.selectedWidget.getAttribute("widget")) return;
selected_node = opener.selectedWidget;
if(!xGetElementById('fo_widget').widgetstyle.value) {
xGetElementById('fo_widget').widgetstyle.value = selected_node.getAttribute('widgetstyle');
}
doFillWidgetVars();
}
/* 페이지 모듈에서 내용의 위젯을 더블클릭하여 수정하려고 할 경우 */
function doFillWidgetVars() {
if(!opener || !opener.selectedWidget || !opener.selectedWidget.getAttribute("widget")) return;
selected_node = opener.selectedWidget;
// 스킨과 컬러셋은 기본
var skin = selected_node.getAttribute("skin");
var colorset = selected_node.getAttribute("colorset");
var widget_sequence = parseInt(selected_node.getAttribute("widget_sequence"),10);
var fo_widget = jQuery("#fo_widget");
var fo_obj = xGetElementById("fo_widget");
jQuery('#widget_skin').val(skin);
// 위젯 스타일 유지를 위한 hidden input 추가하고 값을 저장
var attrs = selected_node.attributes;
for (i=0; i< attrs.length ; i++){
var name = attrs[i].name;
var value = jQuery(selected_node).attr(name);
if(value=='Array') continue;
if(jQuery("[name="+name+"]",fo_widget).size()>0 || !value || name == 'style') continue;
var dummy = jQuery('<input type="hidden" name="'+name+'" >').val(value).appendTo("#fo_widget").get(0);
}
// 위젯의 속성 설정
var obj_list = new Array();
jQuery('input,select,textarea','#fo_widget').each( function() {
obj_list.push(this);
});
for(var j=0;j<obj_list.length;j++) {
var node = obj_list[j];
if(node.name.indexOf('_')==0) continue;
if(node.name == 'widgetstyle') continue;
var length = node.length;
var type = node.type;
if((typeof(type)=='undefined'||!type) && typeof(length)!='undefined' && typeof(node[0])!='undefined' && length>0) type = node[0].type;
else length = 0;
var name = node.name;
switch(type) {
case "hidden" :
case "text" :
case "textarea" :
var val = selected_node.getAttribute(name);
if(!val) continue;
var unescaped_val = unescape(val);
if(!unescaped_val) node.value = val;
else node.value = unescaped_val;
break;
case "checkbox" :
if(selected_node.getAttribute(name)) {
var val = selected_node.getAttribute(name).split(',');
if(fo_obj[name].length) {
for(var i=0;i<fo_obj[name].length;i++) {
var v = fo_obj[name][i].value;
for(var k=0;k<val.length;k++) {
if(v == val[k]) {
fo_obj[name][i].checked=true;
break;
}
}
}
} else {
if(fo_obj[name].value == val) fo_obj[name].checked =true;
}
}
break;
case "select" :
case "select-one" :
var val = selected_node.getAttribute(name);
var sel = fo_obj[name];
if(!val) break;
for(var i=0;i<sel.options.length;i++) {
if(sel.options[i].value == val) sel.options[i].selected = true;
else sel.options[i].selected = false;
}
break;
}
}
var style = selected_node.getAttribute("style");
if(typeof(style)=="object") style = style["cssText"];
fo_obj.style.value = style;
fo_obj.widget_padding_left.value = selected_node.getAttribute("widget_padding_left");
fo_obj.widget_padding_right.value = selected_node.getAttribute("widget_padding_right");
fo_obj.widget_padding_bottom.value = selected_node.getAttribute("widget_padding_bottom");
fo_obj.widget_padding_top.value = selected_node.getAttribute("widget_padding_top");
// 컬러셋 설정
if(skin && xGetElementById("widget_colorset") && xGetElementById("widget_colorset").options.length<1 && colorset) {
doDisplaySkinColorset(xGetElementById("widget_skin"), colorset);
}
// widget sequence 설정
fo_obj.widget_sequence.value = widget_sequence;
}
function checkFixType(obj) {
var val = obj.options[obj.selectedIndex].value;
if(val != "px") {
var fo_obj = xGetElementById("fo_widget");
var width = fo_obj.widget_width.value;
if(width>100) fo_obj.widget_width.value = 100;
}
}
// 위젯의 대상 모듈 입력기 (단일 선택)
function insertSelectedModule(id, module_srl, mid, browser_title) {
var obj= xGetElementById('_'+id);
var sObj = xGetElementById(id);
sObj.value = module_srl;
obj.value = browser_title+' ('+mid+')';
}
// 위젯의 대상 모듈 입력기 (다중 선택)
function insertSelectedModules(id, module_srl, mid, browser_title) {
var sel_obj = jQuery('#_'+id)[0];
for(var i=0;i<sel_obj.options.length;i++) if(sel_obj.options[i].value==module_srl) return;
var opt = new Option(browser_title+' ('+mid+')', module_srl, false, false);
sel_obj.options[sel_obj.options.length] = opt;
if(sel_obj.options.length>8) sel_obj.size = sel_obj.options.length;
syncMid(id);
}
function midMoveUp(id) {
var sel_obj = xGetElementById('_'+id);
if(sel_obj.selectedIndex<0) return;
var idx = sel_obj.selectedIndex;
if(idx < 1) return;
var s_obj = sel_obj.options[idx];
var t_obj = sel_obj.options[idx-1];
var value = s_obj.value;
var text = s_obj.text;
s_obj.value = t_obj.value;
s_obj.text = t_obj.text;
t_obj.value = value;
t_obj.text = text;
sel_obj.selectedIndex = idx-1;
syncMid(id);
}
function midMoveDown(id) {
var sel_obj = xGetElementById('_'+id);
if(sel_obj.selectedIndex<0) return;
var idx = sel_obj.selectedIndex;
if(idx == sel_obj.options.length-1) return;
var s_obj = sel_obj.options[idx];
var t_obj = sel_obj.options[idx+1];
var value = s_obj.value;
var text = s_obj.text;
s_obj.value = t_obj.value;
s_obj.text = t_obj.text;
t_obj.value = value;
t_obj.text = text;
sel_obj.selectedIndex = idx+1;
syncMid(id);
}
function midRemove(id) {
var sel_obj = xGetElementById('_'+id);
if(sel_obj.selectedIndex<0) return;
var idx = sel_obj.selectedIndex;
sel_obj.remove(idx);
idx = idx-1;
if(idx < 0) idx = 0;
if(sel_obj.options.length) sel_obj.selectedIndex = idx;
syncMid(id);
}
function syncMid(id) {
var sel_obj = jQuery('#_'+id)[0];
var valueArray = [];
for(var i=0;i<sel_obj.options.length;i++) valueArray[valueArray.length] = sel_obj.options[i].value;
jQuery('#'+id).val( valueArray.join(',') );
}
function getModuleSrlList(id) {
var obj = jQuery('#'+id);
if(!obj[0] || !obj.val()) return;
var params = [];
params["module_srls"] = obj.val();
params["id"] = id;
var response_tags = ["error","message","module_list","id"];
exec_xml("module", "getModuleAdminModuleList", params, completeGetModuleSrlList, response_tags, params);
}
function completeGetModuleSrlList(ret_obj, response_tags) {
var id = ret_obj['id'];
var sel_obj = jQuery('#_'+id);
if(!sel_obj[0]) return;
var module_list = ret_obj['module_list'];
if(!module_list) return;
var item = module_list['item'];
if(typeof(item.length)=='undefined' || item.length<1) item = [item];
for(var i=0;i<item.length;i++) {
var module_srl = item[i].module_srl;
var mid = item[i].mid;
var browser_title = item[i].browser_title;
var opt = new Option(browser_title+' ('+mid+')', module_srl);
sel_obj[0].options.add(opt);
}
}
function getModuleSrl(id) {
var obj = xGetElementById(id);
if(!obj.value) return;
var value = obj.value;
var params = new Array();
params["module_srls"] = obj.value;
params["id"] = id;
var response_tags = new Array("error","message","module_list","id");
exec_xml("module", "getModuleAdminModuleList", params, completeGetModuleSrl, response_tags, params);
}
function completeGetModuleSrl(ret_obj, response_tags) {
var id = ret_obj['id'];
var obj = xGetElementById('_'+id);
var sObj = xGetElementById(id);
if(!sObj || !obj) return;
var module_list = ret_obj['module_list'];
if(!module_list) return;
var item = module_list['item'];
if(typeof(item.length)=='undefined' || item.length<1) item = new Array(item);
sObj.value = item[0].module_srl;
obj.value = item[0].browser_title+' ('+item[0].mid+')';
}
var windowLoadEventLoader = new Array();
function doAddWindowLoadEventLoader(func) {
windowLoadEventLoader.push(func);
}
function excuteWindowLoadEvent() {
for(var i=0;i<windowLoadEventLoader.length;i++) {
windowLoadEventLoader[i]();
}
}
jQuery(window).load(excuteWindowLoadEvent);
function selectWidget(val){
var url =current_url.setQuery('selected_widget', val);
document.location.href = url;
}
function widgetstyle_extra_image_upload(f){
f.act.value='procWidgetStyleExtraImageUpload';
f.submit();
}
function MultiOrderSet(id){
var selectedObj = jQuery("[name='selected_"+id+"']").get(0);
var value = [];
for(i=0;i<selectedObj.options.length;i++){
value.push(selectedObj.options[i].value);
}
jQuery("[name='"+id+"']").val(value.join(','));
}
function MultiOrderAdd(id){
var showObj = jQuery("[name='show_"+id+"']").get(0);
var selectedObj = jQuery("[name='selected_"+id+"']").get(0);
var defaultObj = jQuery("[name='default_"+id+"']").val().split(',');
if(showObj.selectedIndex<0) return;
var idx = showObj.selectedIndex;
var svalue = showObj.options[idx].value;
for(i=0;i<selectedObj.options.length;i++){
if(selectedObj.options[i].value == svalue) return;
}
selectedObj.options.add(new Option(svalue, svalue, false, false));
MultiOrderSet(id);
}
function MultiOrderDelete(id){
var showObj = jQuery("[name='show_"+id+"']").get(0);
var selectedObj = jQuery("[name='selected_"+id+"']").get(0);
var defaultObj = jQuery("[name='default_"+id+"']").val().split(',');
var idx = selectedObj.selectedIndex;
if(idx<0) return;
for(i=0;i<defaultObj.length;i++){
if(jQuery.inArray(selectedObj.options[idx].value, defaultObj) > -1) return;
}
selectedObj.remove(idx);
idx = idx-1;
if(idx < 0) idx = 0;
if(selectedObj.options.length) selectedObj.selectedIndex = idx;
MultiOrderSet(id);
}
function MultiOrderUp(id){
var selectedObj = jQuery("[name='selected_"+id+"']").get(0);
if(selectedObj.selectedIndex<0) return;
var idx = selectedObj.selectedIndex;
if(idx < 1) return;
var s_obj = selectedObj.options[idx];
var t_obj = selectedObj.options[idx-1];
var value = s_obj.value;
var text = s_obj.text;
s_obj.value = t_obj.value;
s_obj.text = t_obj.text;
t_obj.value = value;
t_obj.text = text;
selectedObj.selectedIndex = idx-1;
MultiOrderSet(id);
}
function MultiOrderDown(id){
var selectedObj = jQuery("[name='selected_"+id+"']").get(0);
if(selectedObj.selectedIndex<0) return;
var idx = selectedObj.selectedIndex;
if(idx == selectedObj.options.length-1) return;
var s_obj = selectedObj.options[idx];
var t_obj = selectedObj.options[idx+1];
var value = s_obj.value;
var text = s_obj.text;
s_obj.value = t_obj.value;
s_obj.text = t_obj.text;
t_obj.value = value;
t_obj.text = text;
selectedObj.selectedIndex = idx+1;
MultiOrderSet(id);
}
function initMultiOrder(id){
var selectedObj = jQuery("[name='selected_"+id+"']").get(0);
var init_value = jQuery("[name='init_"+id+"']").val();
var save_value = jQuery("[name='"+id+"']").val();
if(save_value){
var arr_save_value = save_value.split(',');
for(i=0;i<arr_save_value.length;i++){
if(arr_save_value[i].length>0){
var opt = new Option(arr_save_value[i], arr_save_value[i]);
selectedObj.options.add(opt);
}
}
}else{
var arr_init_value = init_value.split(',');
for(i=0;i<arr_init_value.length;i++){
if(arr_init_value[i].length>0){
var opt = new Option(arr_init_value[i], arr_init_value[i]);
selectedObj.options.add(opt);
}
}
}
MultiOrderSet(id);
}
/**
* @file modules/widget/js/widget_admin.js
* @author NHN (developers@xpressengine.com)
* @brief widget 모듈의 관리자용 javascript
**/
/* 생성된 코드를 textarea에 출력 */
function completeGenerateCode(ret_obj) {
var widget_code = ret_obj["widget_code"];
widget_code = widget_code.replace(/&/g, "&amp;");
widget_code = widget_code.replace(/\'/g, "&apos;");
var zone = xGetElementById("widget_code");
zone.value = widget_code;
}
/* 생성된 코드를 페이지 zone에 출력 */
function completeGenerateCodeInPage(ret_obj,response_tags,params,fo_obj) {
var widget_code = ret_obj["widget_code"];
if(!opener || !widget_code) {
window.close();
return;
}
opener.doAddWidgetCode(widget_code);
window.close();
}
/* 위젯 코드 생성시 스킨을 고르면 컬러셋의 정보를 표시 */
function doDisplaySkinColorset(sel, colorset) {
var skin = sel.options[sel.selectedIndex].value;
if(!skin) {
xGetElementById("colorset_area").style.display = "none";
setFixedPopupSize();
return;
}
var params = new Array();
params["selected_widget"] = xGetElementById("fo_widget").selected_widget.value;
params["skin"] = skin;
params["colorset"] = colorset;
var response_tags = new Array("error","message","colorset_list");
exec_xml("widget", "procWidgetGetColorsetList", params, completeGetSkinColorset, response_tags, params);
}
/* 서버에서 받아온 컬러셋을 표시 */
function completeGetSkinColorset(ret_obj, response_tags, params, fo_obj) {
var sel = jQuery("#fo_widget")[0].widget_colorset;
var length = sel.options.length;
var selected_colorset = params["colorset"];
for(var i=0;i<length;i++) sel.remove(0);
if(!ret_obj["colorset_list"]) return;
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;
jQuery("#colorset_area").show();
setFixedPopupSize();
}
var selected_node = null;
/* 페이지 모듈에서 위젯스타일 수정하려고 할 경우 */
function getWidgetVars() {
if(!opener || !opener.selectedWidget || !opener.selectedWidget.getAttribute("widget")) return;
selected_node = opener.selectedWidget;
if(!xGetElementById('fo_widget').widgetstyle.value) {
xGetElementById('fo_widget').widgetstyle.value = selected_node.getAttribute('widgetstyle');
}
doFillWidgetVars();
}
/* 페이지 모듈에서 내용의 위젯을 더블클릭하여 수정하려고 할 경우 */
function doFillWidgetVars() {
if(!opener || !opener.selectedWidget || !opener.selectedWidget.getAttribute("widget")) return;
selected_node = opener.selectedWidget;
// 스킨과 컬러셋은 기본
var skin = selected_node.getAttribute("skin");
var colorset = selected_node.getAttribute("colorset");
var widget_sequence = parseInt(selected_node.getAttribute("widget_sequence"),10);
var fo_widget = jQuery("#fo_widget");
var fo_obj = xGetElementById("fo_widget");
jQuery('#widget_skin').val(skin);
// 위젯 스타일 유지를 위한 hidden input 추가하고 값을 저장
var attrs = selected_node.attributes;
for (i=0; i< attrs.length ; i++){
var name = attrs[i].name;
var value = jQuery(selected_node).attr(name);
if(value=='Array') continue;
if(jQuery("[name="+name+"]",fo_widget).size()>0 || !value || name == 'style') continue;
var dummy = jQuery('<input type="hidden" name="'+name+'" >').val(value).appendTo("#fo_widget").get(0);
}
// 위젯의 속성 설정
var obj_list = new Array();
jQuery('input,select,textarea','#fo_widget').each( function() {
obj_list.push(this);
});
for(var j=0;j<obj_list.length;j++) {
var node = obj_list[j];
if(node.name.indexOf('_')==0) continue;
if(node.name == 'widgetstyle') continue;
var length = node.length;
var type = node.type;
if((typeof(type)=='undefined'||!type) && typeof(length)!='undefined' && typeof(node[0])!='undefined' && length>0) type = node[0].type;
else length = 0;
var name = node.name;
switch(type) {
case "hidden" :
case "text" :
case "textarea" :
var val = selected_node.getAttribute(name);
if(!val) continue;
var unescaped_val = unescape(val);
if(!unescaped_val) node.value = val;
else node.value = unescaped_val;
break;
case "checkbox" :
if(selected_node.getAttribute(name)) {
var val = selected_node.getAttribute(name).split(',');
if(fo_obj[name].length) {
for(var i=0;i<fo_obj[name].length;i++) {
var v = fo_obj[name][i].value;
for(var k=0;k<val.length;k++) {
if(v == val[k]) {
fo_obj[name][i].checked=true;
break;
}
}
}
} else {
if(fo_obj[name].value == val) fo_obj[name].checked =true;
}
}
break;
case "select" :
case "select-one" :
var val = selected_node.getAttribute(name);
var sel = fo_obj[name];
if(!val) break;
for(var i=0;i<sel.options.length;i++) {
if(sel.options[i].value == val) sel.options[i].selected = true;
else sel.options[i].selected = false;
}
break;
}
}
var style = selected_node.getAttribute("style");
if(typeof(style)=="object") style = style["cssText"];
fo_obj.style.value = style;
fo_obj.widget_padding_left.value = selected_node.getAttribute("widget_padding_left");
fo_obj.widget_padding_right.value = selected_node.getAttribute("widget_padding_right");
fo_obj.widget_padding_bottom.value = selected_node.getAttribute("widget_padding_bottom");
fo_obj.widget_padding_top.value = selected_node.getAttribute("widget_padding_top");
// 컬러셋 설정
if(skin && xGetElementById("widget_colorset") && xGetElementById("widget_colorset").options.length<1 && colorset) {
doDisplaySkinColorset(xGetElementById("widget_skin"), colorset);
}
// widget sequence 설정
fo_obj.widget_sequence.value = widget_sequence;
}
function checkFixType(obj) {
var val = obj.options[obj.selectedIndex].value;
if(val != "px") {
var fo_obj = xGetElementById("fo_widget");
var width = fo_obj.widget_width.value;
if(width>100) fo_obj.widget_width.value = 100;
}
}
// 위젯의 대상 모듈 입력기 (단일 선택)
function insertSelectedModule(id, module_srl, mid, browser_title) {
var obj= xGetElementById('_'+id);
var sObj = xGetElementById(id);
sObj.value = module_srl;
obj.value = browser_title+' ('+mid+')';
}
// 위젯의 대상 모듈 입력기 (다중 선택)
function insertSelectedModules(id, module_srl, mid, browser_title) {
var sel_obj = jQuery('#_'+id)[0];
for(var i=0;i<sel_obj.options.length;i++) if(sel_obj.options[i].value==module_srl) return;
var opt = new Option(browser_title+' ('+mid+')', module_srl, false, false);
sel_obj.options[sel_obj.options.length] = opt;
if(sel_obj.options.length>8) sel_obj.size = sel_obj.options.length;
syncMid(id);
}
function midMoveUp(id) {
var sel_obj = xGetElementById('_'+id);
if(sel_obj.selectedIndex<0) return;
var idx = sel_obj.selectedIndex;
if(idx < 1) return;
var s_obj = sel_obj.options[idx];
var t_obj = sel_obj.options[idx-1];
var value = s_obj.value;
var text = s_obj.text;
s_obj.value = t_obj.value;
s_obj.text = t_obj.text;
t_obj.value = value;
t_obj.text = text;
sel_obj.selectedIndex = idx-1;
syncMid(id);
}
function midMoveDown(id) {
var sel_obj = xGetElementById('_'+id);
if(sel_obj.selectedIndex<0) return;
var idx = sel_obj.selectedIndex;
if(idx == sel_obj.options.length-1) return;
var s_obj = sel_obj.options[idx];
var t_obj = sel_obj.options[idx+1];
var value = s_obj.value;
var text = s_obj.text;
s_obj.value = t_obj.value;
s_obj.text = t_obj.text;
t_obj.value = value;
t_obj.text = text;
sel_obj.selectedIndex = idx+1;
syncMid(id);
}
function midRemove(id) {
var sel_obj = xGetElementById('_'+id);
if(sel_obj.selectedIndex<0) return;
var idx = sel_obj.selectedIndex;
sel_obj.remove(idx);
idx = idx-1;
if(idx < 0) idx = 0;
if(sel_obj.options.length) sel_obj.selectedIndex = idx;
syncMid(id);
}
function syncMid(id) {
var sel_obj = jQuery('#_'+id)[0];
var valueArray = [];
for(var i=0;i<sel_obj.options.length;i++) valueArray[valueArray.length] = sel_obj.options[i].value;
jQuery('#'+id).val( valueArray.join(',') );
}
function getModuleSrlList(id) {
var obj = jQuery('#'+id);
if(!obj[0] || !obj.val()) return;
var params = [];
params["module_srls"] = obj.val();
params["id"] = id;
var response_tags = ["error","message","module_list","id"];
exec_xml("module", "getModuleAdminModuleList", params, completeGetModuleSrlList, response_tags, params);
}
function completeGetModuleSrlList(ret_obj, response_tags) {
var id = ret_obj['id'];
var sel_obj = jQuery('#_'+id);
if(!sel_obj[0]) return;
var module_list = ret_obj['module_list'];
if(!module_list) return;
var item = module_list['item'];
if(typeof(item.length)=='undefined' || item.length<1) item = [item];
for(var i=0;i<item.length;i++) {
var module_srl = item[i].module_srl;
var mid = item[i].mid;
var browser_title = item[i].browser_title;
var opt = new Option(browser_title+' ('+mid+')', module_srl);
sel_obj[0].options.add(opt);
}
}
function getModuleSrl(id) {
var obj = xGetElementById(id);
if(!obj.value) return;
var value = obj.value;
var params = new Array();
params["module_srls"] = obj.value;
params["id"] = id;
var response_tags = new Array("error","message","module_list","id");
exec_xml("module", "getModuleAdminModuleList", params, completeGetModuleSrl, response_tags, params);
}
function completeGetModuleSrl(ret_obj, response_tags) {
var id = ret_obj['id'];
var obj = xGetElementById('_'+id);
var sObj = xGetElementById(id);
if(!sObj || !obj) return;
var module_list = ret_obj['module_list'];
if(!module_list) return;
var item = module_list['item'];
if(typeof(item.length)=='undefined' || item.length<1) item = new Array(item);
sObj.value = item[0].module_srl;
obj.value = item[0].browser_title+' ('+item[0].mid+')';
}
var windowLoadEventLoader = new Array();
function doAddWindowLoadEventLoader(func) {
windowLoadEventLoader.push(func);
}
function excuteWindowLoadEvent() {
for(var i=0;i<windowLoadEventLoader.length;i++) {
windowLoadEventLoader[i]();
}
}
jQuery(window).load(excuteWindowLoadEvent);
function selectWidget(val){
var url =current_url.setQuery('selected_widget', val);
document.location.href = url;
}
function widgetstyle_extra_image_upload(f){
f.act.value='procWidgetStyleExtraImageUpload';
f.submit();
}
function MultiOrderSet(id){
var selectedObj = jQuery("[name='selected_"+id+"']").get(0);
var value = [];
for(i=0;i<selectedObj.options.length;i++){
value.push(selectedObj.options[i].value);
}
jQuery("[name='"+id+"']").val(value.join(','));
}
function MultiOrderAdd(id){
var showObj = jQuery("[name='show_"+id+"']").get(0);
var selectedObj = jQuery("[name='selected_"+id+"']").get(0);
var defaultObj = jQuery("[name='default_"+id+"']").val().split(',');
if(showObj.selectedIndex<0) return;
var idx = showObj.selectedIndex;
var svalue = showObj.options[idx].value;
for(i=0;i<selectedObj.options.length;i++){
if(selectedObj.options[i].value == svalue) return;
}
selectedObj.options.add(new Option(svalue, svalue, false, false));
MultiOrderSet(id);
}
function MultiOrderDelete(id){
var showObj = jQuery("[name='show_"+id+"']").get(0);
var selectedObj = jQuery("[name='selected_"+id+"']").get(0);
var defaultObj = jQuery("[name='default_"+id+"']").val().split(',');
var idx = selectedObj.selectedIndex;
if(idx<0) return;
for(i=0;i<defaultObj.length;i++){
if(jQuery.inArray(selectedObj.options[idx].value, defaultObj) > -1) return;
}
selectedObj.remove(idx);
idx = idx-1;
if(idx < 0) idx = 0;
if(selectedObj.options.length) selectedObj.selectedIndex = idx;
MultiOrderSet(id);
}
function MultiOrderUp(id){
var selectedObj = jQuery("[name='selected_"+id+"']").get(0);
if(selectedObj.selectedIndex<0) return;
var idx = selectedObj.selectedIndex;
if(idx < 1) return;
var s_obj = selectedObj.options[idx];
var t_obj = selectedObj.options[idx-1];
var value = s_obj.value;
var text = s_obj.text;
s_obj.value = t_obj.value;
s_obj.text = t_obj.text;
t_obj.value = value;
t_obj.text = text;
selectedObj.selectedIndex = idx-1;
MultiOrderSet(id);
}
function MultiOrderDown(id){
var selectedObj = jQuery("[name='selected_"+id+"']").get(0);
if(selectedObj.selectedIndex<0) return;
var idx = selectedObj.selectedIndex;
if(idx == selectedObj.options.length-1) return;
var s_obj = selectedObj.options[idx];
var t_obj = selectedObj.options[idx+1];
var value = s_obj.value;
var text = s_obj.text;
s_obj.value = t_obj.value;
s_obj.text = t_obj.text;
t_obj.value = value;
t_obj.text = text;
selectedObj.selectedIndex = idx+1;
MultiOrderSet(id);
}
function initMultiOrder(id){
var selectedObj = jQuery("[name='selected_"+id+"']").get(0);
var init_value = jQuery("[name='init_"+id+"']").val();
var save_value = jQuery("[name='"+id+"']").val();
if(save_value){
var arr_save_value = save_value.split(',');
for(i=0;i<arr_save_value.length;i++){
if(arr_save_value[i].length>0){
var opt = new Option(arr_save_value[i], arr_save_value[i]);
selectedObj.options.add(opt);
}
}
}else{
var arr_init_value = init_value.split(',');
for(i=0;i<arr_init_value.length;i++){
if(arr_init_value[i].length>0){
var opt = new Option(arr_init_value[i], arr_init_value[i]);
selectedObj.options.add(opt);
}
}
}
MultiOrderSet(id);
}

View file

@ -1,111 +1,111 @@
<!--%import("filter/style_generate_code_in_page.xml")-->
<!--%import("js/widget_admin.js")-->
<!--%import("css/widget.css")-->
<!--%import("../../admin/tpl/css/admin.css")-->
<!--%load_js_plugin("filebox")-->
<!--%load_js_plugin("ui.colorpicker")-->
<script type="text/javascript">
doAddWindowLoadEventLoader(getWidgetVars);
</script>
<div id="popHeader" class="wide">
<h3 class="xeAdmin">{$lang->widgetstyle}</h3>
</div>
<form action="{getUrl('')}" method="post" enctype="multipart/form-data" target="hidden_iframe" onsubmit="return procFilter(this, style_generate_code_in_page);" id="fo_widget">
<input type="hidden" name="module_srl" value="{$module_srl}" />
<input type="hidden" name="widget_sequence" value="" />
<input type="hidden" name="style" value="" />
<input type="hidden" name="widget_padding_left" value="" />
<input type="hidden" name="widget_padding_right" value="" />
<input type="hidden" name="widget_padding_top" value="" />
<input type="hidden" name="widget_padding_bottom" value="" />
<input type="hidden" name="module" value="widget" />
<input type="hidden" name="act" value="" />
<input type="hidden" name="widgetstyle" value="{$widgetstyle}" />
<input type="hidden" name="selected_widget" value="{$selected_widget}" />
<div id="popBody">
<a href="{getUrl('widgetstyle','none')}" class="widgetStyle"><img src="images/widgetstyle_none.gif" title="{$lang->notuse}" /></a>
<!--@foreach($widgetStyle_list as $key => $widgetStyle)-->
<!--@if($widgetStyle->preview)-->
<a href="{getUrl('widgetstyle',$widgetStyle->widgetStyle)}" class="widgetStyle <!--@if($widgetStyle->widgetStyle==$widgetstyle)-->selected<!--@end-->"><img src="{getUrl()}{$widgetStyle->preview}" title="{$widgetStyle->title}" /><span>{$widgetStyle->title}</span></a>
<!--@end-->
<!--@end-->
<div class="clear"></div>
<!--@if($widgetstyle_info)-->
<h4 class="xeAdmin">{$widgetstyle_info->title} ver {$widgetstyle_info->version}</h4>
<table cellspacing="0" class="rowTable">
<tr>
<th scope="row"><div>{$lang->description}</div></th>
<td>{$widgetstyle_info->description}</td>
</tr>
<tr>
<th scope="row"><div>{$lang->author}</div></th>
<td>
<!--@foreach($widgetstyle_info->author as $k => $author)-->
{$author->name} ({$author->homepage})
<!--@end-->
</td>
</tr>
<tr>
<th scope="row"><div>{$lang->regdate}</div></th>
<td>{zdate($widgetstyle_info->date,'Y-m-d')}</td>
</tr>
</table>
<h4 class="xeAdmin">{$lang->cmd_setup}</h4>
<table cellspacing="0" class="rowTable">
<!--@foreach($widgetstyle_info->extra_var as $id => $var)-->
<tr>
<th scope="row">
<div>
{$var->name}
</div>
</th>
<td>
<!--@if($var->type == "text")-->
<input type="text" name="{$id}" id="{$id}" value="" class="inputTypeText w400 lang_code" />
<!--@elseif($var->type == "color")-->
<input type="text" name="{$id}" value="" class="inputTypeText color-indicator" />
<!--@elseif($var->type == "textarea")-->
<textarea name="{$id}" class="inputTypeTextArea w400"></textarea>
<!--@elseif($var->type == "select")-->
<select name="{$id}">
<!--@foreach($var->options as $key => $val)-->
<option value="{$key}">{$val}</option>
<!--@end-->
</select>
<!--@elseif($var->type == "filebox")-->
<div id="filebox_preview_{$id}" style="width:100px;height:100px;display:none" ></div>
<input type="hidden" name="{$id}" value="" />
<span class="button black"><button type="button" onclick="XE.filebox.open(jQuery('[name={$id}]', '#fo_widget').get(0), '{$var->filter}')">{$lang->cmd_select}</button></span>
<span id="filebox_cancel_{$id}" class="button red" style="display:none" ><button type="button" onclick="XE.filebox.cancel('{$id}')">{$lang->cmd_delete}</button></span>
<script type="text/javascript">//<![CDATA[
XE.filebox.init('{$id}');
//]]></script>
<!--@end-->
<p class="clear">{nl2br($var->description)}</p>
</td>
</tr>
<!--@end-->
</table>
<!--@end-->
</div>
<div id="popFooter">
<span class="button black strong"><input type="submit" value="{$lang->cmd_setup}" /></span>
</div>
</form>
<iframe name="hidden_iframe" frameborder="0" style="display:none"></iframe>
<!--%import("filter/style_generate_code_in_page.xml")-->
<!--%import("js/widget_admin.js")-->
<!--%import("css/widget.css")-->
<!--%import("../../admin/tpl/css/admin.css")-->
<!--%load_js_plugin("filebox")-->
<!--%load_js_plugin("ui.colorpicker")-->
<script type="text/javascript">
doAddWindowLoadEventLoader(getWidgetVars);
</script>
<div id="popHeader" class="wide">
<h3 class="xeAdmin">{$lang->widgetstyle}</h3>
</div>
<form action="{getUrl('')}" method="post" enctype="multipart/form-data" target="hidden_iframe" onsubmit="return procFilter(this, style_generate_code_in_page);" id="fo_widget">
<input type="hidden" name="module_srl" value="{$module_srl}" />
<input type="hidden" name="widget_sequence" value="" />
<input type="hidden" name="style" value="" />
<input type="hidden" name="widget_padding_left" value="" />
<input type="hidden" name="widget_padding_right" value="" />
<input type="hidden" name="widget_padding_top" value="" />
<input type="hidden" name="widget_padding_bottom" value="" />
<input type="hidden" name="module" value="widget" />
<input type="hidden" name="act" value="" />
<input type="hidden" name="widgetstyle" value="{$widgetstyle}" />
<input type="hidden" name="selected_widget" value="{$selected_widget}" />
<div id="popBody">
<a href="{getUrl('widgetstyle','none')}" class="widgetStyle"><img src="images/widgetstyle_none.gif" title="{$lang->notuse}" /></a>
<!--@foreach($widgetStyle_list as $key => $widgetStyle)-->
<!--@if($widgetStyle->preview)-->
<a href="{getUrl('widgetstyle',$widgetStyle->widgetStyle)}" class="widgetStyle <!--@if($widgetStyle->widgetStyle==$widgetstyle)-->selected<!--@end-->"><img src="{getUrl()}{$widgetStyle->preview}" title="{$widgetStyle->title}" /><span>{$widgetStyle->title}</span></a>
<!--@end-->
<!--@end-->
<div class="clear"></div>
<!--@if($widgetstyle_info)-->
<h4 class="xeAdmin">{$widgetstyle_info->title} ver {$widgetstyle_info->version}</h4>
<table cellspacing="0" class="rowTable">
<tr>
<th scope="row"><div>{$lang->description}</div></th>
<td>{$widgetstyle_info->description}</td>
</tr>
<tr>
<th scope="row"><div>{$lang->author}</div></th>
<td>
<!--@foreach($widgetstyle_info->author as $k => $author)-->
{$author->name} ({$author->homepage})
<!--@end-->
</td>
</tr>
<tr>
<th scope="row"><div>{$lang->regdate}</div></th>
<td>{zdate($widgetstyle_info->date,'Y-m-d')}</td>
</tr>
</table>
<h4 class="xeAdmin">{$lang->cmd_setup}</h4>
<table cellspacing="0" class="rowTable">
<!--@foreach($widgetstyle_info->extra_var as $id => $var)-->
<tr>
<th scope="row">
<div>
{$var->name}
</div>
</th>
<td>
<!--@if($var->type == "text")-->
<input type="text" name="{$id}" id="{$id}" value="" class="inputTypeText w400 lang_code" />
<!--@elseif($var->type == "color")-->
<input type="text" name="{$id}" value="" class="inputTypeText color-indicator" />
<!--@elseif($var->type == "textarea")-->
<textarea name="{$id}" class="inputTypeTextArea w400"></textarea>
<!--@elseif($var->type == "select")-->
<select name="{$id}">
<!--@foreach($var->options as $key => $val)-->
<option value="{$key}">{$val}</option>
<!--@end-->
</select>
<!--@elseif($var->type == "filebox")-->
<div id="filebox_preview_{$id}" style="width:100px;height:100px;display:none" ></div>
<input type="hidden" name="{$id}" value="" />
<span class="button black"><button type="button" onclick="XE.filebox.open(jQuery('[name={$id}]', '#fo_widget').get(0), '{$var->filter}')">{$lang->cmd_select}</button></span>
<span id="filebox_cancel_{$id}" class="button red" style="display:none" ><button type="button" onclick="XE.filebox.cancel('{$id}')">{$lang->cmd_delete}</button></span>
<script type="text/javascript">//<![CDATA[
XE.filebox.init('{$id}');
//]]></script>
<!--@end-->
<p class="clear">{nl2br($var->description)}</p>
</td>
</tr>
<!--@end-->
</table>
<!--@end-->
</div>
<div id="popFooter">
<span class="button black strong"><input type="submit" value="{$lang->cmd_setup}" /></span>
</div>
</form>
<iframe name="hidden_iframe" frameborder="0" style="display:none"></iframe>