diff --git a/modules/poll/poll.admin.controller.php b/modules/poll/poll.admin.controller.php index 6198bef8c..fde28db90 100644 --- a/modules/poll/poll.admin.controller.php +++ b/modules/poll/poll.admin.controller.php @@ -1,159 +1,171 @@ skin = Context::get('skin'); + $config->colorset = Context::get('colorset'); - /** - * @brief Initialization - **/ - function init() { - } + $oModuleController = &getController('module'); + $oModuleController->insertModuleConfig('poll', $config); - /** - * @brief Save the configurations - **/ - function procPollAdminInsertConfig() { - $config->skin = Context::get('skin'); - $config->colorset = Context::get('colorset'); + $this->setMessage('success_updated'); - $oModuleController = &getController('module'); - $oModuleController->insertModuleConfig('poll', $config); + $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispPollAdminConfig'); + $this->setRedirectUrl($returnUrl); + } - $this->setMessage('success_updated'); + /** + * @brief Delete the polls selected in the administrator's page + */ + function procPollAdminDeleteChecked() + { + // Display an error no post is selected + $cart = Context::get('cart'); - $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispPollAdminConfig'); - $this->setRedirectUrl($returnUrl); - } + if(is_array($cart)) $poll_srl_list = $cart; + else $poll_srl_list= explode('|@|', $cart); - /** - * @brief Delete the polls selected in the administrator's page - **/ - function procPollAdminDeleteChecked() { - // Display an error no post is selected - $cart = Context::get('cart'); - - if(is_array($cart)) $poll_srl_list = $cart; - else $poll_srl_list= explode('|@|', $cart); - - $poll_count = count($poll_srl_list); - if(!$poll_count) return $this->stop('msg_cart_is_null'); - // Delete the post - for($i=0;$i<$poll_count;$i++) { - $poll_index_srl = trim($poll_srl_list[$i]); - if(!$poll_index_srl) continue; - - $output = $this->deletePollTitle($poll_index_srl, true); - if(!$output->toBool()) return $output; - } - - $this->setMessage( sprintf(Context::getLang('msg_checked_poll_is_deleted'), $poll_count) ); - - $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispPollAdminList'); - $this->setRedirectUrl($returnUrl); - } - - function procPollAdminAddCart() + $poll_count = count($poll_srl_list); + if(!$poll_count) return $this->stop('msg_cart_is_null'); + // Delete the post + for($i=0;$i<$poll_count;$i++) { - $poll_index_srl = (int)Context::get('poll_index_srl'); + $poll_index_srl = trim($poll_srl_list[$i]); + if(!$poll_index_srl) continue; - $oPollAdminModel = &getAdminModel('poll'); - //$columnList = array('comment_srl'); - $args->pollIndexSrlList = array($poll_index_srl); - $args->list_count = 100; - - $output = $oPollAdminModel->getPollList($args); - - if(is_array($output->data)) - { - foreach($output->data AS $key=>$value) - { - if($_SESSION['poll_management'][$value->poll_index_srl]) unset($_SESSION['poll_management'][$value->poll_index_srl]); - else $_SESSION['poll_management'][$value->poll_index_srl] = true; - } - } + $output = $this->deletePollTitle($poll_index_srl, true); + if(!$output->toBool()) return $output; } - /** - * @brief Delete the poll (when several questions are registered in one poll, delete this question) - **/ - function deletePollTitle($poll_index_srl) + $this->setMessage( sprintf(Context::getLang('msg_checked_poll_is_deleted'), $poll_count) ); + + $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispPollAdminList'); + $this->setRedirectUrl($returnUrl); + } + + function procPollAdminAddCart() + { + $poll_index_srl = (int)Context::get('poll_index_srl'); + + $oPollAdminModel = &getAdminModel('poll'); + //$columnList = array('comment_srl'); + $args->pollIndexSrlList = array($poll_index_srl); + $args->list_count = 100; + + $output = $oPollAdminModel->getPollList($args); + + if(is_array($output->data)) { - $args->poll_index_srl = $poll_index_srl; - - $oDB = &DB::getInstance(); - $oDB->begin(); - - $output = executeQueryArray('poll.getPollByDeletePollTitle', $args); - if($output->toBool() && $output->data && $output->data[0]->count == 1) + foreach($output->data AS $key=>$value) { - $dargs->poll_srl = $output->data[0]->poll_srl; + if($_SESSION['poll_management'][$value->poll_index_srl]) unset($_SESSION['poll_management'][$value->poll_index_srl]); + else $_SESSION['poll_management'][$value->poll_index_srl] = true; + } + } + } + + /** + * @brief Delete the poll (when several questions are registered in one poll, delete this question) + */ + function deletePollTitle($poll_index_srl) + { + $args->poll_index_srl = $poll_index_srl; + + $oDB = &DB::getInstance(); + $oDB->begin(); + + $output = executeQueryArray('poll.getPollByDeletePollTitle', $args); + if($output->toBool() && $output->data && $output->data[0]->count == 1) + { + $dargs->poll_srl = $output->data[0]->poll_srl; + } + + $output = $oDB->executeQuery('poll.deletePollTitle', $args); + if(!$output) + { + $oDB->rollback(); + return $output; + } + + $output = $oDB->executeQuery('poll.deletePollItem', $args); + if(!$output) + { + $oDB->rollback(); + return $output; + } + + if($dargs->poll_srl) + { + $output = executeQuery('poll.deletePoll', $dargs); + if(!$output) + { + $oDB->rollback(); + return $output; } - $output = $oDB->executeQuery('poll.deletePollTitle', $args); - if(!$output) { - $oDB->rollback(); - return $output; - } - - $output = $oDB->executeQuery('poll.deletePollItem', $args); - if(!$output) { - $oDB->rollback(); - return $output; - } - - if($dargs->poll_srl) + $output = executeQuery('poll.deletePollLog', $dargs); + if(!$output) { - $output = executeQuery('poll.deletePoll', $dargs); - if(!$output) { - $oDB->rollback(); - return $output; - } - - $output = executeQuery('poll.deletePollLog', $dargs); - if(!$output) { - $oDB->rollback(); - return $output; - } + $oDB->rollback(); + return $output; } - $oDB->commit(); + } + $oDB->commit(); - return new Object(); - } + return new Object(); + } - /** - * @brief Delete the poll (delete the entire poll) - **/ - function deletePoll($poll_srl) { - $args->poll_srl = $poll_srl; + /** + * @brief Delete the poll (delete the entire poll) + */ + function deletePoll($poll_srl) + { + $args->poll_srl = $poll_srl; - $oDB = &DB::getInstance(); - $oDB->begin(); + $oDB = &DB::getInstance(); + $oDB->begin(); - $output = $oDB->executeQuery('poll.deletePoll', $args); - if(!$output) { - $oDB->rollback(); - return $output; - } + $output = $oDB->executeQuery('poll.deletePoll', $args); + if(!$output) + { + $oDB->rollback(); + return $output; + } - $output = $oDB->executeQuery('poll.deletePollTitle', $args); - if(!$output) { - $oDB->rollback(); - return $output; - } + $output = $oDB->executeQuery('poll.deletePollTitle', $args); + if(!$output) + { + $oDB->rollback(); + return $output; + } - $output = $oDB->executeQuery('poll.deletePollItem', $args); - if(!$output) { - $oDB->rollback(); - return $output; - } + $output = $oDB->executeQuery('poll.deletePollItem', $args); + if(!$output) + { + $oDB->rollback(); + return $output; + } - $oDB->commit(); + $oDB->commit(); - return new Object(); - } - } -?> + return new Object(); + } +} +/* End of file poll.admin.controller.php */ +/* Location: ./modules/poll/poll.admin.controller.php */ diff --git a/modules/poll/poll.admin.model.php b/modules/poll/poll.admin.model.php index 0c4a0ffb6..ecc38cb48 100644 --- a/modules/poll/poll.admin.model.php +++ b/modules/poll/poll.admin.model.php @@ -1,61 +1,67 @@ toBool()) return $output; - /** - * @brief Initialization - **/ - function init() { - } + //if($output->data && !is_array($output->data)) $output->data = array($output->data); + return $output; + } - /** - * @brief Get the list of polls - **/ - function getPollList($args) { - $output = executeQueryArray('poll.getPollList', $args); - if(!$output->toBool()) return $output; + /** + * @brief Get the list of polls with member info + */ + function getPollListWithMember($args) + { + $output = executeQueryArray('poll.getPollListWithMember', $args); + if(!$output->toBool()) return $output; - //if($output->data && !is_array($output->data)) $output->data = array($output->data); - return $output; - } + return $output; + } - /** - * @brief Get the list of polls with member info - **/ - function getPollListWithMember($args) + /** + * @brief Get the original poll + */ + function getPollAdminTarget() + { + $poll_srl = Context::get('poll_srl'); + $upload_target_srl = Context::get('upload_target_srl'); + + $oDocumentModel = &getModel('document'); + $oCommentModel = &getModel('comment'); + + $oDocument = $oDocumentModel->getDocument($upload_target_srl); + + if(!$oDocument->isExists()) $oComment = $oCommentModel->getComment($upload_target_srl); + + if($oComment && $oComment->isExists()) { - $output = executeQueryArray('poll.getPollListWithMember', $args); - if(!$output->toBool()) return $output; - - return $output; + $this->add('document_srl', $oComment->get('document_srl')); + $this->add('comment_srl', $oComment->get('comment_srl')); } - - /** - * @brief Get the original poll - **/ - function getPollAdminTarget() { - $poll_srl = Context::get('poll_srl'); - $upload_target_srl = Context::get('upload_target_srl'); - - $oDocumentModel = &getModel('document'); - $oCommentModel = &getModel('comment'); - - $oDocument = $oDocumentModel->getDocument($upload_target_srl); - - if(!$oDocument->isExists()) $oComment = $oCommentModel->getComment($upload_target_srl); - - if($oComment && $oComment->isExists()) { - $this->add('document_srl', $oComment->get('document_srl')); - $this->add('comment_srl', $oComment->get('comment_srl')); - } elseif($oDocument->isExists()) { - $this->add('document_srl', $oDocument->get('document_srl')); - } else return new Object(-1, 'msg_not_founded'); - } - - } -?> + elseif($oDocument->isExists()) + { + $this->add('document_srl', $oDocument->get('document_srl')); + } + else return new Object(-1, 'msg_not_founded'); + } +} +/* End of file poll.admin.model.php */ +/* Location: ./modules/poll/poll.admin.model.php */ diff --git a/modules/poll/poll.admin.view.php b/modules/poll/poll.admin.view.php index cab29a60b..be1d2e969 100644 --- a/modules/poll/poll.admin.view.php +++ b/modules/poll/poll.admin.view.php @@ -1,160 +1,167 @@ s_title= $search_keyword; - break; - case 'regdate' : - $args->s_regdate = $search_keyword; - break; - case 'ipaddress' : - $args->s_ipaddress= $search_keyword; - break; - } - } - // Options to get a list of pages - $args->page = Context::get('page'); - $args->list_count = 50; // The number of posts to show on one page - $args->page_count = 10; // The number of pages to display in the page navigation - - $args->sort_index = 'P.list_order'; // Sorting value - - // Get the list - $oPollAdminModel = &getAdminModel('poll'); - $output = $oPollAdminModel->getPollListWithMember($args); - - // check poll type. document or comment - if(is_array($output->data)) + if($search_target && $search_keyword) + { + switch($search_target) { - $uploadTargetSrlList = array(); - foreach($output->data AS $key=>$value) - { - array_push($uploadTargetSrlList, $value->upload_target_srl); - } + case 'title' : + if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword); + $args->s_title= $search_keyword; + break; + case 'regdate' : + $args->s_regdate = $search_keyword; + break; + case 'ipaddress' : + $args->s_ipaddress= $search_keyword; + break; + } + } + // Options to get a list of pages + $args->page = Context::get('page'); + $args->list_count = 50; // The number of posts to show on one page + $args->page_count = 10; // The number of pages to display in the page navigation - $oDocumentModel = &getModel('document'); - $targetDocumentOutput = $oDocumentModel->getDocuments($uploadTargetSrlList); - if(!is_array($targetDocumentOutput)) $targetDocumentOutput = array(); + $args->sort_index = 'P.list_order'; // Sorting value - $oCommentModel = &getModel('comment'); - $columnList = array('comment_srl', 'document_srl'); - $targetCommentOutput = $oCommentModel->getComments($uploadTargetSrlList, $columnList); - if(!is_array($targetCommentOutput)) $targetCommentOutput = array(); + // Get the list + $oPollAdminModel = &getAdminModel('poll'); + $output = $oPollAdminModel->getPollListWithMember($args); - foreach($output->data AS $key=>$value) - { - if(array_key_exists($value->upload_target_srl, $targetDocumentOutput)) - $value->document_srl = $value->upload_target_srl; - - if(array_key_exists($value->upload_target_srl, $targetCommentOutput)) - { - $value->comment_srl = $value->upload_target_srl; - $value->document_srl = $targetCommentOutput[$value->comment_srl]->document_srl; - } - } + // check poll type. document or comment + if(is_array($output->data)) + { + $uploadTargetSrlList = array(); + foreach($output->data AS $key=>$value) + { + array_push($uploadTargetSrlList, $value->upload_target_srl); } - // Configure the template variables - Context::set('total_count', $output->total_count); - Context::set('total_page', $output->total_page); - Context::set('page', $output->page); - Context::set('poll_list', $output->data); - Context::set('page_navigation', $output->page_navigation); - Context::set('module_list', $module_list); - - $security = new Security(); - $security->encodeHTML('poll_list..title'); - // Set a template - $this->setTemplatePath($this->module_path.'tpl'); - $this->setTemplateFile('poll_list'); - } + $oDocumentModel = &getModel('document'); + $targetDocumentOutput = $oDocumentModel->getDocuments($uploadTargetSrlList); + if(!is_array($targetDocumentOutput)) $targetDocumentOutput = array(); - /** - * @brief Confgure the poll skin and colorset - **/ - function dispPollAdminConfig() { - $oModuleModel = &getModel('module'); - // Get the configuration information - $config = $oModuleModel->getModuleConfig('poll'); - Context::set('config', $config); - // Get the skin information - $skin_list = $oModuleModel->getSkins($this->module_path); - Context::set('skin_list', $skin_list); + $oCommentModel = &getModel('comment'); + $columnList = array('comment_srl', 'document_srl'); + $targetCommentOutput = $oCommentModel->getComments($uploadTargetSrlList, $columnList); + if(!is_array($targetCommentOutput)) $targetCommentOutput = array(); - if(!$skin_list[$config->skin]) $config->skin = "default"; - // Set the skin colorset once the configurations is completed - Context::set('colorset_list', $skin_list[$config->skin]->colorset); - - $security = new Security(); - $security->encodeHTML('config..'); - $security->encodeHTML('skin_list..title'); - $security->encodeHTML('colorset_list..name','colorset_list..title'); - - // Set a template - $this->setTemplatePath($this->module_path.'tpl'); - $this->setTemplateFile('config'); - } + foreach($output->data AS $key=>$value) + { + if(array_key_exists($value->upload_target_srl, $targetDocumentOutput)) + $value->document_srl = $value->upload_target_srl; - /** - * @brief Poll Results - **/ - function dispPollAdminResult() { - // Popup layout - $this->setLayoutFile("popup_layout"); - // Draw results - $args->poll_srl = Context::get('poll_srl'); - $args->poll_index_srl = Context::get('poll_index_srl'); + if(array_key_exists($value->upload_target_srl, $targetCommentOutput)) + { + $value->comment_srl = $value->upload_target_srl; + $value->document_srl = $targetCommentOutput[$value->comment_srl]->document_srl; + } + } + } - $output = executeQuery('poll.getPoll', $args); - if(!$output->data) return $this->stop('msg_poll_not_exists'); - $poll->stop_date = $output->data->stop_date; - $poll->poll_count = $output->data->poll_count; + // Configure the template variables + Context::set('total_count', $output->total_count); + Context::set('total_page', $output->total_page); + Context::set('page', $output->page); + Context::set('poll_list', $output->data); + Context::set('page_navigation', $output->page_navigation); + Context::set('module_list', $module_list); - $output = executeQuery('poll.getPollTitle', $args); - if(!$output->data) return $this->stop('msg_poll_not_exists'); + $security = new Security(); + $security->encodeHTML('poll_list..title'); + // Set a template + $this->setTemplatePath($this->module_path.'tpl'); + $this->setTemplateFile('poll_list'); + } - $poll->poll[$args->poll_index_srl]->title = $output->data->title; - $poll->poll[$args->poll_index_srl]->checkcount = $output->data->checkcount; - $poll->poll[$args->poll_index_srl]->poll_count = $output->data->poll_count; + /** + * @brief Confgure the poll skin and colorset + */ + function dispPollAdminConfig() + { + $oModuleModel = &getModel('module'); + // Get the configuration information + $config = $oModuleModel->getModuleConfig('poll'); + Context::set('config', $config); + // Get the skin information + $skin_list = $oModuleModel->getSkins($this->module_path); + Context::set('skin_list', $skin_list); - $output = executeQuery('poll.getPollItem', $args); - foreach($output->data as $key => $val) { - $poll->poll[$val->poll_index_srl]->item[] = $val; - } + if(!$skin_list[$config->skin]) $config->skin = "default"; + // Set the skin colorset once the configurations is completed + Context::set('colorset_list', $skin_list[$config->skin]->colorset); - $poll->poll_srl = $poll_srl; + $security = new Security(); + $security->encodeHTML('config..'); + $security->encodeHTML('skin_list..title'); + $security->encodeHTML('colorset_list..name','colorset_list..title'); - Context::set('poll',$poll); - // Configure the skin and the colorset for the default configuration - $oModuleModel = &getModel('module'); - $poll_config = $oModuleModel->getModuleConfig('poll'); - Context::set('poll_config', $poll_config); + // Set a template + $this->setTemplatePath($this->module_path.'tpl'); + $this->setTemplateFile('config'); + } - $this->setTemplatePath($this->module_path.'tpl'); - $this->setTemplateFile('result'); - } - } -?> + /** + * @brief Poll Results + */ + function dispPollAdminResult() + { + // Popup layout + $this->setLayoutFile("popup_layout"); + // Draw results + $args->poll_srl = Context::get('poll_srl'); + $args->poll_index_srl = Context::get('poll_index_srl'); + + $output = executeQuery('poll.getPoll', $args); + if(!$output->data) return $this->stop('msg_poll_not_exists'); + $poll->stop_date = $output->data->stop_date; + $poll->poll_count = $output->data->poll_count; + + $output = executeQuery('poll.getPollTitle', $args); + if(!$output->data) return $this->stop('msg_poll_not_exists'); + + $poll->poll[$args->poll_index_srl]->title = $output->data->title; + $poll->poll[$args->poll_index_srl]->checkcount = $output->data->checkcount; + $poll->poll[$args->poll_index_srl]->poll_count = $output->data->poll_count; + + $output = executeQuery('poll.getPollItem', $args); + foreach($output->data as $key => $val) + { + $poll->poll[$val->poll_index_srl]->item[] = $val; + } + + $poll->poll_srl = $poll_srl; + + Context::set('poll',$poll); + // Configure the skin and the colorset for the default configuration + $oModuleModel = &getModel('module'); + $poll_config = $oModuleModel->getModuleConfig('poll'); + Context::set('poll_config', $poll_config); + + $this->setTemplatePath($this->module_path.'tpl'); + $this->setTemplateFile('result'); + } +} +/* End of file poll.admin.view.php */ +/* Location: ./modules/poll/poll.admin.view.php */ diff --git a/modules/poll/poll.class.php b/modules/poll/poll.class.php index 4f70b28d1..3a5cb049f 100644 --- a/modules/poll/poll.class.php +++ b/modules/poll/poll.class.php @@ -1,78 +1,82 @@ skin = 'default'; + $config->colorset = 'normal'; + $oModuleController->insertModuleConfig('poll', $config); + // 2007.10.17 When deleting posts/comments delete the poll as well + $oModuleController->insertTrigger('document.insertDocument', 'poll', 'controller', 'triggerInsertDocumentPoll', 'after'); + $oModuleController->insertTrigger('comment.insertComment', 'poll', 'controller', 'triggerInsertCommentPoll', 'after'); + $oModuleController->insertTrigger('document.updateDocument', 'poll', 'controller', 'triggerUpdateDocumentPoll', 'after'); + $oModuleController->insertTrigger('comment.updateComment', 'poll', 'controller', 'triggerUpdateCommentPoll', 'after'); + $oModuleController->insertTrigger('document.deleteDocument', 'poll', 'controller', 'triggerDeleteDocumentPoll', 'after'); + $oModuleController->insertTrigger('comment.deleteComment', 'poll', 'controller', 'triggerDeleteCommentPoll', 'after'); - class poll extends ModuleObject { + return new Object(); + } - /** - * @brief Additional tasks required to accomplish during the installation - **/ - function moduleInstall() { - // Register in the action forward (to use in administrator mode) - $oModuleController = &getController('module'); - // Set the default skin - $oModuleController = &getController('module'); - $config->skin = 'default'; - $config->colorset = 'normal'; - $oModuleController->insertModuleConfig('poll', $config); - // 2007.10.17 When deleting posts/comments delete the poll as well - $oModuleController->insertTrigger('document.insertDocument', 'poll', 'controller', 'triggerInsertDocumentPoll', 'after'); - $oModuleController->insertTrigger('comment.insertComment', 'poll', 'controller', 'triggerInsertCommentPoll', 'after'); - $oModuleController->insertTrigger('document.updateDocument', 'poll', 'controller', 'triggerUpdateDocumentPoll', 'after'); - $oModuleController->insertTrigger('comment.updateComment', 'poll', 'controller', 'triggerUpdateCommentPoll', 'after'); - $oModuleController->insertTrigger('document.deleteDocument', 'poll', 'controller', 'triggerDeleteDocumentPoll', 'after'); - $oModuleController->insertTrigger('comment.deleteComment', 'poll', 'controller', 'triggerDeleteCommentPoll', 'after'); + /** + * @brief A method to check if the installation has been successful + */ + function checkUpdate() + { + $oModuleModel = &getModel('module'); + // 2007.10.17 When deleting posts/comments delete the poll as well + if(!$oModuleModel->getTrigger('document.insertDocument', 'poll', 'controller', 'triggerInsertDocumentPoll', 'after')) return true; + if(!$oModuleModel->getTrigger('comment.insertComment', 'poll', 'controller', 'triggerInsertCommentPoll', 'after')) return true; + if(!$oModuleModel->getTrigger('document.updateDocument', 'poll', 'controller', 'triggerUpdateDocumentPoll', 'after')) return true; + if(!$oModuleModel->getTrigger('comment.updateComment', 'poll', 'controller', 'triggerUpdateCommentPoll', 'after')) return true; + if(!$oModuleModel->getTrigger('document.deleteDocument', 'poll', 'controller', 'triggerDeleteDocumentPoll', 'after')) return true; + if(!$oModuleModel->getTrigger('comment.deleteComment', 'poll', 'controller', 'triggerDeleteCommentPoll', 'after')) return true; - return new Object(); - } + return false; + } - /** - * @brief A method to check if the installation has been successful - **/ - function checkUpdate() { - $oModuleModel = &getModel('module'); - // 2007.10.17 When deleting posts/comments delete the poll as well - if(!$oModuleModel->getTrigger('document.insertDocument', 'poll', 'controller', 'triggerInsertDocumentPoll', 'after')) return true; - if(!$oModuleModel->getTrigger('comment.insertComment', 'poll', 'controller', 'triggerInsertCommentPoll', 'after')) return true; - if(!$oModuleModel->getTrigger('document.updateDocument', 'poll', 'controller', 'triggerUpdateDocumentPoll', 'after')) return true; - if(!$oModuleModel->getTrigger('comment.updateComment', 'poll', 'controller', 'triggerUpdateCommentPoll', 'after')) return true; - if(!$oModuleModel->getTrigger('document.deleteDocument', 'poll', 'controller', 'triggerDeleteDocumentPoll', 'after')) return true; - if(!$oModuleModel->getTrigger('comment.deleteComment', 'poll', 'controller', 'triggerDeleteCommentPoll', 'after')) return true; + /** + * @brief Execute update + */ + function moduleUpdate() + { + $oModuleModel = &getModel('module'); + $oModuleController = &getController('module'); + // 2007.10.17 When deleting posts/comments delete the poll as well + if(!$oModuleModel->getTrigger('document.deleteDocument', 'poll', 'controller', 'triggerDeleteDocumentPoll', 'after')) + $oModuleController->insertTrigger('document.deleteDocument', 'poll', 'controller', 'triggerDeleteDocumentPoll', 'after'); + if(!$oModuleModel->getTrigger('comment.deleteComment', 'poll', 'controller', 'triggerDeleteCommentPoll', 'after')) + $oModuleController->insertTrigger('comment.deleteComment', 'poll', 'controller', 'triggerDeleteCommentPoll', 'after'); + // 2008.04.22 A poll connection to add posts/comments + if(!$oModuleModel->getTrigger('document.insertDocument', 'poll', 'controller', 'triggerInsertDocumentPoll', 'after')) + $oModuleController->insertTrigger('document.insertDocument', 'poll', 'controller', 'triggerInsertDocumentPoll', 'after'); + if(!$oModuleModel->getTrigger('comment.insertComment', 'poll', 'controller', 'triggerInsertCommentPoll', 'after')) + $oModuleController->insertTrigger('comment.insertComment', 'poll', 'controller', 'triggerInsertCommentPoll', 'after'); + if(!$oModuleModel->getTrigger('document.updateDocument', 'poll', 'controller', 'triggerUpdateDocumentPoll', 'after')) + $oModuleController->insertTrigger('document.updateDocument', 'poll', 'controller', 'triggerUpdateDocumentPoll', 'after'); + if(!$oModuleModel->getTrigger('comment.updateComment', 'poll', 'controller', 'triggerUpdateCommentPoll', 'after')) + $oModuleController->insertTrigger('comment.updateComment', 'poll', 'controller', 'triggerUpdateCommentPoll', 'after'); - return false; - } + return new Object(0, 'success_updated'); + } - /** - * @brief Execute update - **/ - function moduleUpdate() { - $oModuleModel = &getModel('module'); - $oModuleController = &getController('module'); - // 2007.10.17 When deleting posts/comments delete the poll as well - if(!$oModuleModel->getTrigger('document.deleteDocument', 'poll', 'controller', 'triggerDeleteDocumentPoll', 'after')) - $oModuleController->insertTrigger('document.deleteDocument', 'poll', 'controller', 'triggerDeleteDocumentPoll', 'after'); - if(!$oModuleModel->getTrigger('comment.deleteComment', 'poll', 'controller', 'triggerDeleteCommentPoll', 'after')) - $oModuleController->insertTrigger('comment.deleteComment', 'poll', 'controller', 'triggerDeleteCommentPoll', 'after'); - // 2008.04.22 A poll connection to add posts/comments - if(!$oModuleModel->getTrigger('document.insertDocument', 'poll', 'controller', 'triggerInsertDocumentPoll', 'after')) - $oModuleController->insertTrigger('document.insertDocument', 'poll', 'controller', 'triggerInsertDocumentPoll', 'after'); - if(!$oModuleModel->getTrigger('comment.insertComment', 'poll', 'controller', 'triggerInsertCommentPoll', 'after')) - $oModuleController->insertTrigger('comment.insertComment', 'poll', 'controller', 'triggerInsertCommentPoll', 'after'); - if(!$oModuleModel->getTrigger('document.updateDocument', 'poll', 'controller', 'triggerUpdateDocumentPoll', 'after')) - $oModuleController->insertTrigger('document.updateDocument', 'poll', 'controller', 'triggerUpdateDocumentPoll', 'after'); - if(!$oModuleModel->getTrigger('comment.updateComment', 'poll', 'controller', 'triggerUpdateCommentPoll', 'after')) - $oModuleController->insertTrigger('comment.updateComment', 'poll', 'controller', 'triggerUpdateCommentPoll', 'after'); - - return new Object(0, 'success_updated'); - } - - /** - * @brief Re-generate the cache file - **/ - function recompileCache() { - } - } -?> + /** + * @brief Re-generate the cache file + */ + function recompileCache() + { + } +} +/* End of file poll.class.php */ +/* Location: ./modules/poll/poll.class.php */ diff --git a/modules/poll/poll.controller.php b/modules/poll/poll.controller.php index 792b81b7d..babf2ed3e 100644 --- a/modules/poll/poll.controller.php +++ b/modules/poll/poll.controller.php @@ -1,342 +1,367 @@ $val) { - if(strpos($key,'tidx')) continue; - if(!preg_match("/^(title|checkcount|item)_/i", $key)) continue; - if(!trim($val)) continue; - - $tmp_arr = explode('_',$key); - - $poll_index = $tmp_arr[1]; - - if(Context::get('is_logged')) { - $logged_info = Context::get('logged_info'); - // Remove the tag if the it is not the top administrator in the session - if($logged_info->is_admin != 'Y') $val = htmlspecialchars($val); - } - - if($tmp_arr[0]=='title') $tmp_args[$poll_index]->title = $val; - else if($tmp_arr[0]=='checkcount') $tmp_args[$poll_index]->checkcount = $val; - else if($tmp_arr[0]=='item') $tmp_args[$poll_index]->item[] = $val; - } - - foreach($tmp_args as $key => $val) { - if(!$val->checkcount) $val->checkcount = 1; - if($val->title && count($val->item)) $args->poll[] = $val; - } - - if(!count($args->poll)) return new Object(-1, 'cmd_null_item'); - - $args->stop_date = $stop_date; - // Configure the variables - $poll_srl = getNextSequence(); - - $logged_info = Context::get('logged_info'); - $member_srl = $logged_info->member_srl?$logged_info->member_srl:0; - - $oDB = &DB::getInstance(); - $oDB->begin(); - // Register the poll - unset($poll_args); - $poll_args->poll_srl = $poll_srl; - $poll_args->member_srl = $member_srl; - $poll_args->list_order = $poll_srl*-1; - $poll_args->stop_date = $args->stop_date; - $poll_args->poll_count = 0; - $output = executeQuery('poll.insertPoll', $poll_args); - if(!$output->toBool()) { - $oDB->rollback(); - return $output; - } - // Individual poll registration - foreach($args->poll as $key => $val) { - unset($title_args); - $title_args->poll_srl = $poll_srl; - $title_args->poll_index_srl = getNextSequence(); - $title_args->title = $val->title; - $title_args->checkcount = $val->checkcount; - $title_args->poll_count = 0; - $title_args->list_order = $title_args->poll_index_srl * -1; - $title_args->member_srl = $member_srl; - $title_args->upload_target_srl = $upload_target_srl; - $output = executeQuery('poll.insertPollTitle', $title_args); - if(!$output->toBool()) { - $oDB->rollback(); - return $output; - } - // Add the individual survey items - foreach($val->item as $k => $v) { - unset($item_args); - $item_args->poll_srl = $poll_srl; - $item_args->poll_index_srl = $title_args->poll_index_srl; - $item_args->title = $v; - $item_args->poll_count = 0; - $item_args->upload_target_srl = $upload_target_srl; - $output = executeQuery('poll.insertPollItem', $item_args); - if(!$output->toBool()) { - $oDB->rollback(); - return $output; - } - } - } - - $oDB->commit(); - - $this->add('poll_srl', $poll_srl); - $this->setMessage('success_registed'); - } - - /** - * @brief Accept the poll - **/ - function procPoll() { - $poll_srl = Context::get('poll_srl'); - $poll_srl_indexes = Context::get('poll_srl_indexes'); - $tmp_item_srls = explode(',',$poll_srl_indexes); - for($i=0;$iisPolled($poll_srl)) return new Object(-1, 'msg_already_poll'); - - $oDB = &DB::getInstance(); - $oDB->begin(); - - $args->poll_srl = $poll_srl; - // Update all poll responses related to the post - $output = executeQuery('poll.updatePoll', $args); - $output = executeQuery('poll.updatePollTitle', $args); - if(!$output->toBool()) { - $oDB->rollback(); - return $output; - } - // Record each polls selected items - $args->poll_item_srl = implode(',',$item_srls); - $output = executeQuery('poll.updatePollItems', $args); - if(!$output->toBool()) { - $oDB->rollback(); - return $output; - } - // Log the respondent's information - $log_args->poll_srl = $poll_srl; - - $logged_info = Context::get('logged_info'); - $member_srl = $logged_info->member_srl?$logged_info->member_srl:0; - - $log_args->member_srl = $member_srl; - $log_args->ipaddress = $_SERVER['REMOTE_ADDR']; - $output = executeQuery('poll.insertPollLog', $log_args); - if(!$output->toBool()) { - $oDB->rollback(); - return $output; - } - - $oDB->commit(); - - $skin = Context::get('skin'); - if(!$skin || !is_dir('./modules/poll/skins/'.$skin)) $skin = 'default'; - // Get tpl - $tpl = $oPollModel->getPollHtml($poll_srl, '', $skin); - - $this->add('poll_srl', $poll_srl); - $this->add('tpl',$tpl); - $this->setMessage('success_poll'); - - $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispPollAdminConfig'); - $this->setRedirectUrl($returnUrl); - } - - /** - * @brief Preview the results - **/ - function procPollViewResult() { - $poll_srl = Context::get('poll_srl'); - - $skin = Context::get('skin'); - if(!$skin || !is_dir('./modules/poll/skins/'.$skin)) $skin = 'default'; - - $oPollModel = &getModel('poll'); - $tpl = $oPollModel->getPollResultHtml($poll_srl, $skin); - - $this->add('poll_srl', $poll_srl); - $this->add('tpl',$tpl); - } - - /** - * @brief poll list - **/ - function procPollGetList() + $vars = Context::getRequestVars(); + foreach($vars as $key => $val) { - if(!Context::get('is_logged')) return new Object(-1,'msg_not_permitted'); - $pollSrls = Context::get('poll_srls'); - if($pollSrls) $pollSrlList = explode(',', $pollSrls); + if(strpos($key,'tidx')) continue; + if(!preg_match("/^(title|checkcount|item)_/i", $key)) continue; + if(!trim($val)) continue; - global $lang; - if(count($pollSrlList) > 0) { - $oPollAdminModel = &getAdminModel('poll'); - $args->pollIndexSrlList = $pollSrlList; - $output = $oPollAdminModel->getPollListWithMember($args); - $pollList = $output->data; + $tmp_arr = explode('_',$key); - if(is_array($pollList)) + $poll_index = $tmp_arr[1]; + + if(Context::get('is_logged')) + { + $logged_info = Context::get('logged_info'); + // Remove the tag if the it is not the top administrator in the session + if($logged_info->is_admin != 'Y') $val = htmlspecialchars($val); + } + + if($tmp_arr[0]=='title') $tmp_args[$poll_index]->title = $val; + else if($tmp_arr[0]=='checkcount') $tmp_args[$poll_index]->checkcount = $val; + else if($tmp_arr[0]=='item') $tmp_args[$poll_index]->item[] = $val; + } + + foreach($tmp_args as $key => $val) + { + if(!$val->checkcount) $val->checkcount = 1; + if($val->title && count($val->item)) $args->poll[] = $val; + } + + if(!count($args->poll)) return new Object(-1, 'cmd_null_item'); + + $args->stop_date = $stop_date; + // Configure the variables + $poll_srl = getNextSequence(); + + $logged_info = Context::get('logged_info'); + $member_srl = $logged_info->member_srl?$logged_info->member_srl:0; + + $oDB = &DB::getInstance(); + $oDB->begin(); + // Register the poll + unset($poll_args); + $poll_args->poll_srl = $poll_srl; + $poll_args->member_srl = $member_srl; + $poll_args->list_order = $poll_srl*-1; + $poll_args->stop_date = $args->stop_date; + $poll_args->poll_count = 0; + $output = executeQuery('poll.insertPoll', $poll_args); + if(!$output->toBool()) + { + $oDB->rollback(); + return $output; + } + // Individual poll registration + foreach($args->poll as $key => $val) + { + unset($title_args); + $title_args->poll_srl = $poll_srl; + $title_args->poll_index_srl = getNextSequence(); + $title_args->title = $val->title; + $title_args->checkcount = $val->checkcount; + $title_args->poll_count = 0; + $title_args->list_order = $title_args->poll_index_srl * -1; + $title_args->member_srl = $member_srl; + $title_args->upload_target_srl = $upload_target_srl; + $output = executeQuery('poll.insertPollTitle', $title_args); + if(!$output->toBool()) + { + $oDB->rollback(); + return $output; + } + // Add the individual survey items + foreach($val->item as $k => $v) + { + unset($item_args); + $item_args->poll_srl = $poll_srl; + $item_args->poll_index_srl = $title_args->poll_index_srl; + $item_args->title = $v; + $item_args->poll_count = 0; + $item_args->upload_target_srl = $upload_target_srl; + $output = executeQuery('poll.insertPollItem', $item_args); + if(!$output->toBool()) { - foreach($pollList AS $key=>$value) - { - if($value->checkcount == 1) $value->checkName = $lang->single_check; - else $value->checkName = $lang->multi_check; - } + $oDB->rollback(); + return $output; } } - else + } + + $oDB->commit(); + + $this->add('poll_srl', $poll_srl); + $this->setMessage('success_registed'); + } + + /** + * @brief Accept the poll + */ + function procPoll() + { + $poll_srl = Context::get('poll_srl'); + $poll_srl_indexes = Context::get('poll_srl_indexes'); + $tmp_item_srls = explode(',',$poll_srl_indexes); + for($i=0;$iisPolled($poll_srl)) return new Object(-1, 'msg_already_poll'); + + $oDB = &DB::getInstance(); + $oDB->begin(); + + $args->poll_srl = $poll_srl; + // Update all poll responses related to the post + $output = executeQuery('poll.updatePoll', $args); + $output = executeQuery('poll.updatePollTitle', $args); + if(!$output->toBool()) + { + $oDB->rollback(); + return $output; + } + // Record each polls selected items + $args->poll_item_srl = implode(',',$item_srls); + $output = executeQuery('poll.updatePollItems', $args); + if(!$output->toBool()) + { + $oDB->rollback(); + return $output; + } + // Log the respondent's information + $log_args->poll_srl = $poll_srl; + + $logged_info = Context::get('logged_info'); + $member_srl = $logged_info->member_srl?$logged_info->member_srl:0; + + $log_args->member_srl = $member_srl; + $log_args->ipaddress = $_SERVER['REMOTE_ADDR']; + $output = executeQuery('poll.insertPollLog', $log_args); + if(!$output->toBool()) + { + $oDB->rollback(); + return $output; + } + + $oDB->commit(); + + $skin = Context::get('skin'); + if(!$skin || !is_dir('./modules/poll/skins/'.$skin)) $skin = 'default'; + // Get tpl + $tpl = $oPollModel->getPollHtml($poll_srl, '', $skin); + + $this->add('poll_srl', $poll_srl); + $this->add('tpl',$tpl); + $this->setMessage('success_poll'); + + $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispPollAdminConfig'); + $this->setRedirectUrl($returnUrl); + } + + /** + * @brief Preview the results + */ + function procPollViewResult() + { + $poll_srl = Context::get('poll_srl'); + + $skin = Context::get('skin'); + if(!$skin || !is_dir('./modules/poll/skins/'.$skin)) $skin = 'default'; + + $oPollModel = &getModel('poll'); + $tpl = $oPollModel->getPollResultHtml($poll_srl, $skin); + + $this->add('poll_srl', $poll_srl); + $this->add('tpl',$tpl); + } + + /** + * @brief poll list + */ + function procPollGetList() + { + if(!Context::get('is_logged')) return new Object(-1,'msg_not_permitted'); + $pollSrls = Context::get('poll_srls'); + if($pollSrls) $pollSrlList = explode(',', $pollSrls); + + global $lang; + if(count($pollSrlList) > 0) + { + $oPollAdminModel = &getAdminModel('poll'); + $args->pollIndexSrlList = $pollSrlList; + $output = $oPollAdminModel->getPollListWithMember($args); + $pollList = $output->data; + + if(is_array($pollList)) { - $pollList = array(); - $this->setMessage($lang->no_documents); + foreach($pollList AS $key=>$value) + { + if($value->checkcount == 1) $value->checkName = $lang->single_check; + else $value->checkName = $lang->multi_check; + } } + } + else + { + $pollList = array(); + $this->setMessage($lang->no_documents); + } - $this->add('poll_list', $pollList); - } + $this->add('poll_list', $pollList); + } - /** - * @brief A poll synchronization trigger when a new post is registered - **/ - function triggerInsertDocumentPoll(&$obj) { - $this->syncPoll($obj->document_srl, $obj->content); - return new Object(); - } + /** + * @brief A poll synchronization trigger when a new post is registered + */ + function triggerInsertDocumentPoll(&$obj) + { + $this->syncPoll($obj->document_srl, $obj->content); + return new Object(); + } - /** - * @brief A poll synchronization trigger when a new comment is registered - **/ - function triggerInsertCommentPoll(&$obj) { - $this->syncPoll($obj->comment_srl, $obj->content); - return new Object(); - } + /** + * @brief A poll synchronization trigger when a new comment is registered + */ + function triggerInsertCommentPoll(&$obj) + { + $this->syncPoll($obj->comment_srl, $obj->content); + return new Object(); + } - /** - * @brief A poll synchronization trigger when a post is updated - **/ - function triggerUpdateDocumentPoll(&$obj) { - $this->syncPoll($obj->document_srl, $obj->content); - return new Object(); - } + /** + * @brief A poll synchronization trigger when a post is updated + */ + function triggerUpdateDocumentPoll(&$obj) + { + $this->syncPoll($obj->document_srl, $obj->content); + return new Object(); + } - /** - * @brief A poll synchronization trigger when a comment is updated - **/ - function triggerUpdateCommentPoll(&$obj) { - $this->syncPoll($obj->comment_srl, $obj->content); - return new Object(); - } + /** + * @brief A poll synchronization trigger when a comment is updated + */ + function triggerUpdateCommentPoll(&$obj) + { + $this->syncPoll($obj->comment_srl, $obj->content); + return new Object(); + } - /** - * @brief A poll deletion trigger when a post is removed - **/ - function triggerDeleteDocumentPoll(&$obj) { - $document_srl = $obj->document_srl; - if(!$document_srl) return new Object(); - // Get the poll - $args->upload_target_srl = $document_srl; - $output = executeQuery('poll.getPollByTargetSrl', $args); - if(!$output->data) return new Object(); + /** + * @brief A poll deletion trigger when a post is removed + */ + function triggerDeleteDocumentPoll(&$obj) + { + $document_srl = $obj->document_srl; + if(!$document_srl) return new Object(); + // Get the poll + $args->upload_target_srl = $document_srl; + $output = executeQuery('poll.getPollByTargetSrl', $args); + if(!$output->data) return new Object(); - $poll_srl = $output->data->poll_srl; - if(!$poll_srl) return new Object(); + $poll_srl = $output->data->poll_srl; + if(!$poll_srl) return new Object(); - $args->poll_srl = $poll_srl; + $args->poll_srl = $poll_srl; - $output = executeQuery('poll.deletePoll', $args); - if(!$output->toBool()) return $output; + $output = executeQuery('poll.deletePoll', $args); + if(!$output->toBool()) return $output; - $output = executeQuery('poll.deletePollItem', $args); - if(!$output->toBool()) return $output; + $output = executeQuery('poll.deletePollItem', $args); + if(!$output->toBool()) return $output; - $output = executeQuery('poll.deletePollTitle', $args); - if(!$output->toBool()) return $output; + $output = executeQuery('poll.deletePollTitle', $args); + if(!$output->toBool()) return $output; - $output = executeQuery('poll.deletePollLog', $args); - if(!$output->toBool()) return $output; + $output = executeQuery('poll.deletePollLog', $args); + if(!$output->toBool()) return $output; - return new Object(); - } + return new Object(); + } - /** - * @brief A poll deletion trigger when a comment is removed - **/ - function triggerDeleteCommentPoll(&$obj) { - $comment_srl = $obj->comment_srl; - if(!$comment_srl) return new Object(); - // Get the poll - $args->upload_target_srl = $comment_srl; - $output = executeQuery('poll.getPollByTargetSrl', $args); - if(!$output->data) return new Object(); + /** + * @brief A poll deletion trigger when a comment is removed + */ + function triggerDeleteCommentPoll(&$obj) + { + $comment_srl = $obj->comment_srl; + if(!$comment_srl) return new Object(); + // Get the poll + $args->upload_target_srl = $comment_srl; + $output = executeQuery('poll.getPollByTargetSrl', $args); + if(!$output->data) return new Object(); - $poll_srl = $output->data->poll_srl; - if(!$poll_srl) return new Object(); + $poll_srl = $output->data->poll_srl; + if(!$poll_srl) return new Object(); - $args->poll_srl = $poll_srl; + $args->poll_srl = $poll_srl; - $output = executeQuery('poll.deletePoll', $args); - if(!$output->toBool()) return $output; + $output = executeQuery('poll.deletePoll', $args); + if(!$output->toBool()) return $output; - $output = executeQuery('poll.deletePollItem', $args); - if(!$output->toBool()) return $output; + $output = executeQuery('poll.deletePollItem', $args); + if(!$output->toBool()) return $output; - $output = executeQuery('poll.deletePollTitle', $args); - if(!$output->toBool()) return $output; + $output = executeQuery('poll.deletePollTitle', $args); + if(!$output->toBool()) return $output; - $output = executeQuery('poll.deletePollLog', $args); - if(!$output->toBool()) return $output; + $output = executeQuery('poll.deletePollLog', $args); + if(!$output->toBool()) return $output; - return new Object(); - } + return new Object(); + } - /** - * @brief As post content's poll is obtained, synchronize the poll using the document number - **/ - function syncPoll($upload_target_srl, $content) { - $match_cnt = preg_match_all('!]*)poll_srl=(["\']?)([0-9]*)(["\']?)([^\>]*?)\>!is',$content, $matches); - for($i=0;$i<$match_cnt;$i++) { - $poll_srl = $matches[3][$i]; + /** + * @brief As post content's poll is obtained, synchronize the poll using the document number + */ + function syncPoll($upload_target_srl, $content) + { + $match_cnt = preg_match_all('!]*)poll_srl=(["\']?)([0-9]*)(["\']?)([^\>]*?)\>!is',$content, $matches); + for($i=0;$i<$match_cnt;$i++) + { + $poll_srl = $matches[3][$i]; - $args = null; - $args->poll_srl = $poll_srl; - $output = executeQuery('poll.getPoll', $args); - $poll = $output->data; + $args = null; + $args->poll_srl = $poll_srl; + $output = executeQuery('poll.getPoll', $args); + $poll = $output->data; - if($poll->upload_target_srl) continue; + if($poll->upload_target_srl) continue; - $args->upload_target_srl = $upload_target_srl; - $output = executeQuery('poll.updatePollTarget', $args); - $output = executeQuery('poll.updatePollTitleTarget', $args); - $output = executeQuery('poll.updatePollItemTarget', $args); - } - } - } -?> + $args->upload_target_srl = $upload_target_srl; + $output = executeQuery('poll.updatePollTarget', $args); + $output = executeQuery('poll.updatePollTitleTarget', $args); + $output = executeQuery('poll.updatePollItemTarget', $args); + } + } +} +/* End of file poll.controller.php */ +/* Location: ./modules/poll/poll.controller.php */ diff --git a/modules/poll/poll.model.php b/modules/poll/poll.model.php index c4335fde0..32182e408 100644 --- a/modules/poll/poll.model.php +++ b/modules/poll/poll.model.php @@ -1,138 +1,154 @@ poll_srl = $poll_srl; - /** - * @brief Initialization - **/ - function init() { - } + if(Context::get('is_logged')) + { + $logged_info = Context::get('logged_info'); + $args->member_srl = $logged_info->member_srl; + } + else + { + $args->ipaddress = $_SERVER['REMOTE_ADDR']; + } + $output = executeQuery('poll.getPollLog', $args); + if($output->data->count) return true; + return false; + } - /** - * @brief The function examines if the user has already been polled - **/ - function isPolled($poll_srl) { - $args->poll_srl = $poll_srl; + /** + * @brief Return the HTML data of the survey + * Return the result after checking if the poll has responses + */ + function getPollHtml($poll_srl, $style = '', $skin = 'default') + { + $args->poll_srl = $poll_srl; + // Get the information related to the survey + $columnList = array('poll_count', 'stop_date'); + $output = executeQuery('poll.getPoll', $args, $columnList); + if(!$output->data) return ''; - if(Context::get('is_logged')) { - $logged_info = Context::get('logged_info'); - $args->member_srl = $logged_info->member_srl; - } else { - $args->ipaddress = $_SERVER['REMOTE_ADDR']; - } - $output = executeQuery('poll.getPollLog', $args); - if($output->data->count) return true; - return false; - } + $poll->style = $style; + $poll->poll_count = (int)$output->data->poll_count; + $poll->stop_date = $output->data->stop_date; - /** - * @brief Return the HTML data of the survey - * Return the result after checking if the poll has responses - **/ - function getPollHtml($poll_srl, $style = '', $skin = 'default') { - $args->poll_srl = $poll_srl; - // Get the information related to the survey - $columnList = array('poll_count', 'stop_date'); - $output = executeQuery('poll.getPoll', $args, $columnList); - if(!$output->data) return ''; + $columnList = array('poll_index_srl', 'title', 'checkcount', 'poll_count'); + $output = executeQuery('poll.getPollTitle', $args, $columnList); + if(!$output->data) return; + if(!is_array($output->data)) $output->data = array($output->data); + foreach($output->data as $key => $val) + { + $poll->poll[$val->poll_index_srl]->title = $val->title; + $poll->poll[$val->poll_index_srl]->checkcount = $val->checkcount; + $poll->poll[$val->poll_index_srl]->poll_count = $val->poll_count; + } - $poll->style = $style; - $poll->poll_count = (int)$output->data->poll_count; - $poll->stop_date = $output->data->stop_date; + $output = executeQuery('poll.getPollItem', $args); + foreach($output->data as $key => $val) + { + $poll->poll[$val->poll_index_srl]->item[] = $val; + } - $columnList = array('poll_index_srl', 'title', 'checkcount', 'poll_count'); - $output = executeQuery('poll.getPollTitle', $args, $columnList); - if(!$output->data) return; - if(!is_array($output->data)) $output->data = array($output->data); - foreach($output->data as $key => $val) { - $poll->poll[$val->poll_index_srl]->title = $val->title; - $poll->poll[$val->poll_index_srl]->checkcount = $val->checkcount; - $poll->poll[$val->poll_index_srl]->poll_count = $val->poll_count; - } + $poll->poll_srl = $poll_srl; + // Only ongoing poll results + if($poll->stop_date > date("Ymd")) + { + if($this->isPolled($poll_srl)) $tpl_file = "result"; + else $tpl_file = "form"; + } + else + { + $tpl_file = "result"; + } - $output = executeQuery('poll.getPollItem', $args); - foreach($output->data as $key => $val) { - $poll->poll[$val->poll_index_srl]->item[] = $val; - } + Context::set('poll',$poll); + Context::set('skin',$skin); + // The skin for the default configurations, and the colorset configurations + $tpl_path = sprintf("%sskins/%s/", $this->module_path, $skin); - $poll->poll_srl = $poll_srl; - // Only ongoing poll results - if($poll->stop_date > date("Ymd")) { - if($this->isPolled($poll_srl)) $tpl_file = "result"; - else $tpl_file = "form"; - } else { - $tpl_file = "result"; - } + $oTemplate = &TemplateHandler::getInstance(); + return $oTemplate->compile($tpl_path, $tpl_file); + } - Context::set('poll',$poll); - Context::set('skin',$skin); - // The skin for the default configurations, and the colorset configurations - $tpl_path = sprintf("%sskins/%s/", $this->module_path, $skin); + /** + * @brief Return the result's HTML + */ + function getPollResultHtml($poll_srl, $skin = 'default') + { + $args->poll_srl = $poll_srl; + // Get the information related to the survey + $output = executeQuery('poll.getPoll', $args); + if(!$output->data) return ''; - $oTemplate = &TemplateHandler::getInstance(); - return $oTemplate->compile($tpl_path, $tpl_file); - } + $poll->style = $style; + $poll->poll_count = (int)$output->data->poll_count; + $poll->stop_date = $output->data->stop_date; - /** - * @brief Return the result's HTML - **/ - function getPollResultHtml($poll_srl, $skin = 'default') { - $args->poll_srl = $poll_srl; - // Get the information related to the survey - $output = executeQuery('poll.getPoll', $args); - if(!$output->data) return ''; + $columnList = array('poll_index_srl', 'checkcount', 'poll_count'); + $output = executeQuery('poll.getPollTitle', $args, $columnList); + if(!$output->data) return; + if(!is_array($output->data)) $output->data = array($output->data); + foreach($output->data as $key => $val) + { + $poll->poll[$val->poll_index_srl]->title = $val->title; + $poll->poll[$val->poll_index_srl]->checkcount = $val->checkcount; + $poll->poll[$val->poll_index_srl]->poll_count = $val->poll_count; + } - $poll->style = $style; - $poll->poll_count = (int)$output->data->poll_count; - $poll->stop_date = $output->data->stop_date; + $output = executeQuery('poll.getPollItem', $args); + foreach($output->data as $key => $val) + { + $poll->poll[$val->poll_index_srl]->item[] = $val; + } - $columnList = array('poll_index_srl', 'checkcount', 'poll_count'); - $output = executeQuery('poll.getPollTitle', $args, $columnList); - if(!$output->data) return; - if(!is_array($output->data)) $output->data = array($output->data); - foreach($output->data as $key => $val) { - $poll->poll[$val->poll_index_srl]->title = $val->title; - $poll->poll[$val->poll_index_srl]->checkcount = $val->checkcount; - $poll->poll[$val->poll_index_srl]->poll_count = $val->poll_count; - } + $poll->poll_srl = $poll_srl; - $output = executeQuery('poll.getPollItem', $args); - foreach($output->data as $key => $val) { - $poll->poll[$val->poll_index_srl]->item[] = $val; - } + $tpl_file = "result"; - $poll->poll_srl = $poll_srl; + Context::set('poll',$poll); + // The skin for the default configurations, and the colorset configurations + $tpl_path = sprintf("%sskins/%s/", $this->module_path, $skin); - $tpl_file = "result"; + $oTemplate = &TemplateHandler::getInstance(); + return $oTemplate->compile($tpl_path, $tpl_file); + } + /** [TO REVIEW] + * @brief Selected poll - return the colorset of the skin + */ + function getPollGetColorsetList() + { + $skin = Context::get('skin'); - Context::set('poll',$poll); - // The skin for the default configurations, and the colorset configurations - $tpl_path = sprintf("%sskins/%s/", $this->module_path, $skin); + $oModuleModel = &getModel('module'); + $skin_info = $oModuleModel->loadSkinInfo($this->module_path, $skin); - $oTemplate = &TemplateHandler::getInstance(); - return $oTemplate->compile($tpl_path, $tpl_file); - } - /** [TO REVIEW] - * @brief Selected poll - return the colorset of the skin - **/ - function getPollGetColorsetList() { - $skin = Context::get('skin'); + for($i=0;$icolorset);$i++) + { + $colorset = sprintf('%s|@|%s', $skin_info->colorset[$i]->name, $skin_info->colorset[$i]->title); + $colorset_list[] = $colorset; + } - $oModuleModel = &getModel('module'); - $skin_info = $oModuleModel->loadSkinInfo($this->module_path, $skin); - - for($i=0;$icolorset);$i++) { - $colorset = sprintf('%s|@|%s', $skin_info->colorset[$i]->name, $skin_info->colorset[$i]->title); - $colorset_list[] = $colorset; - } - - if(count($colorset_list)) $colorsets = implode("\n", $colorset_list); - $this->add('colorset_list', $colorsets); - } - } -?> + if(count($colorset_list)) $colorsets = implode("\n", $colorset_list); + $this->add('colorset_list', $colorsets); + } +} +/* End of file poll.model.php */ +/* Location: ./modules/poll/poll.model.php */ diff --git a/modules/rss/rss.admin.controller.php b/modules/rss/rss.admin.controller.php index 2e418d037..6661e8f44 100644 --- a/modules/rss/rss.admin.controller.php +++ b/modules/rss/rss.admin.controller.php @@ -1,155 +1,164 @@ 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;$isetRssModuleConfig($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;$isetRssModuleConfig($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 */ diff --git a/modules/rss/rss.admin.view.php b/modules/rss/rss.admin.view.php index 37f73ed9b..02d79d537 100644 --- a/modules/rss/rss.admin.view.php +++ b/modules/rss/rss.admin.view.php @@ -1,60 +1,65 @@ 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 */ diff --git a/modules/rss/rss.class.php b/modules/rss/rss.class.php index e7020d481..440c499c2 100644 --- a/modules/rss/rss.class.php +++ b/modules/rss/rss.class.php @@ -1,88 +1,92 @@ 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 */ diff --git a/modules/rss/rss.controller.php b/modules/rss/rss.controller.php index 3e155ea92..8ad364365 100644 --- a/modules/rss/rss.controller.php +++ b/modules/rss/rss.controller.php @@ -1,77 +1,84 @@ 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 */ diff --git a/modules/rss/rss.model.php b/modules/rss/rss.model.php index b217173a6..903d47b5b 100644 --- a/modules/rss/rss.model.php +++ b/modules/rss/rss.model.php @@ -1,49 +1,55 @@ 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 */ diff --git a/modules/rss/rss.view.php b/modules/rss/rss.view.php index 02274cf95..216c7c489 100644 --- a/modules/rss/rss.view.php +++ b/modules/rss/rss.view.php @@ -1,235 +1,262 @@ 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('\'', ''',$info->title); + if($config->feed_description) + { + $info->description = str_replace('\'', ''', htmlspecialchars($config->feed_description)); + } + else + { + $info->description = str_replace('\'', ''', htmlspecialchars($this->module_info->description)); + } + $info->link = getUrl('','mid',$mid); + $info->feed_copyright = str_replace('\'', ''', htmlspecialchars($feed_config->feed_copyright)); + if(!$info->feed_copyright) + { + $info->feed_copyright = str_replace('\'', ''', 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('\'', ''',$info->title); - if($config->feed_description) { - $info->description = str_replace('\'', ''', htmlspecialchars($config->feed_description)); - } - else { - $info->description = str_replace('\'', ''', htmlspecialchars($this->module_info->description)); - } - $info->link = getUrl('','mid',$mid); - $info->feed_copyright = str_replace('\'', ''', htmlspecialchars($feed_config->feed_copyright)); - if(!$info->feed_copyright) { - $info->feed_copyright = str_replace('\'', ''', htmlspecialchars($total_config->feed_copyright)); - } - } - } - } + $oModuleController->replaceDefinedLangCode($info->title); + $info->title = str_replace('\'', ''', htmlspecialchars($info->title)); + $info->description = str_replace('\'', ''', htmlspecialchars($total_config->feed_description)); + $info->link = Context::getRequestUri(); + $info->feed_copyright = str_replace('\'', ''', 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('\'', ''', 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('\'', ''', htmlspecialchars($info->title)); - $info->description = str_replace('\'', ''', htmlspecialchars($total_config->feed_description)); - $info->link = Context::getRequestUri(); - $info->feed_copyright = str_replace('\'', ''', 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('\'', ''', 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 */