rhymix/modules/syndication/syndication.controller.php
mosmartin 4d272994dd english comments added
git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0_english@8278 201d5d3c-b55e-5fd7-737f-ddc643e51545
2011-04-06 16:48:06 +00:00

127 lines
4.5 KiB
PHP

<?php
/**
* @class syndicationController
* @author NHN (developers@xpressengine.com)
* @brief syndication module's Controller class
**/
class syndicationController extends syndication {
function triggerInsertDocument(&$obj) {
if($obj->module_srl < 1) return new Object();
$oSyndicationModel = &getModel('syndication');
$oModuleModel = &getModel('module');
if($oSyndicationModel->isExceptedModules($obj->module_srl)) return new Object();
$config = $oModuleModel->getModuleConfig('syndication');
$id = $oSyndicationModel->getID('channel', $obj->module_srl);
$this->ping($id, 'article');
return new Object();
}
function triggerUpdateDocument(&$obj) {
if($obj->module_srl < 1) return new Object();
$oSyndicationModel = &getModel('syndication');
$oModuleModel = &getModel('module');
if($oSyndicationModel->isExceptedModules($obj->module_srl)) return new Object();
$config = $oModuleModel->getModuleConfig('syndication');
$id = $oSyndicationModel->getID('channel', $obj->module_srl);
$this->ping($id, 'article');
return new Object();
}
function triggerDeleteDocument(&$obj) {
if($obj->module_srl < 1) return new Object();
$oSyndicationModel = &getModel('syndication');
$oModuleModel = &getModel('module');
if($oSyndicationModel->isExceptedModules($obj->module_srl)) return new Object();
$this->insertLog($obj->module_srl, $obj->document_srl, $obj->title, $obj->content);
$id = $oSyndicationModel->getID('channel', $obj->module_srl);
$this->ping($id, 'deleted');
return new Object();
}
function triggerDeleteModule(&$obj) {
$oSyndicationModel = &getModel('syndication');
$oModuleModel = &getModel('module');
if($oSyndicationModel->isExceptedModules($obj->module_srl)) return new Object();
$this->insertLog($obj->module_srl, $obj->document_srl, $obj->title, $obj->content);
$output = executeQuery('syndication.getExceptModule', $obj);
if($output->data->count) return new Object();
$id = $oSyndicationModel->getID('site', $obj->module_srl);
$this->ping($id, 'deleted');
return new Object();
}
function triggerMoveDocumentToTrash(&$obj) {
$document_srl = $obj->document_srl;
$module_srl = $obj->module_srl;
$oSyndicationModel = &getModel('syndication');
$oModuleModel = &getModel('module');
if($oSyndicationModel->isExceptedModules($module_srl)) return new Object();
$id = $oSyndicationModel->getID('channel', $module_srl);
$this->ping($id, 'deleted');
return new Object();
}
function triggerRestoreTrash(&$obj) {
$document_srl = $obj->document_srl;
$module_srl = $obj->module_srl;
$oSyndicationModel = &getModel('syndication');
$oModuleModel = &getModel('module');
if($oSyndicationModel->isExceptedModules($module_srl)) return new Object();
$id = $oSyndicationModel->getID('article', $module_srl.'-'.$document_srl);
$this->ping($id, 'article');
return new Object();
}
function insertLog($module_srl, $document_srl, $title = null, $summary = null) {
$args->module_srl = $module_srl;
$args->document_srl = $document_srl;
$args->title = $title;
$args->summary = $summary;
$output = executeQuery('syndication.insertLog', $args);
}
function ping($id, $type) {
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('syndication');
if(!count($config->target_services)) return;
if(substr($config->site_url,-1)!='/') $config->site_url .= '/';
foreach($config->target_services as $key => $val) {
$ping_url = trim($this->services[$val]);
if(!$ping_url) continue;
$ping_body = sprintf('http://%s?module=syndication&act=getSyndicationList&id=%s&type=%s', $config->site_url, $id, $type);
FileHandler::getRemoteResource($ping_url, null, 3, 'POST', 'application/x-www-form-urlencoded', array(), array(), array('link'=>$ping_body));
}
}
}
?>