mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-04-29 07:12:15 +09:00
위젯 검출 정규 표현식을 수정
git-svn-id: http://xe-core.googlecode.com/svn/sandbox@2892 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
f9896fe51a
commit
90aa62a6ac
993 changed files with 9190 additions and 10457 deletions
|
|
@ -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">엮인글</title>
|
||||
<title xml:lang="zh-CN">引用</title>
|
||||
<title xml:lang="jp">トラックバック</title>
|
||||
|
|
|
|||
|
|
@ -2,9 +2,14 @@
|
|||
<module>
|
||||
<grants />
|
||||
<actions>
|
||||
<action name="dispTrackbackSend" type="view" standalone="true" />
|
||||
<action name="dispTrackbackAdminList" type="view" admin_index="true" standalone="true" />
|
||||
|
||||
<action name="trackback" type="controller" standalone="true" />
|
||||
|
||||
<action name="procTrackbackSend" type="controller" standalone="true" />
|
||||
<action name="procTrackbackAdminDeleteChecked" type="controller" standalone="true" />
|
||||
<action name="procTrackbackAdminInsertConfig" type="controller" standalone="true" />
|
||||
<action name="trackback" type="controller" standalone="true" />
|
||||
<action name="procTrackbackAdminInsertModuleConfig" type="controller" standalone="true" />
|
||||
</actions>
|
||||
</module>
|
||||
|
|
|
|||
|
|
@ -10,6 +10,10 @@
|
|||
$lang->msg_cart_is_null = '삭제할 글을 선택해주세요';
|
||||
$lang->msg_checked_trackback_is_deleted = '%d개의 엮인글이 삭제되었습니다';
|
||||
|
||||
$lang->send_trackback_url = '발송할 주소';
|
||||
$lang->msg_trackback_url_is_invalid = '발송할 대상 url이 올바르지 않습니다';
|
||||
$lang->msg_trackback_send_success = '엮인글 발송을 성공하였습니다';
|
||||
|
||||
$lang->search_target_list = array(
|
||||
'url' => '대상 URL',
|
||||
'blog_name' => '대상 사이트 이름',
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
<filter name="insert_trackback_module_config" module="trackback" act="procTrackbackAdminInsertModuleConfig" confirm_msg_code="confirm_submit">
|
||||
<form />
|
||||
<response>
|
||||
<tag name="error" />
|
||||
<tag name="message" />
|
||||
</response>
|
||||
</filter>
|
||||
9
modules/trackback/tpl/filter/send_trackback.xml
Normal file
9
modules/trackback/tpl/filter/send_trackback.xml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
<filter name="send_trackback" module="trackback" act="procTrackbackSend">
|
||||
<form>
|
||||
<node target="target_srl" required="true" />
|
||||
<node target="trackback_url" required="true" />
|
||||
<node target="charset" required="true" />
|
||||
</form>
|
||||
<parameter />
|
||||
<response />
|
||||
</filter>
|
||||
47
modules/trackback/tpl/send_trackback_form.html
Normal file
47
modules/trackback/tpl/send_trackback_form.html
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
<!--%import("filter/send_trackback.xml")-->
|
||||
|
||||
<div id="popHeadder">
|
||||
<h1>{$lang->cmd_send_trackback}</h1>
|
||||
</div>
|
||||
|
||||
<form action="./" method="get" onsubmit="return procFilter(this, send_trackback)">
|
||||
<input type="hidden" name="target_srl" value="{$oDocument->document_srl}" />
|
||||
|
||||
<div id="popBody">
|
||||
<table cellspacing="0" class="adminTable">
|
||||
<col width="130" />
|
||||
<col />
|
||||
<tr>
|
||||
<th scope="row"><label>{$lang->title}</label></th>
|
||||
<td>{$oDocument->getTitleText()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label>{$lang->content}</label></th>
|
||||
<td>{$oDocument->getSummary()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="textfield1">{$lang->send_trackback_url}</label></th>
|
||||
<td>
|
||||
<input type="text" id="textfield1" name="trackback_url" value="" class="inputTypeText w300" />
|
||||
<select name="charset">
|
||||
<option value='UTF-8'>UTF-8</option>
|
||||
<option value='EUC-KR'>EUC-KR</option>
|
||||
<option value='EUC-JP'>EUC-JP</option>
|
||||
<option value='SHIFT_JIS'>SHIFT_JIS</option>
|
||||
<option value='EUC-CN'>EUC-CN</option>
|
||||
<option value='HZ'>HZ</option>
|
||||
<option value='BIG5'>BIG5</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div id="popFooter">
|
||||
<div class="tCenter gap1">
|
||||
<a href="#" onclick="window.close(); return false;" class="button"><span>{$lang->cmd_close}</span></a>
|
||||
<span class="button"><input type="submit" value="{$lang->cmd_send_trackback}" /></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
|
@ -4,23 +4,22 @@
|
|||
|
||||
<h3>{$lang->trackback} <span class="gray">{$lang->cmd_management}</span></h3>
|
||||
|
||||
<div class="gap1"></div>
|
||||
|
||||
<form action="./" method="get" onsubmit="return procFilter(this, insert_config)">
|
||||
<table cellspacing="0" class="tableType2 gap1">
|
||||
<table cellspacing="0" class="adminTable">
|
||||
<col width="150" />
|
||||
<col />
|
||||
<col width="100" />
|
||||
<tr>
|
||||
<th scope="col">{$lang->enable_trackback}</th>
|
||||
<td>
|
||||
<input type="checkbox" name="enable_trackback" value="Y" size="3" <!--@if($config->enable_trackback!='N')-->checked="checked"<!--@end-->/> {$lang->cmd_use}
|
||||
<p>{$lang->about_enable_trackback}</p>
|
||||
</td>
|
||||
<th scope="col" class="centerButton"><span class="button"><input type="submit" value="{$lang->cmd_registration}" accesskey="s" /></span></th>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- 버튼 -->
|
||||
<div class="tRight gap1">
|
||||
<span class="button"><input type="submit" value="{$lang->cmd_registration}" accesskey="s" /></span>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<!-- 정보 -->
|
||||
|
|
@ -32,19 +31,27 @@
|
|||
<input type="hidden" name="page" value="{$page}" />
|
||||
|
||||
<!-- 목록 -->
|
||||
<table cellspacing="0" class="tableType4">
|
||||
<table cellspacing="0" class="adminTable">
|
||||
<col width="50" />
|
||||
<col />
|
||||
<col />
|
||||
<col />
|
||||
<col width="80" />
|
||||
<col width="70" />
|
||||
<col width="50" />
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">{$lang->no}</th>
|
||||
<th scope="col">
|
||||
<div class="nowrap">
|
||||
<input type="checkbox" onclick="checkboxSelectAll(this.form, 'cart'); return false;" />
|
||||
<select name="module_srl" class="mid_list" id="module_srl">
|
||||
<input type="checkbox" onclick="checkboxSelectAll(this.form, 'cart'); return false;" />
|
||||
<select name="module_srl" id="module_srl">
|
||||
<option value="">{$lang->module}</option>
|
||||
<!--@foreach($mid_list as $key => $val)-->
|
||||
<option value="{$val->module_srl}" <!--@if($module_srl == $val->module_srl)-->selected="selected"<!--@end-->>{$val->browser_title}</option>
|
||||
<!--@end-->
|
||||
</select><a href="#" onclick="location.href=current_url.setQuery('module_srl',xGetElementById('module_srl').options[xGetElementById('module_srl').selectedIndex].value);return false;" class="button"><span>GO</span></a>
|
||||
</select>
|
||||
<input type="button" name="go_button" id="go_button" value="GO" class="buttonTypeGo" onclick="location.href=current_url.setQuery('module_srl',xGetElementById('module_srl').options[xGetElementById('module_srl').selectedIndex].value);return false;"/>
|
||||
</div>
|
||||
</th>
|
||||
<th scope="col">{$lang->blog_name}</th>
|
||||
|
|
@ -65,7 +72,7 @@
|
|||
<td>{htmlspecialchars($val->title)}</td>
|
||||
<td class="tahoma">{zdate($val->regdate,"Y-m-d")}</td>
|
||||
<td class="tahoma">{$val->ipaddress}</td>
|
||||
<td class="blue"><a href="{getUrl('','document_srl',$val->document_srl)}#trackback_{$val->trackback_srl}')" onclick="window.open(this.href);return false;">{$lang->cmd_move}</a></td>
|
||||
<td class="blue"><a href="{getUrl('','document_srl',$val->document_srl)}#trackback_{$val->trackback_srl}" onclick="window.open(this.href);return false;">{$lang->cmd_move}</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
|
|
|
|||
18
modules/trackback/tpl/trackback_module_config.html
Normal file
18
modules/trackback/tpl/trackback_module_config.html
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<!--%import("filter/insert_trackback_module_config.xml")-->
|
||||
|
||||
<form action="./" method="post" onsubmit="return procFilter(this, insert_trackback_module_config)">
|
||||
<input type="hidden" name="target_module_srl" value="{$trackback_config->module_srl}" />
|
||||
|
||||
<table cellspacing="0" class="adminTable">
|
||||
<col width="150" />
|
||||
<col />
|
||||
<col width="100" />
|
||||
<caption>{$lang->trackback}</caption>
|
||||
<tr>
|
||||
<th>{$lang->enable_trackback}</th>
|
||||
<td><input type="checkbox" name="enable_trackback" value="Y" <!--@if($trackback_config->enable_trackback == "Y")-->checked="checked"<!--@end--> /></td>
|
||||
<th class="centerButton"><span class="button"><input type="submit" value="{$lang->cmd_save}"/></span></th>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
<div class="gap1"></div>
|
||||
|
|
@ -37,21 +37,14 @@
|
|||
$this->setMessage( sprintf(Context::getLang('msg_checked_trackback_is_deleted'), $trackback_count) );
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈에 속한 모든 트랙백 삭제
|
||||
**/
|
||||
function deleteModuleTrackbacks($module_srl) {
|
||||
// 삭제
|
||||
$args->module_srl = $module_srl;
|
||||
$output = executeQuery('trackback.deleteModuleTrackbacks', $args);
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 설정 저장
|
||||
**/
|
||||
function procTrackbackAdminInsertConfig() {
|
||||
// 기존 설정을 가져옴
|
||||
$oModuleModel = &getModel('module');
|
||||
$config = $oModuleModel->getModuleConfig('trackback');
|
||||
|
||||
$config->enable_trackback = Context::get('enable_trackback');
|
||||
if($config->enable_trackback != 'Y') $config->enable_trackback = 'N';
|
||||
|
||||
|
|
@ -61,5 +54,48 @@
|
|||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Trackback 모듈별 설정
|
||||
**/
|
||||
function procTrackbackAdminInsertModuleConfig() {
|
||||
// 필요한 변수를 받아옴
|
||||
$module_srl = Context::get('target_module_srl');
|
||||
$enable_trackback = Context::get('enable_trackback');
|
||||
if(!in_array($enable_trackback, array('Y','N'))) $enable_trackback = 'N';
|
||||
|
||||
if(!$module_srl || !$enable_trackback) return new Object(-1, 'msg_invalid_request');
|
||||
|
||||
// 설정 저장
|
||||
$output = $this->setTrackbackModuleConfig($module_srl, $enable_trackback);
|
||||
|
||||
$this->setMessage('success_registed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Trackback 모듈별 설정 함수
|
||||
**/
|
||||
function setTrackbackModuleConfig($module_srl, $enable_trackback) {
|
||||
$oModuleModel = &getModel('module');
|
||||
$oModuleController = &getController('module');
|
||||
|
||||
$trackback_config = $oModuleModel->getModuleConfig('trackback');
|
||||
$trackback_config->module_config[$module_srl]->module_srl = $module_srl;
|
||||
$trackback_config->module_config[$module_srl]->enable_trackback = $enable_trackback;
|
||||
|
||||
$oModuleController->insertModuleConfig('trackback', $trackback_config);
|
||||
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈에 속한 모든 트랙백 삭제
|
||||
**/
|
||||
function deleteModuleTrackbacks($module_srl) {
|
||||
// 삭제
|
||||
$args->module_srl = $module_srl;
|
||||
$output = executeQuery('trackback.deleteModuleTrackbacks', $args);
|
||||
|
||||
return $output;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -16,6 +16,18 @@
|
|||
$oModuleController->insertActionForward('trackback', 'controller', 'trackback');
|
||||
$oModuleController->insertActionForward('trackback', 'view', 'dispTrackbackAdminList');
|
||||
|
||||
// 2007. 10. 17 게시글이 삭제될때 엮인글도 삭제되도록 trigger 등록
|
||||
$oModuleController->insertTrigger('document.deleteDocument', 'trackback', 'controller', 'triggerDeleteDocumentTrackbacks', 'after');
|
||||
|
||||
// 2007. 10. 17 모듈이 삭제될때 등록된 엮인글도 모두 삭제하는 트리거 추가
|
||||
$oModuleController->insertTrigger('module.deleteModule', 'trackback', 'controller', 'triggerDeleteModuleTrackbacks', 'after');
|
||||
|
||||
// 2007. 10. 18 게시글 팝업메뉴에서 엮인글 발송 기능 추가
|
||||
$oModuleController->insertTrigger('document.getDocumentMenu', 'trackback', 'controller', 'triggerSendTrackback', 'after');
|
||||
|
||||
// 2007. 10. 19 모듈별 엮인글 받는 기능 추가
|
||||
$oModuleController->insertTrigger('module.dispAdditionSetup', 'trackback', 'view', 'triggerDispTrackbackAdditionSetup', 'before');
|
||||
|
||||
return new Object();
|
||||
}
|
||||
|
||||
|
|
@ -23,6 +35,20 @@
|
|||
* @brief 설치가 이상이 없는지 체크하는 method
|
||||
**/
|
||||
function checkUpdate() {
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
// 2007. 10. 17 게시글이 삭제될때 댓글도 삭제되도록 trigger 등록
|
||||
if(!$oModuleModel->getTrigger('document.deleteDocument', 'trackback', 'controller', 'triggerDeleteDocumentTrackbacks', 'after')) return true;
|
||||
|
||||
// 2007. 10. 17 모듈이 삭제될때 등록된 엮인글도 모두 삭제하는 트리거 추가
|
||||
if(!$oModuleModel->getTrigger('module.deleteModule', 'trackback', 'controller', 'triggerDeleteModuleTrackbacks', 'after')) return true;
|
||||
|
||||
// 2007. 10. 18 게시글 팝업메뉴에서 엮인글 발송 기능 추가
|
||||
if(!$oModuleModel->getTrigger('document.getDocumentMenu', 'trackback', 'controller', 'triggerSendTrackback', 'after')) return true;
|
||||
|
||||
// 2007. 10. 19 모듈별 엮인글 받는 기능 추가
|
||||
if(!$oModuleModel->getTrigger('module.dispAdditionSetup', 'trackback', 'view', 'triggerDispTrackbackAdditionSetup', 'before')) return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -30,7 +56,26 @@
|
|||
* @brief 업데이트 실행
|
||||
**/
|
||||
function moduleUpdate() {
|
||||
return new Object();
|
||||
$oModuleModel = &getModel('module');
|
||||
$oModuleController = &getController('module');
|
||||
|
||||
// 2007. 10. 17 게시글이 삭제될때 댓글도 삭제되도록 trigger 등록
|
||||
if(!$oModuleModel->getTrigger('document.deleteDocument', 'trackback', 'controller', 'triggerDeleteDocumentTrackbacks', 'after'))
|
||||
$oModuleController->insertTrigger('document.deleteDocument', 'trackback', 'controller', 'triggerDeleteDocumentTrackbacks', 'after');
|
||||
|
||||
// 2007. 10. 17 모듈이 삭제될때 등록된 엮인글도 모두 삭제하는 트리거 추가
|
||||
if(!$oModuleModel->getTrigger('module.deleteModule', 'trackback', 'controller', 'triggerDeleteModuleTrackbacks', 'after'))
|
||||
$oModuleController->insertTrigger('module.deleteModule', 'trackback', 'controller', 'triggerDeleteModuleTrackbacks', 'after');
|
||||
|
||||
// 2007. 10. 18 게시글 팝업메뉴에서 엮인글 발송 기능 추가
|
||||
if(!$oModuleModel->getTrigger('document.getDocumentMenu', 'trackback', 'controller', 'triggerSendTrackback', 'after'))
|
||||
$oModuleController->insertTrigger('document.getDocumentMenu', 'trackback', 'controller', 'triggerSendTrackback', 'after');
|
||||
|
||||
// 2007. 10. 19 모듈별 엮인글 받는 기능 추가
|
||||
if(!$oModuleModel->getTrigger('module.dispAdditionSetup', 'trackback', 'view', 'triggerDispTrackbackAdditionSetup', 'before'))
|
||||
$oModuleController->insertTrigger('module.dispAdditionSetup', 'trackback', 'view', 'triggerDispTrackbackAdditionSetup', 'before');
|
||||
|
||||
return new Object(0, 'success_updated');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -13,18 +13,98 @@
|
|||
function init() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 트랙백 발송
|
||||
**/
|
||||
function procTrackbackSend() {
|
||||
// 게시물 번호와 발송하려는 엮인글 주소를 구함
|
||||
$document_srl = Context::get('target_srl');
|
||||
$trackback_url = Context::get('trackback_url');
|
||||
$charset = Context::get('charset');
|
||||
if(!$document_srl || !$trackback_url || !$charset) return new Object(-1, 'msg_invalid_request');
|
||||
|
||||
// 로그인 정보 구함
|
||||
$logged_info = Context::get('logged_info');
|
||||
if(!$logged_info->member_srl) return new Object(-1, 'msg_not_permitted');
|
||||
|
||||
// 게시물의 정보를 구해와서 있는지 여부와 권한을 체크
|
||||
$oDocumentModel = &getModel('document');
|
||||
$oDocument = $oDocumentModel->getDocument($document_srl);
|
||||
if(!$oDocument->isExists()) return new Object(-1, 'msg_invalid_request');
|
||||
if($oDocument->getMemberSrl() != $logged_info->member_srl) return new Object(-1, 'msg_not_permitted');
|
||||
|
||||
// 엮인글 발송
|
||||
return $this->sendTrackback($oDocument, $trackback_url, $charset);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 문서 팝업메뉴에서 엮인글을 발송하는 메뉴 추가
|
||||
**/
|
||||
function triggerSendTrackback(&$menu_list) {
|
||||
$logged_info = Context::get('logged_info');
|
||||
if(!$logged_info->member_srl) return new Object();
|
||||
|
||||
// 요청된 게시물 번호와 현재 로그인 정보 구함
|
||||
$document_srl = Context::get('target_srl');
|
||||
$oDocumentModel = &getModel('document');
|
||||
$oDocument = $oDocumentModel->getDocument($document_srl);
|
||||
if(!$oDocument->isExists()) return new Object();
|
||||
if($oDocument->getMemberSrl() != $logged_info->member_srl) return new Object();
|
||||
|
||||
// 엮인글 발송 링크 추가
|
||||
$menu_str = Context::getLang('cmd_send_trackback');
|
||||
$menu_link = sprintf("%s?module=trackback&act=dispTrackbackSend&document_srl=%s",Context::getRequestUri(),$document_srl);
|
||||
$menu_list[] = sprintf("\n%s,%s,popopen('%s','SendTrackback')", '', $menu_str, $menu_link);
|
||||
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief document삭제시 해당 document의 엮인글을 삭제하는 trigger
|
||||
**/
|
||||
function triggerDeleteDocumentTrackbacks(&$obj) {
|
||||
$document_srl = $obj->document_srl;
|
||||
if(!$document_srl) return new Object();
|
||||
|
||||
return $this->deleteTrackbacks($document_srl, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief module 삭제시 해당 엮인글 모두 삭제하는 trigger
|
||||
**/
|
||||
function triggerDeleteModuleTrackbacks(&$obj) {
|
||||
$module_srl = $obj->module_srl;
|
||||
if(!$module_srl) return new Object();
|
||||
|
||||
$oTrackbackController = &getAdminController('trackback');
|
||||
return $oTrackbackController->deleteModuleTrackbacks($module_srl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 엮인글 입력
|
||||
**/
|
||||
function trackback() {
|
||||
// 설정 구함
|
||||
$oModuleModel = &getModel('module');
|
||||
$config = $oModuleModel->getModuleConfig('trackback');
|
||||
if($config->enable_trackback == 'N') return $this->stop('fail');
|
||||
|
||||
// 출력을 XMLRPC로 설정
|
||||
Context::setRequestMethod("XMLRPC");
|
||||
|
||||
// 엮인글 받을때 필요한 변수를 구함
|
||||
$obj = Context::gets('document_srl','blog_name','url','title','excerpt');
|
||||
if(!$obj->document_srl || !$obj->url || !$obj->title || !$obj->excerpt) return $this->stop('fail');
|
||||
|
||||
// 엮인글 모듈의 기본 설정을 받음
|
||||
$oModuleModel = &getModel('module');
|
||||
$config = $oModuleModel->getModuleConfig('trackback');
|
||||
|
||||
// 현재 모듈의 설정을 구함
|
||||
$module_srl = Context::get('module_srl');
|
||||
$enable_trackback = $config->module_config[$module_srl]->enable_trackback;
|
||||
|
||||
// 설정 구함
|
||||
if(!$enable_trackback) $enable_trackback = $config->enable_trackback;
|
||||
|
||||
// 관리자가 금지하였을 경우에는 엮인글을 받지 않음
|
||||
if($enable_trackback == 'N') return $this->stop('fail');
|
||||
|
||||
return $this->insertTrackback($obj);
|
||||
}
|
||||
|
||||
|
|
@ -131,13 +211,13 @@
|
|||
*
|
||||
* 발송 후 결과처리는 하지 않는 구조임
|
||||
**/
|
||||
function sendTrackback($document, $trackback_url, $charset) {
|
||||
function sendTrackback($oDocument, $trackback_url, $charset) {
|
||||
// 발송할 정보를 정리
|
||||
$http = parse_url($trackback_url);
|
||||
$obj->blog_name = Context::getBrowserTitle();
|
||||
$obj->title = $document->title;
|
||||
$obj->excerpt = cut_str(strip_tags($document->content), 240);
|
||||
$obj->url = sprintf("%s?document_srl=%d", Context::getRequestUri(), $document->document_srl);
|
||||
$obj->title = $oDocument->getTitleText();
|
||||
$obj->excerpt = $oDocument->getSummary(200);
|
||||
$obj->url = getUrl('','document_srl',$oDocument->document_srl);
|
||||
|
||||
// blog_name, title, excerpt, url의 문자열을 요청된 charset으로 변경
|
||||
if($charset && function_exists('iconv')) {
|
||||
|
|
@ -178,11 +258,11 @@
|
|||
$content_length,
|
||||
$content
|
||||
);
|
||||
if(!$http['host']||!$http['port']) return;
|
||||
if(!$http['host']||!$http['port']) return new Object(-1,'msg_trackback_url_is_invalid');
|
||||
|
||||
// 발송하려는 대상 서버의 socket을 연다
|
||||
$fp = @fsockopen($http['host'], $http['port'], $errno, $errstr, 5);
|
||||
if(!$fp) return;
|
||||
if(!$fp) return new Object(-1,'msg_trackback_url_is_invalid');
|
||||
|
||||
// 작성한 헤더 정보를 발송
|
||||
fputs($fp, $header);
|
||||
|
|
@ -195,6 +275,8 @@
|
|||
|
||||
// socket 닫음
|
||||
fclose($fp);
|
||||
|
||||
return new Object(0, 'msg_trackback_send_success');
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -81,5 +81,21 @@
|
|||
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 특정 모듈의 trackback 설정을 return
|
||||
**/
|
||||
function getTrackbackModuleConfig($module_srl) {
|
||||
// trackback 모듈의 config를 가져옴
|
||||
$oModuleModel = &getModel('module');
|
||||
$trackback_config = $oModuleModel->getModuleConfig('trackback');
|
||||
|
||||
$module_trackback_config = $trackback_config->module_config[$module_srl];
|
||||
if(!$module_trackback_config->module_srl) {
|
||||
$module_trackback_config->module_srl = $module_srl;
|
||||
$module_trackback_config->enable_trackback = $trackback_config->enable_trackback=='Y'?'Y':'N';
|
||||
}
|
||||
return $module_trackback_config;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
70
modules/trackback/trackback.view.php
Normal file
70
modules/trackback/trackback.view.php
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
<?php
|
||||
/**
|
||||
* @class trackbackView
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief trackback모듈의 view class
|
||||
**/
|
||||
|
||||
class trackbackView extends trackback {
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 목록 출력 (관리자용)
|
||||
**/
|
||||
function dispTrackbackSend() {
|
||||
$document_srl = Context::get('document_srl');
|
||||
if(!$document_srl) return $this->stop('msg_invalid_request');
|
||||
|
||||
$logged_info = Context::get('logged_info');
|
||||
if(!$logged_info->member_srl) return $this->stop('msg_not_permitted');
|
||||
|
||||
// 원본 글의 정보를 구함
|
||||
$oDocumentModel = &getModel('document');
|
||||
$oDocument = $oDocumentModel->getDocument($document_srl);
|
||||
if(!$oDocument->isExists()) return $this->stop('msg_invalid_document');
|
||||
if($oDocument->isSecret()) return $this->stop('msg_invalid_request');
|
||||
|
||||
if($oDocument->getMemberSrl() != $logged_info->member_srl) return $this->stop('msg_not_permitted');
|
||||
|
||||
Context::set('oDocument', $oDocument);
|
||||
|
||||
// 템플릿 지정
|
||||
$this->setLayoutFile('popup_layout');
|
||||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
$this->setTemplateFile('send_trackback_form');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 서비스형 모듈의 추가 설정을 위한 부분
|
||||
* trackback의 사용 형태에 대한 설정만 받음
|
||||
**/
|
||||
function triggerDispTrackbackAdditionSetup(&$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();
|
||||
|
||||
// 선택된 모듈의 trackback설정을 가져옴
|
||||
$oTrackbackModel = &getModel('trackback');
|
||||
$trackback_config = $oTrackbackModel->getTrackbackModuleConfig($current_module_srl);
|
||||
Context::set('trackback_config', $trackback_config);
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$oTemplate = &TemplateHandler::getInstance();
|
||||
$tpl = $oTemplate->compile($this->module_path.'tpl', 'trackback_module_config');
|
||||
$obj .= $tpl;
|
||||
|
||||
return new Object();
|
||||
}
|
||||
}
|
||||
?>
|
||||
Loading…
Add table
Add a link
Reference in a new issue