mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-04 01:01:41 +09:00
XE 1.7 이하 버전에서 테이블 스키마 조정, 인덱스 추가, 임시파일 처리 등을 위해 만들어 놓은 업데이트 스크립트를 대부분 제거하여 처리 효율을 향상시킵니다. 이 중 대부분은 XE 개발 초창기(1.2 이전) 스키마 변경이 빈번하던 시절에 하위호환성을 위해 추가된 것으로, 이미 10년 이상 불필요한 상태였습니다. 단, 앞으로는 XE 1.8 미만 버전에서 라이믹스로 업데이트하기 어려워질 수 있습니다. XE 1.8 미만 버전을 사용하는 사이트에서는 먼저 XE 최신 버전으로 업데이트한 후 라이믹스를 덮어씌우는 방식으로 진행하여야 합니다.
284 lines
11 KiB
PHP
284 lines
11 KiB
PHP
<?php
|
|
/* Copyright (C) NAVER <http://www.navercorp.com> */
|
|
|
|
/**
|
|
* document class
|
|
* @brief document the module's high class
|
|
* {@internal Silently adds one extra Foo to compensate for lack of Foo }
|
|
*
|
|
* @author NAVER (developers@xpressengine.com)
|
|
* @package /modules/document
|
|
* @version 0.1
|
|
*/
|
|
class document extends ModuleObject
|
|
{
|
|
/**
|
|
* Search option to use in admin page
|
|
* @var array
|
|
*/
|
|
public $search_option = array('title', 'content', 'title_content', 'user_name');
|
|
|
|
/**
|
|
* Status list
|
|
* @var array
|
|
*/
|
|
public static $statusList = array('private' => 'PRIVATE', 'public' => 'PUBLIC', 'secret' => 'SECRET', 'temp' => 'TEMP');
|
|
|
|
/**
|
|
* Implement if additional tasks are necessary when installing
|
|
* @return Object
|
|
*/
|
|
function moduleInstall()
|
|
{
|
|
// Register action forward (to use in administrator mode)
|
|
$oModuleController = getController('module');
|
|
|
|
$oDB = &DB::getInstance();
|
|
$oDB->addIndex("documents","idx_module_list_order", array("module_srl","list_order"));
|
|
$oDB->addIndex("documents","idx_module_update_order", array("module_srl","update_order"));
|
|
$oDB->addIndex("documents","idx_module_readed_count", array("module_srl","readed_count"));
|
|
$oDB->addIndex("documents","idx_module_voted_count", array("module_srl","voted_count"));
|
|
$oDB->addIndex("documents","idx_module_regdate", array("module_srl","regdate"));
|
|
$oDB->addIndex("documents","idx_module_notice", array("module_srl","is_notice"));
|
|
$oDB->addIndex("documents","idx_module_document_srl", array("module_srl","document_srl"));
|
|
$oDB->addIndex("documents","idx_module_blamed_count", array("module_srl","blamed_count"));
|
|
$oDB->addIndex("document_aliases", "idx_module_title", array("module_srl","alias_title"), true);
|
|
$oDB->addIndex("document_extra_vars", "unique_extra_vars", array("module_srl","document_srl","var_idx","lang_code"), true);
|
|
// 2007. 10. 17 Add a trigger to delete all posts together when the module is deleted
|
|
$oModuleController->insertTrigger('module.deleteModule', 'document', 'controller', 'triggerDeleteModuleDocuments', 'after');
|
|
|
|
// 2009. 01. 29 Added a trigger for additional setup
|
|
$oModuleController->insertTrigger('module.dispAdditionSetup', 'document', 'view', 'triggerDispDocumentAdditionSetup', 'before');
|
|
}
|
|
|
|
/**
|
|
* A method to check if successfully installed
|
|
* @return bool
|
|
*/
|
|
function checkUpdate()
|
|
{
|
|
$oDB = DB::getInstance();
|
|
|
|
// 2007. 8. 23: create a clustered index in the document table
|
|
if(!$oDB->isIndexExists("documents","idx_module_list_order")) return true;
|
|
if(!$oDB->isIndexExists("documents","idx_module_update_order")) return true;
|
|
if(!$oDB->isIndexExists("documents","idx_module_readed_count")) return true;
|
|
if(!$oDB->isIndexExists("documents","idx_module_voted_count")) return true;
|
|
if(!$oDB->isIndexExists("documents","idx_module_regdate")) return true;
|
|
|
|
// 2007. 10. 17 Add a trigger to delete all posts together when the module is deleted
|
|
if(!ModuleModel::getTrigger('module.deleteModule', 'document', 'controller', 'triggerDeleteModuleDocuments', 'after')) return true;
|
|
|
|
// 2007. 11. 20 create a composite index on the columns(module_srl + is_notice)
|
|
if(!$oDB->isIndexExists("documents","idx_module_notice")) return true;
|
|
|
|
// 2008. 02. 18 create a composite index on the columns(module_srl + document_srl) (checked by Manian))
|
|
if(!$oDB->isIndexExists("documents","idx_module_document_srl")) return true;
|
|
|
|
// 2008. 04. 23 Add a column(blamed_count)
|
|
if(!$oDB->isIndexExists("documents","idx_module_blamed_count")) return true;
|
|
|
|
// 2009. 01. 29 Added a trigger for additional setup
|
|
if(!ModuleModel::getTrigger('module.dispAdditionSetup', 'document', 'view', 'triggerDispDocumentAdditionSetup', 'before')) return true;
|
|
|
|
// 2009. 03. 11 check the index in the document_extra_vars table
|
|
if(!$oDB->isIndexExists("document_extra_vars", "unique_extra_vars")) return true;
|
|
if($oDB->isIndexExists("document_extra_vars", "unique_module_vars")) return true;
|
|
|
|
// 2011. 03. 30 Cubrid index Check the index in the document_extra_vars table
|
|
if(!$oDB->isIndexExists("document_extra_vars", "idx_document_list_order")) return true;
|
|
|
|
// 2011. 10. 25 status index check
|
|
if(!$oDB->isIndexExists("documents", "idx_module_status")) return true;
|
|
|
|
// 2012. 02. 27 Add a trigger to copy extra keys when the module is copied
|
|
if(!ModuleModel::getTrigger('module.procModuleAdminCopyModule', 'document', 'controller', 'triggerCopyModuleExtraKeys', 'after')) return true;
|
|
|
|
// 2012. 08. 29 Add a trigger to copy additional setting when the module is copied
|
|
if(!ModuleModel::getTrigger('module.procModuleAdminCopyModule', 'document', 'controller', 'triggerCopyModule', 'after')) return true;
|
|
|
|
// 2016. 1. 27: Add a column(declare_message) for report
|
|
if(!$oDB->isColumnExists("document_declared_log","declare_message")) return true;
|
|
|
|
// 2016. 3. 14 Add a column(document_upate_log) for admin
|
|
if(!$oDB->isColumnExists('document_update_log', 'is_admin')) return true;
|
|
|
|
// 2019. 3. 07 #1146
|
|
if(!$oDB->isColumnExists('document_update_log', 'reason_update')) return true;
|
|
|
|
// 2017.12.21 Add an index for nick_name
|
|
if(!$oDB->isIndexExists('documents', 'idx_nick_name')) return true;
|
|
|
|
// 2018.01.24 Improve mass file deletion
|
|
if(!ModuleModel::getTrigger('file.deleteFile', 'document', 'controller', 'triggerAfterDeleteFile', 'after')) return true;
|
|
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* Execute update
|
|
* @return Object
|
|
*/
|
|
function moduleUpdate()
|
|
{
|
|
$oDB = DB::getInstance();
|
|
$oModuleController = getController('module');
|
|
|
|
// 2007. 8. 23: create a clustered index in the document table
|
|
if(!$oDB->isIndexExists("documents","idx_module_list_order"))
|
|
{
|
|
$oDB->addIndex("documents","idx_module_list_order", array("module_srl","list_order"));
|
|
}
|
|
|
|
if(!$oDB->isIndexExists("documents","idx_module_update_order"))
|
|
{
|
|
$oDB->addIndex("documents","idx_module_update_order", array("module_srl","update_order"));
|
|
}
|
|
|
|
if(!$oDB->isIndexExists("documents","idx_module_readed_count"))
|
|
{
|
|
$oDB->addIndex("documents","idx_module_readed_count", array("module_srl","readed_count"));
|
|
}
|
|
|
|
if(!$oDB->isIndexExists("documents","idx_module_voted_count"))
|
|
{
|
|
$oDB->addIndex("documents","idx_module_voted_count", array("module_srl","voted_count"));
|
|
}
|
|
|
|
if(!$oDB->isIndexExists("documents","idx_module_regdate"))
|
|
{
|
|
$oDB->addIndex("documents","idx_module_regdate", array("module_srl","regdate"));
|
|
}
|
|
|
|
// 2007. 10. 17 Add a trigger to delete all posts together when the module is deleted
|
|
if(!ModuleModel::getTrigger('module.deleteModule', 'document', 'controller', 'triggerDeleteModuleDocuments', 'after'))
|
|
{
|
|
$oModuleController->insertTrigger('module.deleteModule', 'document', 'controller', 'triggerDeleteModuleDocuments', 'after');
|
|
}
|
|
|
|
// 2007. 11. 20 create a composite index on the columns(module_srl + is_notice)
|
|
if(!$oDB->isIndexExists("documents","idx_module_notice"))
|
|
{
|
|
$oDB->addIndex("documents","idx_module_notice", array("module_srl","is_notice"));
|
|
}
|
|
|
|
// 2008. 02. 18 create a composite index on the columns(module_srl + document_srl) (checked by Manian))
|
|
if(!$oDB->isIndexExists("documents","idx_module_document_srl"))
|
|
{
|
|
$oDB->addIndex("documents","idx_module_document_srl", array("module_srl","document_srl"));
|
|
}
|
|
|
|
// 2008. 04. 23 Add a column(blamed count)
|
|
if(!$oDB->isIndexExists("documents","idx_module_blamed_count"))
|
|
{
|
|
$oDB->addIndex('documents', 'idx_module_blamed_count', array('module_srl', 'blamed_count'));
|
|
}
|
|
|
|
// 2009. 01. 29 Added a trigger for additional setup
|
|
if(!ModuleModel::getTrigger('module.dispAdditionSetup', 'document', 'view', 'triggerDispDocumentAdditionSetup', 'before'))
|
|
{
|
|
$oModuleController->insertTrigger('module.dispAdditionSetup', 'document', 'view', 'triggerDispDocumentAdditionSetup', 'before');
|
|
}
|
|
|
|
// 2009. 03. 11 Check the index in the document_extra_vars table
|
|
if(!$oDB->isIndexExists("document_extra_vars", "unique_extra_vars"))
|
|
{
|
|
$oDB->addIndex("document_extra_vars", "unique_extra_vars", array("module_srl","document_srl","var_idx","lang_code"), true);
|
|
}
|
|
if($oDB->isIndexExists("document_extra_vars", "unique_module_vars"))
|
|
{
|
|
$oDB->dropIndex("document_extra_vars", "unique_module_vars", true);
|
|
}
|
|
|
|
// 2011. 03. 30 Cubrid index Check the index in the document_extra_vars table
|
|
if(!$oDB->isIndexExists("document_extra_vars", "idx_document_list_order"))
|
|
{
|
|
$oDB->addIndex("document_extra_vars", "idx_document_list_order", array("document_srl","module_srl","var_idx"), false);
|
|
}
|
|
|
|
if(!$oDB->isIndexExists("documents", "idx_module_status"))
|
|
{
|
|
$oDB->addIndex("documents", "idx_module_status", array("module_srl","status"));
|
|
}
|
|
|
|
// 2012. 02. 27 Add a trigger to copy extra keys when the module is copied
|
|
if(!ModuleModel::getTrigger('module.procModuleAdminCopyModule', 'document', 'controller', 'triggerCopyModuleExtraKeys', 'after'))
|
|
{
|
|
$oModuleController->insertTrigger('module.procModuleAdminCopyModule', 'document', 'controller', 'triggerCopyModuleExtraKeys', 'after');
|
|
}
|
|
|
|
// 2012. 08. 29 Add a trigger to copy additional setting when the module is copied
|
|
if(!ModuleModel::getTrigger('module.procModuleAdminCopyModule', 'document', 'controller', 'triggerCopyModule', 'after'))
|
|
{
|
|
$oModuleController->insertTrigger('module.procModuleAdminCopyModule', 'document', 'controller', 'triggerCopyModule', 'after');
|
|
}
|
|
|
|
// 2016. 1. 27: Add a column(declare_message) for report
|
|
if(!$oDB->isColumnExists("document_declared_log","declare_message"))
|
|
{
|
|
$oDB->addColumn('document_declared_log',"declare_message","text");
|
|
}
|
|
|
|
// 2016. 3. 14 Add a column(document_update_log) for admin
|
|
if(!$oDB->isColumnExists('document_update_log', 'is_admin'))
|
|
{
|
|
$oDB->addColumn('document_update_log', 'is_admin', 'varchar', 1);
|
|
$oDB->addIndex('document_update_log', 'idx_is_admin', array('is_admin'));
|
|
}
|
|
|
|
// 2019. 3. 07 #1146
|
|
if(!$oDB->isColumnExists('document_update_log', 'reason_update'))
|
|
{
|
|
$oDB->addColumn('document_update_log', 'reason_update', 'text', '', null, false, 'extra_vars');
|
|
}
|
|
|
|
// 2017.12.21 Add an index for nick_name
|
|
if(!$oDB->isIndexExists('documents', 'idx_nick_name'))
|
|
{
|
|
$oDB->addIndex('documents', 'idx_nick_name', array('nick_name'));
|
|
}
|
|
|
|
// 2018.01.24 Improve mass file deletion
|
|
if(!ModuleModel::getTrigger('file.deleteFile', 'document', 'controller', 'triggerAfterDeleteFile', 'after'))
|
|
{
|
|
$oModuleController->insertTrigger('file.deleteFile', 'document', 'controller', 'triggerAfterDeleteFile', 'after');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Re-generate the cache file
|
|
* @return void
|
|
*/
|
|
function recompileCache()
|
|
{
|
|
}
|
|
|
|
/**
|
|
* Document Status List
|
|
* @return array
|
|
*/
|
|
public static function getStatusList()
|
|
{
|
|
return self::$statusList;
|
|
}
|
|
|
|
/**
|
|
* Return default status
|
|
* @return string
|
|
*/
|
|
public static function getDefaultStatus()
|
|
{
|
|
return self::$statusList['public'];
|
|
}
|
|
|
|
/**
|
|
* Return status by key
|
|
* @return string
|
|
*/
|
|
public static function getConfigStatus($key)
|
|
{
|
|
return self::$statusList[$key];
|
|
}
|
|
}
|
|
/* End of file document.class.php */
|
|
/* Location: ./modules/document/document.class.php */
|