From e76674ac953d130d9c5776e76ab26ff7a2f51bd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E1=84=8B=E1=85=A2=E1=84=91=E1=85=B3=E1=86=AF=20=E1=84=82?= =?UTF-8?q?=E1=85=A9=E1=84=90=E1=85=B3=E1=84=87=E1=85=AE=E1=86=A8?= Date: Wed, 7 Aug 2019 16:18:18 +0900 Subject: [PATCH] Add: menu_list.php --- src/game/lib/db_service.js | 11 +++- src/game/main_menu/main_menu.js | 83 +++++++++++++++++++++++---- src/web/php/db/menu_collection.php | 90 ++++++++++++++++++++++++++++++ src/web/php/menu/menu_list.php | 69 +++++++++++++++++++++++ src/web/php/menu/player_list.php | 31 ---------- 5 files changed, 238 insertions(+), 46 deletions(-) create mode 100644 src/web/php/db/menu_collection.php create mode 100644 src/web/php/menu/menu_list.php delete mode 100644 src/web/php/menu/player_list.php diff --git a/src/game/lib/db_service.js b/src/game/lib/db_service.js index 5af6087..c17d14f 100644 --- a/src/game/lib/db_service.js +++ b/src/game/lib/db_service.js @@ -376,9 +376,9 @@ DBService.prototype.parseJSONtoRankingRecord = function(type, jsonData) { // menu -DBService.prototype.requestMainMenuAppData = function(onSucceededListener, onFailedListener) { +DBService.prototype.requestMainMenuAppData = function(appGroup, language, onSucceededListener, onFailedListener) { var xhr = this.makeXhr( - "php/writing/player_list.php", + "php/menu/menu_list.php", (function() { // onreadystatechange if(xhr.readyState == 4 && xhr.status == 200) { var replyJSON = JSON.parse(xhr.responseText); @@ -390,6 +390,11 @@ DBService.prototype.requestMainMenuAppData = function(onSucceededListener, onFai } }).bind(this) ); - xhr.send("maestroID=" + this.maestroID + "&playerID=" + this.playerID); + xhr.send( + "maestroID=" + this.maestroID + + "&playerID=" + this.playerID + + "&appGroup=" + appGroup + + "&language=" + language + ); } diff --git a/src/game/main_menu/main_menu.js b/src/game/main_menu/main_menu.js index cbfa6e9..d55bbc3 100644 --- a/src/game/main_menu/main_menu.js +++ b/src/game/main_menu/main_menu.js @@ -63,6 +63,9 @@ MainMenu.prototype.create = function() { this.appGroupTabLayout = null; this.languageTabLayout = null; + + this.selectedAppGroup = MainMenu.APP_GROUP_FINGER_POSITION; + this.selectedLanguage = MainMenu.LANGUAGE_KOREAN; // this.animalRecordList.printScore(AnimalList.TYPE_PRACTICE); } @@ -83,9 +86,9 @@ MainMenu.prototype.fontLoaded = function() { // bottom UI this.makeAnimalRecordList(); - this.animalRecordList.hide(); this.makeLanguageTab(); - this.languageTabLayout.hide(); + // this.animalRecordList.hide(); + // this.languageTabLayout.hide(); this.backButton.applyLoadedFont(); this.settingButton.applyLoadedFont(); @@ -134,6 +137,8 @@ MainMenu.prototype.loadAllowEditEnterCode = function(screenTopUI) { MainMenu.prototype.loadAppData = function() { this.dbService.requestMainMenuAppData( + this.selectedAppGroup, + this.selectedLanguage, (function(replyJSON) { // this.updateAppGroupTab(replyJSON.appGroupData); // this.updateAppButtons(replyJSON.appGroup, replyJSON.appData); @@ -195,32 +200,67 @@ MainMenu.prototype.makeButtons = function() { MainMenu.prototype.makeAppGroupTab = function() { this.appGroupTabLayout = new TabLayout(100, 0, 844, 70); - var typingFingerGroupTab = new AppGroupTab( (function() { console.log("typing finger position"); }).bind(this) ); + var typingFingerGroupTab = new AppGroupTab( + (function() { + console.log("typing finger position"); + this.selectedAppGroup = MainMenu.APP_GROUP_FINGER_POSITION; + this.animalRecordList.show(); + this.languageTabLayout.show(); + }).bind(this) + ); typingFingerGroupTab.reserveIcon("keyboard"); typingFingerGroupTab.reserveSubText("손가락 위치"); this.appGroupTabLayout.add(typingFingerGroupTab); - var typingPracticeGroupTab = new AppGroupTab( (function() { console.log("typing practice"); }).bind(this) ); + var typingPracticeGroupTab = new AppGroupTab( + (function() { + console.log("typing practice"); + this.selectedAppGroup = MainMenu.APP_GROUP_TYPING_PRACTICE; + this.animalRecordList.show(); + this.languageTabLayout.show(); + }).bind(this) + ); typingPracticeGroupTab.reserveIcon("keyboard"); typingPracticeGroupTab.reserveSubText("연습"); this.appGroupTabLayout.add(typingPracticeGroupTab); - var typingTestGroupTab = new AppGroupTab( (function() { console.log("typing exam"); }).bind(this) ); + var typingTestGroupTab = new AppGroupTab( + (function() { + console.log("typing test"); + this.selectedAppGroup = MainMenu.APP_GROUP_TYPING_TEST; + this.animalRecordList.show(); + this.languageTabLayout.show(); + }).bind(this) + ); typingTestGroupTab.reserveIcon("keyboard"); typingTestGroupTab.reserveSubText("시험"); this.appGroupTabLayout.add(typingTestGroupTab); - // var typingPlayGroupTab = new AppGroupTab( (function() { console.log("typing exam"); }).bind(this) ); + // var typingPlayGroupTab = new AppGroupTab( (function() { console.log("typing test"); }).bind(this) ); var typingPlayGroupTab = new AppGroupTab( - (function() { console.log("typing exam"); this.animalRecordList.show(); this.languageTabLayout.show(); }).bind(this) + (function() { console.log("typing play"); }).bind(this) + ); + var typingPlayGroupTab = new AppGroupTab( + (function() { + console.log("typing play"); + this.selectedAppGroup = MainMenu.APP_GROUP_TYPING_PLAY; + this.animalRecordList.show(); + this.languageTabLayout.show(); + }).bind(this) ); typingPlayGroupTab.reserveIcon("keyboard"); typingPlayGroupTab.reserveSubText("놀이"); this.appGroupTabLayout.add(typingPlayGroupTab); - // var mousePlayGroupTab = new AppGroupTab( (function() { console.log("mouse exam"); }).bind(this) ); + // var mousePlayGroupTab = new AppGroupTab( (function() { console.log("mouse play"); }).bind(this) ); var mousePlayGroupTab = new AppGroupTab( - (function() { console.log("mouse exam"); this.animalRecordList.hide(); this.languageTabLayout.hide(); }).bind(this) + (function() { console.log("mouse play"); this.animalRecordList.hide(); this.languageTabLayout.hide(); }).bind(this) + ); + var typingFingerGroupTab = new AppGroupTab( + (function() { + console.log("typing finger position"); + this.selectedAppGroup = MainMenu.APP_GROUP_FINGER_POSITION; + }).bind(this) ); mousePlayGroupTab.reserveIcon("mouse"); mousePlayGroupTab.reserveSubText("놀이"); @@ -245,11 +285,21 @@ MainMenu.prototype.makeLanguageTab = function() { var languageTabHeight = 48; this.languageTabLayout = new TabLayout(0, GAME_SCREEN_SIZE.y - languageTabHeight, GAME_SCREEN_SIZE.x, languageTabHeight); - var koreanTab = new LanguageTab( (function() { console.log("Language : Korean"); }).bind(this) ); + var koreanTab = new LanguageTab( + (function() { + console.log("Language : Korean"); + this.selectedLanguage = MainMenu.LANGUAGE_KOREAN; + }).bind(this) + ); koreanTab.reserveMainText("한글"); this.languageTabLayout.add(koreanTab); - var englishTab = new LanguageTab( (function() { console.log("Language : English"); }).bind(this) ); + var englishTab = new LanguageTab( + (function() { + console.log("Language : English"); + this.selectedLanguage = MainMenu.LANGUAGE_ENGLISH; + }).bind(this) + ); englishTab.reserveMainText("영어"); this.languageTabLayout.add(englishTab); @@ -392,4 +442,13 @@ MainMenu.prototype.loadFailed = function(replyJSON) { } -MainMenu.MAIN_MENU_HEIGHT = 70; \ No newline at end of file +MainMenu.MAIN_MENU_HEIGHT = 70; + +MainMenu.APP_GROUP_FINGER_POSITION = 0; +MainMenu.APP_GROUP_TYPING_PRACTICE = 1; +MainMenu.APP_GROUP_TYPING_TEST = 2; +MainMenu.APP_GROUP_TYPING_PLAY = 3; +MainMenu.APP_GROUP_MOUSE_PLAY = 4; + +MainMenu.LANGUAGE_KOREAN = 0; +MainMenu.LANGUAGE_ENGLISH = 1; \ No newline at end of file diff --git a/src/web/php/db/menu_collection.php b/src/web/php/db/menu_collection.php new file mode 100644 index 0000000..ba4d783 --- /dev/null +++ b/src/web/php/db/menu_collection.php @@ -0,0 +1,90 @@ +mysqli->prepare($query); + $stmt->bind_param("s", $writer); + $stmt->execute(); + $stmt->bind_result($writingID, $language, $name, $filename, $letterCount); + + $resultArray = array(); + while($stmt->fetch()) { + $rowArray = array(); + $rowArray["writingID"] = $writingID; + $rowArray["language"] = $language; + $rowArray["name"] = $name; + $rowArray["filename"] = $filename; + $rowArray["letterCount"] = $letterCount; + array_push($resultArray, $rowArray); + } + $stmt->close(); + + return $resultArray; + } + + public function getWritingInfo($writingID) + { + $query = " + SELECT Name, Filename, Writer, WriterID + FROM writing + WHERE WritingID = ?"; + $stmt = $this->mysqli->prepare($query); + $stmt->bind_param("i", $writingID); + $stmt->execute(); + $stmt->bind_result($name, $filename, $writer, $writerID); + + $stmt->fetch(); + $stmt->close(); + + $rowArray = array(); + $rowArray["name"] = $name; + $rowArray["filename"] = $filename; + $rowArray["writer"] = $writer; + $rowArray["writerID"] = $writerID; + + return $rowArray; + } + */ + +} +?> \ No newline at end of file diff --git a/src/web/php/menu/menu_list.php b/src/web/php/menu/menu_list.php new file mode 100644 index 0000000..eba04a6 --- /dev/null +++ b/src/web/php/menu/menu_list.php @@ -0,0 +1,69 @@ +connectDB(); +if (!$isConnected) { + $jsonBuilder->setErrorMessage("DB connection : failed"); + $jsonBuilder->sendResultFail(); + exit; +} + + +include "./../db/db_method_container.php"; +include "./../db/menu_collection.php"; + +$menuCollection = new MenuCollection($dbConnector->getMysqli()); +// $systemWritingArray = $menuCollection->getSystemWritingList(); + +$jsonBuilder->setData("appGroup", $menuCollection->getAppGroupName($appGroup)); +$jsonBuilder->setData("language", $menuCollection->getLanguageName($language)); +$jsonBuilder->sendResultSuccess(); + +/* +function activate_app($maestroID, $appID) { + global $db_conn; + + $query = " + INSERT INTO active_app (MaestroID, AppID) + VALUES (?, ?); + "; + $stmt = $db_conn->prepare($query); + $stmt->bind_param('ii', $maestroID, $appID); + $stmt->execute(); + $stmt->bind_result(); +} + +function get_app_name($appID) { + global $db_conn; + + $query = " + SELECT AppName, KoreanName + FROM app + WHERE AppID = ? + "; + $stmt = $db_conn->prepare($query); + $stmt->bind_param('i', $appID); + $stmt->execute(); + $stmt->bind_result($appName, $koreanName); + $stmt->fetch(); + + $result["AppName"] = $appName; + $result["KoreanName"] = $koreanName; + return $result; +} +*/ + +?> \ No newline at end of file diff --git a/src/web/php/menu/player_list.php b/src/web/php/menu/player_list.php deleted file mode 100644 index 9353612..0000000 --- a/src/web/php/menu/player_list.php +++ /dev/null @@ -1,31 +0,0 @@ -connectDB(); -if (!$isConnected) { - $jsonBuilder->setErrorMessage("DB connection : failed"); - $jsonBuilder->sendResultFail(); - exit; -} - - -include "./../db/db_method_container.php"; -include "./../db/writing_collection.php"; - -$writingCollection = new WritingCollection($dbConnector->getMysqli()); -$systemWritingArray = $writingCollection->getSystemWritingList(); - -$jsonBuilder->setData("writingArray", $systemWritingArray); -$jsonBuilder->sendResultSuccess(); -?> \ No newline at end of file