示例#1
0
 /**
  * @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();
 }
示例#2
0
 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);
 }
示例#3
0
 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;
 }
示例#4
0
 /**
  * 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);
 }