mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-08 11:11:39 +09:00
* 기본 에디터 스타일과 기본 스타일 설정이 충돌하는 경우가 많았습니다. - 기본 스타일을 지정했는데, 기본 에디터 스타일 내의 스타일 지정이 있는 경우 반영이 안되는 경우, 또는 기본 에디터 스타일을 변경했는데 기본 스타일 설정 때문에 반영이 적절하게 되지 않는 경우 등. * 기본 에디터 스타일에서도 less 또는 sass를 사용하도록 하고 싶었지만, 위지윅 에디터에서 본문에 나타날 스타일을 그대로 보여주는데 한계가 있었습니다. - 기본 에디터 스타일을 위지윅 에디터 내에서 나타내기 위해서 변칙적인 방법이 많이 활용되었습니다. 때문에 실제 본문에서 적용되는 스타일 시트의 우선순위와 위지윅 에디터 내에서 적용되는 스타일 시트의 우선순위에 차이가 있었습니다. 이 차이는 실제 보여지는 스타일과 작성하는 에디터 내의 스타일 차이를 크게 만들 가능성이 있었습니다. * 기능의 의미가 많이 퇴색되었고, 의미 전달이 명확하지 않은 기능이었습니다. - 기능상 기본 에디터 스타일과 기본 스타일은 서로 겹치는 영역의 기능입니다. 기본으로 포함된 두 에디터 스타일 간에 차이가 크지 않기도 해서 어떤 기능인지 사용자가 알아채기도 어려웠습니다. 자료실에 배포되고 있는 에디터 스타일도 대단히 적었습니다. * 게시판이나 각 글의 모듈 스킨에서 지정하는 스타일과 충돌할 가능성도 있습니다. 따라서, 에디터 스타일이 의도한 것 처럼 글의 스타일에 대한 관리자 통제 기능은 유지하면서, 다른 기능과 중복되거나 충돌할 수 있는 기능을 정리합니다. 가능한 많은 환경에서 테스트 하였으나, 추가로 이와 관련한 의견이 있을 경우 merge 후에도 계속 반영 해나가겠습니다.
177 lines
7.8 KiB
PHP
177 lines
7.8 KiB
PHP
<?php
|
|
/* Copyright (C) NAVER <http://www.navercorp.com> */
|
|
/**
|
|
* @class editor
|
|
* @author NAVER (developers@xpressengine.com)
|
|
* @brief high class of the editor odule
|
|
*/
|
|
class editor extends ModuleObject
|
|
{
|
|
/**
|
|
* @brief Default font config
|
|
*/
|
|
public $default_font_config = array(
|
|
'default_font_family' => 'inherit',
|
|
'default_font_size' => '13px',
|
|
'default_line_height' => '160%',
|
|
'default_paragraph_spacing' => '0',
|
|
'default_word_break' => 'normal',
|
|
);
|
|
|
|
/**
|
|
* @brief Default editor config
|
|
*/
|
|
public $default_editor_config = array(
|
|
'editor_skin' => 'ckeditor',
|
|
'editor_height' => 300,
|
|
'editor_toolbar' => 'default',
|
|
'editor_toolbar_hide' => 'N',
|
|
'mobile_editor_height' => 200,
|
|
'mobile_editor_toolbar' => 'simple',
|
|
'mobile_editor_toolbar_hide' => 'Y',
|
|
'sel_editor_colorset' => 'moono-lisa',
|
|
'comment_editor_skin' => 'ckeditor',
|
|
'comment_editor_height' => 100,
|
|
'comment_editor_toolbar' => 'simple',
|
|
'comment_editor_toolbar_hide' => 'N',
|
|
'mobile_comment_editor_height' => 100,
|
|
'mobile_comment_editor_toolbar' => 'simple',
|
|
'mobile_comment_editor_toolbar_hide' => 'Y',
|
|
'sel_comment_editor_colorset' => 'moono-lisa',
|
|
'content_font' => '',
|
|
'content_font_size' => '13px',
|
|
'content_line_height' => '160%',
|
|
'content_paragraph_spacing' => '0px',
|
|
'content_word_break' => 'normal',
|
|
'enable_autosave' => 'Y',
|
|
'allow_html' => 'Y',
|
|
'editor_focus' => 'N',
|
|
'autoinsert_image' => 'paragraph',
|
|
'additional_css' => array(),
|
|
'additional_mobile_css' => array(),
|
|
'additional_plugins' => array(),
|
|
'remove_plugins' => array('liststyle', 'tabletools', 'tableselection', 'contextmenu'),
|
|
);
|
|
|
|
/**
|
|
* @brief Implement if additional tasks are necessary when installing
|
|
*/
|
|
function moduleInstall()
|
|
{
|
|
// Register action forward (to use in administrator mode)
|
|
$oModuleController = getController('module');
|
|
// Add the default editor component
|
|
$oEditorController = getAdminController('editor');
|
|
$oEditorController->insertComponent('colorpicker_text',true);
|
|
$oEditorController->insertComponent('colorpicker_bg',true);
|
|
$oEditorController->insertComponent('emoticon',true);
|
|
$oEditorController->insertComponent('url_link',true);
|
|
$oEditorController->insertComponent('image_link',true);
|
|
$oEditorController->insertComponent('multimedia_link',true);
|
|
$oEditorController->insertComponent('quotation',true);
|
|
$oEditorController->insertComponent('table_maker',true);
|
|
$oEditorController->insertComponent('poll_maker',true);
|
|
$oEditorController->insertComponent('image_gallery',true);
|
|
// Create a directory to use in the editor module
|
|
FileHandler::makeDir('./files/cache/editor');
|
|
// 2007. 10. 17 Add a trigger to delete automatically saved document whenever the document(insert or update) is modified
|
|
$oModuleController->insertTrigger('document.insertDocument', 'editor', 'controller', 'triggerDeleteSavedDoc', 'after');
|
|
$oModuleController->insertTrigger('document.updateDocument', 'editor', 'controller', 'triggerDeleteSavedDoc', 'after');
|
|
// 2007. 10. 23 Add an editor trigger on the module addition setup
|
|
$oModuleController->insertTrigger('module.dispAdditionSetup', 'editor', 'view', 'triggerDispEditorAdditionSetup', 'before');
|
|
// 2009. 04. 14 Add a trigger from compiled codes of the editor component
|
|
$oModuleController->insertTrigger('display', 'editor', 'controller', 'triggerEditorComponentCompile', 'before');
|
|
}
|
|
|
|
/**
|
|
* @brief a method to check if successfully installed
|
|
*/
|
|
function checkUpdate()
|
|
{
|
|
$oModuleModel = getModel('module');
|
|
|
|
$oDB = &DB::getInstance();
|
|
// 2009. 06. 15 Save module_srl when auto-saving
|
|
if(!$oDB->isColumnExists("editor_autosave","module_srl")) return true;
|
|
if(!$oDB->isIndexExists("editor_autosave","idx_module_srl")) return true;
|
|
|
|
// XEVE-17-030
|
|
if(!$oDB->isColumnExists('editor_autosave', 'certify_key')) return true;
|
|
if(!$oDB->isIndexExists('editor_autosave', 'idx_certify_key')) return true;
|
|
|
|
// 2007. 10. 17 Add a trigger to delete automatically saved document whenever the document(insert or update) is modified
|
|
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 Add an editor trigger on the module addition setup
|
|
if(!$oModuleModel->getTrigger('module.dispAdditionSetup', 'editor', 'view', 'triggerDispEditorAdditionSetup', 'before')) return true;
|
|
// 2009. 04. 14 Add a trigger from compiled codes of the editor component
|
|
if(!$oModuleModel->getTrigger('display', 'editor', 'controller', 'triggerEditorComponentCompile', 'before')) return true;
|
|
// 2009. 06. 19 Remove unused trigger
|
|
if($oModuleModel->getTrigger('file.getIsPermitted', 'editor', 'controller', 'triggerSrlSetting', 'before')) return true;
|
|
|
|
// 2012. 08. 29 Add a trigger to copy additional setting when the module is copied
|
|
if(!$oModuleModel->getTrigger('module.procModuleAdminCopyModule', 'editor', 'controller', 'triggerCopyModule', 'after')) return true;
|
|
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* @brief Execute update
|
|
*/
|
|
function moduleUpdate()
|
|
{
|
|
$oModuleModel = getModel('module');
|
|
$oModuleController = getController('module');
|
|
$oDB = &DB::getInstance();
|
|
|
|
// Save module_srl when auto-saving 15/06/2009
|
|
if(!$oDB->isColumnExists('editor_autosave', 'module_srl'))
|
|
{
|
|
$oDB->addColumn('editor_autosave', 'module_srl', 'number');
|
|
}
|
|
if(!$oDB->isIndexExists('editor_autosave', 'idx_module_srl'))
|
|
{
|
|
$oDB->addIndex('editor_autosave', 'idx_module_srl', 'module_srl');
|
|
}
|
|
|
|
// XEVE-17-030
|
|
if(!$oDB->isColumnExists('editor_autosave', 'certify_key'))
|
|
{
|
|
$oDB->addColumn('editor_autosave', 'certify_key', 'varchar', 32);
|
|
}
|
|
if(!$oDB->isIndexExists('editor_autosave', 'idx_certify_key'))
|
|
{
|
|
$oDB->addIndex('editor_autosave', 'idx_certify_key', 'certify_key');
|
|
}
|
|
|
|
// 2007. 10. 17 Add a trigger to delete automatically saved document whenever the document(insert or update) is modified
|
|
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. Add an editor trigger on the module addition setup
|
|
if(!$oModuleModel->getTrigger('module.dispAdditionSetup', 'editor', 'view', 'triggerDispEditorAdditionSetup', 'before'))
|
|
$oModuleController->insertTrigger('module.dispAdditionSetup', 'editor', 'view', 'triggerDispEditorAdditionSetup', 'before');
|
|
// 2009. 04. 14 Add a trigger from compiled codes of the editor component
|
|
if(!$oModuleModel->getTrigger('display', 'editor', 'controller', 'triggerEditorComponentCompile', 'before'))
|
|
$oModuleController->insertTrigger('display', 'editor', 'controller', 'triggerEditorComponentCompile', 'before');
|
|
// 2009. 06. 19 Remove unused trigger
|
|
if($oModuleModel->getTrigger('file.getIsPermitted', 'editor', 'controller', 'triggerSrlSetting', 'before'))
|
|
$oModuleController->deleteTrigger('file.getIsPermitted', 'editor', 'controller', 'triggerSrlSetting', 'before');
|
|
|
|
// 2012. 08. 29 Add a trigger to copy additional setting when the module is copied
|
|
if(!$oModuleModel->getTrigger('module.procModuleAdminCopyModule', 'editor', 'controller', 'triggerCopyModule', 'after'))
|
|
{
|
|
$oModuleController->insertTrigger('module.procModuleAdminCopyModule', 'editor', 'controller', 'triggerCopyModule', 'after');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @brief Re-generate the cache file
|
|
*/
|
|
function recompileCache()
|
|
{
|
|
}
|
|
}
|
|
/* End of file editor.class.php */
|
|
/* Location: ./modules/editor/editor.class.php */
|