diff --git a/modules/counter/counter.class.php b/modules/counter/counter.class.php index 480a7b64d..675748d58 100644 --- a/modules/counter/counter.class.php +++ b/modules/counter/counter.class.php @@ -1,11 +1,11 @@ insertActionForward('spamfilter', 'view', 'dispSpamfilterAdminConfig'); - $oModuleController->insertActionForward('spamfilter', 'view', 'dispSpamfilterAdminDeniedIPList'); - $oModuleController->insertActionForward('spamfilter', 'view', 'dispSpamfilterAdminDeniedWordList'); - //$oModuleController->insertActionForward('spamfilter', 'controller', 'procSpamfilterAdminInsertConfig'); - //$oModuleController->insertActionForward('spamfilter', 'controller', 'procSpamfilterAdminInsertDeniedIP'); - //$oModuleController->insertActionForward('spamfilter', 'controller', 'procSpamfilterAdminDeleteDeniedIP'); - //$oModuleController->insertActionForward('spamfilter', 'controller', 'procSpamfilterAdminInsertDeniedWord'); - //$oModuleController->insertActionForward('spamfilter', 'controller', 'procSpamfilterAdminDeleteDeniedWord'); + $oModuleController->insertActionForward('counter', 'view', 'dispCounterAdminIndex'); return new Object(); } @@ -29,6 +22,12 @@ * @brief 설치가 이상이 없는지 체크하는 method **/ function moduleIsInstalled() { + $oDB = &DB::getInstance(); + + // 테이블 검사 + if(!$oDB->isTableExists('counter_log')) return new Object(-1,'fail'); + if(!$oDB->isTableExists('counter_status ')) return new Object(-1,'fail'); + return new Object(); } diff --git a/modules/counter/counter.controller.php b/modules/counter/counter.controller.php index 82345d792..5404f1fe3 100644 --- a/modules/counter/counter.controller.php +++ b/modules/counter/counter.controller.php @@ -1,11 +1,11 @@ check_trackback!='Y') $args->check_trackback = 'N'; - - // module Controller 객체 생성하여 입력 - $oModuleController = &getController('module'); - $output = $oModuleController->insertModuleConfig('spamfilter',$args); - return $output; - } - - /** - * @brief 금지 IP등록 - **/ - function procSpamfilterAdminInsertDeniedIP() { - $ipaddress = Context::get('ipaddress'); - return $this->insertIP($ipaddress); - } - - /** - * @brief 금지 IP삭제 - **/ - function procSpamfilterAdminDeleteDeniedIP() { - $ipaddress = Context::get('ipaddress'); - return $this->deleteIP($ipaddress); - } - - /** - * @brief 금지 Word등록 - **/ - function procSpamfilterAdminInsertDeniedWord() { - $word = Context::get('word'); - return $this->insertWord($word); - } - - /** - * @brief 금지 Word삭제 - **/ - function procSpamfilterAdminDeleteDeniedWord() { - $word = Context::get('word'); - return $this->deleteWord($word); - } - - /** - * @brief IP 등록 - * 등록된 IP는 스패머로 간주 - **/ - function insertIP($ipaddress) { - $args->ipaddress = $ipaddress; - return executeQuery('spamfilter.insertDeniedIP', $args); - } - - /** - * @brief IP 제거 - * 스패머로 등록된 IP를 제거 - **/ - function deleteIP($ipaddress) { - if(!$ipaddress) return; - - $args->ipaddress = $ipaddress; - return executeQuery('spamfilter.deleteDeniedIP', $args); - } - - /** - * @brief 스팸단어 등록 - * 등록된 단어가 포함된 글은 스팸글로 간주 - **/ - function insertWord($word) { - if(!$word) return; - - $args->word = $word; - return executeQuery('spamfilter.insertDeniedWord', $args); - } - - /** - * @brief 스팸단어 제거 - * 스팸 단어로 등록된 단어 제거 - **/ - function deleteWord($word) { - if(!$word) return; - - $args->word = $word; - return executeQuery('spamfilter.deleteDeniedWord', $args); - } - - /** - * @brief 로그 등록 - * 현 접속 IP를 로그에 등록, 로그의 간격이 특정 시간 이내일 경우 도배로 간주하여 - * 스패머로 등록할 수 있음 + * @brief 로그 등록 **/ function insertLog() { - $output = executeQuery('spamfilter.insertLog'); - return $output; + return executeQuery('counter.insertCounterLog'); + } + + /** + * @brief 현황 등록 + **/ + function insertStatus() { + return executeQuery('counter.insertCounterStatus'); } } diff --git a/modules/counter/counter.model.php b/modules/counter/counter.model.php index 97dd2a65f..921185edf 100644 --- a/modules/counter/counter.model.php +++ b/modules/counter/counter.model.php @@ -1,11 +1,11 @@ getModuleConfig('spamfilter'); + function isLogged() { + $output = executeQuery('counter.getCounterLog'); + return $output->data->count?true:false; } /** - * @brief 등록된 금지 IP의 목록을 return + * @brief 특정 일의 접속 통계를 가져옴 **/ - function getDeniedIPList() { - $args->sort_index = "regdate"; - $args->page = Context::get('page')?Context::get('page'):1; - $output = executeQuery('spamfilter.getDeniedIPList', $args); - if(!$output->data) return; - if(!is_array($output->data)) return array($output->data); + function getStatus($regdate) { + $args->regdate = $regdate; + $output = executeQuery('counter.getCounterStatus', $args); return $output->data; } - /** - * @brief 인자로 넘겨진 ipaddress가 금지 ip인지 체크하여 return - **/ - function isDeniedIP($ipaddress) { - $args->ipaddress = $ipaddress; - $output = executeQuery('spamfilter.isDeniedIP', $args); - if($output->data->count>0) return true; - return false; - } - - /** - * @brief 등록된 금지 Word 의 목록을 return - **/ - function getDeniedWordList() { - $args->sort_index = "regdate"; - $output = executeQuery('spamfilter.getDeniedWordList', $args); - if(!$output->data) return; - if(!is_array($output->data)) return array($output->data); - return $output->data; - } - - /** - * @brief 지정된 IPaddress의 특정 시간대 내의 로그 수를 return - **/ - function getLogCount($time = 60, $ipaddress='') { - if(!$ipaddress) $ipaddress = $_SERVER['REMOTE_ADDR']; - - $args->ipaddress = $ipaddress; - $args->regdate = date("YmdHis", time()-$time); - $output = executeQuery('spamfilter.getLogCount', $args); - $count = $output->data->count; - return $count; - } - - } ?> diff --git a/modules/counter/counter.view.php b/modules/counter/counter.view.php index 80bd34005..0e61eb0ed 100644 --- a/modules/counter/counter.view.php +++ b/modules/counter/counter.view.php @@ -1,11 +1,11 @@ getModuleConfig('spamfilter'); - Context::set('config',$config); - - // 템플릿 파일 지정 - $this->setTemplateFile('index'); + function dispCounterAdminIndex() { } - /** - * @brief 금지 목록 출력 - **/ - function dispSpamfilterAdminDeniedIPList() { - // 등록된 금지 IP 목록을 가져옴 - $oSpamFilterModel = &getModel('spamfilter'); - $ip_list = $oSpamFilterModel->getDeniedIPList(); - - Context::set('ip_list', $ip_list); - - // 템플릿 파일 지정 - $this->setTemplateFile('denied_ip_list'); - } - - /** - * @brief 금지 목록 출력 - **/ - function dispSpamfilterAdminDeniedWordList() { - // 등록된 금지 Word 목록을 가져옴 - $oSpamFilterModel = &getModel('spamfilter'); - $word_list = $oSpamFilterModel->getDeniedWordList(); - - Context::set('word_list', $word_list); - - // 템플릿 파일 지정 - $this->setTemplateFile('denied_word_list'); - } } ?> diff --git a/modules/counter/schemas/counter_log.xml b/modules/counter/schemas/counter_log.xml index 3d31f68b0..140f8c7cd 100644 --- a/modules/counter/schemas/counter_log.xml +++ b/modules/counter/schemas/counter_log.xml @@ -1,5 +1,5 @@ - +
diff --git a/modules/install/conf/module.xml b/modules/install/conf/module.xml index 5423c5a01..f5bf43ad0 100644 --- a/modules/install/conf/module.xml +++ b/modules/install/conf/module.xml @@ -6,6 +6,8 @@ + + diff --git a/modules/install/install.controller.php b/modules/install/install.controller.php index fe9b939db..94d0d07e4 100644 --- a/modules/install/install.controller.php +++ b/modules/install/install.controller.php @@ -13,7 +13,7 @@ **/ function init() { // 설치가 되어 있으면 오류 - if(Context::isInstalled()) return $this->dispMessage('msg_already_installed'); + if($this->act != 'procInstallAdminInstall' && Context::isInstalled()) return $this->dispMessage('msg_already_installed'); } /** @@ -49,6 +49,18 @@ $this->setMessage('msg_install_completed'); } + /** + * @brief 모듈 설치 + **/ + function procInstallAdminInstall() { + $module_name = Context::get('module_name'); + if(!$module_name) return new object(-1, 'invalid_request'); + + $this->installModule($module_name, './modules/'.$module_name); + + $this->setMessage('success_installed'); + } + /** * @brief 인스톨 환경을 체크하여 결과 return **/ diff --git a/modules/install/lang/ko.lang.php b/modules/install/lang/ko.lang.php index d4ac9f8c9..2775a0cf4 100644 --- a/modules/install/lang/ko.lang.php +++ b/modules/install/lang/ko.lang.php @@ -65,6 +65,9 @@ $lang->about_database_file = 'Sqlite는 파일에 데이터를 저장합니다. 데이터베이스 파일의 위치를 웹에서 접근할 수 없는 곳으로 하셔야 합니다'; + $lang->success_installed = '설치가 되었습니다'; + $lang->success_updated = '업데이트가 되었습니다'; + $lang->msg_cannot_proc = '설치 환경이 갖춰지지 않아 요청을 실행할 수가 없습니다'; $lang->msg_already_installed = '이미 설치가 되어 있습니다'; $lang->msg_dbconnect_failed = "DB접속 오류가 발생하였습니다.\nDB정보를 다시 확인해주세요"; diff --git a/modules/module/lang/ko.lang.php b/modules/module/lang/ko.lang.php index e4164ef14..badfa7d29 100644 --- a/modules/module/lang/ko.lang.php +++ b/modules/module/lang/ko.lang.php @@ -10,6 +10,7 @@ $lang->module_category = "모듈 카테고리"; $lang->module_info = "모듈 정보"; $lang->add_shortcut = "관리자 메뉴에 추가"; + $lang->module_action = "동작"; $lang->module_maker = "모듈 제작자"; $lang->module_history = "변경 사항 "; @@ -17,6 +18,8 @@ $lang->category_title = "카테고리 이름"; $lang->cmd_add_shortcut = "바로가기 추가"; + $lang->cmd_install = "설치"; + $lang->cmd_update = "업데이트"; $lang->msg_new_module = "모듈 생성"; $lang->msg_update_module = "모듈 수정"; diff --git a/modules/module/module.model.php b/modules/module/module.model.php index 8058d1091..5d62a758b 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -491,6 +491,9 @@ $info->path = $path; $info->admin_index_act = $info->admin_index_act; + if($table_count > $created_table_count) $info->is_installed = false; + else $info->is_installed = true; + $list[] = $info; } return $list; diff --git a/modules/module/tpl/js/module_admin.js b/modules/module/tpl/js/module_admin.js index 7ad1b7e86..3daabda73 100644 --- a/modules/module/tpl/js/module_admin.js +++ b/modules/module/tpl/js/module_admin.js @@ -32,3 +32,15 @@ function doAddShortCut(module) { fo_obj.selected_module.value = module; procFilter(fo_obj, insert_shortcut); } + +/* 모듈 설치 */ +function doInstallModule(module) { + var params = new Array(); + params['module_name'] = module; + exec_xml('install','procInstallAdminInstall',params, completeInstallModule); +} + +function completeInstallModule(ret_obj) { + alert(ret_obj['message']); + location.href = location.href; +} diff --git a/modules/module/tpl/module_list.html b/modules/module/tpl/module_list.html index 1fae2b7e9..f5bfb7e74 100644 --- a/modules/module/tpl/module_list.html +++ b/modules/module/tpl/module_list.html @@ -16,16 +16,16 @@ {$lang->table_count} {$lang->installed_path} {$lang->module_info} + {$lang->module_action} {$lang->add_shortcut} - + - {$val->title}
({$val->module}) + {$val->title} ({$val->module}) - {$val->title}
- ({$val->module}) + {$val->title} ({$val->module}) {$val->version} @@ -42,16 +42,18 @@ {$val->path} {$lang->cmd_view} - + + + {$lang->cmd_install} + + {$lang->cmd_update} + + + {$lang->cmd_add_shortcut} - - - {nl2br($val->author->description)} - -