function action_prereqedit()
 {
     $curid = $this->required_param('id', PARAM_INT);
     $curcrsid = $this->required_param('association_id', PARAM_INT);
     $curcrs = new curriculumcourse($curcrsid);
     $curcrs->seturl(null, array('s' => $this->pagename, 'action' => 'prereqedit', 'id' => $curid));
     $prereqform = $curcrs->create_prerequisite_form();
     if ($prereqform->is_cancelled()) {
         $this->action_default();
         return;
     } else {
         if ($prereqform->is_submitted() && $prereqform->is_validated()) {
             $form_data = $prereqform->get_data();
             $output = '';
             $added = 0;
             $deleted = 0;
             /// Process requested prerequisite deletions.
             if (!empty($form_data->remove) && isset($form_data->sprereqs)) {
                 $sprereqs = $form_data->sprereqs;
             } else {
                 $sprereqs = array();
             }
             foreach ($sprereqs as $sprereq) {
                 if ($curcrs->del_prerequisite($sprereq)) {
                     $deleted++;
                 }
             }
             /// Process requested prerequisite additions.
             if (!empty($form_data->add) && isset($form_data->prereqs)) {
                 $prereqs = $form_data->prereqs;
             } else {
                 $prereqs = array();
             }
             foreach ($prereqs as $prereq) {
                 if (coursepage::_has_capability('block/curr_admin:course:view', $prereq) && $curcrs->add_prerequisite($prereq, !empty($form_data->add_to_curriculum))) {
                     $added++;
                 }
             }
             if ($deleted > 0) {
                 $delString = $deleted > 1 ? 'deleted_prerequisites' : 'deleted_prerequisite';
                 $output .= get_string($delString, 'block_curr_admin', $deleted);
             }
             if ($added > 0) {
                 $addString = $added > 1 ? 'added_prerequisites' : 'added_prerequisite';
                 $output .= ($deleted > 0 ? ' / ' : '') . get_string($addString, 'block_curr_admin', $added);
             }
             if ($deleted > 0 || $added > 0) {
                 $output .= "\n";
             }
             $curriculum = $curcrs->curriculum;
             if ($curriculum->iscustom) {
                 $curassid = $CURMAN->db->get_field(CURASSTABLE, 'id', 'curriculumid', $curriculum->id);
                 $stucur = new curriculumstudent($curassid);
                 redirect('index.php?s=stucur&section=curr&id=' . $stucur->id . '&action=edit', $output, 3);
             }
             echo $output;
             // recreate the form, to reflect changes in the lists
             $prereqform = $curcrs->create_prerequisite_form();
         }
     }
     $prereqform->display();
 }
 /**
  * Display form to manage prerequisites.
  */
 public function display_prereqedit()
 {
     $curid = $this->required_param('id', PARAM_INT);
     $curcrsid = $this->required_param('association_id', PARAM_INT);
     $curcrs = new curriculumcourse($curcrsid);
     $curcrs->seturl(null, array('s' => $this->pagename, 'action' => 'prereqedit', 'id' => $curid));
     $prereqform = $curcrs->create_prerequisite_form();
     if ($prereqform->is_cancelled()) {
         $this->display_default();
         return;
     } else {
         if ($prereqform->is_submitted() && $prereqform->is_validated()) {
             $formdata = $prereqform->get_data();
             $output = '';
             $added = 0;
             $deleted = 0;
             // Process requested prerequisite deletions.
             if (!empty($formdata->remove) && isset($formdata->sprereqs)) {
                 $sprereqs = $formdata->sprereqs;
             } else {
                 $sprereqs = array();
             }
             foreach ($sprereqs as $sprereq) {
                 if ($curcrs->del_prerequisite($sprereq)) {
                     $deleted++;
                 }
             }
             // Process requested prerequisite additions.
             if (!empty($formdata->add) && isset($formdata->prereqs)) {
                 $prereqs = $formdata->prereqs;
             } else {
                 $prereqs = array();
             }
             // TODO: Ugly, this needs to be overhauled.
             $cpage = new coursepage();
             foreach ($prereqs as $prereq) {
                 if ($cpage->_has_capability('local/elisprogram:course_view', $prereq) && $curcrs->add_prerequisite($prereq, !empty($formdata->add_to_curriculum))) {
                     $added++;
                 }
             }
             if ($deleted > 0) {
                 $delstring = $deleted > 1 ? 'deleted_prerequisites' : 'deleted_prerequisite';
                 $output .= get_string($delstring, 'local_elisprogram', $deleted);
             }
             if ($added > 0) {
                 $addstring = $added > 1 ? 'added_prerequisites' : 'added_prerequisite';
                 $output .= ($deleted > 0 ? ' / ' : '') . get_string($addstring, 'local_elisprogram', $added);
             }
             if ($deleted > 0 || $added > 0) {
                 $output .= "\n";
             }
             $curriculum = $curcrs->curriculum;
             if ($curriculum->iscustom) {
                 $curassid = $this->_db->get_field(curriculumstudent::TABLE, 'id', array('curriculumid' => $curriculum->id));
                 $stucur = new curriculumstudent($curassid);
                 redirect('index.php?s=stucur&section=curr&id=' . $stucur->id . '&action=edit', $output, 3);
             }
             echo $output;
             // Recreate the form, to reflect changes in the lists.
             $prereqform = $curcrs->create_prerequisite_form();
         }
     }
     $prereqform->display();
 }