_GroupList

Hierarchy

Expanded class hierarchy of _GroupList

Properties

NameDescription
ObjList::$array_list

Functions & methods

NameDescription
ObjList::add
ObjList::check_is_empty
ObjList::find_all_matches
ObjList::find_match
ObjList::get_element
ObjList::get_first
ObjList::get_next
ObjList::get_size
ObjList::has_more
ObjList::index_of
ObjList::insert_after_index
ObjList::object_index_of
ObjList::reset_counter
ObjList::to_string
ObjList::__construct
_GroupList::assign_min_grade
_GroupList::contains_group_requirement_id
_GroupList::get_advised_courses_list
_GroupList::reset_list_counters
_GroupList::sort_alphabetical_order
_GroupList::sort_priority

File

classes/_GroupList.php, line 6

View source
class _GroupList extends ObjList {
  /*
	This class inherits mosts of its classes from ObjList
	in a similar fashion as CourseList.
	*/


  function reset_list_counters() {
    $this->reset_counter();
    // Also, go through all groups in the list and call
    // their "reset_list_counters" method.
    for ($t = 0; $t < $this->count; $t++) {
      $group = $this->array_list[$t];
      $group->reset_list_counters();
    }
  }


  function contains_group_requirement_id($group_requirement_id) {
    // Returns true if any of the lists of courses in these groups
    // contain the group requirement ID.
    for ($t = 0; $t < count($this->array_list); $t++) {
      $group = $this->array_list[$t];
      if ($group->list_courses->contains_group_requirement_id($group_requirement_id)) {
        return true;
      }
    }

    return false;

  }


  function get_advised_courses_list() {
    // Return a courseList object of courses in THIS
    // group which have boolAdvisedToTake == true.
    $rtn_list = new CourseList();
    for ($t = 0; $t < count($this->array_list); $t++) {
      $group = $this->array_list[$t];
      $rtn_list->add_list($group->list_courses->get_advised_courses_list());

      $group->list_groups->reset_counter();
      while ($group->list_groups->has_more()) {
        $gg = $group->list_groups->get_next();
        $rtn_list->add_list($gg->list_courses->get_advised_courses_list());
      }
    }

    $rtn_list->remove_duplicates();

    return $rtn_list;

  }


  function assign_min_grade($min_grade) {
    // Assign a min grade to every group in this grouplist.
    for ($t = 0; $t < count($this->array_list); $t++) {
      $group = $this->array_list[$t];
      $group->assign_min_grade($min_grade);
    }


  }

  function sort_priority() {
    /*
			Sort this list of groups by their priority number.
			Higher priorities should appear at the
			top of the list.
		*/
    $tarray = array();
    // Since I need the indexes, I will have to go through the array
    // myself...
    for ($t = 0; $t < count($this->array_list); $t++) {
      $g = $this->array_list[$t];
      $g->load_descriptive_data();
      $pri = "" . ($g->priority * 1) . "";
      if (strlen($pri) == 1) {
        $pri = "0" . $pri; // padd with 0 on the front.
        // This fixes a sorting problem, because priorities
        // were being evaluated as text, not nums, so "5" seemed
        // larger than "15"  (because it was comparing the 5 to the 1).
      }
      $str = "$pri ~~ $t";

      array_push($tarray, $str);
    }


    rsort($tarray);

    // Now, convert the array back into a list of groups.
    $new_list = new GroupList();
    for ($t = 0; $t < count($tarray); $t++) {
      $temp = explode(" ~~ ", $tarray[$t]);
      $i = $temp[1];

      $new_list->add($this->array_list[$i]);
    }

    // Okay, now $new_list should contain the correct values.
    // We will transfer over the reference.
    $this->array_list = $new_list->array_list;


  }

  function sort_alphabetical_order($bool_reverse_order = false) {

    $tarray = array();
    // Since I need the indexes, I will have to go through the array
    // myself...
    for ($t = 0; $t < count($this->array_list); $t++) {
      $g = $this->array_list[$t];
      $g->load_descriptive_data();
      $str = "$g->title ~~ $t";

      array_push($tarray, $str);
    }

    if ($bool_reverse_order == true) {
      rsort($tarray);
    }
    else {
      sort($tarray);
    }

    // Now, convert the array back into a list of groups.
    $new_list = new GroupList();
    for ($t = 0; $t < count($tarray); $t++) {
      $temp = explode(" ~~ ", $tarray[$t]);
      $i = $temp[1];

      $new_list->add($this->array_list[$i]);
    }

    // Okay, now $new_list should contain the correct values.
    // We will transfer over the reference.
    $this->array_list = $new_list->array_list;


  }



}