/** * Retrieve links and return them as an array of extensions of AbstractLink. * To keep consistency, do not call this method but LinkFactory::load instead. */ public static function load($id = null, $type = null, $ref_id = null, $user_id = null, $course_code = null, $category_id = null, $visible = null) { $tbl_grade_links = Database::get_main_table(TABLE_MAIN_GRADEBOOK_LINK); $sql = 'SELECT * FROM ' . $tbl_grade_links; $paramcount = 0; if (isset($id)) { $sql .= ' WHERE id = ' . intval($id); $paramcount++; } if (isset($type)) { if ($paramcount != 0) { $sql .= ' AND'; } else { $sql .= ' WHERE'; } $sql .= ' type = ' . intval($type); $paramcount++; } if (isset($ref_id)) { if ($paramcount != 0) { $sql .= ' AND'; } else { $sql .= ' WHERE'; } $sql .= ' ref_id = ' . intval($ref_id); $paramcount++; } if (isset($user_id)) { if ($paramcount != 0) { $sql .= ' AND'; } else { $sql .= ' WHERE'; } $sql .= ' user_id = ' . intval($user_id); $paramcount++; } if (isset($course_code)) { if ($paramcount != 0) { $sql .= ' AND'; } else { $sql .= ' WHERE'; } $sql .= " course_code = '" . Database::escape_string($course_code) . "'"; $paramcount++; } if (isset($category_id)) { if ($paramcount != 0) { $sql .= ' AND'; } else { $sql .= ' WHERE'; } $sql .= ' category_id = ' . intval($category_id); $paramcount++; } if (isset($visible)) { if ($paramcount != 0) { $sql .= ' AND'; } else { $sql .= ' WHERE'; } $sql .= ' visible = ' . intval($visible); } $result = Database::query($sql); $links = AbstractLink::create_objects_from_sql_result($result); return $links; }