private function displayCodeEditor($pid = false) { $categoryList = (new CategoryController())->getCategoryList(); $languageList = (new LanguageController())->getLanguageList(); $showInvisibles = UserPreferencesController::get(PreferenceKeys::CODE_EDITOR_SHOW_INVISIBLE); $this->smarty->assign("CATEGORY_LIST", $categoryList); $this->smarty->assign("LANGUAGE_LIST", $languageList); $this->smarty->assign("LEVEL_LIST", array('Easy', 'Average', 'Difficult')); $this->smarty->assign("EDIT_ACTION_NAME", EditorController::EDIT_ACTION_NAME); $this->smarty->assign("EDIT_ACTION_VALUE", EditorController::EDIT_ACTION_VALUE); $this->smarty->assign("EDITOR_THEME", Utils::getCodeEditorTheme()); $this->smarty->assign("EDITOR_MODE", Utils::getCodeEditorMode()); $this->smarty->assign("SHOW_INVISIBLES", $showInvisibles); if (!empty($pid)) { $programController = new ProgramDetailsController(); $programInfo = $programController->getProgramListById($pid); $storedFileName = $programInfo[ProgramDetails_DBTable::STORED_FILE_NAME]; $category = $programInfo[ProgramDetails_DBTable::FK_CATEGORY_ID]; $language = $programInfo[ProgramDetails_DBTable::FK_LANGUAGE_ID]; $srcFile = Configuration::get(Configuration::CODE_BASE_DIR) . $language . '/' . $category . '/' . $storedFileName; $srcCode = @file_get_contents($srcFile); $this->smarty->assign("SELECTED_CATEGORY", $programInfo[ProgramDetails_DBTable::FK_CATEGORY_ID]); $this->smarty->assign("SELECTED_LANGUAGE", $programInfo[ProgramDetails_DBTable::FK_LANGUAGE_ID]); $this->smarty->assign("SELECTED_LEVEL", $programInfo[ProgramDetails_DBTable::LEVEL]); $this->smarty->assign("SELECTED_TITLE", $programInfo[ProgramDetails_DBTable::TITLE]); $this->smarty->assign("SELECTED_FILENAME", $programInfo[ProgramDetails_DBTable::ACTUAL_FILE_NAME]); $this->smarty->assign("SELECTED_DESCRIPTION", $programInfo[ProgramDetails_DBTable::DESCRIPTION]); $this->smarty->assign("SELECTED_VERIFIED", $programInfo[ProgramDetails_DBTable::IS_VERIFIED]); $this->smarty->assign("SELECTED_SOURCE_CODE", htmlentities($srcCode)); $this->smarty->assign("IS_UPDATE_REQ", EditorController::IS_UPDATE_VALUE); $this->smarty->assign("PROGRAM_CURRENT_ID", $programInfo[ProgramDetails_DBTable::PROGRAM_ID]); } $this->render($this->currModule); }
public function updateCode($formParams) { $controller = new EditorController(); $loggedInUser = Session::get(Session::SESS_USER_DETAILS); $storedFileName = Utils::getStoredFileName($formParams[ProgramDetails_DBTable::ACTUAL_FILE_NAME]); $lang = $formParams[ProgramDetails_DBTable::FK_LANGUAGE_ID]; $cate = $formParams[ProgramDetails_DBTable::FK_CATEGORY_ID]; $fileDir = Configuration::get(Configuration::CODE_BASE_DIR) . $lang . "/" . $cate; $fileContents = base64_decode($formParams['editorContents']); $currentDatetime = Utils::getCurrentDatetime(); $pid = $formParams['programid']; $programController = new ProgramDetailsController(); $prevProgramInfo = $programController->getProgramListById($pid); $fileToUnlink = Configuration::get(Configuration::CODE_BASE_DIR) . $prevProgramInfo[ProgramDetails_DBTable::FK_LANGUAGE_ID] . "/" . $prevProgramInfo[ProgramDetails_DBTable::FK_CATEGORY_ID] . "/" . $prevProgramInfo[ProgramDetails_DBTable::STORED_FILE_NAME]; unlink($fileToUnlink); if ($controller->saveFileOnDisk($fileDir, $storedFileName, $fileContents)) { $attribs = array($formParams[ProgramDetails_DBTable::TITLE], $formParams[ProgramDetails_DBTable::FK_LANGUAGE_ID], $formParams[ProgramDetails_DBTable::FK_CATEGORY_ID], $formParams[ProgramDetails_DBTable::ACTUAL_FILE_NAME], $storedFileName, $formParams[ProgramDetails_DBTable::LEVEL], $formParams[ProgramDetails_DBTable::DESCRIPTION], $formParams[ProgramDetails_DBTable::IS_VERIFIED], $currentDatetime, $loggedInUser[Users_DBTable::USER_ID], 0); $query = "UPDATE " . ProgramDetails_DBTable::DB_TABLE_NAME . " SET "; $query .= ProgramDetails_DBTable::TITLE . "=?,"; $query .= ProgramDetails_DBTable::FK_LANGUAGE_ID . "=?,"; $query .= ProgramDetails_DBTable::FK_CATEGORY_ID . "=?,"; $query .= ProgramDetails_DBTable::ACTUAL_FILE_NAME . "=?,"; $query .= ProgramDetails_DBTable::STORED_FILE_NAME . "=?,"; $query .= ProgramDetails_DBTable::LEVEL . "=?,"; $query .= ProgramDetails_DBTable::DESCRIPTION . "=?,"; $query .= ProgramDetails_DBTable::IS_VERIFIED . "=?,"; $query .= ProgramDetails_DBTable::UPDATED_ON . "=?,"; $query .= ProgramDetails_DBTable::FK_CREATED_BY . "=?,"; $query .= ProgramDetails_DBTable::IS_DELETED . "=? "; $query .= "WHERE " . ProgramDetails_DBTable::PROGRAM_ID . "='" . $pid . "'"; if (DBManager::executeQuery($query, $attribs, false)) { $detailArray = array('isUpdate' => EditorController::IS_UPDATE_VALUE, 'programId' => $pid); echo Response::sendResponse(Constants::SUCCESS_RESPONSE, Messages::SUCCESS_CODE_UPDATED, $detailArray); } else { echo Response::sendResponse(Constants::FAILURE_RESPONSE, Messages::ERROR_CODE_UPDATION_FAILED); } } else { echo Response::sendResponse(Constants::FAILURE_RESPONSE, Messages::ERROR_CODE_UPDATION_FAILED); } exit; }
/** * Delete program from system for given PID * * @param int $pid */ private function deleteSource($pid) { $isDeleted = false; $programController = new ProgramDetailsController(); if ($programController->deleteProgram($pid)) { Response::sendResponse(Constants::SUCCESS_RESPONSE, Messages::SUCCESS_FILE_DELETION); $isDeleted = true; } else { Response::sendResponse(Constants::SUCCESS_RESPONSE, Messages::ERROR_FILE_DELETION); } }