mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-04-29 07:12:15 +09:00
위젯 검출 정규 표현식을 수정
git-svn-id: http://xe-core.googlecode.com/svn/sandbox@2892 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
f9896fe51a
commit
90aa62a6ac
993 changed files with 9190 additions and 10457 deletions
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
<div id="popBody">
|
||||
|
||||
<table cellspacing="0" class="tableType5">
|
||||
<table cellspacing="0" class="adminTable">
|
||||
<col width="120" />
|
||||
<col />
|
||||
<tr>
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@
|
|||
|
||||
if($width) $style_output[] = "width:".$width."px";
|
||||
if($height) $style_output[] = "height:".$height."px";
|
||||
if(!$align) $style_output[] = "display:block";
|
||||
//if(!$align) $style_output[] = "display:block";
|
||||
if($border) $style_output[] = "border:".$border."px";
|
||||
$code = sprintf("<img %s style=\"%s\" />", implode(" ",$attr_output), implode(";",$style_output));
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
<form action="./" method="get" onSubmit="return false" id="fo">
|
||||
|
||||
<div id="popBody">
|
||||
<table cellspacing="0" class="tableType5">
|
||||
<table cellspacing="0" class="adminTable">
|
||||
<col width="100" />
|
||||
<col />
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
<form action="./" method="get" onSubmit="return false" id="fo">
|
||||
<div id="popBody">
|
||||
<table cellspacing="0" class="tableType5">
|
||||
<table cellspacing="0" class="adminTable">
|
||||
<col width="150" />
|
||||
<col />
|
||||
<tr>
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
<div id="popBody">
|
||||
|
||||
<table cellspacing="0" class="tableType5">
|
||||
<table cellspacing="0" class="adminTable">
|
||||
<col width="100" />
|
||||
<col />
|
||||
<tr>
|
||||
|
|
@ -47,46 +47,46 @@
|
|||
<!--@end-->
|
||||
</select>
|
||||
</li>
|
||||
<li><a href="#" onclick="doPollAdd(); return false;"><span>{$lang->cmd_add_poll}</span></a></li>
|
||||
<li><a href="#" onclick="doPollAdd(); return false;">{$lang->cmd_add_poll}</a></li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div id="poll_source" class="clear" style="display:none">
|
||||
<div class="clear"></div>
|
||||
|
||||
<table cellspacing="0" class="tableType5 gap1 clear">
|
||||
<table cellspacing="0" class="adminTable gap1">
|
||||
<col width="100" />
|
||||
<col />
|
||||
<tr>
|
||||
<th scope="row">{$lang->poll_title}</th>
|
||||
<td><input type="text" name="title_tidx" class="inputTypeText w100" /></td>
|
||||
<td><input type="text" name="title_tidx" class="inputTypeText w400" /></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th scope="row">{$lang->poll_item} 1</th>
|
||||
<td><input type="text" name="item_tidx_1" class="inputTypeText w100" /></td>
|
||||
<td><input type="text" name="item_tidx_1" class="inputTypeText w400" /></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th scope="row">{$lang->poll_item} 2</th>
|
||||
<td><input type="text" name="item_tidx_2" class="inputTypeText w100" /></td>
|
||||
<td><input type="text" name="item_tidx_2" class="inputTypeText w400" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="pollButton clear">
|
||||
<ul class="fl">
|
||||
<li><a href="#" onclick="doPollAddItem(this); return false;" >{$lang->cmd_add_item}</a></li>
|
||||
<li><a href="#" onclick="doPollAddItem(this); return false;">{$lang->cmd_add_item}</a></li>
|
||||
</ul>
|
||||
<ul class="fr">
|
||||
<li><a href="#" onclick="doPollDelete(this); return false;" >{$lang->cmd_del_poll}</a></li>
|
||||
<li><a href="#" onclick="doPollDelete(this); return false;">{$lang->cmd_del_poll}</a></li>
|
||||
</ul>
|
||||
<ul class="fr">
|
||||
<li><label>{$lang->poll_chk_count}</label></li>
|
||||
<li><input type="text" name="checkcount_tidx" value="1" size="1" class="inputTypeText" /></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
<form action="./" method="get" onSubmit="return false" id="fo">
|
||||
<div id="popBody">
|
||||
<table cellspacing="0" class="tableType5">
|
||||
<table cellspacing="0" class="adminTable">
|
||||
<col width="120" />
|
||||
<col />
|
||||
<col />
|
||||
|
|
@ -21,7 +21,9 @@
|
|||
<input type="checkbox" id="quotation_use" value="Y" onclick="toggle_folder(this)" />
|
||||
|
||||
<div id="folder_area" style="display:none">
|
||||
<table>
|
||||
<table cellspacing="0" class="adminTable gap1">
|
||||
<col width="150" />
|
||||
<col />
|
||||
<tr>
|
||||
<th scope="row">{$lang->quotation_opener}</th>
|
||||
<td><input type="text" class="inputTypeText" id="quotation_opener" value="{$lang->quotation_cmd_opener}" /></td>
|
||||
|
|
|
|||
|
|
@ -14,10 +14,11 @@
|
|||
<input name="attr" type="radio" value="table" id="table_attribute_select" onclick="doSelectOption('table');"/> <label for="table_attribute_select">{$lang->table_attribute}</label>
|
||||
<input name="attr" type="radio" value="cell" id="cell_attribute_select" onclick="doSelectOption('cell');"/> <label for="cell_attribute_select">{$lang->cell_attribute}</label>
|
||||
</div>
|
||||
<div class="gap1"></div>
|
||||
|
||||
<div id="table_attribute" style="display:none">
|
||||
<div class="" id="col_row_area" style="display:none" >
|
||||
<table cellspacing="0" class="tableType5 gap1">
|
||||
<table cellspacing="0" class="adminTable">
|
||||
<col width="25%" />
|
||||
<col width="25%" />
|
||||
<col width="25%" />
|
||||
|
|
@ -31,7 +32,7 @@
|
|||
</table>
|
||||
</div>
|
||||
|
||||
<table cellspacing="0" class="tableType5 gap1">
|
||||
<table cellspacing="0" class="adminTable">
|
||||
<col width="25%" />
|
||||
<col />
|
||||
<tr>
|
||||
|
|
@ -46,7 +47,7 @@
|
|||
|
||||
</div>
|
||||
|
||||
<table cellspacing="0" class="tableType5 gap1">
|
||||
<table cellspacing="0" class="adminTable">
|
||||
<col width="25%" />
|
||||
<col width="25%" />
|
||||
<col width="25%" />
|
||||
|
|
@ -66,7 +67,7 @@
|
|||
</table>
|
||||
|
||||
<div id="cell_attribute" style="display:none">
|
||||
<table cellspacing="0" class="tableType5 gap1">
|
||||
<table cellspacing="0" class="adminTable">
|
||||
<col width="25%" />
|
||||
<col width="25%" />
|
||||
<col width="25%" />
|
||||
|
|
@ -85,7 +86,7 @@
|
|||
</div>
|
||||
|
||||
<div id="border_color_area" style="display:none">
|
||||
<table cellspacing="0" class="tableType5 gap1">
|
||||
<table cellspacing="0" class="adminTable">
|
||||
<col width="25%" />
|
||||
<col />
|
||||
<tr>
|
||||
|
|
@ -107,7 +108,7 @@
|
|||
</div>
|
||||
|
||||
<div id="bg_color_area" style="display:none">
|
||||
<table cellspacing="0" class="tableType5 gap1">
|
||||
<table cellspacing="0" class="adminTable">
|
||||
<col width="25%" />
|
||||
<col />
|
||||
<tr>
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
<form action="./" method="get" id="fo_component" onSubmit="return false">
|
||||
|
||||
<div id="popBody">
|
||||
<table cellspacing="0" class="tableType5">
|
||||
<table cellspacing="0" class="adminTable">
|
||||
<col width="100" />
|
||||
<col />
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<module version="0.1" category="utility">
|
||||
<title xml:lang="ko">위지윅 에디터 </title>
|
||||
<title xml:lang="en">WYSIWYG Editor </title>
|
||||
<title xml:lang="es">Editor WYSIWYG </title>
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@
|
|||
<action name="procEditorRemoveSavedDoc" type="controller" standalone="true" />
|
||||
<action name="procEditorCall" type="controller" standalone="true" />
|
||||
|
||||
<action name="procEditorAdminInsertModuleConfig" type="controller" standalone="true" />
|
||||
<action name="procEditorAdminEnableComponent" type="controller" standalone="true" />
|
||||
<action name="procEditorAdminDisableComponent" type="controller" standalone="true" />
|
||||
<action name="procEditorAdminMoveListOrder" type="controller" standalone="true" />
|
||||
|
|
|
|||
|
|
@ -95,6 +95,26 @@
|
|||
$this->setMessage('success_updated');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 에디터의 모듈별 추가 확장 폼을 저장
|
||||
**/
|
||||
function procEditorAdminInsertModuleConfig() {
|
||||
// 필요한 변수를 받아옴
|
||||
$module_srl = Context::get('target_module_srl');
|
||||
$editor_skin = Context::get('editor_skin');
|
||||
|
||||
// 기존 설정을 가져옴
|
||||
$oModuleModel = &getModel('module');
|
||||
$config = $oModuleModel->getModuleConfig('editor');
|
||||
|
||||
$config->module_config[$module_srl] = $editor_skin;
|
||||
|
||||
// module Controller 객체 생성하여 입력
|
||||
$oModuleController = &getController('module');
|
||||
$output = $oModuleController->insertModuleConfig('editor',$config);
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 컴포넌트를 DB에 추가
|
||||
**/
|
||||
|
|
|
|||
|
|
@ -32,6 +32,13 @@
|
|||
// 에디터 모듈에서 사용할 디렉토리 생성
|
||||
FileHandler::makeDir('./files/cache/editor');
|
||||
|
||||
// 2007. 10. 17 글의 입력(신규 or 수정)이 일어날때마다 자동 저장된 문서를 삭제하는 trigger 추가
|
||||
$oModuleController->insertTrigger('document.insertDocument', 'editor', 'controller', 'triggerDeleteSavedDoc', 'after');
|
||||
$oModuleController->insertTrigger('document.updateDocument', 'editor', 'controller', 'triggerDeleteSavedDoc', 'after');
|
||||
|
||||
// 2007. 10. 23 모듈의 추가 설정에서 에디터 trigger 추가
|
||||
$oModuleController->insertTrigger('module.dispAdditionSetup', 'editor', 'view', 'triggerDispEditorAdditionSetup', 'before');
|
||||
|
||||
return new Object();
|
||||
}
|
||||
|
||||
|
|
@ -39,6 +46,15 @@
|
|||
* @brief 설치가 이상이 없는지 체크하는 method
|
||||
**/
|
||||
function checkUpdate() {
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
// 2007. 10. 17 글의 입력(신규 or 수정)이 일어날때마다 자동 저장된 문서를 삭제하는 trigger 추가
|
||||
if(!$oModuleModel->getTrigger('document.insertDocument', 'editor', 'controller', 'triggerDeleteSavedDoc', 'after')) return true;
|
||||
if(!$oModuleModel->getTrigger('document.updateDocument', 'editor', 'controller', 'triggerDeleteSavedDoc', 'after')) return true;
|
||||
|
||||
// 2007. 10. 23 모듈의 추가 설정에서 에디터 trigger 추가
|
||||
if(!$oModuleModel->getTrigger('module.dispAdditionSetup', 'editor', 'view', 'triggerDispEditorAdditionSetup', 'before')) return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -46,7 +62,20 @@
|
|||
* @brief 업데이트 실행
|
||||
**/
|
||||
function moduleUpdate() {
|
||||
return new Object();
|
||||
$oModuleModel = &getModel('module');
|
||||
$oModuleController = &getController('module');
|
||||
|
||||
// 2007. 10. 17 글의 입력(신규 or 수정)이 일어날때마다 자동 저장된 문서를 삭제하는 trigger 추가
|
||||
if(!$oModuleModel->getTrigger('document.insertDocument', 'editor', 'controller', 'triggerDeleteSavedDoc', 'after'))
|
||||
$oModuleController->insertTrigger('document.insertDocument', 'editor', 'controller', 'triggerDeleteSavedDoc', 'after');
|
||||
if(!$oModuleModel->getTrigger('document.updateDocument', 'editor', 'controller', 'triggerDeleteSavedDoc', 'after'))
|
||||
$oModuleController->insertTrigger('document.updateDocument', 'editor', 'controller', 'triggerDeleteSavedDoc', 'after');
|
||||
|
||||
// 2007. 10. 23 모듈의 추가 설정에서 에디터 trigger 추가
|
||||
if(!$oModuleModel->getTrigger('module.dispAdditionSetup', 'editor', 'view', 'triggerDispEditorAdditionSetup', 'before'))
|
||||
$oModuleController->insertTrigger('module.dispAdditionSetup', 'editor', 'view', 'triggerDispEditorAdditionSetup', 'before');
|
||||
|
||||
return new Object(0, 'success_updated');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -71,6 +71,14 @@
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 게시글의 입력/수정이 일어났을 경우 자동 저장문서를 제거하는 trigger
|
||||
**/
|
||||
function triggerDeleteSavedDoc(&$obj) {
|
||||
$this->deleteSavedDoc();
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 자동 저장된 글을 삭제
|
||||
* 현재 접속한 사용자를 기준
|
||||
|
|
@ -84,7 +92,7 @@
|
|||
}
|
||||
|
||||
// 일단 이전 저장본 삭제
|
||||
executeQuery('editor.deleteSavedDoc', $args);
|
||||
return executeQuery('editor.deleteSavedDoc', $args);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -22,7 +22,21 @@
|
|||
**/
|
||||
|
||||
/**
|
||||
* 에디터 template을 return
|
||||
* @brief 모듈별 에디터 설정을 return
|
||||
**/
|
||||
function getEditorConfig($module_srl) {
|
||||
// 선택된 모듈의 trackback설정을 가져옴
|
||||
$oModuleModel = &getModel('module');
|
||||
$config = $oModuleModel->getModuleConfig('editor');
|
||||
|
||||
$editor_skin = $config->module_config[$module_srl];
|
||||
if(!$editor_skin) $editor_skin = "default";
|
||||
|
||||
return $editor_skin;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 에디터 template을 return
|
||||
* upload_target_srl은 글의 수정시 호출하면 됨.
|
||||
* 이 upload_target_srl은 첨부파일의 유무를 체크하기 위한 루틴을 구현하는데 사용됨.
|
||||
**/
|
||||
|
|
@ -55,8 +69,11 @@
|
|||
else $editor_height = $option->height;
|
||||
|
||||
// 스킨 설정
|
||||
if(!$option->skin) $skin = 'default';
|
||||
else $skin = $option->skin;
|
||||
if(!$option->skin) {
|
||||
$module_srl = Context::get('module_srl');
|
||||
$skin = $this->getEditorConfig($module_srl);
|
||||
|
||||
} else $skin = $option->skin;
|
||||
|
||||
/**
|
||||
* 자동백업 기능 체크 (글 수정일 경우는 사용하지 않음)
|
||||
|
|
@ -87,8 +104,9 @@
|
|||
|
||||
// SWFUploader에 세팅할 업로드 설정 구함
|
||||
$file_config = $oFileModel->getUploadConfig();
|
||||
$file_config->attached_size = FileHandler::filesize($file_config->allowed_attach_size*1024*1024);
|
||||
$file_config->allowed_filesize = FileHandler::filesize($file_config->allowed_filesize*1024*1024);
|
||||
$file_config->attached_size = $file_config->allowed_attach_size*1024;
|
||||
$file_config->allowed_filesize = $file_config->allowed_filesize*1024;
|
||||
|
||||
Context::set('file_config',$file_config);
|
||||
|
||||
// 업로드 가능 용량등에 대한 정보를 세팅
|
||||
|
|
|
|||
|
|
@ -60,5 +60,36 @@
|
|||
$this->setTemplateFile('view_component');
|
||||
$this->setLayoutFile("popup_layout");
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈의 추가 설정에서 에디터 설정을 하는 form 추가
|
||||
**/
|
||||
function triggerDispEditorAdditionSetup(&$obj) {
|
||||
$current_module_srl = Context::get('module_srl');
|
||||
|
||||
if(!$current_module_srl) {
|
||||
// 선택된 모듈의 정보를 가져옴
|
||||
$current_module_info = Context::get('current_module_info');
|
||||
$current_module_srl = $current_module_info->module_srl;
|
||||
}
|
||||
|
||||
if(!$current_module_srl) return new Object();
|
||||
|
||||
// 에디터 설정을 구함
|
||||
$oEditorModel = &getModel('editor');
|
||||
$editor_skin = $oEditorModel->getEditorConfig($current_module_srl);
|
||||
Context::set('editor_skin', $editor_skin);
|
||||
|
||||
// 에디터 스킨 목록을 구함
|
||||
$editor_skin_list = FileHandler::readDir('./modules/editor/skins');
|
||||
Context::set('editor_skin_list', $editor_skin_list);
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$oTemplate = &TemplateHandler::getInstance();
|
||||
$tpl = $oTemplate->compile($this->module_path.'tpl', 'editor_module_config');
|
||||
$obj .= $tpl;
|
||||
|
||||
return new Object();
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -156,7 +156,7 @@
|
|||
|
||||
<!-- 파일 업로드 영역 -->
|
||||
<div class="fileListArea">
|
||||
<select id="uploaded_file_list_{$editor_sequence}" multiple="multiple" size="7" class="fileList" onclick="editor_preview(this, '{$editor_sequence}');"></select>
|
||||
<select id="uploaded_file_list_{$editor_sequence}" multiple="multiple" size="8" class="fileList" onclick="editor_preview(this, '{$editor_sequence}');"></select>
|
||||
<span class="file_attach_info" id="uploader_status_{$editor_sequence}">{$upload_status}</span>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,29 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<skin>
|
||||
<title xml:lang="ko">제로보드XE 게시판 기본 스킨(목록형)</title>
|
||||
<title xml:lang="jp">ゼロボードXE掲示板のデフォルトスキン(リストスタイル)</title>
|
||||
<title xml:lang="zh-CN">Zeroboard XE Board 基本皮肤(目录型)</title>
|
||||
<title xml:lang="en">ZeroboardXE Basic Board Skin (List Style)</title>
|
||||
<title xml:lang="ko">제로보드XE 기본 에디터</title>
|
||||
<maker email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">(주)NHN</name>
|
||||
<name xml:lang="jp">(株)NHN</name>
|
||||
<name xml:lang="zh-CN">(株)NHN</name>
|
||||
<name xml:lang="en">NHN Corp</name>
|
||||
<name xml:lang="ko">zero</name>
|
||||
<description xml:lang="ko">
|
||||
디자인 : 서기정 (http://blog.naver.com/addcozy)
|
||||
HTML/CSS : 정찬명 (http://naradesign.net)
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
デザイン:ソギジョン (http://blog.naver.com/addcozy)
|
||||
HTML/CSS:ジョンチャンミョン (http://naradesign.net)
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
设计 : Ki-Jeong Seo (http://blog.naver.com/addcozy)
|
||||
HTML/CSS : Chan-Myung Jeong (http://naradesign.net)
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
Design : Ki-Jeong Seo (http://blog.naver.com/addcozy)
|
||||
HTML/CSS : Chan-Myung Jeong (http://naradesign.net)
|
||||
개발 : zero (http://www.zeroboard.com)
|
||||
</description>
|
||||
</maker>
|
||||
</skin>
|
||||
|
|
|
|||
|
|
@ -2,13 +2,19 @@
|
|||
|
||||
<h3>{$lang->editor} <span class="gray">{$lang->cmd_management}</span></h3>
|
||||
|
||||
<table cellspacing="0" class="tableType3">
|
||||
<table cellspacing="0" class="adminTable gap1">
|
||||
<col />
|
||||
<col width="40"/>
|
||||
<col width="120"/>
|
||||
<col width="70"/>
|
||||
<col width="50"/>
|
||||
<col width="50"/>
|
||||
<col width="50"/>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">{$lang->component_name}</th>
|
||||
<th scope="col">{$lang->component_version}</th>
|
||||
<th scope="col">{$lang->component_author}</th>
|
||||
<th scope="col">{$lang->component_link}</th>
|
||||
<th scope="col">{$lang->component_date}</th>
|
||||
<th scope="col">{$lang->cmd_setup}</th>
|
||||
<th scope="col">{$lang->use}</th>
|
||||
|
|
@ -20,8 +26,7 @@
|
|||
<tr>
|
||||
<th scope="row" rowspan="2"><a href="{getUrl('module','editor','act','dispEditorComponentInfo','component_name',$component_name)}" onclick="popopen(this.href);return false;" class="blue">{$xml_info->title}</a><br />({$component_name})</th>
|
||||
<td class="tahoam">{$xml_info->version}</td>
|
||||
<td><a href="mailto:{$xml_info->author->email_address}">{$xml_info->author->name}</a></td>
|
||||
<td class="blue"><a href="{$xml_info->author->link}" onclick="window.open(this.href);return false;">{$xml_info->author->link}</a></td>
|
||||
<td class="blue"><a href="{$xml_info->author->link}" onclick="window.open(this.href);return false;">{$xml_info->author->name}</a></td>
|
||||
<td class="tahoma">{$xml_info->author->date}</td>
|
||||
<td class="tahoma">
|
||||
<!--@if($xml_info->extra_vars)-->
|
||||
|
|
@ -43,7 +48,7 @@
|
|||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="7" class="left">
|
||||
<td colspan="6" class="left">
|
||||
{nl2br($xml_info->description)}
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
|||
28
modules/editor/tpl/editor_module_config.html
Normal file
28
modules/editor/tpl/editor_module_config.html
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
<!--%import("filter/insert_editor_module_config.xml")-->
|
||||
|
||||
<form action="./" method="post" onsubmit="return procFilter(this, insert_editor_module_config)">
|
||||
<input type="hidden" name="target_module_srl" value="{$module_info->module_srl}" />
|
||||
|
||||
<table cellspacing="0" class="adminTable">
|
||||
<col width="150" />
|
||||
<col />
|
||||
<col width="100" />
|
||||
<caption>{$lang->editor}</caption>
|
||||
<tr>
|
||||
<th scope="row">{$lang->editor}</th>
|
||||
<td>
|
||||
<select name="editor_skin">
|
||||
<!--@foreach($editor_skin_list as $editor)-->
|
||||
<option value="{$editor}" <!--@if($editor==$editor_skin)-->selected="selected"<!--@end-->>{$editor}</option>
|
||||
<!--@end-->
|
||||
</select>
|
||||
</td>
|
||||
<th class="centerButton">
|
||||
<span class="button"><input type="submit" value="{$lang->cmd_save}"/></span>
|
||||
</th>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</form>
|
||||
|
||||
<div class="gap1"></div>
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<filter name="insert_editor_module_config" module="editor" act="procEditorAdminInsertModuleConfig" confirm_msg_code="confirm_submit">
|
||||
<form />
|
||||
<response>
|
||||
<tag name="error" />
|
||||
<tag name="message" />
|
||||
</response>
|
||||
</filter>
|
||||
|
|
@ -103,7 +103,7 @@ function editorStart(editor_sequence, primary_key, content_key, resizable, edito
|
|||
// iframe obj를 찾음
|
||||
var iframe_obj = editorGetIFrame(editor_sequence);
|
||||
if(!iframe_obj) return;
|
||||
xWidth(iframe_obj, xWidth(iframe_obj.parentNode)-20);
|
||||
xWidth(iframe_obj, xWidth(iframe_obj.parentNode)-30);
|
||||
|
||||
// 현 에디터를 감싸고 있는 form문을 찾음
|
||||
var fo_obj = editorGetForm(editor_sequence);
|
||||
|
|
@ -140,9 +140,6 @@ function editorStart(editor_sequence, primary_key, content_key, resizable, edito
|
|||
// IE가 아니고 내용이 없으면 <br /> 추가 (FF등에서 iframe 선택시 focus를 주기 위한 꽁수)
|
||||
if(!content && !xIE4Up) content = "<br />";
|
||||
|
||||
// iframe내의 document element를 구함
|
||||
var contentDocument = iframe_obj.contentWindow.document;
|
||||
|
||||
// 크기 변경 불가일 경우 드래그바 숨김
|
||||
var dragObj = xGetElementById("editor_drag_bar_"+editor_sequence);
|
||||
if(dragObj) {
|
||||
|
|
@ -172,38 +169,42 @@ function editorStart(editor_sequence, primary_key, content_key, resizable, edito
|
|||
content+
|
||||
'</body></html>'+
|
||||
'';
|
||||
contentDocument.open("text/html","replace");
|
||||
contentDocument.write(contentHtml);
|
||||
contentDocument.close();
|
||||
iframe_obj.contentWindow.document.open("text/html","replace");
|
||||
iframe_obj.contentWindow.document.write(contentHtml);
|
||||
iframe_obj.contentWindow.document.close();
|
||||
|
||||
// editorMode를 기본으로 설정
|
||||
editorMode[editor_sequence] = null;
|
||||
|
||||
// 에디터를 시작 시킴
|
||||
try {
|
||||
contentDocument.designMode = 'On';
|
||||
iframe_obj.contentWindow.document.designMode = 'On';
|
||||
} catch(e) {
|
||||
}
|
||||
|
||||
try {
|
||||
contentDocument.execCommand("undo", false, null);
|
||||
contentDocument.execCommand("useCSS", false, true);
|
||||
iframe_obj.contentWindow.document.execCommand("undo", false, null);
|
||||
iframe_obj.contentWindow.document.execCommand("useCSS", false, true);
|
||||
} catch (e) {
|
||||
}
|
||||
|
||||
/**
|
||||
* 더블클릭이나 키눌림등의 각종 이벤트에 대해 listener 추가
|
||||
* 작성시 필요한 이벤트 체크
|
||||
* 이 이벤트의 경우 윈도우 sp1 (NT or xp sp1) 에서 contentDocument에 대한 권한이 없기에 try 문으로 감싸서
|
||||
* 이 이벤트의 경우 윈도우 sp1 (NT or xp sp1) 에서 iframe_obj.contentWindow.document에 대한 권한이 없기에 try 문으로 감싸서
|
||||
* 에러를 무시하도록 해야 함.
|
||||
**/
|
||||
try {
|
||||
// 에디터에서 키가 눌러질때마다 이벤트를 체크함 (enter키의 처리나 FF에서 alt-s등을 처리)
|
||||
if(xIE4Up) xAddEventListener(contentDocument, 'keydown',editorKeyPress);
|
||||
else xAddEventListener(contentDocument, 'keypress',editorKeyPress);
|
||||
|
||||
// 위젯 감시를 위한 더블클릭 이벤트 걸기
|
||||
xAddEventListener(contentDocument,'dblclick',editorSearchComponent);
|
||||
// 위젯 감시를 위한 더블클릭 이벤트 걸기
|
||||
try {
|
||||
xAddEventListener(iframe_obj.contentWindow.document,'dblclick',editorSearchComponent);
|
||||
} catch(e) {
|
||||
}
|
||||
|
||||
// 에디터에서 키가 눌러질때마다 이벤트를 체크함 (enter키의 처리나 FF에서 alt-s등을 처리)
|
||||
try {
|
||||
if(xIE4Up) xAddEventListener(iframe_obj.contentWindow.document, 'keydown',editorKeyPress);
|
||||
else xAddEventListener(iframe_obj.contentWindow.document, 'keypress',editorKeyPress);
|
||||
} catch(e) {
|
||||
}
|
||||
|
||||
|
|
@ -300,15 +301,19 @@ function editorReplaceHTML(iframe_obj, html) {
|
|||
|
||||
} else {
|
||||
|
||||
if(iframe_obj.contentWindow.getSelection().focusNode.tagName == "HTML") {
|
||||
var range = iframe_obj.contentDocument.createRange();
|
||||
range.setStart(iframe_obj.contentDocument.body,0);
|
||||
range.setEnd(iframe_obj.contentDocument.body,0);
|
||||
range.insertNode(range.createContextualFragment(html));
|
||||
} else {
|
||||
var range = iframe_obj.contentWindow.getSelection().getRangeAt(0);
|
||||
range.deleteContents();
|
||||
range.insertNode(range.createContextualFragment(html));
|
||||
try {
|
||||
if(iframe_obj.contentWindow.getSelection().focusNode.tagName == "HTML") {
|
||||
var range = iframe_obj.contentDocument.createRange();
|
||||
range.setStart(iframe_obj.contentDocument.body,0);
|
||||
range.setEnd(iframe_obj.contentDocument.body,0);
|
||||
range.insertNode(range.createContextualFragment(html));
|
||||
} else {
|
||||
var range = iframe_obj.contentWindow.getSelection().getRangeAt(0);
|
||||
range.deleteContents();
|
||||
range.insertNode(range.createContextualFragment(html));
|
||||
}
|
||||
} catch(e) {
|
||||
xInnerHtml(iframe_obj.contentWindow.document.body, html+xInnerHtml(iframe_obj.contentWindow.document.body));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
<input type="hidden" name="component_name" value="{$component_name}" />
|
||||
|
||||
<div id="popBody">
|
||||
<table cellspacing="0" class="tableType5">
|
||||
<table cellspacing="0" class="adminTable">
|
||||
<col width="100" />
|
||||
<col />
|
||||
<tr>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
</div>
|
||||
|
||||
<div id="popBody">
|
||||
<table cellspacing="0" class="tableType5">
|
||||
<table cellspacing="0" class="adminTable">
|
||||
<col width="100" />
|
||||
<col />
|
||||
<tr>
|
||||
|
|
@ -19,7 +19,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{$lang->component_description}</th>
|
||||
<td>{nl2br($component->description)}</td>
|
||||
<td>{nl2br(trim($component->description))}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue