issue 2662 poll, rss

git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@12257 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ovclas 2012-11-20 01:25:09 +00:00
parent 580222822a
commit ca9a828954
12 changed files with 1536 additions and 1408 deletions

View file

@ -1,155 +1,164 @@
<?php
/**
* The admin controller class of the rss module
/**
* The admin controller class of the rss module
*
* @author NHN (developers@xpressengine.com)
*/
class rssAdminController extends rss
{
/**
* Initialization
*
* @author NHN (developers@xpressengine.com)
**/
* @return void
*/
function init()
{
}
class rssAdminController extends rss {
/**
* All RSS feeds configurations
*
* @return void
*/
function procRssAdminInsertConfig()
{
$oModuleModel = &getModel('module');
$total_config = $oModuleModel->getModuleConfig('rss');
/**
* Initialization
*
* @return void
**/
function init() {
}
$config_vars = Context::getRequestVars();
/**
* All RSS feeds configurations
*
* @return void
**/
function procRssAdminInsertConfig() {
$oModuleModel = &getModel('module');
$total_config = $oModuleModel->getModuleConfig('rss');
$config_vars->feed_document_count = (int)$config_vars->feed_document_count;
$config_vars = Context::getRequestVars();
if(!$config_vars->use_total_feed) $alt_message = 'msg_invalid_request';
if(!in_array($config_vars->use_total_feed, array('Y','N'))) $config_vars->open_rss = 'Y';
$config_vars->feed_document_count = (int)$config_vars->feed_document_count;
if($config_vars->image || $config_vars->del_image)
{
$image_obj = $config_vars->image;
$config_vars->image = $total_config->image;
// Get a variable for the delete request
if($config_vars->del_image == 'Y' || $image_obj)
{
FileHandler::removeFile($config_vars->image);
$config_vars->image = '';
$total_config->image = '';
}
// Ignore if the file is not the one which has been successfully uploaded
if($image_obj['tmp_name'] && is_uploaded_file($image_obj['tmp_name']))
{
// Ignore if the file is not an image (swf is accepted ~)
$image_obj['name'] = Context::convertEncodingStr($image_obj['name']);
if(!$config_vars->use_total_feed) $alt_message = 'msg_invalid_request';
if(!in_array($config_vars->use_total_feed, array('Y','N'))) $config_vars->open_rss = 'Y';
if(!preg_match("/\.(jpg|jpeg|gif|png)$/i", $image_obj['name'])) $alt_message = 'msg_rss_invalid_image_format';
else
{
// Upload the file to a path
$path = './files/attach/images/rss/';
// Create a directory
if(!FileHandler::makeDir($path)) $alt_message = 'msg_error_occured';
else
{
$filename = $path.$image_obj['name'];
// Move the file
if(!move_uploaded_file($image_obj['tmp_name'], $filename)) $alt_message = 'msg_error_occured';
else
{
$config_vars->image = $filename;
}
}
}
}
}
if(!$config_vars->image && $config_vars->del_image != 'Y') $config_vars->image = $total_config->image;
if($config_vars->image || $config_vars->del_image) {
$image_obj = $config_vars->image;
$config_vars->image = $total_config->image;
// Get a variable for the delete request
if($config_vars->del_image == 'Y' || $image_obj) {
FileHandler::removeFile($config_vars->image);
$config_vars->image = '';
$total_config->image = '';
}
// Ignore if the file is not the one which has been successfully uploaded
if($image_obj['tmp_name'] && is_uploaded_file($image_obj['tmp_name'])) {
// Ignore if the file is not an image (swf is accepted ~)
$image_obj['name'] = Context::convertEncodingStr($image_obj['name']);
$output = $this->setFeedConfig($config_vars);
if(!preg_match("/\.(jpg|jpeg|gif|png)$/i", $image_obj['name'])) $alt_message = 'msg_rss_invalid_image_format';
else {
// Upload the file to a path
$path = './files/attach/images/rss/';
// Create a directory
if(!FileHandler::makeDir($path)) $alt_message = 'msg_error_occured';
else{
$filename = $path.$image_obj['name'];
// Move the file
if(!move_uploaded_file($image_obj['tmp_name'], $filename)) $alt_message = 'msg_error_occured';
else {
$config_vars->image = $filename;
}
}
}
}
}
if(!$config_vars->image && $config_vars->del_image != 'Y') $config_vars->image = $total_config->image;
if(!$alt_message) $alt_message = 'success_updated';
$output = $this->setFeedConfig($config_vars);
$alt_message = Context::getLang($alt_message);
$this->setMessage($alt_message, 'info');
if(!$alt_message) $alt_message = 'success_updated';
//$this->setLayoutPath('./common/tpl');
//$this->setLayoutFile('default_layout.html');
//$this->setTemplatePath($this->module_path.'tpl');
//$this->setTemplateFile("top_refresh.html");
$alt_message = Context::getLang($alt_message);
$this->setMessage($alt_message, 'info');
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispRssAdminIndex');
$this->setRedirectUrl($returnUrl);
}
//$this->setLayoutPath('./common/tpl');
//$this->setLayoutFile('default_layout.html');
//$this->setTemplatePath($this->module_path.'tpl');
//$this->setTemplateFile("top_refresh.html");
/**
* RSS Module configurations
*
* @return void
*/
function procRssAdminInsertModuleConfig()
{
// Get the object
$module_srl = Context::get('target_module_srl');
// In case of batch configuration of several modules
if(preg_match('/^([0-9,]+)$/',$module_srl)) $module_srl = explode(',',$module_srl);
else $module_srl = array($module_srl);
if(!is_array($module_srl)) $module_srl[0] = $module_srl;
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispRssAdminIndex');
$this->setRedirectUrl($returnUrl);
}
$config_vars = Context::getRequestVars();
$open_rss = $config_vars->open_rss;
$open_total_feed = $config_vars->open_total_feed;
$feed_description = trim($config_vars->feed_description);
$feed_copyright = trim($config_vars->feed_copyright);
/**
* RSS Module configurations
*
* @return void
**/
function procRssAdminInsertModuleConfig() {
// Get the object
$module_srl = Context::get('target_module_srl');
// In case of batch configuration of several modules
if(preg_match('/^([0-9,]+)$/',$module_srl)) $module_srl = explode(',',$module_srl);
else $module_srl = array($module_srl);
if(!is_array($module_srl)) $module_srl[0] = $module_srl;
if(!$module_srl || !$open_rss) return new Object(-1, 'msg_invalid_request');
$config_vars = Context::getRequestVars();
if(!in_array($open_rss, array('Y','H','N'))) $open_rss = 'N';
// Save configurations
for($i=0;$i<count($module_srl);$i++)
{
$srl = trim($module_srl[$i]);
if(!$srl) continue;
$output = $this->setRssModuleConfig($srl, $open_rss, $open_total_feed, $feed_description, $feed_copyright);
}
$open_rss = $config_vars->open_rss;
$open_total_feed = $config_vars->open_total_feed;
$feed_description = trim($config_vars->feed_description);
$feed_copyright = trim($config_vars->feed_copyright);
//$this->setError(0);
$this->setMessage('success_updated', 'info');
if(!$module_srl || !$open_rss) return new Object(-1, 'msg_invalid_request');
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispBoardAdminContent');
$this->setRedirectUrl($returnUrl);
}
if(!in_array($open_rss, array('Y','H','N'))) $open_rss = 'N';
// Save configurations
for($i=0;$i<count($module_srl);$i++) {
$srl = trim($module_srl[$i]);
if(!$srl) continue;
$output = $this->setRssModuleConfig($srl, $open_rss, $open_total_feed, $feed_description, $feed_copyright);
}
/**
* A funciton to configure all Feeds of the RSS module
*
* @param Object $config RSS all feeds config list
* @return Object
*/
function setFeedConfig($config)
{
$oModuleController = &getController('module');
$oModuleController->insertModuleConfig('rss',$config);
return new Object();
}
//$this->setError(0);
$this->setMessage('success_updated', 'info');
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispBoardAdminContent');
$this->setRedirectUrl($returnUrl);
}
/**
* A funciton to configure all Feeds of the RSS module
*
* @param Object $config RSS all feeds config list
* @return Object
**/
function setFeedConfig($config) {
$oModuleController = &getController('module');
$oModuleController->insertModuleConfig('rss',$config);
return new Object();
}
/**
* A function t configure the RSS module
*
* @param integer $module_srl Module_srl
* @param string $open_rss Choose open rss type. Y : Open all, H : Open summary, N : Not open
* @param string $open_total_feed N : use open total feed, T_N : not use open total feed
* @param string $feed_description Default value is 'N'
* @param string $feed_copyright Default value is 'N'
* @return Object
**/
function setRssModuleConfig($module_srl, $open_rss, $open_total_feed = 'N', $feed_description = 'N', $feed_copyright = 'N') {
$oModuleController = &getController('module');
$config->open_rss = $open_rss;
$config->open_total_feed = $open_total_feed;
if($feed_description != 'N') { $config->feed_description = $feed_description; }
if($feed_copyright != 'N') { $config->feed_copyright = $feed_copyright; }
$oModuleController->insertModulePartConfig('rss',$module_srl,$config);
return new Object();
}
}
?>
/**
* A function t configure the RSS module
*
* @param integer $module_srl Module_srl
* @param string $open_rss Choose open rss type. Y : Open all, H : Open summary, N : Not open
* @param string $open_total_feed N : use open total feed, T_N : not use open total feed
* @param string $feed_description Default value is 'N'
* @param string $feed_copyright Default value is 'N'
* @return Object
*/
function setRssModuleConfig($module_srl, $open_rss, $open_total_feed = 'N', $feed_description = 'N', $feed_copyright = 'N')
{
$oModuleController = &getController('module');
$config->open_rss = $open_rss;
$config->open_total_feed = $open_total_feed;
if($feed_description != 'N') { $config->feed_description = $feed_description; }
if($feed_copyright != 'N') { $config->feed_copyright = $feed_copyright; }
$oModuleController->insertModulePartConfig('rss',$module_srl,$config);
return new Object();
}
}
/* End of file rss.admin.controller.php */
/* Location: ./modules/rss/rss.admin.controller.php */

View file

@ -1,60 +1,65 @@
<?php
/**
* The admin view class of the rss module
/**
* The admin view class of the rss module
*
* @author NHN (developers@xpressengine.com)
*/
class rssAdminView extends rss
{
/**
* Initialization
*
* @author NHN (developers@xpressengine.com)
**/
* @return void
*/
function init()
{
//Set template path
$this->setTemplatePath($this->module_path.'tpl');
}
class rssAdminView extends rss {
/**
* Initialization
*
* @return void
**/
function init() {
//Set template path
$this->setTemplatePath($this->module_path.'tpl');
}
/**
* In case an administrator page has been initialized
*
* @return Object
*/
function dispRssAdminIndex()
{
$oModuleModel = &getModel('module');
$rss_config = $oModuleModel->getModulePartConfigs('rss');
$total_config = $oModuleModel->getModuleConfig('rss');
$oRssModel = &getModel('rss');
/**
* In case an administrator page has been initialized
*
* @return Object
**/
function dispRssAdminIndex() {
$oModuleModel = &getModel('module');
$rss_config = $oModuleModel->getModulePartConfigs('rss');
$total_config = $oModuleModel->getModuleConfig('rss');
$oRssModel = &getModel('rss');
if($rss_config) {
foreach($rss_config as $module_srl => $config) {
if($config) {
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
$columnList = array('sites.domain');
$site = $oModuleModel->getSiteInfo($module_info->site_srl, $columnList);
if(!strpos($site->domain, '.')) $vid = $site->domain;
else $site = null;
if($site) $feed_config[$module_srl]['url'] = $oRssModel->getModuleFeedUrl($vid, $module_info->mid, 'rss');
$feed_config[$module_srl]['mid'] = $module_info->mid;
$feed_config[$module_srl]['open_feed'] = $config->open_rss;
$feed_config[$module_srl]['open_total_feed'] = $config->open_total_feed;
$feed_config[$module_srl]['feed_description'] = $config->feed_description;
}
if($rss_config)
{
foreach($rss_config as $module_srl => $config)
{
if($config)
{
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
$columnList = array('sites.domain');
$site = $oModuleModel->getSiteInfo($module_info->site_srl, $columnList);
if(!strpos($site->domain, '.')) $vid = $site->domain;
else $site = null;
if($site) $feed_config[$module_srl]['url'] = $oRssModel->getModuleFeedUrl($vid, $module_info->mid, 'rss');
$feed_config[$module_srl]['mid'] = $module_info->mid;
$feed_config[$module_srl]['open_feed'] = $config->open_rss;
$feed_config[$module_srl]['open_total_feed'] = $config->open_total_feed;
$feed_config[$module_srl]['feed_description'] = $config->feed_description;
}
}
if(!$total_config->feed_document_count) $total_config->feed_document_count = 15;
Context::set('feed_config', $feed_config);
Context::set('total_config', $total_config);
$security = new Security();
$security->encodeHTML('feed_config..mid','feed_config..url');
$security->encodeHTML('total_config..');
$this->setTemplatePath($this->module_path.'tpl');
$this->setTemplateFile('rss_admin_index');
}
if(!$total_config->feed_document_count) $total_config->feed_document_count = 15;
Context::set('feed_config', $feed_config);
Context::set('total_config', $total_config);
$security = new Security();
$security->encodeHTML('feed_config..mid','feed_config..url');
$security->encodeHTML('total_config..');
$this->setTemplatePath($this->module_path.'tpl');
$this->setTemplateFile('rss_admin_index');
}
?>
}
/* End of file rss.admin.view.php */
/* Location: ./modules/rss/rss.admin.view.php */

View file

@ -1,88 +1,92 @@
<?php
/**
* High class of rss module
include '../../config/config.inc.php';
/**
* High class of rss module
*
* @author NHN (developers@xpressengine.com)
*/
class rss extends ModuleObject
{
/**
* Additional tasks required to accomplish during the installation
*
* @author NHN (developers@xpressengine.com)
**/
* @return Object
*/
function moduleInstall()
{
// Register in action forward
$oModuleController = &getController('module');
class rss extends ModuleObject {
$oModuleController->insertActionForward('rss', 'view', 'rss');
$oModuleController->insertActionForward('rss', 'view', 'atom');
// 2007.10.18 Add a trigger for participating additional configurations of the service module
$oModuleController->insertTrigger('module.dispAdditionSetup', 'rss', 'view', 'triggerDispRssAdditionSetup', 'before');
// 2007. 10. 19 Call the trigger to set RSS URL before outputing
$oModuleController->insertTrigger('moduleHandler.proc', 'rss', 'controller', 'triggerRssUrlInsert', 'after');
/**
* Additional tasks required to accomplish during the installation
*
* @return Object
**/
function moduleInstall() {
// Register in action forward
$oModuleController = &getController('module');
return new Object();
}
$oModuleController->insertActionForward('rss', 'view', 'rss');
$oModuleController->insertActionForward('rss', 'view', 'atom');
// 2007.10.18 Add a trigger for participating additional configurations of the service module
$oModuleController->insertTrigger('module.dispAdditionSetup', 'rss', 'view', 'triggerDispRssAdditionSetup', 'before');
// 2007. 10. 19 Call the trigger to set RSS URL before outputing
$oModuleController->insertTrigger('moduleHandler.proc', 'rss', 'controller', 'triggerRssUrlInsert', 'after');
/**
* A method to check if the installation has been successful
* @return bool
*/
function checkUpdate()
{
$oModuleModel = &getModel('module');
// Add the Action forward for atom
if(!$oModuleModel->getActionForward('atom')) return true;
// 2007. 10. Add a trigger for participating additional configurations of the service module
if(!$oModuleModel->getTrigger('module.dispAdditionSetup', 'rss', 'view', 'triggerDispRssAdditionSetup', 'before')) return true;
// 2007. 10. 19 Call the trigger to set RSS URL before outputing
if(!$oModuleModel->getTrigger('moduleHandler.proc', 'rss', 'controller', 'triggerRssUrlInsert', 'after')) return true;
return new Object();
}
if($oModuleModel->getTrigger('display', 'rss', 'controller', 'triggerRssUrlInsert', 'before')) return true;
/**
* A method to check if the installation has been successful
* @return bool
**/
function checkUpdate() {
$oModuleModel = &getModel('module');
// Add the Action forward for atom
if(!$oModuleModel->getActionForward('atom')) return true;
// 2007. 10. Add a trigger for participating additional configurations of the service module
if(!$oModuleModel->getTrigger('module.dispAdditionSetup', 'rss', 'view', 'triggerDispRssAdditionSetup', 'before')) return true;
// 2007. 10. 19 Call the trigger to set RSS URL before outputing
if(!$oModuleModel->getTrigger('moduleHandler.proc', 'rss', 'controller', 'triggerRssUrlInsert', 'after')) return true;
// 2012. 08. 29 Add a trigger to copy additional setting when the module is copied
if(!$oModuleModel->getTrigger('module.procModuleAdminCopyModule', 'rss', 'controller', 'triggerCopyModule', 'after')) return true;
if($oModuleModel->getTrigger('display', 'rss', 'controller', 'triggerRssUrlInsert', 'before')) return true;
return false;
}
// 2012. 08. 29 Add a trigger to copy additional setting when the module is copied
if(!$oModuleModel->getTrigger('module.procModuleAdminCopyModule', 'rss', 'controller', 'triggerCopyModule', 'after')) return true;
/**
* Execute update
*
* @return Object
*/
function moduleUpdate()
{
$oModuleModel = &getModel('module');
$oModuleController = &getController('module');
// Add atom act
if(!$oModuleModel->getActionForward('atom'))
$oModuleController->insertActionForward('rss', 'view', 'atom');
// 2007. 10. An additional set of 18 to participate in a service module, add a trigger
if(!$oModuleModel->getTrigger('module.dispAdditionSetup', 'rss', 'view', 'triggerDispRssAdditionSetup', 'before'))
$oModuleController->insertTrigger('module.dispAdditionSetup', 'rss', 'view', 'triggerDispRssAdditionSetup', 'before');
// 2007. 10. 19 outputs the trigger before you call to set up rss url
if(!$oModuleModel->getTrigger('moduleHandler.proc', 'rss', 'controller', 'triggerRssUrlInsert', 'after'))
$oModuleController->insertTrigger('moduleHandler.proc', 'rss', 'controller', 'triggerRssUrlInsert', 'after');
if($oModuleModel->getTrigger('display', 'rss', 'controller', 'triggerRssUrlInsert', 'before'))
$oModuleController->deleteTrigger('display', 'rss', 'controller', 'triggerRssUrlInsert', 'before');
return false;
}
// 2012. 08. 29 Add a trigger to copy additional setting when the module is copied
if(!$oModuleModel->getTrigger('module.procModuleAdminCopyModule', 'rss', 'controller', 'triggerCopyModule', 'after'))
{
$oModuleController->insertTrigger('module.procModuleAdminCopyModule', 'rss', 'controller', 'triggerCopyModule', 'after');
}
/**
* Execute update
*
* @return Object
**/
function moduleUpdate() {
$oModuleModel = &getModel('module');
$oModuleController = &getController('module');
// Add atom act
if(!$oModuleModel->getActionForward('atom'))
$oModuleController->insertActionForward('rss', 'view', 'atom');
// 2007. 10. An additional set of 18 to participate in a service module, add a trigger
if(!$oModuleModel->getTrigger('module.dispAdditionSetup', 'rss', 'view', 'triggerDispRssAdditionSetup', 'before'))
$oModuleController->insertTrigger('module.dispAdditionSetup', 'rss', 'view', 'triggerDispRssAdditionSetup', 'before');
// 2007. 10. 19 outputs the trigger before you call to set up rss url
if(!$oModuleModel->getTrigger('moduleHandler.proc', 'rss', 'controller', 'triggerRssUrlInsert', 'after'))
$oModuleController->insertTrigger('moduleHandler.proc', 'rss', 'controller', 'triggerRssUrlInsert', 'after');
if($oModuleModel->getTrigger('display', 'rss', 'controller', 'triggerRssUrlInsert', 'before'))
$oModuleController->deleteTrigger('display', 'rss', 'controller', 'triggerRssUrlInsert', 'before');
return new Object(0, 'success_updated');
}
// 2012. 08. 29 Add a trigger to copy additional setting when the module is copied
if(!$oModuleModel->getTrigger('module.procModuleAdminCopyModule', 'rss', 'controller', 'triggerCopyModule', 'after'))
{
$oModuleController->insertTrigger('module.procModuleAdminCopyModule', 'rss', 'controller', 'triggerCopyModule', 'after');
}
return new Object(0, 'success_updated');
}
/**
* Re-generate the cache file
*
* @return void
**/
function recompileCache() {
}
}
?>
/**
* Re-generate the cache file
*
* @return void
*/
function recompileCache()
{
}
}
/* End of file rss.class.php */
/* Location: ./modules/rss/rss.class.php */

View file

@ -1,77 +1,84 @@
<?php
/**
* The controller class of rss module
/**
* The controller class of rss module
*
* @author NHN (developers@xpressengine.com)
*/
class rssController extends rss
{
/**
* Initialization
*
* @author NHN (developers@xpressengine.com)
**/
* @return void
*/
function init()
{
}
class rssController extends rss {
/**
* Check whether to use RSS rss url by adding
*
* @return Object
*/
function triggerRssUrlInsert()
{
$oModuleModel = &getModel('module');
$total_config = $oModuleModel->getModuleConfig('rss');
$current_module_srl = Context::get('module_srl');
$site_module_info = Context::get('site_module_info');
/**
* Initialization
*
* @return void
**/
function init() {
}
/**
* Check whether to use RSS rss url by adding
*
* @return Object
**/
function triggerRssUrlInsert() {
$oModuleModel = &getModel('module');
$total_config = $oModuleModel->getModuleConfig('rss');
$current_module_srl = Context::get('module_srl');
$site_module_info = Context::get('site_module_info');
if(is_array($current_module_srl))
{
unset($current_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();
// Imported rss settings of the selected module
$oRssModel = &getModel('rss');
$rss_config = $oRssModel->getRssModuleConfig($current_module_srl);
if($rss_config->open_rss != 'N') {
Context::set('rss_url', $oRssModel->getModuleFeedUrl(Context::get('vid'), Context::get('mid'), 'rss'));
Context::set('atom_url', $oRssModel->getModuleFeedUrl(Context::get('vid'), Context::get('mid'), 'atom'));
}
if(Context::isInstalled() && $site_module_info->mid == Context::get('mid') && $total_config->use_total_feed != 'N') {
if(Context::isAllowRewrite() && !Context::get('vid')) {
$request_uri = Context::getRequestUri();
Context::set('general_rss_url', $request_uri.'rss');
Context::set('general_atom_url', $request_uri.'atom');
} else {
Context::set('general_rss_url', getUrl('','module','rss','act','rss'));
Context::set('general_atom_url', getUrl('','module','rss','act','atom'));
}
}
return new Object();
}
function triggerCopyModule(&$obj)
if(is_array($current_module_srl))
{
$oModuleModel = &getModel('module');
$rssConfig = $oModuleModel->getModulePartConfig('rss', $obj->originModuleSrl);
unset($current_module_srl);
}
if(!$current_module_srl) {
$current_module_info = Context::get('current_module_info');
$current_module_srl = $current_module_info->module_srl;
}
$oModuleController = &getController('module');
if(is_array($obj->moduleSrlList))
if(!$current_module_srl) return new Object();
// Imported rss settings of the selected module
$oRssModel = &getModel('rss');
$rss_config = $oRssModel->getRssModuleConfig($current_module_srl);
if($rss_config->open_rss != 'N')
{
Context::set('rss_url', $oRssModel->getModuleFeedUrl(Context::get('vid'), Context::get('mid'), 'rss'));
Context::set('atom_url', $oRssModel->getModuleFeedUrl(Context::get('vid'), Context::get('mid'), 'atom'));
}
if(Context::isInstalled() && $site_module_info->mid == Context::get('mid') && $total_config->use_total_feed != 'N')
{
if(Context::isAllowRewrite() && !Context::get('vid'))
{
foreach($obj->moduleSrlList AS $key=>$moduleSrl)
{
$oModuleController->insertModulePartConfig('rss', $moduleSrl, $rssConfig);
}
$request_uri = Context::getRequestUri();
Context::set('general_rss_url', $request_uri.'rss');
Context::set('general_atom_url', $request_uri.'atom');
}
else
{
Context::set('general_rss_url', getUrl('','module','rss','act','rss'));
Context::set('general_atom_url', getUrl('','module','rss','act','atom'));
}
}
}
?>
return new Object();
}
function triggerCopyModule(&$obj)
{
$oModuleModel = &getModel('module');
$rssConfig = $oModuleModel->getModulePartConfig('rss', $obj->originModuleSrl);
$oModuleController = &getController('module');
if(is_array($obj->moduleSrlList))
{
foreach($obj->moduleSrlList AS $key=>$moduleSrl)
{
$oModuleController->insertModulePartConfig('rss', $moduleSrl, $rssConfig);
}
}
}
}
/* End of file rss.controller.php */
/* Location: ./modules/rss/rss.controller.php */

View file

@ -1,49 +1,55 @@
<?php
/**
* The model class of the rss module
/**
* The model class of the rss module
*
* @author NHN (developers@xpressengine.com)
*/
class rssModel extends rss
{
/**
* Create the Feed url.
*
* @author NHN (developers@xpressengine.com)
**/
* @param string $vid Vid
* @param string $mid mid
* @param string $format Feed format. ef)xe, atom, rss1.0
* @return string
*/
function getModuleFeedUrl($vid = null, $mid, $format)
{
if(Context::isAllowRewrite())
{
$request_uri = Context::getRequestUri();
// If the virtual site variable exists and it is different from mid (vid and mid should not be the same)
if($vid && $vid != $mid)
{
return $request_uri.$vid.'/'.$mid.'/'.$format;
}
else
{
return $request_uri.$mid.'/'.$format;
}
}
else
{
return getUrl('','mid',$mid,'act',$format);
}
}
class rssModel extends rss {
/**
* Create the Feed url.
*
* @param string $vid Vid
* @param string $mid mid
* @param string $format Feed format. ef)xe, atom, rss1.0
* @return string
**/
function getModuleFeedUrl($vid = null, $mid, $format) {
if(Context::isAllowRewrite()) {
$request_uri = Context::getRequestUri();
// If the virtual site variable exists and it is different from mid (vid and mid should not be the same)
if($vid && $vid != $mid) {
return $request_uri.$vid.'/'.$mid.'/'.$format;
}
else {
return $request_uri.$mid.'/'.$format;
}
}
else {
return getUrl('','mid',$mid,'act',$format);
}
}
/**
* Return the RSS configurations of the specific modules
*
* @param integer $module_srl Module_srl
* @return Object
**/
function getRssModuleConfig($module_srl) {
// Get the configurations of the rss module
$oModuleModel = &getModel('module');
$module_rss_config = $oModuleModel->getModulePartConfig('rss', $module_srl);
if(!$module_rss_config) $module_rss_config->open_rss = 'N';
$module_rss_config->module_srl = $module_srl;
return $module_rss_config;
}
}
?>
/**
* Return the RSS configurations of the specific modules
*
* @param integer $module_srl Module_srl
* @return Object
*/
function getRssModuleConfig($module_srl)
{
// Get the configurations of the rss module
$oModuleModel = &getModel('module');
$module_rss_config = $oModuleModel->getModulePartConfig('rss', $module_srl);
if(!$module_rss_config) $module_rss_config->open_rss = 'N';
$module_rss_config->module_srl = $module_srl;
return $module_rss_config;
}
}
/* End of file rss.model.php */
/* Location: ./modules/rss/rss.model.php */

View file

@ -1,235 +1,262 @@
<?php
/**
* The view class of the rss module
/**
* The view class of the rss module
*
* @author NHN (developers@xpressengine.com)
*/
class rssView extends rss
{
/**
* Initialization
*
* @author NHN (developers@xpressengine.com)
**/
* @return void
*/
function init()
{
}
class rssView extends rss {
/**
* Feed output.
* When trying to directly print out the RSS, the results variable can be directly specified through $oRssView->rss($document_list)
*
* @param Object $document_list Document list
* @param string $rss_title Rss title
* @param string $add_description Add description
*/
function rss($document_list = null, $rss_title = null, $add_description = null)
{
$oDocumentModel = &getModel('document');
$oModuleModel = &getModel('module');
$oModuleController = &getController('module');
// Get the content and information for the current requested module if the method is not called from another module
if(!$document_list)
{
$site_module_info = Context::get('site_module_info');
$site_srl = $site_module_info->site_srl;
$mid = Context::get('mid'); // The target module id, if absent, then all
$start_date = (int)Context::get('start_date');
$end_date = (int)Context::get('end_date');
/**
* Initialization
*
* @return void
**/
function init() {
}
$module_srls = array();
$rss_config = array();
$total_config = '';
$total_config = $oModuleModel->getModuleConfig('rss');
// If one is specified, extract only for this 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;
$open_rss_config[$module_srl] = $config->open_rss;
}
// If mid is not selected, then get all
}
else
{
if($total_config->use_total_feed != 'N')
{
$rss_config = $oModuleModel->getModulePartConfigs('rss', $site_srl);
if($rss_config)
{
foreach($rss_config as $module_srl => $config)
{
if($config && $config->open_rss != 'N' && $config->open_total_feed != 'T_N')
{
$module_srls[] = $module_srl;
$open_rss_config[$module_srl] = $config->open_rss;
}
}
}
}
}
/**
* Feed output.
* When trying to directly print out the RSS, the results variable can be directly specified through $oRssView->rss($document_list)
*
* @param Object $document_list Document list
* @param string $rss_title Rss title
* @param string $add_description Add description
**/
function rss($document_list = null, $rss_title = null, $add_description = null) {
$oDocumentModel = &getModel('document');
$oModuleModel = &getModel('module');
$oModuleController = &getController('module');
// Get the content and information for the current requested module if the method is not called from another module
if(!$document_list) {
$site_module_info = Context::get('site_module_info');
$site_srl = $site_module_info->site_srl;
$mid = Context::get('mid'); // The target module id, if absent, then all
$start_date = (int)Context::get('start_date');
$end_date = (int)Context::get('end_date');
if(!count($module_srls) && !$add_description) return $this->dispError();
$module_srls = array();
$rss_config = array();
$total_config = '';
$total_config = $oModuleModel->getModuleConfig('rss');
// If one is specified, extract only for this 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;
$open_rss_config[$module_srl] = $config->open_rss;
}
// If mid is not selected, then get all
} else {
if($total_config->use_total_feed != 'N') {
$rss_config = $oModuleModel->getModulePartConfigs('rss', $site_srl);
if($rss_config) {
foreach($rss_config as $module_srl => $config) {
if($config && $config->open_rss != 'N' && $config->open_total_feed != 'T_N') {
$module_srls[] = $module_srl;
$open_rss_config[$module_srl] = $config->open_rss;
}
}
}
}
}
if($module_srls)
{
$args->module_srl = implode(',',$module_srls);
//$module_list = $oModuleModel->getMidList($args); //perhaps module_list varialbles not use
if(!count($module_srls) && !$add_description) return $this->dispError();
$args->search_target = 'is_secret';
$args->search_keyword = 'N';
$args->page = (int)Context::get('page');
$args->list_count = 15;
if($total_config->feed_document_count) $args->list_count = $total_config->feed_document_count;
if(!$args->page || $args->page < 1) $args->page = 1;
if($start_date || $start_date != 0) $args->start_date = $start_date;
if($end_date || $end_date != 0) $args->end_date = $end_date;
if($start_date == 0) unset($start_date);
if($end_date == 0) unset($end_date);
if($module_srls) {
$args->module_srl = implode(',',$module_srls);
//$module_list = $oModuleModel->getMidList($args); //perhaps module_list varialbles not use
$args->sort_index = 'list_order';
$args->order_type = 'asc';
$output = $oDocumentModel->getDocumentList($args);
$document_list = $output->data;
// Extract the feed title and information with Context::getBrowserTitle
if($mid)
{
$info->title = Context::getBrowserTitle();
$oModuleController->replaceDefinedLangCode($info->title);
$args->search_target = 'is_secret';
$args->search_keyword = 'N';
$args->page = (int)Context::get('page');
$args->list_count = 15;
if($total_config->feed_document_count) $args->list_count = $total_config->feed_document_count;
if(!$args->page || $args->page < 1) $args->page = 1;
if($start_date || $start_date != 0) $args->start_date = $start_date;
if($end_date || $end_date != 0) $args->end_date = $end_date;
if($start_date == 0) unset($start_date);
if($end_date == 0) unset($end_date);
$info->title = str_replace('\'', '&apos;',$info->title);
if($config->feed_description)
{
$info->description = str_replace('\'', '&apos;', htmlspecialchars($config->feed_description));
}
else
{
$info->description = str_replace('\'', '&apos;', htmlspecialchars($this->module_info->description));
}
$info->link = getUrl('','mid',$mid);
$info->feed_copyright = str_replace('\'', '&apos;', htmlspecialchars($feed_config->feed_copyright));
if(!$info->feed_copyright)
{
$info->feed_copyright = str_replace('\'', '&apos;', htmlspecialchars($total_config->feed_copyright));
}
}
}
}
$args->sort_index = 'list_order';
$args->order_type = 'asc';
$output = $oDocumentModel->getDocumentList($args);
$document_list = $output->data;
// Extract the feed title and information with Context::getBrowserTitle
if($mid) {
$info->title = Context::getBrowserTitle();
$oModuleController->replaceDefinedLangCode($info->title);
if(!$info->title)
{
if($rss_title) $info->title = $rss_title;
else if($total_config->feed_title) $info->title = $total_config->feed_title;
else
{
$site_module_info = Context::get('site_module_info');
$info->title = $site_module_info->browser_title;
}
$info->title = str_replace('\'', '&apos;',$info->title);
if($config->feed_description) {
$info->description = str_replace('\'', '&apos;', htmlspecialchars($config->feed_description));
}
else {
$info->description = str_replace('\'', '&apos;', htmlspecialchars($this->module_info->description));
}
$info->link = getUrl('','mid',$mid);
$info->feed_copyright = str_replace('\'', '&apos;', htmlspecialchars($feed_config->feed_copyright));
if(!$info->feed_copyright) {
$info->feed_copyright = str_replace('\'', '&apos;', htmlspecialchars($total_config->feed_copyright));
}
}
}
}
$oModuleController->replaceDefinedLangCode($info->title);
$info->title = str_replace('\'', '&apos;', htmlspecialchars($info->title));
$info->description = str_replace('\'', '&apos;', htmlspecialchars($total_config->feed_description));
$info->link = Context::getRequestUri();
$info->feed_copyright = str_replace('\'', '&apos;', htmlspecialchars($total_config->feed_copyright));
}
if($add_description) $info->description .= "\r\n".$add_description;
if(!$info->title) {
if($rss_title) $info->title = $rss_title;
else if($total_config->feed_title) $info->title = $total_config->feed_title;
else {
$site_module_info = Context::get('site_module_info');
$info->title = $site_module_info->browser_title;
}
if($total_config->image) $info->image = Context::getRequestUri().str_replace('\'', '&apos;', htmlspecialchars($total_config->image));
switch(Context::get('format'))
{
case 'atom':
$info->date = date('Y-m-d\TH:i:sP');
if($mid) { $info->id = getUrl('','mid',$mid,'act','atom','page',Context::get('page'),'start_date',Context::get('start_date'),'end_date',Context::get('end_date')); }
else { $info->id = getUrl('','module','rss','act','atom','page',Context::get('page'),'start_date',Context::get('start_date'),'end_date',Context::get('end_date')); }
break;
case 'rss1.0':
$info->date = date('Y-m-d\TH:i:sP');
break;
default:
$info->date = date("D, d M Y H:i:s").' '.$GLOBALS['_time_zone'];
break;
}
$oModuleController->replaceDefinedLangCode($info->title);
$info->title = str_replace('\'', '&apos;', htmlspecialchars($info->title));
$info->description = str_replace('\'', '&apos;', htmlspecialchars($total_config->feed_description));
$info->link = Context::getRequestUri();
$info->feed_copyright = str_replace('\'', '&apos;', htmlspecialchars($total_config->feed_copyright));
}
if($add_description) $info->description .= "\r\n".$add_description;
if($_SERVER['HTTPS']=='on') $proctcl = 'https://';
else $proctcl = 'http://';
if($total_config->image) $info->image = Context::getRequestUri().str_replace('\'', '&apos;', htmlspecialchars($total_config->image));
switch (Context::get('format')) {
case 'atom':
$info->date = date('Y-m-d\TH:i:sP');
if($mid) { $info->id = getUrl('','mid',$mid,'act','atom','page',Context::get('page'),'start_date',Context::get('start_date'),'end_date',Context::get('end_date')); }
else { $info->id = getUrl('','module','rss','act','atom','page',Context::get('page'),'start_date',Context::get('start_date'),'end_date',Context::get('end_date')); }
break;
case 'rss1.0':
$info->date = date('Y-m-d\TH:i:sP');
break;
default:
$info->date = date("D, d M Y H:i:s").' '.$GLOBALS['_time_zone'];
break;
}
$temp_link = explode('/', $info->link);
if($temp_link[0]=='' && $info->link)
{
$info->link = $proctcl.$_SERVER['HTTP_HOST'].$info->link;
}
if($_SERVER['HTTPS']=='on') $proctcl = 'https://';
else $proctcl = 'http://';
$temp_id = explode('/', $info->id);
if($temp_id[0]=='' && $info->id)
{
$info->id = $proctcl.$_SERVER['HTTP_HOST'].$info->id;
}
$temp_link = explode('/', $info->link);
if($temp_link[0]=='' && $info->link) {
$info->link = $proctcl.$_SERVER['HTTP_HOST'].$info->link;
}
$info->language = Context::getLangType();
// Set the variables used in the RSS output
Context::set('info', $info);
Context::set('feed_config', $config);
Context::set('open_rss_config', $open_rss_config);
Context::set('document_list', $document_list);
// Force the result output to be of XMLRPC
Context::setResponseMethod("XMLRPC");
// Perform the preprocessing function of the editor component as the results are obtained
$path = $this->module_path.'tpl/';
//if($args->start_date || $args->end_date) $file = 'xe_rss';
//else $file = 'rss20';
switch (Context::get('format'))
{
case 'xe':
$file = 'xe_rss';
break;
case 'atom':
$file = 'atom10';
break;
case 'rss1.0':
$file = 'rss10';
break;
default:
$file = 'rss20';
break;
}
$temp_id = explode('/', $info->id);
if($temp_id[0]=='' && $info->id) {
$info->id = $proctcl.$_SERVER['HTTP_HOST'].$info->id;
}
$oTemplate = new TemplateHandler();
$info->language = Context::getLangType();
// Set the variables used in the RSS output
Context::set('info', $info);
Context::set('feed_config', $config);
Context::set('open_rss_config', $open_rss_config);
Context::set('document_list', $document_list);
// Force the result output to be of XMLRPC
Context::setResponseMethod("XMLRPC");
// Perform the preprocessing function of the editor component as the results are obtained
$path = $this->module_path.'tpl/';
//if($args->start_date || $args->end_date) $file = 'xe_rss';
//else $file = 'rss20';
switch (Context::get('format')) {
case 'xe':
$file = 'xe_rss';
break;
case 'atom':
$file = 'atom10';
break;
case 'rss1.0':
$file = 'rss10';
break;
default:
$file = 'rss20';
break;
}
$content = $oTemplate->compile($path, $file);
Context::set('content', $content);
// Set the template file
$this->setTemplatePath($path);
$this->setTemplateFile('display');
}
$oTemplate = new TemplateHandler();
/**
* ATOM output
*
* @return Object
*/
function atom()
{
Context::set('format', 'atom');
$this->rss();
}
$content = $oTemplate->compile($path, $file);
Context::set('content', $content);
// Set the template file
$this->setTemplatePath($path);
$this->setTemplateFile('display');
}
/**
* ATOM output
*
* @return Object
**/
function atom() {
Context::set('format', 'atom');
$this->rss();
}
/**
* Error output
*
* @return Object
*/
function dispError()
{
// Prepare the output message
$this->rss(null, null, Context::getLang('msg_rss_is_disabled') );
}
/**
* Error output
*
* @return Object
**/
function dispError() {
// Prepare the output message
$this->rss(null, null, Context::getLang('msg_rss_is_disabled') );
}
/**
* Additional configurations for a service module
* Receive the form for the form used by rss
*
* @param string $obj Will be inserted content in template
* @return Object
*/
function triggerDispRssAdditionSetup(&$obj)
{
$current_module_srl = Context::get('module_srl');
$current_module_srls = Context::get('module_srls');
/**
* Additional configurations for a service module
* Receive the form for the form used by rss
*
* @param string $obj Will be inserted content in template
* @return Object
**/
function triggerDispRssAdditionSetup(&$obj) {
$current_module_srl = Context::get('module_srl');
$current_module_srls = Context::get('module_srls');
if(!$current_module_srl && !$current_module_srls)
{
// Get information of the selected module
$current_module_info = Context::get('current_module_info');
$current_module_srl = $current_module_info->module_srl;
if(!$current_module_srl) return new Object();
}
// Get teh RSS configurations for the selected module
$oRssModel = &getModel('rss');
$rss_config = $oRssModel->getRssModuleConfig($current_module_srl);
Context::set('rss_config', $rss_config);
// Set the template file
$oTemplate = &TemplateHandler::getInstance();
$tpl = $oTemplate->compile($this->module_path.'tpl', 'rss_module_config');
$obj .= $tpl;
if(!$current_module_srl && !$current_module_srls) {
// Get information of the selected module
$current_module_info = Context::get('current_module_info');
$current_module_srl = $current_module_info->module_srl;
if(!$current_module_srl) return new Object();
}
// Get teh RSS configurations for the selected module
$oRssModel = &getModel('rss');
$rss_config = $oRssModel->getRssModuleConfig($current_module_srl);
Context::set('rss_config', $rss_config);
// Set the template file
$oTemplate = &TemplateHandler::getInstance();
$tpl = $oTemplate->compile($this->module_path.'tpl', 'rss_module_config');
$obj .= $tpl;
return new Object();
}
}
?>
return new Object();
}
}
/* End of file rss.view.php */
/* Location: ./modules/rss/rss.view.php */