diff --git a/classes/db/DBCubrid.class.php b/classes/db/DBCubrid.class.php index eb3d33e86..65f0075e1 100644 --- a/classes/db/DBCubrid.class.php +++ b/classes/db/DBCubrid.class.php @@ -642,13 +642,25 @@ $column_list[] = $name; } elseif(strpos($name,'.')===false && strpos($name,'(')===false) { $name = sprintf($click_count,$name); - if($alias) $column_list[] = sprintf('"%s" as %s', $name, $alias); + if ($alias) $column_list[] = sprintf('"%s" as %s', $name, $alias); else $column_list[] = sprintf('"%s"',$name); } else { if(strpos($name,'.')!=false) { list($prefix, $name) = explode('.',$name); - $prefix = sprintf('"%s"',$prefix); - $name = ($name == '*') ? $name : sprintf('"%s"',$name); + if (strpos ($prefix, "(")) { + $tmpval = explode ("(", $prefix); + $tmpval[1] = sprintf ('"%s"', $tmpval[1]); + $prefix = implode ("(", $tmpval); + $flag_of_function = true; + } + else $prefix = sprintf('"%s"',$prefix); + if ($flag_of_function === true) { + $tmpval = explode (")", $name); + $tmpval[0] = sprintf ('"%s"', $tmpval[0]); + $name = implode (")", $tmpval); + $flag_of_function = false; + } + else $name = ($name == '*') ? $name : sprintf('"%s"',$name); $column_list[] = sprintf($click_count,sprintf('%s.%s', $prefix, $name)) . ($alias ? sprintf(' as %s',$alias) : ''); diff --git a/classes/db/DBFirebird.class.php b/classes/db/DBFirebird.class.php index 8b8d24f5c..1b8cda1bb 100644 --- a/classes/db/DBFirebird.class.php +++ b/classes/db/DBFirebird.class.php @@ -325,7 +325,7 @@ $type = $output->column_type[$key]; // type 값이 null 일때는 $key값이 alias인 경우라 실제 column 이름을 찾아 type을 구함 - if($type == null) { + if($type == null && $output->columns && count($output->columns)) { foreach($output->columns as $cols) { if($cols['alias'] == $key) { // table.column 형식인지 정규식으로 검사 함 @@ -992,7 +992,7 @@ $type = $output->column_type[$key]; // type 값이 null 일때는 $key값이 alias인 경우라 실제 column 이름을 찾아 type을 구함 - if($type == null) { + if($type == null && $output->columns && count($output->columns)) { foreach($output->columns as $cols) { if($cols['alias'] == $key) { // table.column 형식인지 정규식으로 검사 함 diff --git a/config/config.inc.php b/config/config.inc.php index 780f03425..31edb7a12 100644 --- a/config/config.inc.php +++ b/config/config.inc.php @@ -13,7 +13,7 @@ * @brief XE의 전체 버전 표기 * 이 파일의 수정이 없더라도 공식 릴리즈시에 수정되어 함께 배포되어야 함 **/ - define('__ZBXE_VERSION__', '1.4.0.5'); + define('__ZBXE_VERSION__', '1.4.0.6'); /** * @brief zbXE가 설치된 장소의 base path를 구함 diff --git a/config/func.inc.php b/config/func.inc.php index bb4e28e7f..95eb19b5c 100644 --- a/config/func.inc.php +++ b/config/func.inc.php @@ -688,6 +688,7 @@ if($src) { $url_info = parse_url($src); $query = $url_info['query']; + $query = str_replace("&","&",$query); $queries = explode('&', $query); $cnt = count($queries); for($i=0;$i<$cnt;$i++) { @@ -860,4 +861,29 @@ return false; } + function stripEmbedTagForAdmin(&$content, $writer_member_srl) + { + if(!Context::get('is_logged')) return; + $oModuleModel = &getModel('module'); + $logged_info = Context::get('logged_info'); + + if($writer_member_srl != $logged_info->member_srl && ($logged_info->is_admin == "Y" || $oModuleModel->isSiteAdmin($logged_info)) ) + { + if($writer_member_srl) + { + $oMemberModel =& getModel('member'); + $member_info = $oMemberModel->getMemberInfoByMemberSrl($writer_member_srl); + if($member_info->is_admin == "Y") + { + return; + } + } + $security_msg = "

".Context::getLang('security_warning_embed')."

"; + $content = preg_replace('/]+>(\s*<\/embed>)?/is', $security_msg, $content); + $content = preg_replace('/]+editor_component="multimedia_link"[^>]*>(\s*<\/img>)?/is', $security_msg, $content); + } + + return; + } + ?> diff --git a/modules/comment/comment.item.php b/modules/comment/comment.item.php index b081b74fe..c120c88af 100644 --- a/modules/comment/comment.item.php +++ b/modules/comment/comment.item.php @@ -160,32 +160,6 @@ return htmlspecialchars($this->get('nick_name')); } - function stripEmbedTagForAdmin(&$content) - { - if(!Context::get('is_logged')) return; - $oModuleModel = &getModel('module'); - $logged_info = Context::get('logged_info'); - $writer_member_srl = $this->get('member_srl'); - - if($writer_member_srl != $logged_info->member_srl && ($logged_info->is_admin == "Y" || $oModuleModel->isSiteAdmin($logged_info)) ) - { - if($writer_member_srl) - { - $oMemberModel =& getModel('member'); - $member_info = $oMemberModel->getMemberInfoByMemberSrl($writer_member_srl); - if($member_info->is_admin == "Y") - { - return; - } - } - $security_msg = "

".Context::getLang('security_warning_embed')."

"; - $content = preg_replace('/]+>(\s*<\/embed>)?/is', $security_msg, $content); - $content = preg_replace('/]+editor_component="multimedia_link"[^>]*>(\s*<\/img>)?/is', $security_msg, $content); - } - - return; - } - function getContentText($strlen = 0) { if($this->isSecret() && !$this->isAccessible()) return Context::getLang('msg_is_secret'); @@ -200,7 +174,7 @@ if($this->isSecret() && !$this->isAccessible()) return Context::getLang('msg_is_secret'); $content = $this->get('content'); - $this->stripEmbedTagForAdmin($content); + stripEmbedTagForAdmin($content, $this->get('member_srl')); // 이 댓글을... 팝업메뉴를 출력할 경우 if($add_popup_menu && Context::get('is_logged') ) { diff --git a/modules/comment/queries/getCommentPageList.xml b/modules/comment/queries/getCommentPageList.xml index 496a4905e..9265c4e31 100644 --- a/modules/comment/queries/getCommentPageList.xml +++ b/modules/comment/queries/getCommentPageList.xml @@ -14,6 +14,7 @@ + diff --git a/modules/communication/communication.view.php b/modules/communication/communication.view.php index 23eaf8d6b..c96c193b4 100644 --- a/modules/communication/communication.view.php +++ b/modules/communication/communication.view.php @@ -43,7 +43,10 @@ // message_srl이 있으면 내용 추출 if($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) ) Context::set('message', $message); + 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); + } } // 목록 추출 @@ -73,7 +76,10 @@ // 새 쪽지를 가져옴 $message = $oCommunicationModel->getNewMessage(); - if($message) Context::set('message', $message); + if($message) { + stripEmbedTagForAdmin($message->content, $message->sender_srl); + Context::set('message', $message); + } // 플래그 삭제 $flag_path = './files/communication_extra_info/new_message_flags/'.getNumberingPath($logged_info->member_srl); diff --git a/modules/document/document.item.php b/modules/document/document.item.php index 7b46213ac..16e0912c4 100644 --- a/modules/document/document.item.php +++ b/modules/document/document.item.php @@ -251,32 +251,6 @@ return htmlspecialchars($content); } - function stripEmbedTagForAdmin(&$content) - { - if(!Context::get('is_logged')) return; - $oModuleModel = &getModel('module'); - $logged_info = Context::get('logged_info'); - $writer_member_srl = $this->get('member_srl'); - - if($writer_member_srl != $logged_info->member_srl && ($logged_info->is_admin == "Y" || $oModuleModel->isSiteAdmin($logged_info)) ) - { - if($writer_member_srl) - { - $oMemberModel =& getModel('member'); - $member_info = $oMemberModel->getMemberInfoByMemberSrl($writer_member_srl); - if($member_info->is_admin == "Y") - { - return; - } - } - $security_msg = "

".Context::getLang('security_warning_embed')."

"; - $content = preg_replace('/]+>(\s*<\/embed>)?/is', $security_msg, $content); - $content = preg_replace('/]+editor_component="multimedia_link"[^>]*>(\s*<\/img>)?/is', $security_msg, $content); - } - - return; - } - function getContent($add_popup_menu = true, $add_content_info = true, $resource_realpath = false, $add_xe_content_class = true) { if(!$this->document_srl) return; @@ -285,7 +259,7 @@ $_SESSION['accessible'][$this->document_srl] = true; $content = $this->get('content'); - $this->stripEmbedTagForAdmin($content); + stripEmbedTagForAdmin($content, $this->get('member_srl')); // rewrite모듈을 사용하면 링크 재정의 $oContext = &Context::getInstance();