git-svn-id: http://xe-core.googlecode.com/svn/trunk@805 201d5d3c-b55e-5fd7-737f-ddc643e51545

This commit is contained in:
zero 2007-03-30 06:01:24 +00:00
parent 84d0a85ebb
commit df75151c85
79 changed files with 1972 additions and 1919 deletions

View file

@ -2,39 +2,41 @@
<table border="1">
<tr>
<th>{$lang->component_name}</th>
<th>{$lang->component_version}</th>
<th>{$lang->component_author}</th>
<th>{$lang->component_link}</th>
<th>{$lang->component_date}</th>
<th>{$lang->cmd_setup}</th>
<th>{$lang->use}</th>
<th colspan="2">{$lang->cmd_move}</th>
<th>{$lang->component_name}</th>
<th>{$lang->component_version}</th>
<th>{$lang->component_author}</th>
<th>{$lang->component_link}</th>
<th>{$lang->component_date}</th>
<th>{$lang->cmd_setup}</th>
<th>{$lang->use}</th>
<th colspan="2">{$lang->cmd_move}</th>
</tr>
<!--@foreach($component_list as $component_name => $xml_info)-->
<tr>
<td rowspan="2">{$xml_info->title}<br />({$component_name})</td>
<td rowspan="2">{$xml_info->version}</td>
<td><a href="mailto:{$xml_info->author->email_address}">{$xml_info->author->name}</a></td>
<td><a href="#" onclick="window.open('{$xml_info->author->link}');return false;">{$xml_info->author->link}</a></td>
<td>{$xml_info->author->date}</td>
<td>
<!--@if($xml_info->extra_vars)-->
<a href="#" onclick="doSetupComponent('{$component_name}'); return false;">{$lang->cmd_setup}</a>
<!--@end-->
</td>
<td>
<!--@if($xml_info->enabled=='Y')-->
<a href="#" onclick="doDisableComponent('{$component_name}');return false;">{$lang->notuse}</a>
<!--@else-->
<a href="#" onclick="doEnableComponent('{$component_name}');return false;">{$lang->use}</a>
<!--@end-->
</td>
<td><a href="#" onclick="doMoveListOrder('{$component_name}','up'); return false;">{$lang->cmd_move_up}</a></td>
<td><a href="#" onclick="doMoveListOrder('{$component_name}','down'); return false;">{$lang->cmd_move_down}</a></td>
<td rowspan="2">{$xml_info->title}<br />({$component_name})</td>
<td rowspan="2">{$xml_info->version}</td>
<td><a href="mailto:{$xml_info->author->email_address}">{$xml_info->author->name}</a></td>
<td><a href="#" onclick="window.open('{$xml_info->author->link}');return false;">{$xml_info->author->link}</a></td>
<td>{$xml_info->author->date}</td>
<td>
<!--@if($xml_info->extra_vars)-->
<a href="#" onclick="doSetupComponent('{$component_name}'); return false;">{$lang->cmd_setup}</a>
<!--@end-->
</td>
<td>
<!--@if($xml_info->enabled=='Y')-->
<a href="#" onclick="doDisableComponent('{$component_name}');return false;">{$lang->notuse}</a>
<!--@else-->
<a href="#" onclick="doEnableComponent('{$component_name}');return false;">{$lang->use}</a>
<!--@end-->
</td>
<td><a href="#" onclick="doMoveListOrder('{$component_name}','up'); return false;">{$lang->cmd_move_up}</a></td>
<td><a href="#" onclick="doMoveListOrder('{$component_name}','down'); return false;">{$lang->cmd_move_down}</a></td>
</tr>
<tr>
<td colspan="7">{nl2br($xml_info->description)}</td>
<td colspan="7">{nl2br($xml_info->description)}</td>
</tr>
<!--@end-->
</table>

View file

@ -1,4 +1,4 @@
<script type="text/javascript">
alert("{$message}");
window.close();
alert("{$message}");
window.close();
</script>

View file

@ -1,148 +1,150 @@
@charset "utf-8";
div.editor_content {
margin:3px;
margin:3px;
}
div.editor_area_1 {
}
div.editor_area_2 {
clear:left;
clear:left;
}
div.editor_area_about_dbl {
clear:left;
border:1px dotted #DDDDDD;
padding:3px;
font-size:9pt;
color:#888888;
clear:left;
border:1px dotted #DDDDDD;
padding:3px;
font-size:9pt;
color:#888888;
}
div.editor_fontbox {
margin : 3px 3px 3px 0px;
float:left;
margin : 3px 3px 3px 0px;
float:left;
}
div.editor_fontbox select {
width:70px;
height:18px;
width:70px;
height:18px;
}
div.editor_iconbox {
margin : 3px 3px 3px 0px;
white-space:nowrap;
font-size:1pt;
float:left;
margin : 3px 3px 3px 0px;
white-space:nowrap;
font-size:1pt;
float:left;
}
div.editor_iconbox img {
height : 16px;
border : 1px solid #EEEEEE;
background-color : #FFFFFF;
padding:1px;
cursor : pointer;
margin-right:1px;
height : 16px;
border : 1px solid #EEEEEE;
background-color : #FFFFFF;
padding:1px;
cursor : pointer;
margin-right:1px;
}
div.editor_parabox {
margin : 3px 3px 3px 0px;
font-size:9pt;
text-align:right;
display:none;
float:right;
margin : 3px 3px 3px 0px;
font-size:9pt;
text-align:right;
display:none;
float:right;
}
div.editor_iframe_box {
clear:left;
border:1px solid #EFEFEF;
margin:3px 0px 0px 0px;
clear:left;
border:1px solid #EFEFEF;
margin:3px 0px 0px 0px;
}
div.editor_drag_down_area {
width:100%;
height:15px;
background:url(../images/icon_drag_down.gif) no-repeat center;
background-color:#EFEFEF;
cursor:s-resize;
position:relative;
margin-top:10px;
width:100%;
height:15px;
background:url(../images/icon_drag_down.gif) no-repeat center;
background-color:#EFEFEF;
cursor:s-resize;
position:relative;
margin-top:10px;
}
.editor_uploader_box {
margin:10px 0px 0px 5px;
border:0;
padding:0px;
clear:both;
height:130px;
margin:10px 0px 0px 5px;
border:0;
padding:0px;
clear:both;
height:130px;
}
.editor_preview_uploaded {
float:left;
width:110px;
height:110px;
padding:5px;
border:1px solid #AAAAAA;
margin-right:10px;
text-align:center;
float:left;
width:110px;
height:110px;
padding:5px;
border:1px solid #AAAAAA;
margin-right:10px;
text-align:center;
}
.editor_uploader {
float:left;
width:300px;
height:120px;
margin-right:10px;
padding-right:10px;
border-right:1px dotted #AAAAAA;
float:left;
width:300px;
height:120px;
margin-right:10px;
padding-right:10px;
border-right:1px dotted #AAAAAA;
}
.uploaded_file_list {
width:100%;
height:122px;
border:1px solid #AAAAAA;
width:100%;
height:122px;
border:1px solid #AAAAAA;
}
.editor_uploader_input_area {
width:150px;
float:left;
clear:right;
width:150px;
float:left;
clear:right;
}
.editor_uploader_file_input {
display:none;
height:18px;
border:1px solid #AAAAAA;
background-color:#FFFFFF;
position:relative;
display:none;
height:18px;
border:1px solid #AAAAAA;
background-color:#FFFFFF;
position:relative;
}
.editor_uploader_input {
display:block;
width:90px;
height:18px;
border:1px solid #AAAAAA;
background-color:#FFFFFF;
margin-bottom:10px;
display:block;
width:90px;
height:18px;
border:1px solid #AAAAAA;
background-color:#FFFFFF;
margin-bottom:10px;
}
.component_setup_window {
width:800px;
width:800px;
}
.component_view_window {
width:600px;
width:600px;
}
.editor_input {
border:1px solid #AAAAAA;
height:14px;
font-size:9pt;
width:200px;
border:1px solid #AAAAAA;
height:14px;
font-size:9pt;
width:200px;
}
.editor_button {
border:1px solid #AAAAAA;
background-color:#FFFFFF;
height:17px;
font-size:9pt;
border:1px solid #AAAAAA;
background-color:#FFFFFF;
height:17px;
font-size:9pt;
}
.about_component_icon {

View file

@ -4,8 +4,8 @@
<!-- 에디터 활성화 -->
<script type="text/javascript">
var editor_path = "{$editor_path}";
editorInit("{$upload_target_srl}");
var editor_path = "{$editor_path}";
editorInit("{$upload_target_srl}");
</script>
<!-- 자동저장용 폼 -->
@ -17,103 +17,105 @@
<!-- 에디터 -->
<div class="editor_content">
<div class="editor_area_1">
<div class="editor_area_1">
<!-- 폰트 종류와 크기 -->
<div class="editor_fontbox">
<select onChange="editorChangeFontName(this,'{$upload_target_srl}')" id="editor_font_{$upload_target_srl}">
<option value="">{$lang->edit->fontname}</option>
<!--@foreach($lang->edit->fontlist as $key=>$obj)-->
<option style="font-family:{$obj}" value="{$obj}">{$obj}</option>
<!--@end-->
</select>
<select onChange="editorChangeFontSize(this,'{$upload_target_srl}')" id="editor_fontsize_{$upload_target_srl}">
<option value="" selected>{$lang->edit->fontsize}</option>
<option value="1">8pt</option>
<option value="2">10pt</option>
<option value="3">12pt</option>
<option value="4">14pt</option>
<option value="5">18pt</option>
<option value="6">24pt</option>
<option value="7">36pt</option>
</select>
<select onChange="editorChangeHeader(this,'{$upload_target_srl}')" id="editor_header_{$upload_target_srl}">
<option value="">{$lang->edit->header}</option>
<!--@foreach($lang->edit->header_list as $key=>$obj)-->
<option value="{$key}">{$obj}</option>
<!--@end-->
</select>
<select onChange="editorChangeFontName(this,'{$upload_target_srl}')" id="editor_font_{$upload_target_srl}">
<option value="">{$lang->edit->fontname}</option>
<!--@foreach($lang->edit->fontlist as $key=>$obj)-->
<option style="font-family:{$obj}" value="{$obj}">{$obj}</option>
<!--@end-->
</select>
<select onChange="editorChangeFontSize(this,'{$upload_target_srl}')" id="editor_fontsize_{$upload_target_srl}">
<option value="" selected>{$lang->edit->fontsize}</option>
<option value="1">8pt</option>
<option value="2">10pt</option>
<option value="3">12pt</option>
<option value="4">14pt</option>
<option value="5">18pt</option>
<option value="6">24pt</option>
<option value="7">36pt</option>
</select>
<select onChange="editorChangeHeader(this,'{$upload_target_srl}')" id="editor_header_{$upload_target_srl}">
<option value="">{$lang->edit->header}</option>
<!--@foreach($lang->edit->header_list as $key=>$obj)-->
<option value="{$key}">{$obj}</option>
<!--@end-->
</select>
</div>
<!-- 에디팅 관련 아이콘 -->
<div class="editor_iconbox">
<img src="../components/colorpicker_text/icon.gif" title="{$lang->edit->help_fontcolor}" alt="{$lang->edit->help_fontcolor}" class="editor_icon" id="component_{$upload_target_srl}_colorpicker_text" />
<img src="../components/colorpicker_bg/icon.gif" title="{$lang->edit->help_fontbgcolor}" alt="{$lang->edit->help_fontbgcolor}" class="editor_icon" id="component_{$upload_target_srl}_colorpicker_bg" />
<img src="./images/bold.gif" title="{$lang->edit->help_bold}" alt="{$lang->edit->help_bold}" class="editor_icon" id="component_{$upload_target_srl}_Bold" />
<img src="./images/italic.gif" title="{$lang->edit->help_italic}" alt="{$lang->edit->help_italic}" class="editor_icon" id="component_{$upload_target_srl}_Italic" />
<img src="./images/underline.gif" title="{$lang->edit->help_underline}" alt="{$lang->edit->help_underline}" class="editor_icon" id="component_{$upload_target_srl}_Underline" />
<img src="./images/strike.gif" title="{$lang->edit->help_strike}" alt="{$lang->edit->help_strike}" class="editor_icon" id="component_{$upload_target_srl}_StrikeThrough" />
<img src="./images/undo.gif" title="{$lang->edit->help_undo}" alt="{$lang->edit->help_undo}" class="editor_icon" id="component_{$upload_target_srl}_undo" />
<img src="./images/redo.gif" title="{$lang->edit->help_redo}" alt="{$lang->edit->help_redo}" class="editor_icon" id="component_{$upload_target_srl}_redo" />
<img src="../components/colorpicker_text/icon.gif" title="{$lang->edit->help_fontcolor}" alt="{$lang->edit->help_fontcolor}" class="editor_icon" id="component_{$upload_target_srl}_colorpicker_text" />
<img src="../components/colorpicker_bg/icon.gif" title="{$lang->edit->help_fontbgcolor}" alt="{$lang->edit->help_fontbgcolor}" class="editor_icon" id="component_{$upload_target_srl}_colorpicker_bg" />
<img src="./images/bold.gif" title="{$lang->edit->help_bold}" alt="{$lang->edit->help_bold}" class="editor_icon" id="component_{$upload_target_srl}_Bold" />
<img src="./images/italic.gif" title="{$lang->edit->help_italic}" alt="{$lang->edit->help_italic}" class="editor_icon" id="component_{$upload_target_srl}_Italic" />
<img src="./images/underline.gif" title="{$lang->edit->help_underline}" alt="{$lang->edit->help_underline}" class="editor_icon" id="component_{$upload_target_srl}_Underline" />
<img src="./images/strike.gif" title="{$lang->edit->help_strike}" alt="{$lang->edit->help_strike}" class="editor_icon" id="component_{$upload_target_srl}_StrikeThrough" />
<img src="./images/undo.gif" title="{$lang->edit->help_undo}" alt="{$lang->edit->help_undo}" class="editor_icon" id="component_{$upload_target_srl}_undo" />
<img src="./images/redo.gif" title="{$lang->edit->help_redo}" alt="{$lang->edit->help_redo}" class="editor_icon" id="component_{$upload_target_srl}_redo" />
</div>
<div id="editor_paragraph_{$upload_target_srl}" class="editor_iconbox">
<img src="./images/align_left.gif" title="{$lang->edit->help_align_left}" alt="{$lang->edit->help_align_left}" id="component_{$upload_target_srl}_justifyleft" />
<img src="./images/align_center.gif" title="{$lang->edit->help_align_center}" alt="{$lang->edit->help_align_center}" id="component_{$upload_target_srl}_justifycenter" />
<img src="./images/align_right.gif" title="{$lang->edit->help_align_right}" alt="{$lang->edit->help_align_right}" id="component_{$upload_target_srl}_justifyright" />
<img src="./images/remove_indent.gif" title="{$lang->edit->help_remove_indent}" alt="{$lang->edit->help_remove_indent}" id="component_{$upload_target_srl}_outdent" />
<img src="./images/add_indent.gif" title="{$lang->edit->help_add_indent}" alt="{$lang->edit->help_add_indent}" id="component_{$upload_target_srl}_indent" />
<img src="./images/list_number.gif" title="{$lang->edit->help_list_number}" alt="{$lang->edit->help_list_number}" id="component_{$upload_target_srl}_insertorderedlist" />
<img src="./images/list_bullet.gif" title="{$lang->edit->help_list_bullet}" alt="{$lang->edit->help_list_bullet}" id="component_{$upload_target_srl}_insertunorderedlist" />
<img src="./images/align_left.gif" title="{$lang->edit->help_align_left}" alt="{$lang->edit->help_align_left}" id="component_{$upload_target_srl}_justifyleft" />
<img src="./images/align_center.gif" title="{$lang->edit->help_align_center}" alt="{$lang->edit->help_align_center}" id="component_{$upload_target_srl}_justifycenter" />
<img src="./images/align_right.gif" title="{$lang->edit->help_align_right}" alt="{$lang->edit->help_align_right}" id="component_{$upload_target_srl}_justifyright" />
<img src="./images/remove_indent.gif" title="{$lang->edit->help_remove_indent}" alt="{$lang->edit->help_remove_indent}" id="component_{$upload_target_srl}_outdent" />
<img src="./images/add_indent.gif" title="{$lang->edit->help_add_indent}" alt="{$lang->edit->help_add_indent}" id="component_{$upload_target_srl}_indent" />
<img src="./images/list_number.gif" title="{$lang->edit->help_list_number}" alt="{$lang->edit->help_list_number}" id="component_{$upload_target_srl}_insertorderedlist" />
<img src="./images/list_bullet.gif" title="{$lang->edit->help_list_bullet}" alt="{$lang->edit->help_list_bullet}" id="component_{$upload_target_srl}_insertunorderedlist" />
</div>
</div>
<div class="editor_area_2">
<!-- 컴포넌트 -->
<div id="editor_component_{$upload_target_srl}" class="editor_iconbox">
<!--@foreach($component_list as $component_name => $component)-->
<!--@if(substr($component_name,0,11)!="colorpicker")-->
<img src="../components/{$component_name}/icon.gif" alt="{$component->title}" title="{$component->title}" class="editor_icon" id="component_{$upload_target_srl}_{$component_name}" />
<!--@end-->
<!--@end-->
</div>
</div>
<div class="editor_area_about_dbl">
{$lang->about_dblclick_in_editor}
<div id="for_ie_help_{$upload_target_srl}" style="display:none">{$lang->edit->help_use_paragrapth}</div>
</div>
<!-- iframe -->
<div class="editor_iframe_box"><iframe id="editor_iframe_{$upload_target_srl}" frameBorder="0" style="border:0px;width:99%;height:300px;margin:0px;"></iframe><div class="editor_drag_down_area" id="editor_drag_bar_{$upload_target_srl}"></div></div>
<div class="editor_autosaved_message" id="editor_autosaved_message">{$lang->msg_auto_saved} &nbsp;</div>
<div class="editor_area_2">
<!-- 컴포넌트 -->
<div id="editor_component_{$upload_target_srl}" class="editor_iconbox">
<!--@foreach($component_list as $component_name => $component)-->
<!--@if(substr($component_name,0,11)!="colorpicker")-->
<img src="../components/{$component_name}/icon.gif" alt="{$component->title}" title="{$component->title}" class="editor_icon" id="component_{$upload_target_srl}_{$component_name}" />
<!--@end-->
<!--@end-->
</div>
</div>
<div class="editor_area_about_dbl">
{$lang->about_dblclick_in_editor}
<div id="for_ie_help_{$upload_target_srl}" style="display:none">{$lang->edit->help_use_paragrapth}</div>
</div>
<!-- iframe -->
<div class="editor_iframe_box"><iframe id="editor_iframe_{$upload_target_srl}" frameBorder="0" style="border:0px;width:99%;height:300px;margin:0px;"></iframe><div class="editor_drag_down_area" id="editor_drag_bar_{$upload_target_srl}"></div></div>
<div class="editor_autosaved_message" id="editor_autosaved_message">{$lang->msg_auto_saved} &nbsp;</div>
</div>
<!--@if($allow_fileupload)-->
<!-- 첨부파일 영역 -->
<!--%import("./js/uploader.js")-->
<script type="text/javascript">
editor_upload_init("{$upload_target_srl}");
editor_upload_init("{$upload_target_srl}");
</script>
<div class="editor_uploader_box">
<input type="hidden" name="upload_target_srl" value="{$upload_target_srl}" />
<input type="hidden" name="act" value="procUploadFile" />
<input type="hidden" name="upload_target_srl" value="{$upload_target_srl}" />
<input type="hidden" name="act" value="procFileUploadFile" />
<!-- 미리보기 -->
<div class="editor_preview_uploaded" id="preview_uploaded_{$upload_target_srl}"><img src="./images/blank.gif" width="100" height="100" alt="preview" /></div>
<!-- 미리보기 -->
<div class="editor_preview_uploaded" id="preview_uploaded_{$upload_target_srl}"><img src="./images/blank.gif" width="100" height="100" alt="preview" /></div>
<!-- 파일 업로드 영역 -->
<div class="editor_uploader">
<select id='uploaded_file_list_{$upload_target_srl}' size='9' class="uploaded_file_list" onclick="editor_preview(this, '{$upload_target_srl}')"></select>
</div>
<div class="editor_uploader_input_area">
<input type="button" value="{$lang->edit->upload_file}" class="editor_uploader_input" onclick="editor_remove_file('{$upload_target_srl}');return false;" />
<input type="button" value="{$lang->edit->delete_selected}" class="editor_uploader_input" onclick="editor_remove_file('{$upload_target_srl}');return false;" />
<input type="button" value="{$lang->edit->link_file}" class="editor_uploader_input" onclick="editor_insert_file('{$upload_target_srl}');return false;" />
<input type="file" size="1" name="file" id="file_uploader_{$upload_target_srl}" class="editor_uploader_file_input" onchange="editor_file_upload(this, '{$upload_target_srl}')" value="{$lang->edit->upload}" />
</div>
<!-- 파일 업로드 영역 -->
<div class="editor_uploader">
<select id='uploaded_file_list_{$upload_target_srl}' size='9' class="uploaded_file_list" onclick="editor_preview(this, '{$upload_target_srl}')"></select>
</div>
<div class="editor_uploader_input_area">
<input type="button" value="{$lang->edit->upload_file}" class="editor_uploader_input" onclick="editor_remove_file('{$upload_target_srl}');return false;" />
<input type="button" value="{$lang->edit->delete_selected}" class="editor_uploader_input" onclick="editor_remove_file('{$upload_target_srl}');return false;" />
<input type="button" value="{$lang->edit->link_file}" class="editor_uploader_input" onclick="editor_insert_file('{$upload_target_srl}');return false;" />
<input type="file" size="1" name="file" id="file_uploader_{$upload_target_srl}" class="editor_uploader_file_input" onchange="editor_file_upload(this, '{$upload_target_srl}')" value="{$lang->edit->upload}" />
</div>
</div>
<!--@end-->

View file

@ -1,8 +1,8 @@
<filter name="setup_component" module="editor" act="procSetupComponent" confirm_msg_code="confirm_submit">
<form />
<parameter />
<response>
<tag name="error" />
<tag name="message" />
</response>
<filter name="setup_component" module="editor" act="procEditorAdminSetupComponent" confirm_msg_code="confirm_submit">
<form />
<parameter />
<response>
<tag name="error" />
<tag name="message" />
</response>
</filter>

View file

@ -1,30 +1,36 @@
function doEnableComponent(component_name) {
var params = new Array();
params['component_name'] = component_name;
/**
* @author zero (zero@nzeo.com)
* @version 0.1
* @brief 에디터 관리자 페이지용 스크립트
**/
exec_xml('editor', 'procEnableComponent', params, completeUpdate);
function doEnableComponent(component_name) {
var params = new Array();
params['component_name'] = component_name;
exec_xml('editor', 'procEditorAdminEnableComponent', params, completeUpdate);
}
function doDisableComponent(component_name) {
var params = new Array();
params['component_name'] = component_name;
var params = new Array();
params['component_name'] = component_name;
exec_xml('editor', 'procDisableComponent', params, completeUpdate);
exec_xml('editor', 'procEditorAdminDisableComponent', params, completeUpdate);
}
function doMoveListOrder(component_name, mode) {
var params = new Array();
params['component_name'] = component_name;
params['mode'] = mode;
var params = new Array();
params['component_name'] = component_name;
params['mode'] = mode;
exec_xml('editor', 'procMoveListOrder', params, completeUpdate);
exec_xml('editor', 'procEditorAdminMoveListOrder', params, completeUpdate);
}
function completeUpdate(ret_obj) {
alert(ret_obj['message']);
location.href = location.href;
alert(ret_obj['message']);
location.href = location.href;
}
function doSetupComponent(component_name) {
winopen("./?module=editor&act=setupComponent&component_name="+component_name, "SetupComponent","width=10,height=10,scrollbars=no,resizable=no,toolbars=no");
winopen("./?module=editor&act=dispEditorAdminSetupComponent&component_name="+component_name, "SetupComponent","width=10,height=10,scrollbars=no,resizable=no,toolbars=no");
}

View file

@ -368,7 +368,7 @@ function editorEventCheck(evt) {
// 컴포넌트 팝업 열기
function openComponent(component_name, upload_target_srl, manual_url) {
editorPrevSrl = upload_target_srl;
var popup_url = "./?module=editor&act=dispPopup&upload_target_srl="+upload_target_srl+"&component="+component_name;
var popup_url = "./?module=editor&act=dispEditorPopup&upload_target_srl="+upload_target_srl+"&component="+component_name;
if(typeof(manual_url)!="undefined" && manual_url) popup_url += "&manual_url="+escape(manual_url);
winopen(popup_url, 'editorComponent', 'left=10,top=10,width=10,height=10,toolbars=no,scrollbars=no');
@ -396,7 +396,7 @@ function editorSearchComponent(evt) {
var upload_target_srl = tobj.getAttribute("upload_target_srl");
var plugin = obj.getAttribute("plugin");
editorPrevNode = obj;
winopen("?module=plugin&act=dispGenerateCodeInPage&selected_plugin="+plugin+"&module_srl="+upload_target_srl,'GenerateCodeInPage','left=10,top10,width=10,height=10,resizable=no,scrollbars=no,toolbars=no');
winopen("?module=plugin&act=dispPluginGenerateCodeInPage&selected_plugin="+plugin+"&module_srl="+upload_target_srl,'GenerateCodeInPage','left=10,top10,width=10,height=10,resizable=no,scrollbars=no,toolbars=no');
return;
}

View file

@ -8,67 +8,67 @@ var uploaded_files = new Array();
// 업로드를 하기 위한 준비 시작
function editor_upload_init(upload_target_srl) {
xAddEventListener(window,'load',function() {editor_upload_form_set(upload_target_srl);} );
xAddEventListener(window,'load',function() {editor_upload_form_set(upload_target_srl);} );
}
// upload_target_srl에 해당하는 form의 action을 iframe으로 변경
function editor_upload_form_set(upload_target_srl) {
// input type=file의 위치 및 설정 변경
var uploader = xGetElementById("file_uploader_"+upload_target_srl);
// input type=file의 위치 및 설정 변경
var uploader = xGetElementById("file_uploader_"+upload_target_srl);
if(xIE4Up) {
xLeft(uploader, -40);
xTop(uploader, -85);
uploader.style.filter = "alpha(opacity=0)";
} else {
xLeft(uploader, -15);
xTop(uploader, -85);
uploader.style.opacity = 0;
}
uploader.style.display = "block";
// 업로드용 iframe을 생성
if(!xGetElementById('tmp_upload_iframe')) {
if(xIE4Up) {
window.document.body.insertAdjacentHTML("afterEnd", "<iframe name='tmp_upload_iframe' style='display:none;width:1px;height:1px;position:absolute;top:-10px;left:-10px'></iframe>");
xLeft(uploader, -40);
xTop(uploader, -85);
uploader.style.filter = "alpha(opacity=0)";
} else {
var obj_iframe = xCreateElement('IFRAME');
obj_iframe.name = obj_iframe.id = 'tmp_upload_iframe';
obj_iframe.style.display = 'none';
obj_iframe.style.width = '1px';
obj_iframe.style.height = '1px';
obj_iframe.style.position = 'absolute';
obj_iframe.style.top = '-10px';
obj_iframe.style.left = '-10px';
window.document.body.appendChild(obj_iframe);
xLeft(uploader, -15);
xTop(uploader, -85);
uploader.style.opacity = 0;
}
}
uploader.style.display = "block";
// form의 action 을 변경
var field_obj = xGetElementById("uploaded_file_list_"+upload_target_srl);
if(!field_obj) return;
var fo_obj = field_obj.parentNode;
while(fo_obj.nodeName != 'FORM') { fo_obj = fo_obj.parentNode; }
fo_obj.target = 'tmp_upload_iframe';
// 업로드용 iframe을 생성
if(!xGetElementById('tmp_upload_iframe')) {
if(xIE4Up) {
window.document.body.insertAdjacentHTML("afterEnd", "<iframe name='tmp_upload_iframe' style='display:none;width:1px;height:1px;position:absolute;top:-10px;left:-10px'></iframe>");
} else {
var obj_iframe = xCreateElement('IFRAME');
obj_iframe.name = obj_iframe.id = 'tmp_upload_iframe';
obj_iframe.style.display = 'none';
obj_iframe.style.width = '1px';
obj_iframe.style.height = '1px';
obj_iframe.style.position = 'absolute';
obj_iframe.style.top = '-10px';
obj_iframe.style.left = '-10px';
window.document.body.appendChild(obj_iframe);
}
}
// upload_target_srl에 해당하는 첨부파일 목록을 로드 (procDeleteFile에 file_srl을 보내주지 않으면 삭제시도는 없이 목록만 갱신할 수 있음)
var module = "";
if(fo_obj["module"]) module = fo_obj.module.value;
var mid = "";
if(fo_obj["mid"]) mid = fo_obj.mid.value;
var document_srl = "";
if(fo_obj["document_srl"]) document_srl = fo_obj.document_srl.value;
// form의 action 을 변경
var field_obj = xGetElementById("uploaded_file_list_"+upload_target_srl);
if(!field_obj) return;
var fo_obj = field_obj.parentNode;
while(fo_obj.nodeName != 'FORM') { fo_obj = fo_obj.parentNode; }
fo_obj.target = 'tmp_upload_iframe';
var url = "./?act=procDeleteFile&upload_target_srl="+upload_target_srl;
if(module) url+="&module="+module;
if(mid) url+="&mid="+mid;
if(document_srl) url+="&document_srl="+document_srl;
// upload_target_srl에 해당하는 첨부파일 목록을 로드 (procDeleteFile에 file_srl을 보내주지 않으면 삭제시도는 없이 목록만 갱신할 수 있음)
var module = "";
if(fo_obj["module"]) module = fo_obj.module.value;
var mid = "";
if(fo_obj["mid"]) mid = fo_obj.mid.value;
var document_srl = "";
if(fo_obj["document_srl"]) document_srl = fo_obj.document_srl.value;
// iframe에 url을 보내버림
var iframe_obj = xGetElementById('tmp_upload_iframe');
if(!iframe_obj) return;
var url = "./?act=procFileDeleteFile&upload_target_srl="+upload_target_srl;
if(module) url+="&module="+module;
if(mid) url+="&mid="+mid;
if(document_srl) url+="&document_srl="+document_srl;
iframe_obj.contentWindow.document.location.href=url;
// iframe에 url을 보내버림
var iframe_obj = xGetElementById('tmp_upload_iframe');
if(!iframe_obj) return;
iframe_obj.contentWindow.document.location.href=url;
}
// 파일 업로드
@ -90,122 +90,125 @@ function editor_file_upload(field_obj, upload_target_srl) {
// 업로드된 파일 목록을 삭제
function editor_upload_clear_list(upload_target_srl) {
var obj = xGetElementById('uploaded_file_list_'+upload_target_srl);
while(obj.options.length) {
obj.remove(0);
}
var preview_obj = xGetElementById('uploaded_file_preview_box_'+upload_target_srl);
xInnerHtml(preview_obj,'')
var obj = xGetElementById('uploaded_file_list_'+upload_target_srl);
while(obj.options.length) {
obj.remove(0);
}
var preview_obj = xGetElementById('uploaded_file_preview_box_'+upload_target_srl);
xInnerHtml(preview_obj,'')
}
// 업로드된 파일 정보를 목록에 추가
function editor_insert_uploaded_file(upload_target_srl, file_srl, filename, file_size, disp_file_size, uploaded_filename, sid) {
var obj = xGetElementById('uploaded_file_list_'+upload_target_srl);
var string = filename+' ('+disp_file_size+')';
var opt_obj = new Option(string, file_srl, true, true);
obj.options[obj.options.length] = opt_obj;
var obj = xGetElementById('uploaded_file_list_'+upload_target_srl);
var string = filename+' ('+disp_file_size+')';
var opt_obj = new Option(string, file_srl, true, true);
obj.options[obj.options.length] = opt_obj;
var file_obj = {file_srl:file_srl, filename:filename, file_size:file_size, uploaded_filename:uploaded_filename, sid:sid}
uploaded_files[file_srl] = file_obj;
var file_obj = {file_srl:file_srl, filename:filename, file_size:file_size, uploaded_filename:uploaded_filename, sid:sid}
uploaded_files[file_srl] = file_obj;
editor_preview(obj, upload_target_srl);
editor_preview(obj, upload_target_srl);
}
// 파일 목록창에서 클릭 되었을 경우 미리 보기
function editor_preview(sel_obj, upload_target_srl) {
if(sel_obj.options.length<1) return;
var file_srl = sel_obj.options[sel_obj.selectedIndex].value;
var obj = uploaded_files[file_srl];
if(typeof(obj)=='undefined'||!obj) return;
var uploaded_filename = obj.uploaded_filename;
var preview_obj = xGetElementById('preview_uploaded_'+upload_target_srl);
if(sel_obj.options.length<1) return;
var file_srl = sel_obj.options[sel_obj.selectedIndex].value;
var obj = uploaded_files[file_srl];
if(typeof(obj)=='undefined'||!obj) return;
var uploaded_filename = obj.uploaded_filename;
var preview_obj = xGetElementById('preview_uploaded_'+upload_target_srl);
if(!uploaded_filename) {
xInnerHtml(preview_obj, '');
return;
}
if(!uploaded_filename) {
xInnerHtml(preview_obj, '');
return;
}
var html = "";
var html = "";
// 플래쉬 동영상의 경우
if(/\.flv$/i.test(uploaded_filename)) {
html = "<EMBED src=\"./common/tpl/images/flvplayer.swf?autoStart=false&file="+uploaded_filename+"\" width=\"110\" height=\"110\" type=\"application/x-shockwave-flash\"></EMBED>";
// 플래쉬 파일의 경우
} else if(/\.swf$/i.test(uploaded_filename)) {
html = "<EMBED src=\""+uploaded_filename+"\" width=\"110\" height=\"110\" type=\"application/x-shockwave-flash\"></EMBED>";
// wmv, avi, mpg, mpeg등의 동영상 파일의 경우
} else if(/\.(wmv|avi|mpg|mpeg|asx|asf|mp3)$/i.test(uploaded_filename)) {
html = "<EMBED src=\""+uploaded_filename+"\" width=\"110\" height=\"110\" autostart=\"true\" Showcontrols=\"0\"></EMBED>";
// 이미지 파일의 경우
} else if(/\.(jpg|jpeg|png|gif)$/i.test(uploaded_filename)) {
html = "<img src=\""+uploaded_filename+"\" border=\"0\" width=\"110\" height=\"110\" />";
}
xInnerHtml(preview_obj, html);
// 플래쉬 동영상의 경우
if(/\.flv$/i.test(uploaded_filename)) {
html = "<EMBED src=\"./common/tpl/images/flvplayer.swf?autoStart=false&file="+uploaded_filename+"\" width=\"110\" height=\"110\" type=\"application/x-shockwave-flash\"></EMBED>";
// 플래쉬 파일의 경우
} else if(/\.swf$/i.test(uploaded_filename)) {
html = "<EMBED src=\""+uploaded_filename+"\" width=\"110\" height=\"110\" type=\"application/x-shockwave-flash\"></EMBED>";
// wmv, avi, mpg, mpeg등의 동영상 파일의 경우
} else if(/\.(wmv|avi|mpg|mpeg|asx|asf|mp3)$/i.test(uploaded_filename)) {
html = "<EMBED src=\""+uploaded_filename+"\" width=\"110\" height=\"110\" autostart=\"true\" Showcontrols=\"0\"></EMBED>";
// 이미지 파일의 경우
} else if(/\.(jpg|jpeg|png|gif)$/i.test(uploaded_filename)) {
html = "<img src=\""+uploaded_filename+"\" border=\"0\" width=\"110\" height=\"110\" />";
}
xInnerHtml(preview_obj, html);
}
// 업로드된 파일 삭제
function editor_remove_file(upload_target_srl) {
var obj = xGetElementById('uploaded_file_list_'+upload_target_srl);
if(obj.options.length<1) return;
var file_srl = obj.options[obj.selectedIndex].value;
if(!file_srl) return;
var obj = xGetElementById('uploaded_file_list_'+upload_target_srl);
if(obj.options.length<1) return;
var file_srl = obj.options[obj.selectedIndex].value;
if(!file_srl) return;
// 삭제하려는 파일의 정보를 챙김;;
var fo_obj = obj;
while(fo_obj.nodeName != 'FORM') { fo_obj = fo_obj.parentNode; }
var mid = fo_obj.mid.value;
var upload_target_srl = fo_obj.upload_target_srl.value;
var url = "./?mid="+mid+"&act=procDeleteFile&upload_target_srl="+upload_target_srl+"&file_srl="+file_srl;
// iframe에 url을 보내버림
var iframe_obj = xGetElementById('tmp_upload_iframe');
if(!iframe_obj) return;
iframe_obj.contentWindow.document.location.href=url;
}
// 업로드 목록의 선택된 파일을 내용에 추가
function editor_insert_file(upload_target_srl) {
var obj = xGetElementById('uploaded_file_list_'+upload_target_srl);
if(obj.options.length<1) return;
var file_srl = obj.options[obj.selectedIndex].value;
if(!file_srl) return;
var file_obj = uploaded_files[file_srl];
var filename = file_obj.filename;
var sid = file_obj.sid;
var uploaded_filename = file_obj.uploaded_filename;
// 바로 링크 가능한 파일의 경우 (이미지, 플래쉬, 동영상 등..)
if(uploaded_filename) {
// 이미지 파일의 경우 image_link 컴포넌트 열결
if(/\.(jpg|jpeg|png|gif)$/i.test(uploaded_filename)) {
openComponent("image_link", upload_target_srl, uploaded_filename);
// 이미지외의 경우는 multimedia_link 컴포넌트 연결
} else {
openComponent("multimedia_link", upload_target_srl, uploaded_filename);
}
// binary파일의 경우 url_link 컴포넌트 연결
} else {
// 삭제하려는 파일의 정보를 챙김;;
var fo_obj = obj;
while(fo_obj.nodeName != 'FORM') { fo_obj = fo_obj.parentNode; }
var mid = fo_obj.mid.value;
var upload_target_srl = fo_obj.upload_target_srl.value;
var url = "./?module=file&amp;act=procDownload&amp;file_srl="+file_srl+"&amp;sid="+sid;
openComponent("url_link", upload_target_srl, url);
}
var url = "./?mid="+mid+"&act=procFileDeleteFile&upload_target_srl="+upload_target_srl+"&file_srl="+file_srl;
// iframe에 url을 보내버림
var iframe_obj = xGetElementById('tmp_upload_iframe');
if(!iframe_obj) return;
iframe_obj.contentWindow.document.location.href=url;
}
// 업로드 목록의 선택된 파일을 내용에 추가
function editor_insert_file(upload_target_srl) {
var obj = xGetElementById('uploaded_file_list_'+upload_target_srl);
if(obj.options.length<1) return;
var file_srl = obj.options[obj.selectedIndex].value;
if(!file_srl) return;
var file_obj = uploaded_files[file_srl];
var filename = file_obj.filename;
var sid = file_obj.sid;
var uploaded_filename = file_obj.uploaded_filename;
// 바로 링크 가능한 파일의 경우 (이미지, 플래쉬, 동영상 등..)
if(uploaded_filename) {
// 이미지 파일의 경우 image_link 컴포넌트 열결
if(/\.(jpg|jpeg|png|gif)$/i.test(uploaded_filename)) {
openComponent("image_link", upload_target_srl, uploaded_filename);
// 이미지외의 경우는 multimedia_link 컴포넌트 연결
} else {
openComponent("multimedia_link", upload_target_srl, uploaded_filename);
}
// binary파일의 경우 url_link 컴포넌트 연결
} else {
var fo_obj = obj;
while(fo_obj.nodeName != 'FORM') { fo_obj = fo_obj.parentNode; }
var mid = fo_obj.mid.value;
var upload_target_srl = fo_obj.upload_target_srl.value;
var url = "./?module=file&amp;act=procFileDownload&amp;file_srl="+file_srl+"&amp;sid="+sid;
openComponent("url_link", upload_target_srl, url);
}
}
/**
* 글을 쓰다가 페이지 이동시 첨부파일에 대한 정리
**/
function editorRemoveAttachFiles(mid, upload_target_srl) {
var obj = xGetElementById('uploaded_file_list_'+upload_target_srl);
if(obj.options.length<1) return;
var obj = xGetElementById('uploaded_file_list_'+upload_target_srl);
if(obj.options.length<1) return;
var params = new Array();
params['upload_target_srl'] = upload_target_srl;
exec_xml(mid, 'procClearFile', params, null, null, null);
var params = new Array();
params['upload_target_srl'] = upload_target_srl;
exec_xml(mid, 'procClearFile', params, null, null, null);
}

View file

@ -2,39 +2,41 @@
<!--%import("filter/setup_component.xml")-->
<div class="component_setup_window">
<form action="./" method="get" onsubmit="return procFilter(this, setup_component);">
<input type="hidden" name="component_name" value="{$component_name}" />
<table border="1" width="100%">
<tr>
<th>{$lang->component_name}</th>
<td>{$component->component_name} ver. {$component->version}</td>
</tr>
<tr>
<th>{$lang->component_author}</th>
<td>{$component->author->name}</td>
</tr>
<tr>
<th>{$lang->component_link}</th>
<td><a href="#" onclick="winopen('{$component->author->link}');return false;">{$component->author->link}</a></td>
</tr>
<tr>
<th colspan="2">{$lang->component_extra_vars}</th>
</tr>
<!--@foreach($component->extra_vars as $key => $val)-->
<tr>
<th rowspan="2">{$val->title}</th>
<td><input type="text" name="{$key}" value="{$val->value}" class="editor_input" /></td>
</tr>
<tr>
<td>{$val->description}</td>
</tr>
<!--@end-->
<tr>
<td colspan="2">
<input type="submit" value="{$lang->cmd_apply}" class="editor_button" />
<input type="button" value="{$lang->cmd_close}" class="editor_button" onclick="window.close();"/>
</td>
</tr>
</table>
</form>
<form action="./" method="get" onsubmit="return procFilter(this, setup_component);">
<input type="hidden" name="component_name" value="{$component_name}" />
<table border="1" width="100%">
<tr>
<th>{$lang->component_name}</th>
<td>{$component->component_name} ver. {$component->version}</td>
</tr>
<tr>
<th>{$lang->component_author}</th>
<td>{$component->author->name}</td>
</tr>
<tr>
<th>{$lang->component_link}</th>
<td><a href="#" onclick="winopen('{$component->author->link}');return false;">{$component->author->link}</a></td>
</tr>
<tr>
<th colspan="2">{$lang->component_extra_vars}</th>
</tr>
<!--@foreach($component->extra_vars as $key => $val)-->
<tr>
<th rowspan="2">{$val->title}</th>
<td><input type="text" name="{$key}" value="{$val->value}" class="editor_input" /></td>
</tr>
<tr>
<td>{$val->description}</td>
</tr>
<!--@end-->
<tr>
<td colspan="2">
<input type="submit" value="{$lang->cmd_apply}" class="editor_button" />
<input type="button" value="{$lang->cmd_close}" class="editor_button" onclick="window.close();"/>
</td>
</tr>
</table>
</form>
</div>

View file

@ -2,27 +2,28 @@
<div class="component_view_window">
<input type="hidden" name="component_name" value="{$component_name}" />
<table border="1" width="100%">
<tr>
<th>{$lang->component_name}</th>
<td>{$component->title} ver. {$component->version}</td>
<th>{$lang->component_name}</th>
<td>{$component->title} ver. {$component->version}</td>
</tr>
<tr>
<th>{$lang->component_author}</th>
<td><a href="mailto:{$component->author->email_address}">{$component->author->name}</a></td>
<th>{$lang->component_author}</th>
<td><a href="mailto:{$component->author->email_address}">{$component->author->name}</a></td>
</tr>
<tr>
<th>{$lang->component_link}</th>
<td><a href="#" onclick="winopen('{$component->author->link}');return false;">{$component->author->link}</a></td>
<th>{$lang->component_link}</th>
<td><a href="#" onclick="winopen('{$component->author->link}');return false;">{$component->author->link}</a></td>
</tr>
<tr>
<th>{$lang->component_description}</th>
<td>{nl2br($component->description)}</td>
<th>{$lang->component_description}</th>
<td>{nl2br($component->description)}</td>
</tr>
<tr>
<td colspan="2">
<input type="button" value="{$lang->cmd_close}" class="editor_button" onclick="window.close();"/>
</td>
<td colspan="2">
<input type="button" value="{$lang->cmd_close}" class="editor_button" onclick="window.close();"/>
</td>
</tr>
</table>
</div>