diff --git a/classes/db/DB.class.php b/classes/db/DB.class.php index 26937e7ad..67f860af1 100644 --- a/classes/db/DB.class.php +++ b/classes/db/DB.class.php @@ -372,6 +372,7 @@ break; case 'number' : case 'numbers' : + if(is_array($val)) $val = join(',', $val); if(!preg_match('/^(-?)[0-9]+(,\-?[0-9]+)*$/is', $val)) return new Object(-1, sprintf($lang->filter->invalid_number, $lang->{$key} ? $lang->{$key} : $key)); break; case 'alpha' : diff --git a/classes/module/ModuleHandler.class.php b/classes/module/ModuleHandler.class.php index b973eeb6e..f29ff0c5f 100644 --- a/classes/module/ModuleHandler.class.php +++ b/classes/module/ModuleHandler.class.php @@ -294,6 +294,13 @@ $this->module_info->module_type = $type; $oModule->setModuleInfo($this->module_info, $xml_info); + if($type == "view" && $this->module_info->use_mobile == "Y" && Mobile::isMobileCheckByAgent()) + { + global $lang; + $footer = '

'.$lang->msg_pc_to_mobile.' '.$lang->cmd_move.'

'; + Context::addHtmlFooter($footer); + } + // execute the action, and if failed, set error if(!$oModule->proc()) $this->error = $oModule->getMessage(); diff --git a/config/config.inc.php b/config/config.inc.php index 898502c4f..30b6f1cfc 100644 --- a/config/config.inc.php +++ b/config/config.inc.php @@ -13,7 +13,7 @@ * @brief XE의 전체 버전 표기 * 이 파일의 수정이 없더라도 공식 릴리즈시에 수정되어 함께 배포되어야 함 **/ - define('__ZBXE_VERSION__', '1.4.5'); + define('__ZBXE_VERSION__', '1.4.5.2'); /** * @brief zbXE가 설치된 장소의 base path를 구함 diff --git a/layouts/xe_official/layout.html b/layouts/xe_official/layout.html index a4f16e094..ee310e92c 100644 --- a/layouts/xe_official/layout.html +++ b/layouts/xe_official/layout.html @@ -56,6 +56,3 @@ body{background:url({getUrl()}{$layout_info->background_image}) repeat-x left to

Powered by XE

- -

{$lang->msg_pc_to_mobile} {$lang->cmd_move}

- diff --git a/modules/editor/styles/default/style.css b/modules/editor/styles/default/style.css index 952408d02..c6c20d93d 100755 --- a/modules/editor/styles/default/style.css +++ b/modules/editor/styles/default/style.css @@ -9,3 +9,4 @@ .xe_content blockquote.q5{border:2px solid #707070} .xe_content blockquote.q6{border:1px dashed #707070} .xe_content blockquote.q7{border:1px dashed #707070;background:#fbfbfb} +.xe_content p { margin:0;} diff --git a/modules/install/install.controller.php b/modules/install/install.controller.php index 17b56c7b2..8e481c2ae 100644 --- a/modules/install/install.controller.php +++ b/modules/install/install.controller.php @@ -65,8 +65,6 @@ } } - $this->createWelcomePage(); - // 설치 완료 메세지 출력 $this->setMessage('msg_install_completed'); } @@ -361,116 +359,5 @@ return true; } - - /** - * @brief install welcome page - **/ - function createWelcomePage(){ - // ko/en/... - $lang = Context::getLangType(); - - // insertMenu - $menu_args->site_srl = 0; - $menu_args->title = 'welcome_menu'; - $menu_srl = $menu_args->menu_srl = getNextSequence(); - $menu_args->listorder = $menu_srl * -1; - - $output = executeQuery('menu.insertMenu', $menu_args); - if(!$output->toBool()) return $output; - - // insertMenuItem - // create 1depth menuitem - $item_args->menu_srl = $menu_srl; - $item_args->name = 'menu1'; - $parent_srl = $item_args->menu_item_srl = getNextSequence(); - $item_args->listorder = -1*$item_args->menu_item_srl; - - $output = executeQuery('menu.insertMenuItem', $item_args); - if(!$output->toBool()) return $output; - - // create 2depth menuitem - unset($item_args); - $item_args->menu_srl = $menu_srl; - $item_args->parent_srl = $parent_srl; - $item_args->url = 'welcome_page'; - $item_args->name = 'menu1-1'; - $item_args->menu_item_srl = getNextSequence(); - $item_args->listorder = -1*$item_args->menu_item_srl; - - $output = executeQuery('menu.insertMenuItem', $item_args); - if(!$output->toBool()) return $output; - - // XML 파일을 갱신 - $oMenuAdminController = &getAdminController('menu'); - $oMenuAdminController->makeXmlFile($menu_srl); - - // create Layout - //extra_vars init - $extra_vars->colorset = 'default'; - $extra_vars->main_menu = $menu_srl; - $extra_vars->bottom_menu = $menu_srl; - $extra_vars->menu_name_list = array(); - $extra_vars->menu_name_list[$menu_srl] = 'welcome_menu'; - - $args->site_srl = 0; - $layout_srl = $args->layout_srl = getNextSequence(); - $args->layout = 'xe_official'; - $args->title = 'welcome_layout'; - $args->layout_type = 'P'; - - $oLayoutAdminController = &getAdminController('layout'); - $output = $oLayoutAdminController->insertLayout($args); - if(!$output->toBool()) return $output; - - // update Layout - $args->extra_vars = serialize($extra_vars); - $output = $oLayoutAdminController->updateLayout($args); - if(!$output->toBool()) return $output; - - // insertPageModule - $page_args->layout_srl = $layout_srl; - $page_args->module = 'page'; - $page_args->mid = 'welcome_page'; - $page_args->module_category_srl = 0; - $page_args->page_caching_interval = 0; - - $oModuleController = &getController('module'); - $output = $oModuleController->insertModule($page_args); - - if(!$output->toBool()) return $output; - - $module_srl = $output->get('module_srl'); - - // insert PageContents - widget - $oTemplateHandler = &TemplateHandler::getInstance(); - - $oDocumentModel = &getModel('document'); - $oDocumentController = &getController('document'); - - $obj->module_srl = $module_srl; - Context::set('version', __ZBXE_VERSION__); - $obj->title = 'welcome_document'; - - $obj->content = $oTemplateHandler->compile('./modules/install/tpl/welcome_content', 'welcome_content_'.$lang); - - $output = $oDocumentController->insertDocument($obj); - if(!$output->toBool()) return $output; - - $document_srl = $output->get('document_srl'); - - // save PageWidget - $oModuleModel = &getModel('module'); - $module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl); - $module_info->content = ''; - - $output = $oModuleController->updateModule($module_info); - if(!$output->toBool()) return $output; - - // insertFirstModule - $site_args->site_srl = 0; - $site_args->index_module_srl = $module_srl; - $oModuleController->updateSite($site_args); - - } } ?> diff --git a/modules/install/script/ko.install.php b/modules/install/script/ko.install.php new file mode 100644 index 000000000..7222774ca --- /dev/null +++ b/modules/install/script/ko.install.php @@ -0,0 +1,107 @@ +site_srl = 0; + $menu_args->title = 'welcome_menu'; + $menu_srl = $menu_args->menu_srl = getNextSequence(); + $menu_args->listorder = $menu_srl * -1; + + $output = executeQuery('menu.insertMenu', $menu_args); + if(!$output->toBool()) return $output; + + // insertMenuItem + // create 1depth menuitem + $item_args->menu_srl = $menu_srl; + $item_args->name = 'menu1'; + $parent_srl = $item_args->menu_item_srl = getNextSequence(); + $item_args->listorder = -1*$item_args->menu_item_srl; + + $output = executeQuery('menu.insertMenuItem', $item_args); + if(!$output->toBool()) return $output; + + // create 2depth menuitem + unset($item_args); + $item_args->menu_srl = $menu_srl; + $item_args->parent_srl = $parent_srl; + $item_args->url = 'welcome_page'; + $item_args->name = 'menu1-1'; + $item_args->menu_item_srl = getNextSequence(); + $item_args->listorder = -1*$item_args->menu_item_srl; + + $output = executeQuery('menu.insertMenuItem', $item_args); + if(!$output->toBool()) return $output; + + // XML 파일을 갱신 + $oMenuAdminController = &getAdminController('menu'); + $oMenuAdminController->makeXmlFile($menu_srl); + + // create Layout + //extra_vars init + $extra_vars->colorset = 'default'; + $extra_vars->main_menu = $menu_srl; + $extra_vars->bottom_menu = $menu_srl; + $extra_vars->menu_name_list = array(); + $extra_vars->menu_name_list[$menu_srl] = 'welcome_menu'; + + $args->site_srl = 0; + $layout_srl = $args->layout_srl = getNextSequence(); + $args->layout = 'xe_official'; + $args->title = 'welcome_layout'; + $args->layout_type = 'P'; + + $oLayoutAdminController = &getAdminController('layout'); + $output = $oLayoutAdminController->insertLayout($args); + if(!$output->toBool()) return $output; + + // update Layout + $args->extra_vars = serialize($extra_vars); + $output = $oLayoutAdminController->updateLayout($args); + if(!$output->toBool()) return $output; + + // insertPageModule + $page_args->layout_srl = $layout_srl; + $page_args->module = 'page'; + $page_args->mid = 'welcome_page'; + $page_args->module_category_srl = 0; + $page_args->page_caching_interval = 0; + + $oModuleController = &getController('module'); + $output = $oModuleController->insertModule($page_args); + + if(!$output->toBool()) return $output; + + $module_srl = $output->get('module_srl'); + + // insert PageContents - widget + $oTemplateHandler = &TemplateHandler::getInstance(); + + $oDocumentModel = &getModel('document'); + $oDocumentController = &getController('document'); + + $obj->module_srl = $module_srl; + Context::set('version', __ZBXE_VERSION__); + $obj->title = 'welcome_document'; + + $obj->content = $oTemplateHandler->compile('./modules/install/script/welcome_content', 'welcome_content_'.$lang); + + $output = $oDocumentController->insertDocument($obj); + if(!$output->toBool()) return $output; + + $document_srl = $output->get('document_srl'); + + // save PageWidget + $oModuleModel = &getModel('module'); + $module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl); + $module_info->content = ''; + + $output = $oModuleController->updateModule($module_info); + if(!$output->toBool()) return $output; + + // insertFirstModule + $site_args->site_srl = 0; + $site_args->index_module_srl = $module_srl; + $oModuleController->updateSite($site_args); + +?> diff --git a/modules/install/tpl/welcome_content/welcome_content_en.html b/modules/install/script/welcome_content/welcome_content_en.html similarity index 100% rename from modules/install/tpl/welcome_content/welcome_content_en.html rename to modules/install/script/welcome_content/welcome_content_en.html diff --git a/modules/install/tpl/welcome_content/welcome_content_es.html b/modules/install/script/welcome_content/welcome_content_es.html similarity index 100% rename from modules/install/tpl/welcome_content/welcome_content_es.html rename to modules/install/script/welcome_content/welcome_content_es.html diff --git a/modules/install/tpl/welcome_content/welcome_content_fr.html b/modules/install/script/welcome_content/welcome_content_fr.html similarity index 100% rename from modules/install/tpl/welcome_content/welcome_content_fr.html rename to modules/install/script/welcome_content/welcome_content_fr.html diff --git a/modules/install/tpl/welcome_content/welcome_content_jp.html b/modules/install/script/welcome_content/welcome_content_jp.html similarity index 100% rename from modules/install/tpl/welcome_content/welcome_content_jp.html rename to modules/install/script/welcome_content/welcome_content_jp.html diff --git a/modules/install/tpl/welcome_content/welcome_content_ko.html b/modules/install/script/welcome_content/welcome_content_ko.html similarity index 100% rename from modules/install/tpl/welcome_content/welcome_content_ko.html rename to modules/install/script/welcome_content/welcome_content_ko.html diff --git a/modules/install/tpl/welcome_content/welcome_content_mn.html b/modules/install/script/welcome_content/welcome_content_mn.html similarity index 100% rename from modules/install/tpl/welcome_content/welcome_content_mn.html rename to modules/install/script/welcome_content/welcome_content_mn.html diff --git a/modules/install/tpl/welcome_content/welcome_content_ru.html b/modules/install/script/welcome_content/welcome_content_ru.html similarity index 100% rename from modules/install/tpl/welcome_content/welcome_content_ru.html rename to modules/install/script/welcome_content/welcome_content_ru.html diff --git a/modules/install/tpl/welcome_content/welcome_content_tr.html b/modules/install/script/welcome_content/welcome_content_tr.html similarity index 100% rename from modules/install/tpl/welcome_content/welcome_content_tr.html rename to modules/install/script/welcome_content/welcome_content_tr.html diff --git a/modules/install/tpl/welcome_content/welcome_content_vi.html b/modules/install/script/welcome_content/welcome_content_vi.html similarity index 100% rename from modules/install/tpl/welcome_content/welcome_content_vi.html rename to modules/install/script/welcome_content/welcome_content_vi.html diff --git a/modules/install/tpl/welcome_content/welcome_content_zh-CN.html b/modules/install/script/welcome_content/welcome_content_zh-CN.html similarity index 100% rename from modules/install/tpl/welcome_content/welcome_content_zh-CN.html rename to modules/install/script/welcome_content/welcome_content_zh-CN.html diff --git a/modules/install/tpl/welcome_content/welcome_content_zh-TW.html b/modules/install/script/welcome_content/welcome_content_zh-TW.html similarity index 100% rename from modules/install/tpl/welcome_content/welcome_content_zh-TW.html rename to modules/install/script/welcome_content/welcome_content_zh-TW.html diff --git a/modules/widget/widget.controller.php b/modules/widget/widget.controller.php index 8047c29bc..16567be2e 100644 --- a/modules/widget/widget.controller.php +++ b/modules/widget/widget.controller.php @@ -537,6 +537,7 @@ if($args) { foreach($args as $key => $val) { if(in_array($key, array('class','style','widget_padding_top','widget_padding_right','widget_padding_bottom','widget_padding_left','widget','widgetstyle','document_srl'))) continue; + if(!is_numeric($val) && (!is_string($val) || strlen($val)==0)) continue; if(strpos($val,'|@|')>0) $val = str_replace('|@|',',',$val); $attribute[] = sprintf('%s="%s"', $key, str_replace('"','\"',$val)); } @@ -557,10 +558,10 @@ // args 정리 $attribute = array(); if($args) { + $allowed_key = array('class','style','widget_padding_top','widget_padding_right','widget_padding_bottom','widget_padding_left','widget'); foreach($args as $key => $val) { - if(!is_string($val . "")) continue; - if(in_array($key, array('class','style','widget_padding_top','widget_padding_right','widget_padding_bottom','widget_padding_left','widget'))) continue; - if(!is_string($val) || strlen($val)==0) continue; + if(in_array($key, $allowed_key)) continue; + if(!is_numeric($val) && (!is_string($val) || strlen($val)==0)) continue; if(strpos($val,'|@|')>0) $val = str_replace('|@|',',',$val); $attribute[] = sprintf('%s="%s"', $key, str_replace('"','\"',$val)); }