mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-05-04 01:23:32 +09:00
Add admin editor page (not complated lang file)
git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@9084 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
200b4df6f9
commit
abe7b76c98
14 changed files with 469 additions and 256 deletions
|
|
@ -1,40 +1,170 @@
|
|||
<!--%import("js/editor_admin.js")-->
|
||||
<!--%import("js/editor_module_config.js")-->
|
||||
|
||||
<h3 class="xeAdmin">{$lang->editor} <span class="gray">{$lang->cmd_management}</span></h3>
|
||||
<div class="content" id="content">
|
||||
<h1 class="h1">WYSIWYG Editor</h1>
|
||||
<h2 class="h2">Editor Preview</h2>
|
||||
|
||||
<!-- Editor Preview -->
|
||||
<a href="{getUrl('module', 'admin', 'act', 'dispEditorConfigPreview')}" target="_blank">미리보기</a>
|
||||
<!-- /Editor Preview -->
|
||||
<form action="./" method="post" class="form" ruleset="generalConfig">
|
||||
<input type="hidden" name="act" value="procEditorAdminGeneralConfig " />
|
||||
|
||||
<table cellspacing="0" class="crossTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="half_wide"><div>{$lang->description}</div></th>
|
||||
<th scope="col" class="half_wide"><div>{$lang->component_author}</div></th>
|
||||
<th scope="col" colspan="2"><div>{$lang->component_version}</div></th>
|
||||
<th scope="col"><div>{$lang->component_date}</div></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!--@foreach($component_list as $component_name => $xml_info)-->
|
||||
<tr class="row2">
|
||||
<th colspan="2" scope="row"><div><a href="{getUrl('module','editor','act','dispEditorComponentInfo','component_name',$component_name)}" onclick="popopen(this.href);return false;"><strong>{$xml_info->title}</strong></a> ({$component_name})</div></th>
|
||||
<th><a href="#" onclick="doSetupComponent('{$component_name}'); return false;" title="{htmlspecialchars($lang->cmd_setup)}" class="buttonSet buttonSetting"><span>{$lang->cmd_setup}</span></a></th>
|
||||
<th>
|
||||
<!--@if($xml_info->enabled=='Y')-->
|
||||
<a href="#" onclick="doDisableComponent('{$component_name}');return false;" title="{htmlspecialchars($lang->cmd_enable)}" class="buttonSet buttonActive"><span>{$lang->cmd_enable}</span></a>
|
||||
<!--@else-->
|
||||
<a href="#" onclick="doEnableComponent('{$component_name}');return false;" title="{htmlspecialchars($lang->cmd_disable)}" class="buttonSet buttonDisable"><span>{$lang->cmd_disable}</span></a>
|
||||
<!--@end-->
|
||||
</th>
|
||||
<th><a href="#" onclick="doMoveListOrder('{$component_name}','up');return false;" title="{htmlspecialchars($lang->cmd_move_up)}" class="buttonSet buttonUp"><span>{$lang->cmd_move_up}</span></a><a href="#" onclick="doMoveListOrder('{$component_name}','down');return false;" title="{htmlspecialchars($lang->cmd_move_down)}" class="buttonSet buttonDown"><span>{$lang->cmd_move_down}</span></a></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{nl2br($xml_info->description)}</td>
|
||||
<td class="nowrap">
|
||||
<!--@foreach($xml_info->author as $author)-->
|
||||
<a href="{$author->homepage}" onclick="window.open(this.href);return false;">{$author->name}</a>
|
||||
<!--@endforeach-->
|
||||
</td>
|
||||
<td colspan="2">{$xml_info->version}</td>
|
||||
<td>{$xml_info->date}</td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
</tbody>
|
||||
</table>
|
||||
<fieldset class="section">
|
||||
<h2 class="h2">Editor Option</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<p class="q">본문 에디터를 선택하세요.</p>
|
||||
<p class="a">
|
||||
<!--@foreach($editor_skin_list as $editor)-->
|
||||
<input type="radio" name="editor_skin" value="{$editor}" id="doc_{$editor}" onClick="getEditorSkinColorList(this.value, null, 'document','doc_{$editor}')" <!--@if($editor==$editor_config->editor_skin)-->checked="checked" <!--@end-->/>
|
||||
<label for="doc_{$editor}" value='sdf'>{$editor}</label>
|
||||
<select name="sel_editor_colorset" <!--@if($editor==$editor_config->editor_skin)--> >
|
||||
<!--@foreach($editor_colorset_list as $key => $val)-->
|
||||
<option value="{$val->name}" <!--@if($editor_config->sel_editor_colorset == $val->name)-->selected="selected"<!--@end-->>{$val->title}</option>
|
||||
<!--@end-->
|
||||
<!--@else-->style="display:none"> <!--@end-->
|
||||
</select>
|
||||
<br />
|
||||
<!--@end-->
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="q"><label for="editor_height">본문 에디터의 높이를 설정하세요.</label></p>
|
||||
<p class="a"><input type="text" name="editor_height" id="editor_height" value="<!--@if($editor_config->editor_height)-->{$editor_config->editor_height}<!--@else-->{$editor_config_default['editor_height']}<!--@end-->" style="width:30px" /> px</p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="q">댓글 에디터를 선택하세요.</p>
|
||||
<p class="a">
|
||||
<!--@foreach($editor_skin_list as $editor)-->
|
||||
<input type="radio" name="comment_editor_skin" value="{$editor}" id="com_{$editor}" onclick="getEditorSkinColorList(this.value, null, 'reply','com_{$editor}')" <!--@if($editor == $editor_config->comment_editor_skin)-->checked="checked" <!--@end-->/>
|
||||
<label for="com_{$editor}">{$editor}</label>
|
||||
<select name="sel_comment_editor_colorset" <!--@if($editor==$editor_config->comment_editor_skin)--> >
|
||||
<!--@foreach($editor_colorset_list as $key => $val)-->
|
||||
<option value="{$val->name}" <!--@if($editor_config->sel_comment_editor_colorset == $val->name)-->selected="selected"<!--@end-->>{$val->title}</option>
|
||||
<!--@end-->
|
||||
<!--@else-->style="display:none"> <!--@end-->
|
||||
</select>
|
||||
<br />
|
||||
<!--@end-->
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="q"><label for="comment_editor_height">댓글 에디터의 높이를 설정하세요.</label></p>
|
||||
<p class="a"><input type="text" name="comment_editor_height"id="comment_editor_height" value="<!--@if($editor_config->comment_editor_height)-->{$editor_config->comment_editor_height}<!--@else-->{$editor_config_default['comment_editor_height']}<!--@end-->" style="width:30px" /> px</p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="q">본문 서식을 선택하세요.</p>
|
||||
<p class="a">
|
||||
<!--@foreach($content_style_list as $key => $val)-->
|
||||
<input type="radio" name="content_style" value="{$key}" id="style_{$key}" <!--@if($key==$editor_config->content_style||!$editor_config->content_style&&$key=='default')-->checked="checked"<!--@end-->><label for="style_{$key}">{$key}</label>
|
||||
<!--@end-->
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="q">본문 글꼴을 선택하세요.</p>
|
||||
<textarea rows="3" cols="42" class="fontPreview" title="Font Preview">
|
||||
The quick brown fox jumps over the lazy dog.
|
||||
いろはにほへと / ちりぬるを / わかよたれそ / つねならむ / うゐのおくやま / けふこえて / あさきゆめみし / ゑひもせす
|
||||
키스의 고유 조건은 입술끼리 만나야 하고 특별한 기술은 필요치 않다.</textarea>
|
||||
<p class="answer fontSelector">
|
||||
<input type="radio" name="content_font" id="font_noFont" value="" <!--@if(!$editor_config->content_font)-->checked="checked" <!--@end-->/> <label for="font_noFont" style="font-family:''">none(inherit)</label><br />
|
||||
<!--@foreach($lang->edit->fontlist as $name => $detail)-->
|
||||
<input type="radio" name="content_font" id="font_{$name}" value="{$name}" <!--@if($editor_config->content_font==$name)-->checked="checked" <!--@end-->/> <label for="font_{$name}" style="font-family:{$detail}">{$detail}</label><br />
|
||||
<!--@end-->
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="q"><label for="fontSize">본문 글꼴 크기를 선택하세요.</label></p>
|
||||
<textarea rows="3" cols="42" class="fontPreview" title="Font Preview">
|
||||
The quick brown fox jumps over the lazy dog.
|
||||
いろはにほへと / ちりぬるを / わかよたれそ / つねならむ / うゐのおくやま / けふこえて / あさきゆめみし / ゑひもせす
|
||||
키스의 고유 조건은 입술끼리 만나야 하고 특별한 기술은 필요치 않다.</textarea>
|
||||
<p class="a"><input type="text" id="fontSize" name="content_font_size" value="<!--@if($editor_config->content_font_size)-->{str_replace('px','',$editor_config->content_font_size)}<!--@else-->{str_replace('px','',$editor_config_default['content_font_size'])}<!--@end-->" style="width:30px" /> px</p>
|
||||
</li>
|
||||
<script type="text/javascript">
|
||||
jQuery(function($){
|
||||
var fontPreview = $('.fontPreview');
|
||||
var fontRadio = $('.fontSelector>:radio');
|
||||
var checkedFont = fontRadio.filter(':checked').next('label').css('fontFamily');
|
||||
fontPreview.css('fontFamily',checkedFont);
|
||||
fontRadio.change(function(){
|
||||
var myFont = $(this).next('label').css('fontFamily');
|
||||
fontPreview.css('fontFamily',myFont);
|
||||
});
|
||||
var changedSize = $('#fontSize').val();
|
||||
fontPreview.css('fontSize',changedSize+'px');
|
||||
$('#fontSize').keyup(function(){
|
||||
var mySize = $(this).val();
|
||||
fontPreview.css('fontSize',mySize+'px');
|
||||
if(mySize.length==0){fontPreview.css('fontSize','')};
|
||||
if(mySize>28){
|
||||
alert('본문에서 사용하기에 글꼴이 너무 큽니다');
|
||||
$(this).val('28');
|
||||
fontPreview.css('fontSize','28px');
|
||||
};
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</ul>
|
||||
<div class="btnArea">
|
||||
<span class="btn"><input type="submit" value="Save" /></span>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
<form action="./" method="post" class="form" ruleset="componentOrderAndUse">
|
||||
<input type="hidden" name="act" value="procEditorAdminCheckUseListOrder" />
|
||||
<fieldset class="section">
|
||||
<h2 class="h2">Editor Component</h2>
|
||||
<div class="table even easyList">
|
||||
<table id="sortable_table" class="sortable"width="100%" border="1" cellspacing="0">
|
||||
<caption>
|
||||
All({$component_count})
|
||||
</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">이동</th>
|
||||
<th scope="col" class="title">{$lang->component_name} {$lang->user_name}</th>
|
||||
<th scope="col">{$lang->version}</th>
|
||||
<th scope="col">{$lang->author}</th>
|
||||
<th scope="col">{$lang->path}</th>
|
||||
<th scope="col">{$lang->use}</th>
|
||||
<th scope="col">{$lang->cmd_delete}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="uDrag">
|
||||
<!--@foreach($component_list as $component_name => $xml_info)-->
|
||||
<tr>
|
||||
<td><div class="wrap" style="height:80px"><button type="button" class="dragBtn">Move to</button></div></td>
|
||||
<td class="title">
|
||||
<input type="hidden" name="component_names[]" value="{$xml_info->component_name}" />
|
||||
<p><b>{$xml_info->title}</b></p>
|
||||
<p>{nl2br($xml_info->description)}</p>
|
||||
<!--@if($xml_info->version && $xml_info->need_update == 'Y')-->
|
||||
<p class="update">이 항목 업데이트가 가능합니다. <a href="#">업데이트 하시겠습니까?</a></p>
|
||||
<!--@end-->
|
||||
</td>
|
||||
<td>{$xml_info->version}</td>
|
||||
<td>
|
||||
<!--@foreach($xml_info->author as $author)-->
|
||||
<a href="{$author->homepage}" target="_blank">{$author->name}</a>
|
||||
<!--@endforeach-->
|
||||
</td>
|
||||
<td>{$xml_info->path}</td>
|
||||
<td><input type="checkbox" name="enables[]" id="enable" value="{$xml_info->component_name}" title="Use this component " <!--@if($xml_info->enabled=='Y')--> checked="checked"<!--@end--> /></td>
|
||||
<td>
|
||||
<!--@if($xml_info->version && $xml_info->delete_url)-->
|
||||
<a href="{$xml_info->delete_url}">Delete</a>
|
||||
<!--@end-->
|
||||
</td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="btnArea">
|
||||
<span class="btn"><input type="submit" value="Save" /></span>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
|||
18
modules/editor/tpl/config_preview.html
Normal file
18
modules/editor/tpl/config_preview.html
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<load target="../../admin/tpl/css/admin.css" />
|
||||
<load target="../../admin/tpl/css/admin_{$lang_type}.css" />
|
||||
<div class="x" style="padding: 10px;">
|
||||
<h2 class="h2">에디터 미리보기</h2>
|
||||
<h2 class="h3">본문 에디터</h2>
|
||||
<form onSubmit="return false">
|
||||
<input type="hidden" name="dummy_content" />
|
||||
<input type="hidden" name="dummy_key" value="1" />
|
||||
|
||||
<p>{$editor}</p>
|
||||
</form><br />
|
||||
<h2 class="h3">댓글 에디터</h2>
|
||||
<form onSubmit="return false">
|
||||
<input type="hidden" name="dummy_content2" />
|
||||
<input type="hidden" name="dummy_key2" value="1" />
|
||||
<p>{$editor_comment}</p>
|
||||
</form>
|
||||
</div>
|
||||
|
|
@ -2,34 +2,8 @@
|
|||
* @author NHN (developers@xpressengine.com)
|
||||
* @version 0.1
|
||||
* @brief 에디터 관리자 페이지용 스크립트
|
||||
**/
|
||||
|
||||
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;
|
||||
|
||||
exec_xml('editor', 'procEditorAdminDisableComponent', params, completeUpdate);
|
||||
}
|
||||
|
||||
function doMoveListOrder(component_name, mode) {
|
||||
var params = new Array();
|
||||
params['component_name'] = component_name;
|
||||
params['mode'] = mode;
|
||||
|
||||
exec_xml('editor', 'procEditorAdminMoveListOrder', params, completeUpdate);
|
||||
}
|
||||
|
||||
function completeUpdate(ret_obj) {
|
||||
location.reload();
|
||||
}
|
||||
|
||||
**/
|
||||
|
||||
function doSetupComponent(component_name) {
|
||||
popopen(request_uri.setQuery('module','editor').setQuery('act','dispEditorAdminSetupComponent').setQuery('component_name',component_name), 'SetupComponent');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,37 +1,44 @@
|
|||
function getEditorSkinColorList(skin_name,selected_colorset,type){
|
||||
function getEditorSkinColorList(skin_name,selected_colorset,type,testid){
|
||||
if(skin_name.length>0){
|
||||
type = type || 'document';
|
||||
var response_tags = new Array('error','message','colorset');
|
||||
exec_xml('editor','dispEditorSkinColorset',{skin:skin_name},resultGetEditorSkinColorList,response_tags,{'selected_colorset':selected_colorset,'type':type});
|
||||
exec_xml('editor','dispEditorSkinColorset',{skin:skin_name},resultGetEditorSkinColorList,response_tags,{'selected_colorset':selected_colorset,'type':type,'testid':testid});
|
||||
}
|
||||
}
|
||||
|
||||
function resultGetEditorSkinColorList(ret_obj,response_tags, params) {
|
||||
|
||||
var selectbox = null;
|
||||
if(params.type == 'document'){
|
||||
selectbox = xGetElementById("sel_editor_colorset");
|
||||
}else{
|
||||
selectbox = xGetElementById("sel_comment_editor_colorset");
|
||||
}
|
||||
jQuery(function($){
|
||||
selectbox = jQuery("#"+params.testid).next('label').next('select');
|
||||
selectbox.html('');
|
||||
|
||||
if(params.type == 'document'){
|
||||
$("select[name=sel_editor_colorset]").css('display','none');
|
||||
$("select[name=sel_editor_colorset]").removeAttr('name');
|
||||
selectbox.attr('name','sel_editor_colorset');
|
||||
}else{
|
||||
$("select[name=sel_comment_editor_colorset]").css('display','none');
|
||||
$("select[name=sel_comment_editor_colorset]").removeAttr('name');
|
||||
selectbox.attr('name','sel_comment_editor_colorset');
|
||||
}
|
||||
|
||||
if(ret_obj['error'] == 0 && ret_obj.colorset){
|
||||
var it = new Array();
|
||||
var items = ret_obj['colorset']['item'];
|
||||
if(typeof(items[0]) == 'undefined'){
|
||||
it[0] = items;
|
||||
}else{
|
||||
it = items;
|
||||
}
|
||||
var sel = 0;
|
||||
for(var i=0,c=it.length;i<c;i++){
|
||||
selectbox.options[i]=new Option(it[i].title,it[i].name);
|
||||
if(params.selected_colorset && params.selected_colorset == it[i].name) sel = i;
|
||||
}
|
||||
selectbox.options[sel].selected = true;
|
||||
selectbox.style.display="";
|
||||
}else{
|
||||
selectbox.style.display="none";
|
||||
selectbox.innerHTML="";
|
||||
}
|
||||
if(ret_obj['error'] == 0 && ret_obj.colorset){
|
||||
var it = new Array();
|
||||
|
||||
var items = ret_obj['colorset']['item'];
|
||||
if(typeof(items[0]) == 'undefined'){
|
||||
it[0] = items;
|
||||
}else{
|
||||
it = items;
|
||||
}
|
||||
var selectAttr = "";
|
||||
for(var i=0;i<it.length;i++){
|
||||
selectbox.append($('<option value="'+it[i].name+'" >'+it[i].title+'</option>'));
|
||||
}
|
||||
selectbox.css('display','');
|
||||
}else{
|
||||
selectbox.css('display','none');
|
||||
selectbox.innerHTML="";
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue