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; }