위젯 검출 정규 표현식을 수정

git-svn-id: http://xe-core.googlecode.com/svn/sandbox@2892 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
zero 2007-11-01 10:28:42 +00:00
parent f9896fe51a
commit 90aa62a6ac
993 changed files with 9190 additions and 10457 deletions

View file

@ -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">RSS</title>
<title xml:lang="zh-CN">RSS</title>
<title xml:lang="jp">RSS</title>

View file

@ -3,5 +3,6 @@
<grants />
<actions>
<action name="rss" type="view" standalone="true" />
<action name="procRssAdminInsertModuleConfig" type="controller" standalone="true" />
</actions>
</module>

View file

@ -8,10 +8,17 @@
// general words
$lang->rss_disable = "Disable RSS";
$lang->rss_type = "RSS feed type";
$lang->open_rss = 'Open RSS';
$lang->open_rss_types = array(
'Y' => 'Open all',
'H' => 'Open summary',
'N' => 'Not open',
);
// for description
$lang->about_rss_disable = "If checked, RSS will be disabled.";
$lang->about_rss_type = "You can assign RSS feed type.";
$lang->about_open_rss = 'You can select RSS on the current module to be open to the public.\nNo matter the view permission of article , RSS will be open to the public by its option.';
// for error message
$lang->msg_rss_is_disabled = "RSS function is disabled.";

View file

@ -8,10 +8,17 @@
// palabras generales
$lang->rss_disable = "Desactivar RSS";
$lang->rss_type = "Tipo de RSS a imprimir";
$lang->open_rss = 'Abrir RSS';
$lang->open_rss_types = array(
'Y' => 'Abrir todo',
'H' => 'Abrir el sumario',
'N' => 'No abrir',
);
// para la descripcion
$lang->about_rss_disable = "Si selecciona esta opción, RSS será desactivado.";
$lang->about_rss_type = "Usted puede asignar el tipo de RSS a imprimir.";
$lang->about_open_rss = 'Usted puede seleccionar RSS abierto al público en el módulo actual.\nIndependiente de la atribución de ver, dependiendo de la opción de RSS puede ser abierto al público.';
// mensajes de error
$lang->msg_rss_is_disabled = "Función de RSS esta desactivada.";

View file

@ -8,10 +8,17 @@
// 一般用語
$lang->rss_disable = "RSS機能ロック";
$lang->rss_type = "出力するRSSタイプ";
$lang->open_rss = 'RSS配信';
$lang->open_rss_types = array(
'Y' => '全文配信 ',
'H' => '要約配信',
'N' => '配信しない',
);
// 説明文
$lang->about_rss_disable = "チェックするとRSSの出力を行いません。";
$lang->about_rss_type = "出力するRSSタイプを指定することができます。";
$lang->about_open_rss = '現在のモジュールに対して「RSS配信」を選択することができます。書き込みの内容が読める権限とは関係なくオプションによってRSSが配信されます。';
// エラーメッセージ
$lang->msg_rss_is_disabled = "RSS機能がロックされています。";

View file

@ -8,10 +8,17 @@
// 일반 단어들
$lang->rss_disable = "RSS 끄기";
$lang->rss_type = "출력할 RSS 형식";
$lang->open_rss = 'RSS 공개';
$lang->open_rss_types = array(
'Y' => '전문 공개 ',
'H' => '요약 공개',
'N' => '공개하지 않음',
);
// 설명문
$lang->about_rss_disable = "체크하시면 RSS 출력을 하지 않습니다";
$lang->about_rss_type = "출력하실 RSS 형식을 지정하실 수 있습니다";
$lang->about_open_rss = '현재 모듈에 대한 RSS 공개를 선택하실 수 있습니다. 글 보는 권한과 상관없이 옵션에 따라 RSS가 공개됩니다';
// 에러 메세지들
$lang->msg_rss_is_disabled = "RSS 기능이 잠겨 있습니다";

View file

@ -8,10 +8,17 @@
// 一般单词
$lang->rss_disable = "关闭RSS";
$lang->rss_type = "将显示的RSS形式";
$lang->open_rss = '公开RSS';
$lang->open_rss_types = array(
'Y' => '公开全文',
'H' => '公开摘要',
'N' => '不公开',
);
// 说明文
$lang->about_rss_disable = "选此项不显示RSS。";
$lang->about_rss_type = "可以指定要显示的RSS形式。";
$lang->about_open_rss = '可以选择对该模块的RSS公开程度。RSS公开将不受查看内容权限的限制随公开RSS的选项公开RSS。';
// 错误提示
$lang->msg_rss_is_disabled = "RSS功能处于锁定状态。";

View file

@ -0,0 +1,52 @@
<?php
/**
* @class rssAdminController
* @author zero (zero@nzeo.com)
* @brief rss module의 admin controller class
*
* RSS 2.0형식으로 문서 출력
*
**/
class rssAdminController extends rss {
/**
* @brief 초기화
**/
function init() {
}
/**
* @brief RSS 모듈별 설정
**/
function procRssAdminInsertModuleConfig() {
// 필요한 변수를 받아옴
$module_srl = Context::get('target_module_srl');
$open_rss = Context::get('open_rss');
if(!$module_srl || !$open_rss) return new Object(-1, 'msg_invalid_request');
if(!in_array($open_rss, array('Y','H','N'))) $open_rss = 'N';
// 설정 저장
$output = $this->setRssModuleConfig($module_srl, $open_rss);
$this->setMessage('success_registed');
}
/**
* @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);
return new Object();
}
}
?>

View file

@ -13,8 +13,15 @@
function moduleInstall() {
// action forward에 등록
$oModuleController = &getController('module');
$oModuleController->insertActionForward('rss', 'view', 'rss');
// 2007. 10. 18 서비스형 모듈의 추가 설정에 참여하기 위한 trigger 추가
$oModuleController->insertTrigger('module.dispAdditionSetup', 'rss', 'view', 'triggerDispRssAdditionSetup', 'before');
// 2007. 10. 19 출력하기 전에 rss url을 세팅하는 트리거 호출
$oModuleController->insertTrigger('display', 'rss', 'controller', 'triggerRssUrlInsert', 'before');
return new Object();
}
@ -22,6 +29,14 @@
* @brief 설치가 이상이 없는지 체크하는 method
**/
function checkUpdate() {
$oModuleModel = &getModel('module');
// 2007. 10. 18 서비스형 모듈의 추가 설정에 참여하기 위한 trigger 추가
if(!$oModuleModel->getTrigger('module.dispAdditionSetup', 'rss', 'view', 'triggerDispRssAdditionSetup', 'before')) return true;
// 2007. 10. 19 출력하기 전에 rss url을 세팅하는 트리거 호출
if(!$oModuleModel->getTrigger('display', 'rss', 'controller', 'triggerRssUrlInsert', 'before')) return true;
return false;
}
@ -29,7 +44,18 @@
* @brief 업데이트 실행
**/
function moduleUpdate() {
return new Object();
$oModuleModel = &getModel('module');
$oModuleController = &getController('module');
// 2007. 10. 18 서비스형 모듈의 추가 설정에 참여하기 위한 trigger 추가
if(!$oModuleModel->getTrigger('module.dispAdditionSetup', 'rss', 'view', 'triggerDispRssAdditionSetup', 'before'))
$oModuleController->insertTrigger('module.dispAdditionSetup', 'rss', 'view', 'triggerDispRssAdditionSetup', 'before');
// 2007. 10. 19 출력하기 전에 rss url을 세팅하는 트리거 호출
if(!$oModuleModel->getTrigger('display', 'rss', 'controller', 'triggerRssUrlInsert', 'before'))
$oModuleController->insertTrigger('display', 'rss', 'controller', 'triggerRssUrlInsert', 'before');
return new Object(0, 'success_updated');
}
/**

View file

@ -0,0 +1,42 @@
<?php
/**
* @class rssController
* @author zero (zero@nzeo.com)
* @brief rss module의 controller class
*
* RSS 2.0형식으로 문서 출력
*
**/
class rssController extends rss {
/**
* @brief 초기화
**/
function init() {
}
/**
* @brief RSS 사용 유무를 체크하여 rss url 추가
**/
function triggerRssUrlInsert() {
$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();
// 선택된 모듈의 rss설정을 가져옴
$oRssModel = &getModel('rss');
$rss_config = $oRssModel->getRssModuleConfig($current_module_srl);
if($rss_config->open_rss != 'N') Context::set('rss_url', getUrl('','mid',Context::get('mid'),'act','rss'));
return new Object();
}
}
?>

30
modules/rss/rss.model.php Normal file
View file

@ -0,0 +1,30 @@
<?php
/**
* @class rssModel
* @author zero (zero@nzeo.com)
* @brief rss module의 model class
*
* RSS 2.0형식으로 문서 출력
*
**/
class rssModel extends rss {
/**
* @brief 특정 모듈의 rss 설정을 return
**/
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->module_srl = $module_srl;
$module_rss_config->open_rss = 'N';
}
return $module_rss_config;
}
}
?>

View file

@ -37,21 +37,39 @@
$end_date = Context::get('end_date'); ///< 종료 일자, 없으면 무시
if(strlen($end_date)!=14 || !ereg("^([0-9]){14}$", $end_date) ) unset($end_date);
// rss module config를 가져옴
$oModuleModel = &getModel('module');
$rss_config = $oModuleModel->getModuleConfig('rss');
/**
* 요청된 모듈 혹은 전체 모듈의 정보를 구하고 open_rss의 값을 체크
**/
$oModuleModel = &getModel('module');
$mid_list = array();
// mid값이 없으면 전체 mid중 open_rss == 'Y|H'인 걸 고름
if(!$mid) {
$args->open_rss = "'Y','H'";
$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') continue;
$module_srl_list[] = $val->module_srl;
}
}
// 선택된 모듈이 없으면 패스
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;
}
@ -67,10 +85,14 @@
$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];
// RSS 비활성화 되었는지 체크하여 비활성화시 에러 출력
if($module_info->open_rss == 'N') return $this->dispError();
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);
@ -138,5 +160,33 @@
$this->setTemplatePath($this->module_path.'tpl');
$this->setTemplateFile("error");
}
/**
* @brief 서비스형 모듈의 추가 설정을 위한 부분
* rss의 사용 형태에 대한 설정만 받음
**/
function triggerDispRssAdditionSetup(&$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();
// 선택된 모듈의 rss설정을 가져옴
$oRssModel = &getModel('rss');
$rss_config = $oRssModel->getRssModuleConfig($current_module_srl);
Context::set('rss_config', $rss_config);
// 템플릿 파일 지정
$oTemplate = &TemplateHandler::getInstance();
$tpl = $oTemplate->compile($this->module_path.'tpl', 'rss_module_config');
$obj .= $tpl;
return new Object();
}
}
?>

View file

@ -1,7 +0,0 @@
<filter name="insert_config" module="rss" act="procRssAdminInsertConfig" confirm_msg_code="confirm_submit">
<form />
<response>
<tag name="error" />
<tag name="message" />
</response>
</filter>

View file

@ -0,0 +1,7 @@
<filter name="insert_rss_module_config" module="rss" act="procRssAdminInsertModuleConfig" confirm_msg_code="confirm_submit">
<form />
<response>
<tag name="error" />
<tag name="message" />
</response>
</filter>

View file

@ -0,0 +1,29 @@
<!--%import("filter/insert_rss_module_config.xml")-->
<form action="./" method="post" onsubmit="return procFilter(this, insert_rss_module_config)">
<input type="hidden" name="target_module_srl" value="{$rss_config->module_srl}" />
<table cellspacing="0" class="adminTable">
<col width="150" />
<col />
<col width="100" />
<caption>{$lang->open_rss}</caption>
<tr>
<th scope="row">{$lang->open_rss}</th>
<td>
<select name="open_rss" class="w200">
<!--@foreach($lang->open_rss_types as $key=>$val)-->
<option value="{$key}" <!--@if($rss_config->open_rss==$key)-->selected="selected"<!--@end-->>{$val}</option>
<!--@end-->
</select>
<p>{$lang->about_open_rss}</p>
</td>
<th class="centerButton">
<span class="button"><input type="submit" value="{$lang->cmd_save}"/></span>
</th>
</tr>
</table>
</form>
<div class="gap1"></div>