/** * Returns the columns that have been selected to be displayed on the specified page. This list * contains all selected columns, even if they won't actually be displayed. * * @access public * @param integer $prj_id The ID of the project. * @param string $page The page to return columns for. * @return array An array of columns that should be displayed. */ function getSelectedColumns($prj_id, $page) { static $returns; // poor man's caching system if (!empty($returns[$prj_id][$page])) { return $returns[$prj_id][$page]; } $stmt = "SELECT\n ctd_field,\n ctd_min_role,\n ctd_rank\n FROM\n " . APP_DEFAULT_DB . "." . APP_TABLE_PREFIX . "columns_to_display\n WHERE\n ctd_prj_id = {$prj_id} AND\n ctd_page = '{$page}'\n ORDER BY\n ctd_rank"; $res = $GLOBALS["db_api"]->dbh->getAssoc($stmt, false, array(), DB_FETCHMODE_ASSOC); if (PEAR::isError($res)) { Error_Handler::logError(array($res->getMessage(), $res->getDebugInfo()), __FILE__, __LINE__); return array(); } else { $returns[$prj_id][$page] = array(); foreach ($res as $field_name => $row) { $returns[$prj_id][$page][$field_name] = Display_Column::getColumnInfo($page, $field_name); $returns[$prj_id][$page][$field_name]['min_role'] = $row['ctd_min_role']; $returns[$prj_id][$page][$field_name]['rank'] = $row['ctd_rank']; } return $returns[$prj_id][$page]; } }