diff --git a/js/dictionaryBuilder.js b/js/dictionaryBuilder.js index edf2f22..8009f93 100644 --- a/js/dictionaryBuilder.js +++ b/js/dictionaryBuilder.js @@ -69,6 +69,7 @@ function AddWord() { } } else { currentDictionary.words.push({name: word, pronunciation: pronunciation, partOfSpeech: ((partOfSpeech.length > 0) ? partOfSpeech : " "), simpleDefinition: simpleDefinition, longDefinition: longDefinition, wordId: currentDictionary.nextWordId++}); + SaveAndUpdateWords("new", wordIndex); FocusAfterAddingNewWord(); NewWordNotification(word); SaveAndUpdateDictionary(false); @@ -165,7 +166,8 @@ function UpdateWord(wordIndex, word, pronunciation, partOfSpeech, simpleDefiniti currentDictionary.words[wordIndex].simpleDefinition = simpleDefinition; currentDictionary.words[wordIndex].longDefinition = longDefinition; - SaveAndUpdateDictionary(); + SaveAndUpdateWords("update", wordIndex); + // SaveAndUpdateDictionary(); window.scroll(savedScroll.x, savedScroll.y); @@ -408,6 +410,44 @@ function ResetDictionaryToDefault() { currentDictionary = JSON.parse(defaultDictionaryJSON); } +function SaveAndUpdateWords(action, wordIndex) { + var dataToSend = ""; + if (action == "all") { + // For dictionaries not already in the db. Send all the words to database. + dataToSend = JSON.stringify(currentDictionary.words); + } else if (action == "update") { + // Only send the specified word to update. + dataToSend = JSON.stringify(currentDictionary.words[wordIndex]); + } else if (action == "new") { + // Send the last word pushed to the words array before it's sorted. + dataToSend = JSON.stringify(currentDictionary.words[currentDictionary.words.length - 1]); + } + + var sendWords = new XMLHttpRequest(); + sendWords.open('POST', "php/ajax_dictionarymanagement.php?action=word" + action); + sendWords.setRequestHeader("Content-Type", "application/json; charset=UTF-8"); + sendWords.onreadystatechange = function() { + if (sendWords.readyState == 4 && sendWords.status == 200) { + if (sendWords.responseText == "sent successfully") { + console.log(sendWords.responseText); + LoadUserDictionaries(); + ProcessLoad(); + } else if (isNaN(parseInt(sendWords.responseText))) { + console.log(sendWords.responseText); + } else { // It will only be a number if it is a new dictionary. + currentDictionary.externalID = parseInt(sendWords.responseText); + LoadUserDictionaries(); + ProcessLoad(); + console.log("saved successfully"); + } + return true; + } else { + return false; + } + } + sendWords.send(dataToSend); +} + function SaveAndUpdateDictionary(keepFormContents) { if (!currentDictionary.settings.sortByEquivalent) { currentDictionary.words.sort(dynamicSort(['name', 'partOfSpeech'])); @@ -422,28 +462,26 @@ function SaveAndUpdateDictionary(keepFormContents) { CloseUpdateConflictArea('newWordButtonArea', 'updateConflict'); } -function SaveDictionary(sendToDatabase, sendWords) { +function SaveDictionary(sendToDatabase) { localStorage.setItem('dictionary', JSON.stringify(currentDictionary)); //Always save local copy of current dictionary, but if logged in also send to database. if (sendToDatabase) { - sendWords = (typeof sendWords !== 'undefined') ? sendWords : false; - SendDictionary(sendWords); + SendDictionary(); } SavePreviousDictionary(); } -function SendDictionary(sendWords) { - sendWords = (typeof sendWords !== 'undefined') ? sendWords : false; +function SendDictionary() { var action = ""; var postString = ""; if (currentDictionary.externalID > 0) { action = "update"; - postString = DataToSend(sendWords); + postString = DataToSend(false); } else { action = "new"; - postString = DataToSend(true, true); + postString = DataToSend(true); } var sendDictionary = new XMLHttpRequest(); @@ -459,6 +497,7 @@ function SendDictionary(sendWords) { console.log(sendDictionary.responseText); } else { // It will only be a number if it is a new dictionary. currentDictionary.externalID = parseInt(sendDictionary.responseText); + SaveAndUpdateWords("all"); LoadUserDictionaries(); ProcessLoad(); console.log("saved successfully"); @@ -471,7 +510,7 @@ function SendDictionary(sendWords) { sendDictionary.send(postString); } -function DataToSend(doSendWords, sendAll) { +function DataToSend(sendAll) { sendAll = (typeof sendAll !== 'undefined' && sendAll != null) ? sendAll : false; var data = ""; if (currentDictionary.externalID == 0) { @@ -485,9 +524,6 @@ function DataToSend(doSendWords, sendAll) { if (sendAll || currentDictionary.description != previousDictionary.description) { data += ((data=="") ? "" : "&") + "description=" + encodeURIComponent(currentDictionary.description); } - if (sendAll || doSendWords) { - data += ((data=="") ? "" : "&") + "words=" + encodeURIComponent(JSON.stringify(currentDictionary.words)); - } if (sendAll || currentDictionary.nextWordId != previousDictionary.nextWordId) { data += ((data=="") ? "" : "&") + "nextwordid=" + currentDictionary.nextWordId; } diff --git a/js/helpers.js b/js/helpers.js index f4d74a7..83a2879 100644 --- a/js/helpers.js +++ b/js/helpers.js @@ -218,8 +218,8 @@ function dynamicSort(propertiesArray) { dir = -1; o=o.substring(1); } - if (removeDiacritics(a[o]) > removeDiacritics(b[o])) return dir; - if (removeDiacritics(a[o]) < removeDiacritics(b[o])) return -(dir); + if (removeDiacritics(a[o]).toLowerCase() > removeDiacritics(b[o]).toLowerCase()) return dir; + if (removeDiacritics(a[o]).toLowerCase() < removeDiacritics(b[o]).toLowerCase()) return -(dir); return 0; }) .reduce(function firstNonZeroValue (p,n) { diff --git a/php/ajax_dictionarymanagement.php b/php/ajax_dictionarymanagement.php index d038900..4b813c4 100644 --- a/php/ajax_dictionarymanagement.php +++ b/php/ajax_dictionarymanagement.php @@ -4,233 +4,307 @@ require_once('config.php'); require_once(SITE_LOCATION . '/php/functions.php'); session_start(); - -if ($_GET['action'] == 'getall') { - Get_Dictionaries(true); -} -elseif ($_GET['action'] == 'load') { - Load_Current_Dictionary(); -} -elseif ($_GET['action'] == 'new') { - Save_Current_DictionaryAsNew(); -} -elseif ($_GET['action'] == 'update') { - Update_Current_Dictionary(); -} -elseif ($_GET['action'] == 'switch') { - Switch_Current_Dictionary($_POST['newdictionaryid'], true); -} -elseif ($_GET['action'] == 'delete') { - Delete_Current_Dictionary(); +if ($_SESSION['user'] > 0) { + if ($_GET['action'] == 'getall') { + Get_Dictionaries(true); + } + elseif ($_GET['action'] == 'load') { + Load_Current_Dictionary(); + } + elseif ($_GET['action'] == 'new') { + Save_Current_DictionaryAsNew(); + } + elseif ($_GET['action'] == 'update') { + Update_Current_Dictionary(); + } + elseif ($_GET['action'] == 'wordall') { + Save_New_Word(true); + } + elseif ($_GET['action'] == 'wordnew') { + Save_New_Word(false); + } + elseif ($_GET['action'] == 'wordupdate') { + Update_Word(); + } + elseif ($_GET['action'] == 'switch') { + Switch_Current_Dictionary($_POST['newdictionaryid'], true); + } + elseif ($_GET['action'] == 'delete') { + Delete_Current_Dictionary(); + } +} else { + echo "not signed in"; } function Get_Dictionaries($return_list = true) { - if ($_SESSION['user'] > 0) { - $query = "SELECT `id`, `name` FROM `dictionaries` WHERE `user`=" . $_SESSION['user'] . " ORDER BY `name` ASC;"; - $dictionaries = query($query); - - if ($dictionaries) { - if (num_rows($dictionaries) > 0) { - if ($return_list) { - $list = ""; - $_SESSION['dictionaries'] = []; - while ($dict = fetch($dictionaries)) { - $_SESSION['dictionaries'][] = $dict['id']; // Save a list of all dictionaries user has. - //list for the switch dictionaries dropdown. - $list .= $dict['id'] . '_IDNAMESEPARATOR_' . $dict['name'] . '_DICTIONARYSEPARATOR_'; - } - echo $list; + $query = "SELECT `id`, `name` FROM `dictionaries` WHERE `user`=" . $_SESSION['user'] . " ORDER BY `name` ASC;"; + $dictionaries = query($query); + + if ($dictionaries) { + if (num_rows($dictionaries) > 0) { + if ($return_list) { + $list = ""; + $_SESSION['dictionaries'] = []; + while ($dict = fetch($dictionaries)) { + $_SESSION['dictionaries'][] = $dict['id']; // Save a list of all dictionaries user has. + //list for the switch dictionaries dropdown. + $list .= $dict['id'] . '_IDNAMESEPARATOR_' . $dict['name'] . '_DICTIONARYSEPARATOR_'; } - return true; - } else { - echo "no dictionaries"; + echo $list; } + return true; } else { - echo "could not load"; + echo "no dictionaries"; } } else { - echo "not signed in"; + echo "could not load"; } return false; } function Load_Current_Dictionary() { - if ($_SESSION['user'] > 0) { - $query = "SELECT `d`.`id`, `d`.`name`, `d`.`description`, `u`.`public_name`, `d`.`words`, `d`.`next_word_id`, `d`.`allow_duplicates`, `d`.`case_sensitive`, `d`.`parts_of_speech`, `d`.`sort_by_equivalent`, `d`.`is_complete`, `d`.`is_public` "; - $query .= "FROM `dictionaries` AS `d` LEFT JOIN `users` AS `u` ON `user`=`u`.`id` WHERE `d`.`id`=`u`.`current_dictionary` AND `user`=" . $_SESSION['user'] . ";"; - $dictionary = query($query); - - if ($dictionary) { - if (num_rows($dictionary) > 0) { - if (num_rows($dictionary) === 1) { - while ($dict = fetch($dictionary)) { - $_SESSION['dictionary'] = $dict['id']; - $json = '{"name":"' . $dict['name'] . '",'; - $json .= '"description":"' . $dict['description'] . '",'; - $json .= '"createdBy":"' . $dict['public_name'] . '",'; - $json .= '"words":' . $dict['words'] . ','; - $json .= '"nextWordId":' . $dict['next_word_id'] . ','; - $json .= '"settings":{'; - $json .= '"allowDuplicates":' . (($dict['allow_duplicates'] == 1) ? 'true' : 'false') . ','; - $json .= '"caseSensitive":' . (($dict['case_sensitive'] == 1) ? 'true' : 'false') . ','; - $json .= '"partsOfSpeech":"' . $dict['parts_of_speech'] . '",'; - $json .= '"sortByEquivalent":' . (($dict['sort_by_equivalent'] == 1) ? 'true' : 'false') . ','; - $json .= '"isComplete":' . (($dict['is_complete'] == 1) ? 'true' : 'false') . ','; - $json .= '"isPublic":' . (($dict['is_public'] == 1) ? 'true' : 'false') . '},'; - $json .= '"externalID":' . $dict['id'] . '}'; - echo $json; - return true; - } - } else { - echo "more than 1 returned"; + $query = "SELECT `d`.`id`, `d`.`name`, `d`.`description`, `u`.`public_name`, `d`.`words`, `d`.`next_word_id`, `d`.`allow_duplicates`, `d`.`case_sensitive`, `d`.`parts_of_speech`, `d`.`sort_by_equivalent`, `d`.`is_complete`, `d`.`is_public` "; + $query .= "FROM `dictionaries` AS `d` LEFT JOIN `users` AS `u` ON `user`=`u`.`id` WHERE `d`.`id`=`u`.`current_dictionary` AND `user`=" . $_SESSION['user'] . ";"; + $dictionary = query($query); + + if ($dictionary) { + if (num_rows($dictionary) > 0) { + if (num_rows($dictionary) === 1) { + while ($dict = fetch($dictionary)) { + $_SESSION['dictionary'] = $dict['id']; + $json = '{"name":"' . $dict['name'] . '",'; + $json .= '"description":"' . $dict['description'] . '",'; + $json .= '"createdBy":"' . $dict['public_name'] . '",'; + $json .= '"words":[' . Get_Dictionary_Words($_SESSION['dictionary']) . '],'; + $json .= '"nextWordId":' . $dict['next_word_id'] . ','; + $json .= '"settings":{'; + $json .= '"allowDuplicates":' . (($dict['allow_duplicates'] == 1) ? 'true' : 'false') . ','; + $json .= '"caseSensitive":' . (($dict['case_sensitive'] == 1) ? 'true' : 'false') . ','; + $json .= '"partsOfSpeech":"' . $dict['parts_of_speech'] . '",'; + $json .= '"sortByEquivalent":' . (($dict['sort_by_equivalent'] == 1) ? 'true' : 'false') . ','; + $json .= '"isComplete":' . (($dict['is_complete'] == 1) ? 'true' : 'false') . ','; + $json .= '"isPublic":' . (($dict['is_public'] == 1) ? 'true' : 'false') . '},'; + $json .= '"externalID":' . $dict['id'] . '}'; + echo $json; + return true; } } else { - echo "no dictionaries"; + echo "more than 1 returned"; } } else { - echo "could not load"; + echo "no dictionaries"; } } else { - echo "not logged in"; + echo "could not load"; } return false; } -function Save_Current_DictionaryAsNew() { - if ($_SESSION['user'] > 0) { - $dbconnection = new PDO('mysql:host=' . DATABASE_SERVERNAME . ';dbname=' . DATABASE_NAME . ';charset=utf8', DATABASE_USERNAME, DATABASE_PASSWORD); - $dbconnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); - $dbconnection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); - $dbconnection->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); +function Get_Dictionary_Words($dictionary) { + $query = "SELECT `w`.`word_id`, `w`.`name`, `w`.`pronunciation`, `w`.`part_of_speech`, `w`.`simple_definition`, `w`.`long_definition` "; + $query .= "FROM `words` AS `w` LEFT JOIN `dictionaries` AS `d` ON `w`.`dictionary`=`d`.`id` WHERE `w`.`dictionary`=" . $dictionary . " "; + $query .= "ORDER BY IF(`d`.`sort_by_equivalent`, `w`.`simple_definition`, `w`.`name`) COLLATE utf8_unicode_ci;"; + $words = query($query); - $query = "INSERT INTO `dictionaries`(`user`, `name`, `description`, `words`, `next_word_id`, `allow_duplicates`, `case_sensitive`, `parts_of_speech`, `sort_by_equivalent`, `is_complete`, `is_public`) "; - $query .= "VALUES (" . $_SESSION['user'] . ",'" . $_POST['name'] . "','" . $_POST['description'] . "','" . $_POST['words'] . "'," . $_POST['nextwordid'] . "," . $_POST['allowduplicates'] . "," . $_POST['casesensitive'] . ",'" . $_POST['partsofspeech'] . "'," . $_POST['sortbyequivalent'] . "," . $_POST['iscomplete'] . "," . $_POST['ispublic'] . ")"; - - try { - $update = $dbconnection->prepare($query); - $update->execute(); - $_SESSION['dictionary'] = $dbconnection->lastInsertId(); - $_SESSION['dictionaries'][] = $_SESSION['dictionary']; //Add new id to valid dictionaries. - echo $_SESSION['dictionary']; - Switch_Current_Dictionary($_SESSION['dictionary'], false); - return true; + $results = ""; + $processed = 0; + + if ($words) { + if (num_rows($words) > 0) { + while ($word = fetch($words)) { + $results .= '{"name":"' . $word['name'] . '",'; + $results .= '"pronunciation":"' . $word['pronunciation'] . '",'; + $results .= '"partOfSpeech":"' . $word['part_of_speech'] . '",'; + $results .= '"simpleDefinition":"' . $word['simple_definition'] . '",'; + $results .= '"longDefinition":"' . $word['long_definition'] . '",'; + $results .= '"wordId":' . $word['word_id'] . '}'; + + // If it's the last one, then don't add a comma. + if (++$processed < num_rows($words)) { + $results .= ","; + } + } } - catch (PDOException $ex) { - $errorMessage = $dbconnection->errorInfo(); - echo "could not update:\n" . $errorMessage[2] . "\n" . $query; - } - } else { - echo "not logged in"; + } + + return $results; +} + +function Save_Current_DictionaryAsNew() { + $dbconnection = new PDO('mysql:host=' . DATABASE_SERVERNAME . ';dbname=' . DATABASE_NAME . ';charset=utf8', DATABASE_USERNAME, DATABASE_PASSWORD); + $dbconnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + $dbconnection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); + $dbconnection->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); + + $query = "INSERT INTO `dictionaries`(`user`, `name`, `description`, `next_word_id`, `allow_duplicates`, `case_sensitive`, `parts_of_speech`, `sort_by_equivalent`, `is_complete`, `is_public`) "; + $query .= "VALUES (" . $_SESSION['user'] . ",'" . $_POST['name'] . "','" . $_POST['description'] . "'," . $_POST['nextwordid'] . "," . $_POST['allowduplicates'] . "," . $_POST['casesensitive'] . ",'" . $_POST['partsofspeech'] . "'," . $_POST['sortbyequivalent'] . "," . $_POST['iscomplete'] . "," . $_POST['ispublic'] . ")"; + + try { + $update = $dbconnection->prepare($query); + $update->execute(); + $_SESSION['dictionary'] = $dbconnection->lastInsertId(); + $_SESSION['dictionaries'][] = $_SESSION['dictionary']; //Add new id to valid dictionaries. + echo $_SESSION['dictionary']; + Switch_Current_Dictionary($_SESSION['dictionary'], false); + return true; + } + catch (PDOException $ex) { + $errorMessage = $dbconnection->errorInfo(); + echo "could not update:\n" . $errorMessage[2] . "\n" . $query; } return false; } function Update_Current_Dictionary() { - if ($_SESSION['user'] > 0) { - if (isset($_SESSION['dictionary'])) { - $query = "UPDATE `dictionaries` SET "; - - if (isset($_POST['name'])) { - $query .= "`name`='" . $_POST['name'] . "', "; - } - if (isset($_POST['description'])) { - $query .= "`description`='" . $_POST['description'] . "', "; - } - if (isset($_POST['words'])) { - $query .= "`words`='" . $_POST['words'] . "', "; - } - if (isset($_POST['nextwordid'])) { - $query .= "`next_word_id`=" . $_POST['nextwordid'] . ", "; - } - if (isset($_POST['allowduplicates'])) { - $query .= "`allow_duplicates`=" . $_POST['allowduplicates'] . ", "; - } - if (isset($_POST['casesensitive'])) { - $query .= "`case_sensitive`=" . $_POST['casesensitive'] . ", "; - } - if (isset($_POST['partsofspeech'])) { - $query .= "`parts_of_speech`='" . $_POST['partsofspeech'] . "', "; - } - if (isset($_POST['sortbyequivalent'])) { - $query .= "`sort_by_equivalent`='" . $_POST['sortbyequivalent'] . "', "; - } - if (isset($_POST['iscomplete'])) { - $query .= "`is_complete`=" . $_POST['iscomplete'] . ", "; - } - if (isset($_POST['ispublic'])) { - $query .= "`is_public`=" . $_POST['ispublic'] . ", "; - } - - $query .= "`last_updated`='" . date("Y-m-d H:i:s") . "'"; - $query .= " WHERE `id`=" . $_SESSION['dictionary'] . " AND `user`=" . $_SESSION['user'] . ";"; - $update = query($query); - - if ($update) { - echo "updated successfully"; - return true; - } else { - echo "could not update"; - } + if (isset($_SESSION['dictionary'])) { + $query = "UPDATE `dictionaries` SET "; + + if (isset($_POST['name'])) { + $query .= "`name`='" . $_POST['name'] . "', "; + } + if (isset($_POST['description'])) { + $query .= "`description`='" . $_POST['description'] . "', "; + } + if (isset($_POST['nextwordid'])) { + $query .= "`next_word_id`=" . $_POST['nextwordid'] . ", "; + } + if (isset($_POST['allowduplicates'])) { + $query .= "`allow_duplicates`=" . $_POST['allowduplicates'] . ", "; + } + if (isset($_POST['casesensitive'])) { + $query .= "`case_sensitive`=" . $_POST['casesensitive'] . ", "; + } + if (isset($_POST['partsofspeech'])) { + $query .= "`parts_of_speech`='" . $_POST['partsofspeech'] . "', "; + } + if (isset($_POST['sortbyequivalent'])) { + $query .= "`sort_by_equivalent`='" . $_POST['sortbyequivalent'] . "', "; + } + if (isset($_POST['iscomplete'])) { + $query .= "`is_complete`=" . $_POST['iscomplete'] . ", "; + } + if (isset($_POST['ispublic'])) { + $query .= "`is_public`=" . $_POST['ispublic'] . ", "; + } + + $query .= "`last_updated`='" . date("Y-m-d H:i:s") . "'"; + $query .= " WHERE `id`=" . $_SESSION['dictionary'] . " AND `user`=" . $_SESSION['user'] . ";"; + $update = query($query); + + if ($update) { + echo "updated successfully"; + return true; } else { - Save_Current_DictionaryAsNew(); + echo "could not update"; } } else { - echo "not logged in"; + Save_Current_DictionaryAsNew(); + } + return false; +} + +function Save_New_Word($multiple = false) { + $worddata = json_decode(file_get_contents("php://input"), true); + + $dbconnection = new PDO('mysql:host=' . DATABASE_SERVERNAME . ';dbname=' . DATABASE_NAME . ';charset=utf8', DATABASE_USERNAME, DATABASE_PASSWORD); + $dbconnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + $dbconnection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); + $dbconnection->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); + + $query = "INSERT INTO `words`(`dictionary`, `word_id`, `name`, `pronunciation`, `part_of_speech`, `simple_definition`, `long_definition`) "; + $query .= "VALUES "; + if ($multiple) { + for ($i = 0; $i < count($worddata); $i++) { + if ($i > 0) { + $query .= ", "; + } + $query .= "(" . $_SESSION['dictionary'] . "," . $worddata[$i]['wordId'] . ",'" . $worddata[$i]['name'] . "','" . $worddata[$i]['pronunciation'] . "','" . $worddata[$i]['partOfSpeech'] . "','" . $worddata[$i]['simpleDefinition'] . "','" . $worddata[$i]['longDefinition'] . "')"; + } + } else { + $query .= "(" . $_SESSION['dictionary'] . "," . $worddata['wordId'] . ",'" . $worddata['name'] . "','" . $worddata['pronunciation'] . "','" . $worddata['partOfSpeech'] . "','" . $worddata['simpleDefinition'] . "','" . $worddata['longDefinition'] . "')"; + } + $query .= ";"; + + try { + $update = $dbconnection->prepare($query); + $update->execute(); + return true; + } + catch (PDOException $ex) { + $errorMessage = $dbconnection->errorInfo(); + echo "could not update:\n" . $errorMessage[2] . "\n" . $query; + } + return false; +} + +function Update_Word() { + if (isset($_SESSION['dictionary'])) { + $worddata = json_decode(file_get_contents("php://input")); + + $query = "UPDATE `words` SET "; + + $query .= "`name`='" . $worddata['name'] . "', "; + $query .= "`pronunciation`='" . $worddata['pronunciation'] . "', "; + $query .= "`part_of_speech`='" . $worddata['partOfSpeech'] . "', "; + $query .= "`simple_definition`='" . $worddata['simpleDefinition'] . "', "; + $query .= "`long_definition`='" . $worddata['longDefinition'] . "', "; + $query .= "`last_updated`='" . date("Y-m-d H:i:s") . "'"; + $query .= " WHERE `dictionary`=" . $_SESSION['dictionary'] . " AND `word_id`=" . $worddata['wordId'] . ";"; + $update = query($query); + + if ($update) { + echo "updated successfully"; + return true; + } else { + echo "could not update"; + } } return false; } function Switch_Current_Dictionary($newdictionaryid, $returndictionary = true) { - if ($_SESSION['user'] > 0) { - if (isset($newdictionaryid)) { - if (in_array($newdictionaryid, $_SESSION['dictionaries'])) { - //Clear is_current from all user's dictionaries and then update the one they chose, only if the chosen dictionary is valid. - $query .= "UPDATE `users` SET `current_dictionary`=" . $newdictionaryid . " WHERE `id`=" . $_SESSION['user'] . ";"; - $update = query($query); - - if ($update) { - if ($returndictionary) { - Load_Current_Dictionary(); - } else { - echo "dictionary switched"; - } - // return true; + if (isset($newdictionaryid)) { + if (in_array($newdictionaryid, $_SESSION['dictionaries'])) { + //Clear is_current from all user's dictionaries and then update the one they chose, only if the chosen dictionary is valid. + $query .= "UPDATE `users` SET `current_dictionary`=" . $newdictionaryid . " WHERE `id`=" . $_SESSION['user'] . ";"; + $update = query($query); + + if ($update) { + if ($returndictionary) { + Load_Current_Dictionary(); } else { - echo "could not update"; + echo "dictionary switched"; } + // return true; } else { - echo "invalid dictionary"; + echo "could not update"; } } else { - echo "no info provided"; + echo "invalid dictionary"; } } else { - echo "not logged in"; + echo "no info provided"; } return false; } function Delete_Current_Dictionary() { - if ($_SESSION['user'] > 0) { - if (isset($_SESSION['dictionary'])) { - if (in_array($_SESSION['dictionary'], $_SESSION['dictionaries'])) { - //Clear is_current from all user's dictionaries and then update the one they chose, only if the chosen dictionary is valid. - $query = "DELETE FROM `dictionaries` WHERE `id`=" . $_SESSION['dictionary'] . " AND `user`=" . $_SESSION['user'] . ";"; - $update = query($query); - - if ($update) { - Get_Dictionaries(true); - } else { - echo "could not delete"; - } + if (isset($_SESSION['dictionary'])) { + if (in_array($_SESSION['dictionary'], $_SESSION['dictionaries'])) { + //Clear is_current from all user's dictionaries and then update the one they chose, only if the chosen dictionary is valid. + $query = "DELETE FROM `dictionaries` WHERE `id`=" . $_SESSION['dictionary'] . " AND `user`=" . $_SESSION['user'] . ";"; + $update = query($query); + + if ($update) { + Get_Dictionaries(true); } else { - echo "invalid dictionary"; + echo "could not delete"; } } else { - echo "no current dictionary"; + echo "invalid dictionary"; } } else { - echo "not logged in"; + echo "no current dictionary"; } return false; }