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('/