mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-06 18:21:39 +09:00
moduleModel 및 moduleController에서 제공하던 각 모듈별 설정을 이용시 너무 많은 설정값들이 생길 경우 이를 serialize/ unserialize하는데 드는 부하가 커짐을 방지하기 위해서 module_config외에 module_part_config 테이블을 주고 module_srl 별 설정을 분산하도록 하여 쓸데없는 부하가 생기지 않도록 수정.
files/cache/module_info내에 있던 module_config 캐시 파일도 사용하지 않도록 변경 git-svn-id: http://xe-core.googlecode.com/svn/sandbox@4696 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
cc7dd67ed2
commit
5934906056
41 changed files with 372 additions and 445 deletions
|
|
@ -47,15 +47,9 @@
|
|||
* @brief RSS 모듈별 설정 함수
|
||||
**/
|
||||
function setRssModuleConfig($module_srl, $open_rss) {
|
||||
$oModuleModel = &getModel('module');
|
||||
$oModuleController = &getController('module');
|
||||
|
||||
$rss_config = $oModuleModel->getModuleConfig('rss');
|
||||
$rss_config->module_config[$module_srl]->module_srl = $module_srl;
|
||||
$rss_config->module_config[$module_srl]->open_rss = $open_rss;
|
||||
|
||||
$oModuleController->insertModuleConfig('rss', $rss_config);
|
||||
|
||||
$config->open_rss = $open_rss;
|
||||
$oModuleController->insertModulePartConfig('rss',$module_srl,$config);
|
||||
return new Object();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@
|
|||
$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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,11 +16,8 @@
|
|||
function getRssModuleConfig($module_srl) {
|
||||
// rss 모듈의 config를 가져옴
|
||||
$oModuleModel = &getModel('module');
|
||||
$rss_config = $oModuleModel->getModuleConfig('rss');
|
||||
|
||||
$module_rss_config = $rss_config->module_config[$module_srl];
|
||||
|
||||
if(!$module_rss_config->module_srl) {
|
||||
$module_rss_config = $oModuleModel->getModuleConfig('rss', $module_srl);
|
||||
if(!$module_rss_config) {
|
||||
$module_rss_config->module_srl = $module_srl;
|
||||
$module_rss_config->open_rss = 'N';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,72 +25,38 @@
|
|||
**/
|
||||
$mid = Context::get('mid'); ///< 대상 모듈 id, 없으면 전체로
|
||||
|
||||
// rss module config를 가져옴
|
||||
$oModuleModel = &getModel('module');
|
||||
$rss_config = $oModuleModel->getModuleConfig('rss');
|
||||
|
||||
/**
|
||||
* 요청된 모듈 혹은 전체 모듈의 정보를 구하고 open_rss의 값을 체크
|
||||
**/
|
||||
$mid_list = array();
|
||||
$module_srls = array();
|
||||
$rss_config = array();
|
||||
|
||||
// mid값이 없으면 전체 mid중 open_rss == 'Y|H'인 걸 고름
|
||||
if(!$mid) {
|
||||
// 하나의 mid가 지정되어 있으면 그 mid에 대한 것만 추출
|
||||
if($mid) {
|
||||
$module_srl = $this->module_info->module_srl;
|
||||
$config = $oModuleModel->getModulePartConfig('rss', $module_srl);
|
||||
if($config->open_rss && $config->open_rss != 'N') {
|
||||
$module_srls[] = $module_srl;
|
||||
$rss_config[$module_srl] = $config->open_rss;
|
||||
}
|
||||
|
||||
$module_srl_list = null;
|
||||
|
||||
// rss config에 등록된 모듈중 rss 공개하는 것들의 module_srl을 고름
|
||||
if($rss_config->module_config && count($rss_config->module_config)) {
|
||||
foreach($rss_config->module_config as $key => $val) {
|
||||
if($val->open_rss == 'N' || !$val->open_rss) continue;
|
||||
$module_srl_list[] = $val->module_srl;
|
||||
// mid 가 선택되어 있지 않으면 전체
|
||||
} else {
|
||||
$rss_config = $oModuleModel->getModulePartConfigs('rss');
|
||||
if($rss_config) {
|
||||
foreach($rss_config as $module_srl => $config) {
|
||||
if($config && $config->open_rss != 'N') {
|
||||
$module_srls[] = $module_srl;
|
||||
$rss_config[$module_srl] = $config->open_rss;
|
||||
}
|
||||
}
|
||||
}
|
||||
// 선택된 모듈이 없으면 패스
|
||||
if(!$module_srl_list || !count($module_srl_list)) return $this->dispError();
|
||||
|
||||
// 선택된 모듈들을 정리
|
||||
$args->module_srls = implode(',',$module_srl_list);
|
||||
$module_list = $oModuleModel->getMidList($args);
|
||||
if(!$module_list) return $this->dispError();
|
||||
|
||||
// 대상 모듈을 정리함
|
||||
$module_srl_list = array();
|
||||
foreach($module_list as $mid => $val) {
|
||||
$val->open_rss = $rss_config->module_config[$val->module_srl]->open_rss;
|
||||
$module_srl_list[] = $val->module_srl;
|
||||
$mid_list[$val->module_srl] = $val;
|
||||
}
|
||||
if(!count($module_srl_list)) return $this->dispError();
|
||||
unset($output);
|
||||
unset($args);
|
||||
|
||||
$module_srl = implode(',',$module_srl_list);
|
||||
|
||||
// 있으면 해당 모듈의 정보를 구함
|
||||
} else {
|
||||
// 모듈의 설정 정보를 받아옴 (module model 객체를 이용)
|
||||
$module_info = $oModuleModel->getModuleInfoByMid($mid);
|
||||
if($module_info->mid != $mid) return $this->dispError();
|
||||
|
||||
// 해당 모듈이 rss를 사용하는지 확인
|
||||
$rss_module_config = $rss_config->module_config[$module_info->module_srl];
|
||||
if(!$rss_module_config->open_rss) $rss_module_config->open_rss = 'N';
|
||||
|
||||
// RSS 비활성화 되었는지 체크하여 비활성화시 에러 출력
|
||||
if($rss_module_config->open_rss == 'N') return $this->dispError();
|
||||
|
||||
$module_srl = $module_info->module_srl;
|
||||
$module_info->open_rss = $rss_module_config->open_rss;
|
||||
$mid_list[$module_info->module_srl] = $module_info;
|
||||
|
||||
unset($args);
|
||||
}
|
||||
|
||||
/**
|
||||
* 출력할 컨텐츠 추출을 위한 인자 정리
|
||||
**/
|
||||
$args->module_srl = $module_srl;
|
||||
if(!count($module_srls)) return $this->dispError();
|
||||
|
||||
$args->module_srls = implode(',',$module_srls);
|
||||
$module_list = $oModuleModel->getMidList($args);
|
||||
|
||||
$args->search_target = 'is_secret';
|
||||
$args->search_keyword = 'N';
|
||||
$args->page = 1;
|
||||
|
|
@ -107,7 +73,7 @@
|
|||
$document_list = $output->data;
|
||||
|
||||
// rss 제목 및 정보등을 추출
|
||||
if($this->mid) {
|
||||
if($mid) {
|
||||
$info->title = Context::getBrowserTitle();
|
||||
$info->description = $this->module_info->description;
|
||||
$info->link = getUrl('','mid',Context::get('mid'));
|
||||
|
|
@ -121,7 +87,7 @@
|
|||
|
||||
// RSS 출력물에서 사용될 변수 세팅
|
||||
Context::set('info', $info);
|
||||
Context::set('mid_list', $mid_list);
|
||||
Context::set('rss_config', $rss_config);
|
||||
Context::set('document_list', $document_list);
|
||||
|
||||
// 결과 출력을 XMLRPC로 강제 지정
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
<title><![CDATA[{$oDocument->getTitleText()}]]></title>
|
||||
<author><![CDATA[{$oDocument->getNickName()}]]></author>
|
||||
<link><![CDATA[{$oDocument->getPermanentUrl()}]]></link>
|
||||
<!--@if($mid_list[$oDocument->get('module_srl')]->open_rss=='Y')-->
|
||||
<!--@if($rss_config[$oDocument->get('module_srl')]->open_rss=='Y')-->
|
||||
<description><![CDATA[{$oDocument->getContent(false,false,true)}]]></description>
|
||||
<!--@else-->
|
||||
<description><![CDATA[{$oDocument->getContentText(100)}]]></description>
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
<td class="wide">
|
||||
<select name="open_rss" class="w400">
|
||||
<!--@foreach($lang->open_rss_types as $key=>$val)-->
|
||||
<option value="{$key}" <!--@if($rss_config->open_rss==$key)-->selected="selected"<!--@end-->>{$val}</option>
|
||||
<option value="{$key}" <!--@if(!$rss_config->open_rss && $key=='N')-->selected="selected"<!--@elseif($rss_config->open_rss==$key)-->selected="selected"<!--@end-->>{$val}</option>
|
||||
<!--@end-->
|
||||
</select>
|
||||
<p>{$lang->about_open_rss}</p>
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
<title><![CDATA[{$oDocument->getTitleText()}]]></title>
|
||||
<author><![CDATA[{$oDocument->getNickName()}]]></author>
|
||||
<link><![CDATA[{$oDocument->getPermanentUrl()}]]></link>
|
||||
<!--@if($mid_list[$oDocument->get('module_srl')]->open_rss=='Y')-->
|
||||
<!--@if($rss_config[$oDocument->get('module_srl')]->open_rss=='Y')-->
|
||||
<description><![CDATA[{$oDocument->getContent(false)}]]></description>
|
||||
<!--@else-->
|
||||
<description><![CDATA[{$oDocument->getContentText(100)}]]></description>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue