예제 #1
0
 /**
  * Display message box
  * @return void|Object (void : success, Object : fail)
  */
 function dispCommunicationMessages()
 {
     // Error appears if not logged-in
     if (!Context::get('is_logged')) {
         return $this->stop('msg_not_logged');
     }
     $logged_info = Context::get('logged_info');
     if (!array_key_exists('dispCommunicationMessages', $logged_info->menu_list)) {
         return $this->stop('msg_invalid_request');
     }
     // Set the variables
     $message_srl = Context::get('message_srl');
     $message_type = Context::get('message_type');
     if (!in_array($message_type, array('R', 'S', 'T'))) {
         $message_type = 'R';
         Context::set('message_type', $message_type);
     }
     $oCommunicationModel = getModel('communication');
     // extract contents if message_srl exists
     if ($message_srl) {
         $templateFile = 'read_message';
         $columnList = array('message_srl', 'sender_srl', 'receiver_srl', 'message_type', 'title', 'content', 'readed', 'regdate');
         $message = $oCommunicationModel->getSelectedMessage($message_srl, $columnList);
         switch ($message->message_type) {
             case 'R':
                 if ($message->receiver_srl != $logged_info->member_srl) {
                     return $this->stop('msg_invalid_request');
                 }
                 break;
             case 'S':
                 if ($message->sender_srl != $logged_info->member_srl) {
                     return $this->stop('msg_invalid_request');
                 }
                 break;
             case 'T':
                 if ($message->receiver_srl != $logged_info->member_srl && $message->sender_srl != $logged_info->member_srl) {
                     return $this->stop('msg_invalid_request');
                 }
                 break;
         }
         if ($message->message_srl == $message_srl && ($message->receiver_srl == $logged_info->member_srl || $message->sender_srl == $logged_info->member_srl)) {
             stripEmbedTagForAdmin($message->content, $message->sender_srl);
             Context::set('message', $message);
         }
     } else {
         $templateFile = 'messages';
     }
     // Extract a list
     $columnList = array('message_srl', 'readed', 'title', 'member.member_srl', 'member.nick_name', 'message.regdate', 'readed_date');
     $output = $oCommunicationModel->getMessages($message_type, $columnList);
     // set a template file
     Context::set('total_count', $output->total_count);
     Context::set('total_page', $output->total_page);
     Context::set('page', $output->page);
     Context::set('message_list', $output->data);
     Context::set('page_navigation', $output->page_navigation);
     $oSecurity = new Security();
     $oSecurity->encodeHTML('message_list..nick_name');
     $this->setTemplateFile($templateFile);
 }
예제 #2
0
 function getContent($add_popup_menu = true, $add_content_info = true, $resource_realpath = false, $add_xe_content_class = true, $stripEmbedTagException = false)
 {
     if (!$this->document_srl) {
         return;
     }
     if ($this->isSecret() && !$this->isGranted() && !$this->isAccessible()) {
         return Context::getLang('msg_is_secret');
     }
     $result = $this->_checkAccessibleFromStatus();
     if ($result) {
         $_SESSION['accessible'][$this->document_srl] = true;
     }
     $content = $this->get('content');
     if (!$stripEmbedTagException) {
         stripEmbedTagForAdmin($content, $this->get('member_srl'));
     }
     // Define a link if using a rewrite module
     $oContext =& Context::getInstance();
     if ($oContext->allow_rewrite) {
         $content = preg_replace('/<a([ \\t]+)href=("|\')\\.\\/\\?/i', "<a href=\\2" . Context::getRequestUri() . "?", $content);
     }
     // To display a pop-up menu
     if ($add_popup_menu) {
         $content = sprintf('%s<div class="document_popup_menu"><a href="#popup_menu_area" class="document_%d" onclick="return false">%s</a></div>', $content, $this->document_srl, Context::getLang('cmd_document_do'));
     }
     // If additional content information is set
     if ($add_content_info) {
         $memberSrl = $this->get('member_srl');
         if ($memberSrl < 0) {
             $memberSrl = 0;
         }
         $content = sprintf('<!--BeforeDocument(%d,%d)--><div class="document_%d_%d xe_content">%s</div><!--AfterDocument(%d,%d)-->', $this->document_srl, $memberSrl, $this->document_srl, $memberSrl, $content, $this->document_srl, $memberSrl, $this->document_srl, $memberSrl);
         // Add xe_content class although accessing content is not required
     } else {
         if ($add_xe_content_class) {
             $content = sprintf('<div class="xe_content">%s</div>', $content);
         }
     }
     // Change the image path to a valid absolute path if resource_realpath is true
     if ($resource_realpath) {
         $content = preg_replace_callback('/<img([^>]+)>/i', array($this, 'replaceResourceRealPath'), $content);
     }
     return $content;
 }
예제 #3
0
 /**
  * display a new message
  * @return void|Object (void : success, Object : fail)
  */
 function dispCommunicationNewMessage()
 {
     $this->setLayoutPath('./common/tpl/');
     $this->setLayoutFile('popup_layout');
     // Error appears if not logged-in
     if (!Context::get('is_logged')) {
         return $this->stop('msg_not_logged');
     }
     $logged_info = Context::get('logged_info');
     $oCommunicationModel = getModel('communication');
     // get a new message
     $columnList = array('message_srl', 'member_srl', 'nick_name', 'title', 'content', 'sender_srl');
     $message = $oCommunicationModel->getNewMessage($columnList);
     if ($message) {
         stripEmbedTagForAdmin($message->content, $message->sender_srl);
         Context::set('message', $message);
     }
     // Delete a flag
     $flag_path = './files/communication_extra_info/new_message_flags/' . getNumberingPath($logged_info->member_srl);
     $flag_file = sprintf('%s%s', $flag_path, $logged_info->member_srl);
     FileHandler::removeFile($flag_file);
     $this->setTemplateFile('new_message');
 }
예제 #4
0
 /**
  * Return content after filter
  * @return string
  */
 function getContent($add_popup_menu = TRUE, $add_content_info = TRUE, $add_xe_content_class = TRUE)
 {
     if ($this->isSecret() && !$this->isAccessible()) {
         return Context::getLang('msg_is_secret');
     }
     $content = $this->get('content');
     stripEmbedTagForAdmin($content, $this->get('member_srl'));
     // when displaying the comment on the pop-up menu
     if ($add_popup_menu && Context::get('is_logged')) {
         $content = sprintf('%s<div class="comment_popup_menu"><a href="#popup_menu_area" class="comment_%d" onclick="return false">%s</a></div>', $content, $this->comment_srl, Context::getLang('cmd_comment_do'));
     }
     // if additional information which can access contents is set
     if ($add_content_info) {
         $memberSrl = $this->get('member_srl');
         if ($memberSrl < 0) {
             $memberSrl = 0;
         }
         $content = sprintf('<!--BeforeComment(%d,%d)--><div class="comment_%d_%d xe_content">%s</div><!--AfterComment(%d,%d)-->', $this->comment_srl, $memberSrl, $this->comment_srl, $memberSrl, $content, $this->comment_srl, $memberSrl);
         // xe_content class name should be specified although content access is not necessary.
     } else {
         if ($add_xe_content_class) {
             $content = sprintf('<div class="xe_content">%s</div>', $content);
         }
     }
     return $content;
 }
예제 #5
0
 /**
  * Display  쪽지함
  **/
 function dispMobileexMessageView()
 {
     // 로그인이 되어 있지 않으면 오류 표시
     if (!Context::get('is_logged')) {
         return $this->stop('msg_not_logged');
     }
     if (!Context::get('message_srl')) {
         return $this->stop('msg_not_message_srl');
     }
     // 변수 설정
     $logged_info = Context::get('logged_info');
     $message_srl = Context::get('message_srl');
     // 버전별 js로드
     if ($this->xe_ver > 4) {
         Context::addJsFile("./common/js/jquery.min.js", true, '', -10000011);
         Context::addJsFile("./common/js/xe.min.js", true, '', -100000);
     } else {
         Context::addJsFile("./common/js/jquery.js", true, '', -10000011);
         Context::addJsFile("./common/js/x.js", true, '', -100000);
         Context::addJsFile("./common/js/common.js", true, '', -100000);
         Context::addJsFile("./common/js/js_app.js", true, '', -100000);
         Context::addJsFile("./common/js/xml_handler.js", true, '', -100000);
         Context::addJsFile("./common/js/xml_js_filter.js", true, '', -100000);
     }
     $oCommunicationModel =& getModel('communication');
     if ($this->xe_ver > 4) {
         // message_srl이 있으면 내용 추출
         $columnList = array('message_srl', 'sender_srl', 'receiver_srl', 'message_type', 'title', 'content', 'readed', 'regdate');
         $message = $oCommunicationModel->getSelectedMessage($message_srl, $columnList);
         if ($message->message_srl == $message_srl && ($message->receiver_srl == $logged_info->member_srl || $message->sender_srl == $logged_info->member_srl)) {
             stripEmbedTagForAdmin($message->content, $message->sender_srl);
             // 전체 목록 추출
             $columnList = array('message_srl', 'readed', 'title', 'member.member_srl', 'member.nick_name', 'message.regdate', 'readed_date');
             $total_count = $oCommunicationModel->getMessages($message->message_type, $columnList);
         }
     } else {
         // message_srl이 있으면 내용 추출
         $message = $oCommunicationModel->getSelectedMessage($message_srl);
         if ($message->message_srl == $message_srl && ($message->receiver_srl == $logged_info->member_srl || $message->sender_srl == $logged_info->member_srl)) {
             stripEmbedTagForAdmin($message->content, $message->sender_srl);
         }
         // 전체 목록 추출
         $total_count = $oCommunicationModel->getMessages($message->message_type);
     }
     // 닉네임 가져오기
     if ($message->sender_srl != $logged_info->member_srl) {
         $args->member_srl = $message->sender_srl;
         $sender_info = executeQuery('member.getMemberInfoByMemberSrl', $args);
         $message->sender_name = $sender_info->data->nick_name;
     }
     if ($message->receiver_srl != $logged_info->member_srl) {
         $args->member_srl = $message->receiver_srl;
         $receiver_info = executeQuery('member.getMemberInfoByMemberSrl', $args);
         $message->receiver_name = $receiver_info->data->nick_name;
     }
     // set a template file
     Context::set('logged_info', $logged_info);
     Context::set('message', $message);
     Context::set('total_count', $total_count->total_count);
     $this->setTemplateFile('message_read');
 }
예제 #6
0
 /**
  * display a new message
  * @return void|Object (void : success, Object : fail)
  */
 function dispCommunicationNewMessage()
 {
     $this->setLayoutPath('./common/tpl/');
     $this->setLayoutFile('popup_layout');
     if ($this->config->enable_message == 'N') {
         return $this->stop('msg_invalid_request');
     }
     // Error appears if not logged-in
     if (!Context::get('is_logged')) {
         return $this->stop('msg_not_logged');
     }
     $logged_info = Context::get('logged_info');
     $oCommunicationModel = getModel('communication');
     // get a new message
     $columnList = array('message_srl', 'member_srl', 'nick_name', 'title', 'content', 'sender_srl');
     $message = $oCommunicationModel->getNewMessage($columnList);
     if ($message) {
         stripEmbedTagForAdmin($message->content, $message->sender_srl);
         Context::set('message', $message);
     }
     $this->setTemplateFile('new_message');
 }