/** * @see AbstractController::run() */ public function run(Resource $resource) { $uriParams = $resource->getParams(); $formParams = RequestManager::getAllParams(); $uc = new UserPreferencesController(); $uc->getUserPreference(Utils::getLoggedInUserId()); $this->populateProgramData($uriParams, $formParams); $this->getView()->setViewName(self::MODULE_KEY)->display(); }
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 getProgramList($lang = false, $category = false, $offset = 0) { $programList = array(); $bindParams = array(); if (empty($lang) && empty($category)) { IndexController::$isHomePage = true; } $pidCol = ProgramDetails_DBTable::PROGRAM_ID; $langCol = ProgramDetails_DBTable::FK_LANGUAGE_ID; $cateCol = ProgramDetails_DBTable::FK_CATEGORY_ID; $limit = UserPreferencesController::get(PreferenceKeys::PAGINATOR_LIMIT); $limit = empty($limit) ? Constants::PAGINATOR_LIMIT : $limit; $totalRecordCount = (new ProgramDetailsController())->getAllRecordCount(); $this->processPaginator($offset, $limit, $totalRecordCount); $query = 'SELECT ' . ProgramDetails_DBTable::DB_TABLE_NAME . '.*,' . Users_DBTable::DB_TABLE_NAME . '.' . Users_DBTable::USER_NAME . ' AS created_by,' . Category_DBTable::DB_TABLE_NAME . '.' . Category_DBTable::CATEGORY_NAME . ' AS category_name,' . Language_DBTable::DB_TABLE_NAME . '.' . Language_DBTable::LANGUAGE_NAME . ' AS language_name FROM ' . ProgramDetails_DBTable::DB_TABLE_NAME . ' INNER JOIN ' . Category_DBTable::DB_TABLE_NAME . ' ON ' . Category_DBTable::DB_TABLE_NAME . '.' . Category_DBTable::CATEGORY_ID . ' = ' . ProgramDetails_DBTable::DB_TABLE_NAME . '.' . ProgramDetails_DBTable::FK_CATEGORY_ID . ' INNER JOIN ' . Language_DBTable::DB_TABLE_NAME . ' ON ' . Language_DBTable::DB_TABLE_NAME . '.' . Language_DBTable::LANGUAGE_ID . ' = ' . ProgramDetails_DBTable::DB_TABLE_NAME . '.' . ProgramDetails_DBTable::FK_LANGUAGE_ID . ' INNER JOIN ' . Users_DBTable::DB_TABLE_NAME . ' ON ' . Users_DBTable::DB_TABLE_NAME . '.' . Users_DBTable::USER_ID . ' = ' . ProgramDetails_DBTable::FK_CREATED_BY . ' WHERE '; if (!empty($lang)) { $bindParams[] = $lang; $query .= ProgramDetails_DBTable::DB_TABLE_NAME . '.' . ProgramDetails_DBTable::FK_LANGUAGE_ID . "=? AND "; if (!empty($category)) { $bindParams[] = $category; $query .= ProgramDetails_DBTable::DB_TABLE_NAME . '.' . ProgramDetails_DBTable::FK_CATEGORY_ID . "=? AND "; } } $query .= ProgramDetails_DBTable::DB_TABLE_NAME . '.' . ProgramDetails_DBTable::IS_DELETED . "= '0'"; if (!empty($offset) && is_numeric($offset)) { $query .= ' LIMIT ' . $offset . ', ' . $limit; } else { $query .= ' LIMIT ' . $limit; } $resultSet = DBManager::executeQuery($query, $bindParams, true); return $resultSet; }
/** * Returms markup for user preference ui * * @return string */ public function getUserPreferenceUI() { $this->smarty->assign('EDITOR_THEME_LIST', Utils::getAceEditorThemes()); $this->smarty->assign('PREF_EDITOR_THEME', UserPreferencesController::get(PreferenceKeys::CODE_EDITOR_THEME)); $this->smarty->assign('PREF_PAGINATOR_VALUE', UserPreferencesController::get(PreferenceKeys::PAGINATOR_LIMIT)); $this->smarty->assign('PREF_SHOW_INVISIBLE', UserPreferencesController::get(PreferenceKeys::CODE_EDITOR_SHOW_INVISIBLE)); $content = $this->render('USERPREF', true); Response::sendResponse(Constants::SUCCESS_RESPONSE, '', $content); }