| 1 | <?php |
1 | <?php |
| 2 | // $Id: lib.php,v 1.11 2007-06-26 06:46:33 mleventi Exp $ |
2 | // $Id: lib.php,v 1.12 2007-06-28 20:09:32 mleventi Exp $ |
| 3 | |
3 | |
|
|
4 | require_once("$CFG->libdir/soap/nusoap.php"); |
| 4 | |
5 | |
| 5 | define('WWASSIGNMENT_WEBWORK_URL', $CFG->wwassignment_webworkurl); |
6 | define('WWASSIGNMENT_WEBWORK_URL', $CFG->wwassignment_webworkurl); |
| 6 | define('WWASSIGNMENT_WEBWORK_WSDL', $CFG->wwassignment_rpc_wsdl); |
7 | define('WWASSIGNMENT_WEBWORK_WSDL', $CFG->wwassignment_rpc_wsdl); |
| 7 | define('WWASSIGNMENT_WEBWORK_KEY',$CFG->wwassignment_rpc_key); |
8 | define('WWASSIGNMENT_WEBWORK_KEY',$CFG->wwassignment_rpc_key); |
| 8 | |
9 | |
| … | |
… | |
| 12 | * @return URL to the assignment. |
13 | * @return URL to the assignment. |
| 13 | */ |
14 | */ |
| 14 | function wwassignment_view_link($wwassignmentid) { |
15 | function wwassignment_view_link($wwassignmentid) { |
| 15 | global $COURSE,$USER; |
16 | global $COURSE,$USER; |
| 16 | |
17 | |
| 17 | $webworkclient = webwork_client::get_instance(); |
18 | $webworkclient =& new webwork_client(); |
| 18 | $webworkcourse = _wwassignment_mapped_course($COURSE->id,false); |
19 | $webworkcourse = _wwassignment_mapped_course($COURSE->id,false); |
| 19 | $webworkset = _wwassignment_mapped_set($wwassignmentid,false); |
20 | $webworkset = _wwassignment_mapped_set($wwassignmentid,false); |
| 20 | $webworkuser = $webworkclient->mapped_user($webworkcourse,$USER->username); |
21 | $webworkuser = $webworkclient->mapped_user($webworkcourse,$USER->username); |
| 21 | if($webworkuser == -1) { |
22 | if($webworkuser == -1) { |
| 22 | error_log(get_string("user_not_mapped","wwassignment")); |
23 | error_log(get_string("user_not_mapped","wwassignment")); |
| … | |
… | |
| 44 | * @param string $wwassignmentid The assignment id. |
45 | * @param string $wwassignmentid The assignment id. |
| 45 | * @return URL The URL. |
46 | * @return URL The URL. |
| 46 | */ |
47 | */ |
| 47 | function wwassignment_edit_set_link($wwassignmentid) { |
48 | function wwassignment_edit_set_link($wwassignmentid) { |
| 48 | global $COURSE,$USER; |
49 | global $COURSE,$USER; |
| 49 | $webworkclient = webwork_client::get_instance(); |
50 | $webworkclient =& new webwork_client(); |
| 50 | |
51 | |
| 51 | //IS THE COURSE MAPPED? |
52 | //IS THE COURSE MAPPED? |
| 52 | $webworkcourse = _wwassignment_mapped_course($COURSE->id,false); |
53 | $webworkcourse = _wwassignment_mapped_course($COURSE->id,false); |
| 53 | //IS THE SET MAPPED? |
54 | //IS THE SET MAPPED? |
| 54 | $webworkset = _wwassignment_mapped_set($wwassignmentid,false); |
55 | $webworkset = _wwassignment_mapped_set($wwassignmentid,false); |
| … | |
… | |
| 71 | * @desc Creates an auto_login link to the URL of the instructor page for the webwork course associated with the current course. |
72 | * @desc Creates an auto_login link to the URL of the instructor page for the webwork course associated with the current course. |
| 72 | * @return URL The URL. |
73 | * @return URL The URL. |
| 73 | */ |
74 | */ |
| 74 | function wwassignment_instructor_page_link() { |
75 | function wwassignment_instructor_page_link() { |
| 75 | global $COURSE,$USER; |
76 | global $COURSE,$USER; |
| 76 | $webworkclient = webwork_client::get_instance(); |
77 | $webworkclient =& new webwork_client(); |
| 77 | |
78 | |
| 78 | $webworkcourse = _wwassignment_mapped_course($COURSE->id,false); |
79 | $webworkcourse = _wwassignment_mapped_course($COURSE->id,false); |
| 79 | //IS THE USER MAPPED? |
80 | //IS THE USER MAPPED? |
| 80 | $webworkuser = $webworkclient->mapped_user($webworkcourse,$USER->username); |
81 | $webworkuser = $webworkclient->mapped_user($webworkcourse,$USER->username); |
| 81 | if($webworkuser == -1) { |
82 | if($webworkuser == -1) { |
| … | |
… | |
| 107 | error_log("adding wwassignment_bridge record"); |
108 | error_log("adding wwassignment_bridge record"); |
| 108 | $wwassignment->course = $COURSE->id; |
109 | $wwassignment->course = $COURSE->id; |
| 109 | $returnid = insert_record("wwassignment_bridge",$wwassignment); |
110 | $returnid = insert_record("wwassignment_bridge",$wwassignment); |
| 110 | $wwassignment->webwork_set = "undefined"; |
111 | $wwassignment->webwork_set = "undefined"; |
| 111 | $returnid = insert_record("wwassignment",$wwassignment); |
112 | $returnid = insert_record("wwassignment",$wwassignment); |
| 112 | $webworkclient = webwork_client::get_instance(); |
113 | $webworkclient =& new webwork_client(); |
| 113 | if($webworkclient->mapped_user($wwassignment->webwork_course,$USER->username) == -1) { |
114 | if($webworkclient->mapped_user($wwassignment->webwork_course,$USER->username) == -1) { |
| 114 | $webworkclient->create_user($wwassignment->webwork_course,$USER,"10"); |
115 | $webworkclient->create_user($wwassignment->webwork_course,$USER,"10"); |
| 115 | } |
116 | } |
| 116 | return $returnid; |
117 | return $returnid; |
| 117 | } |
118 | } |
| 118 | if(isset($wwassignment->webwork_set)) { |
119 | if(isset($wwassignment->webwork_set)) { |
| 119 | $webworkclient = webwork_client::get_instance(); |
120 | $webworkclient =& new webwork_client(); |
| 120 | if($wwassignment->webwork_set =="create") { |
121 | if($wwassignment->webwork_set =="create") { |
| 121 | print_error("Creation is not yet supported."); |
122 | print_error("Creation is not yet supported."); |
| 122 | } |
123 | } |
| 123 | $webworkcourse = _wwassignment_mapped_course($COURSE->id); |
124 | $webworkcourse = _wwassignment_mapped_course($COURSE->id); |
| 124 | $webworksetdata = $webworkclient->get_assignment_data($webworkcourse,$wwassignment->webwork_set,false); |
125 | $webworksetdata = $webworkclient->get_assignment_data($webworkcourse,$wwassignment->webwork_set,false); |
| … | |
… | |
| 152 | /** |
153 | /** |
| 153 | * @desc Updates and resynchronizes all information related to the a moodle assignment <-> webwork problem set tie. |
154 | * @desc Updates and resynchronizes all information related to the a moodle assignment <-> webwork problem set tie. |
| 154 | */ |
155 | */ |
| 155 | function wwassignment_update_instance($wwassignment) { |
156 | function wwassignment_update_instance($wwassignment) { |
| 156 | global $COURSE; |
157 | global $COURSE; |
| 157 | $webworkclient = webwork_client::get_instance(); |
158 | $webworkclient =& new webwork_client(); |
| 158 | $webworkcourse = _wwassignment_mapped_course($COURSE->id); |
159 | $webworkcourse = _wwassignment_mapped_course($COURSE->id); |
| 159 | $webworkset = _wwassignment_mapped_set($wwassignment->instance,false); |
160 | $webworkset = _wwassignment_mapped_set($wwassignment->instance,false); |
| 160 | $webworksetdata = $webworkclient->get_assignment_data($webworkcourse,$webworkset,false); |
161 | $webworksetdata = $webworkclient->get_assignment_data($webworkcourse,$webworkset,false); |
| 161 | if(isset($webworksetdata)) { |
162 | if(isset($webworksetdata)) { |
| 162 | $wwassignment->name = get_string("set_name","wwassignment") . " " . $webworksetdata['set_id']; |
163 | $wwassignment->name = get_string("set_name","wwassignment") . " " . $webworksetdata['set_id']; |
| … | |
… | |
| 187 | return $returnid; |
188 | return $returnid; |
| 188 | } |
189 | } |
| 189 | |
190 | |
| 190 | /** |
191 | /** |
| 191 | * @desc Deletes a tie in Moodle. Deletes nothing in webwork. |
192 | * @desc Deletes a tie in Moodle. Deletes nothing in webwork. |
|
|
193 | * @param integer $id The id of the assignment to delete. |
| 192 | */ |
194 | */ |
| 193 | function wwassignment_delete_instance($id) { |
195 | function wwassignment_delete_instance($id) { |
| 194 | |
196 | |
| 195 | $result = true; |
197 | $result = true; |
| 196 | if (! $wwassignment = get_record("wwassignment", "id", "$id")) { |
198 | if (! $wwassignment = get_record("wwassignment", "id", "$id")) { |
| … | |
… | |
| 282 | // again with a max of P |
284 | // again with a max of P |
| 283 | |
285 | |
| 284 | // redefine it here, 'cause for some reason we can't global it... |
286 | // redefine it here, 'cause for some reason we can't global it... |
| 285 | //debug_log("start grades ".$wwassignmentid); |
287 | //debug_log("start grades ".$wwassignmentid); |
| 286 | global $COURSE; |
288 | global $COURSE; |
| 287 | $webworkclient = webwork_client::get_instance(); |
289 | $webworkclient =& new webwork_client(); |
| 288 | $studentgrades->grades = array(); |
290 | $studentgrades->grades = array(); |
| 289 | $studentgrades->maxgrade = 0; |
291 | $studentgrades->maxgrade = 0; |
| 290 | //debug_log("record ".print_r($oMod,true)); |
292 | //debug_log("record ".print_r($oMod,true)); |
| 291 | $gradeformula = '$finalgrade += ($problem->status > 0) ? 1 : 0;'; |
293 | $gradeformula = '$finalgrade += ($problem->status > 0) ? 1 : 0;'; |
| 292 | //debug_log("formula ".print_r($gradeFormula, true)); |
294 | //debug_log("formula ".print_r($gradeFormula, true)); |
| … | |
… | |
| 473 | |
475 | |
| 474 | /** |
476 | /** |
| 475 | * @desc This singleton class acts as the gateway for all communication from the Moodle Client to the WeBWorK SOAP Server. It encapsulates an instance of a SoapClient. |
477 | * @desc This singleton class acts as the gateway for all communication from the Moodle Client to the WeBWorK SOAP Server. It encapsulates an instance of a SoapClient. |
| 476 | */ |
478 | */ |
| 477 | class webwork_client { |
479 | class webwork_client { |
| 478 | private $client; |
480 | var $client; |
| 479 | private $defaultparams; |
481 | var $defaultparams; |
| 480 | private $datacache; |
482 | var $datacache; |
| 481 | private $mappingcache; |
483 | var $mappingcache; |
| 482 | static private $instance; |
|
|
| 483 | |
484 | /** |
| 484 | /** |
|
|
| 485 | * @desc Constructs a webwork_client. |
485 | * @desc Constructs a singleton webwork_client. |
| 486 | */ |
486 | */ |
| 487 | private function __construct() { |
487 | function webwork_client() |
|
|
488 | { |
|
|
489 | // static associative array containing the real objects, key is classname |
|
|
490 | static $instances=array(); |
|
|
491 | // get classname |
|
|
492 | $class = get_class($this); |
|
|
493 | if (!array_key_exists($class, $instances)) { |
|
|
494 | // does not yet exist, save in array |
| 488 | $this->client = new SoapClient(WWASSIGNMENT_WEBWORK_WSDL); |
495 | $this->client = new soap_client(WWASSIGNMENT_WEBWORK_WSDL,'wsdl'); |
|
|
496 | $err = $this->client->getError(); |
|
|
497 | if ($err) { |
|
|
498 | print_error("Constructor Error"); |
|
|
499 | } |
|
|
500 | $this->defaultparams = array(); |
| 489 | $this->defaultparams = array(WWASSIGNMENT_WEBWORK_KEY); |
501 | $this->defaultparams['authenKey'] = WWASSIGNMENT_WEBWORK_KEY; |
| 490 | $this->datacache = array(); |
502 | $this->datacache = array(); |
| 491 | $this->mappingcache = array(); |
503 | $this->mappingcache = array(); |
| 492 | //Does a mapping exist for this course |
504 | $instances[$class] = $this; |
| 493 | /*$mapping = _wwassignment_course_mapped(); |
|
|
| 494 | if($mapping != 0) { |
|
|
| 495 | $this->defaultparams = array_push($this->defaultparams,$mapping); |
|
|
| 496 | }*/ |
505 | |
| 497 | } |
506 | } |
| 498 | /** |
507 | foreach (get_class_vars($class) as $var => $value) { |
| 499 | * @desc Retrieves the singleton instance of the webwork_client class. |
508 | $this->$var =& $instances[$class]->$var; |
| 500 | * @return The instance of the class. |
|
|
| 501 | */ |
|
|
| 502 | public function get_instance() { |
|
|
| 503 | if(self::$instance == NULL) { |
|
|
| 504 | self::$instance = new webwork_client(); |
|
|
| 505 | } |
|
|
| 506 | return self::$instance; |
|
|
| 507 | } |
509 | } |
| 508 | |
510 | } |
| 509 | /** |
511 | /** |
| 510 | *@desc Calls a SOAP function and passes (authenkey,course) automatically in the parameter list. |
512 | *@desc Calls a SOAP function and passes (authenkey,course) automatically in the parameter list. |
| 511 | *@param string $functioncall The function to call |
513 | *@param string $functioncall The function to call |
| 512 | *@param array $params The parameters to the function. |
514 | *@param array $params The parameters to the function. |
| 513 | *@param integer $override=false whether to override the default parameters that are passed to the soap function (authenKey). |
515 | *@param integer $override=false whether to override the default parameters that are passed to the soap function (authenKey). |
| 514 | *@return Result of the soap function. |
516 | *@return Result of the soap function. |
| 515 | */ |
517 | */ |
| 516 | private function handler($functioncall,$params=array(),$override=false) { |
518 | function handler($functioncall,$params=array(),$override=false) { |
| 517 | if(!is_array($params)) { |
519 | if(!is_array($params)) { |
| 518 | $params = array($params); |
520 | $params = array($params); |
| 519 | } |
521 | } |
| 520 | if(!$override) { |
522 | if(!$override) { |
| 521 | $params = array_merge($this->defaultparams,$params); |
523 | $params = array_merge($this->defaultparams,$params); |
| 522 | } |
524 | } |
| 523 | try { |
525 | $result = $this->client->call($functioncall,$params); |
| 524 | return call_user_func_array(array(&$this->client,$functioncall),$params); |
526 | //$result = call_user_func_array(array(&$this->client,$functioncall),$params); |
| 525 | |
527 | if($err = $this->client->getError()) { |
|
|
528 | print_error(get_string("rpc_fault","wwassignment") . " " . $functioncall. " ". $err); |
| 526 | } |
529 | } |
| 527 | catch (SoapFault $exception) { |
530 | return $result; |
| 528 | print_error(get_string("rpc_fault","wwassignment") . " " . $functioncall. " ". $exception->faultstring); |
|
|
| 529 | } |
|
|
| 530 | } |
531 | } |
| 531 | |
532 | |
| 532 | /** |
533 | /** |
| 533 | * @desc Checks whether a user is in a webwork course. |
534 | * @desc Checks whether a user is in a webwork course. |
| 534 | * @param string $webworkcourse The webwork course name. |
535 | * @param string $webworkcourse The webwork course name. |
| 535 | * @param string $webworkuser The webwork user name. |
536 | * @param string $webworkuser The webwork user name. |
| 536 | * @param integer $silent whether to trigger an error message |
537 | * @param integer $silent whether to trigger an error message |
| 537 | * @return string Returns the webwork user on success and -1 on failure. |
538 | * @return string Returns the webwork user on success and -1 on failure. |
| 538 | */ |
539 | */ |
| 539 | public function mapped_user($webworkcourse,$webworkuser,$silent = true) { |
540 | function mapped_user($webworkcourse,$webworkuser,$silent = true) { |
| 540 | if(isset($this->mappingcache[$webworkcourse]['user'][$webworkuser])) { |
541 | if(isset($this->mappingcache[$webworkcourse]['user'][$webworkuser])) { |
| 541 | return $this->mappingcache[$webworkcourse]['user'][$webworkuser]; |
542 | return $this->mappingcache[$webworkcourse]['user'][$webworkuser]; |
| 542 | } |
543 | } |
| 543 | $record = $this->handler('get_user',array($webworkcourse,$webworkuser)); |
544 | $record = $this->handler('get_user',array("courseName" => $webworkcourse,"userID" => $webworkuser)); |
| 544 | if($record != -1) { |
545 | if($record != -1) { |
| 545 | $this->mappingcache[$webworkcourse]['user'][$webworkuser] = $webworkuser; |
546 | $this->mappingcache[$webworkcourse]['user'][$webworkuser] = $webworkuser; |
| 546 | return $webworkuser; |
547 | return $webworkuser; |
| 547 | } |
548 | } |
| 548 | if(!$silent) { |
549 | if(!$silent) { |
| … | |
… | |
| 557 | * @param string $webworkuser The webwork user name. |
558 | * @param string $webworkuser The webwork user name. |
| 558 | * @param string $webworkset The webwork set name. |
559 | * @param string $webworkset The webwork set name. |
| 559 | * @param integer $silent whether to trigger an error message |
560 | * @param integer $silent whether to trigger an error message |
| 560 | * @return integer Returns 1 on success and -1 on failure. |
561 | * @return integer Returns 1 on success and -1 on failure. |
| 561 | */ |
562 | */ |
| 562 | public function mapped_user_set($webworkcourse,$webworkuser,$webworkset,$silent = true) { |
563 | function mapped_user_set($webworkcourse,$webworkuser,$webworkset,$silent = true) { |
| 563 | if(isset($this->mappingcache[$webworkcourse]['user_set'][$webworkuser][$webworkset])) { |
564 | if(isset($this->mappingcache[$webworkcourse]['user_set'][$webworkuser][$webworkset])) { |
| 564 | return $this->mappingcache[$webworkcourse]['user_set'][$webworkuser][$webworkset]; |
565 | return $this->mappingcache[$webworkcourse]['user_set'][$webworkuser][$webworkset]; |
| 565 | } |
566 | } |
| 566 | $record = $this->handler("get_user_set",array($webworkcourse,$webworkuser,$webworkset)); |
567 | $record = $this->handler("get_user_set",array("courseName" => $webworkcourse,"userID" => $webworkuser,"setID" => $webworkset)); |
| 567 | if($record != -1) { |
568 | if($record != -1) { |
| 568 | $this->mappingcache[$webworkcourse]['user_set'][$webworkuser][$webworkset] = 1; |
569 | $this->mappingcache[$webworkcourse]['user_set'][$webworkuser][$webworkset] = 1; |
| 569 | return 1; |
570 | return 1; |
| 570 | } |
571 | } |
| 571 | |
572 | |
| … | |
… | |
| 580 | * @param string $webworkcourse The webwork course name. |
581 | * @param string $webworkcourse The webwork course name. |
| 581 | * @param string $webworkset The webwork set name. |
582 | * @param string $webworkset The webwork set name. |
| 582 | * @param integer $silent whether to trigger an error message |
583 | * @param integer $silent whether to trigger an error message |
| 583 | * @return array Returns set information on success or -1 on failure. |
584 | * @return array Returns set information on success or -1 on failure. |
| 584 | */ |
585 | */ |
| 585 | public function get_assignment_data($webworkcourse,$webworkset,$silent = true) { |
586 | function get_assignment_data($webworkcourse,$webworkset,$silent = true) { |
| 586 | $record = $this->handler("get_global_set",array($webworkcourse,$webworkset)); |
587 | $record = $this->handler("get_global_set",array('courseName' => $webworkcourse, 'setID' => $webworkset)); |
| 587 | if(isset($record)) { |
588 | if(isset($record)) { |
| 588 | $setinfo = array(); |
589 | $setinfo = array(); |
| 589 | $setinfo['open_date'] = $record->open_date; |
590 | $setinfo['open_date'] = $record->open_date; |
| 590 | $setinfo['due_date'] = $record->due_date; |
591 | $setinfo['due_date'] = $record->due_date; |
| 591 | $setinfo['set_id'] = $record->set_id; |
592 | $setinfo['set_id'] = $record->set_id; |
| … | |
… | |
| 605 | * @param string $webworkuser The webwork users name. |
606 | * @param string $webworkuser The webwork users name. |
| 606 | * @param string $webworkset The webwork set name. |
607 | * @param string $webworkset The webwork set name. |
| 607 | * @param integer $silent whether to trigger an error message |
608 | * @param integer $silent whether to trigger an error message |
| 608 | * @return array Returns an array of problems on success or -1 on failure. |
609 | * @return array Returns an array of problems on success or -1 on failure. |
| 609 | */ |
610 | */ |
| 610 | public function get_user_problems($webworkcourse,$webworkuser,$webworkset,$silent = true) { |
611 | function get_user_problems($webworkcourse,$webworkuser,$webworkset,$silent = true) { |
| 611 | $record = $this->handler("get_all_user_problems",array($webworkcourse,$webworkuser,$webworkset)); |
612 | $record = $this->handler("get_all_user_problems",array("courseName" => $webworkcourse,"userID" => $webworkuser,"setID" => $webworkset)); |
| 612 | if(isset($record)) { |
613 | if(isset($record)) { |
| 613 | return $record; |
614 | return $record; |
| 614 | } |
615 | } |
| 615 | if(!$silent) { |
616 | if(!$silent) { |
| 616 | print_error(get_string("webwork_map_failure","wwassignment") . "The user $webworkuser does not have copies of the set $webworkset in webwork course $webworkcourse."); |
617 | print_error(get_string("webwork_map_failure","wwassignment") . "The user $webworkuser does not have copies of the set $webworkset in webwork course $webworkcourse."); |
| … | |
… | |
| 623 | * @param string $webworkcourse The webwork course name. |
624 | * @param string $webworkcourse The webwork course name. |
| 624 | * @param string $webworkset The webwork set name. |
625 | * @param string $webworkset The webwork set name. |
| 625 | * @param integer $silent whether to trigger an error message |
626 | * @param integer $silent whether to trigger an error message |
| 626 | * @return integer The max grade on success or -1 on failure. |
627 | * @return integer The max grade on success or -1 on failure. |
| 627 | */ |
628 | */ |
| 628 | public function get_max_grade($webworkcourse,$webworkset,$silent = true) { |
629 | function get_max_grade($webworkcourse,$webworkset,$silent = true) { |
| 629 | $record = $this->handler('list_global_problems',array($webworkcourse,$webworkset)); |
630 | $record = $this->handler('list_global_problems',array("courseName" => $webworkcourse,"setID" => $webworkset)); |
| 630 | if(isset($record)) { |
631 | if(isset($record)) { |
| 631 | return count($record); |
632 | return count($record); |
| 632 | } |
633 | } |
| 633 | if(!$silent) { |
634 | if(!$silent) { |
| 634 | print_error(get_string("webwork_map_failure","wwassignment") . "The set $webworkset does not exist in webwork course $webworkcourse."); |
635 | print_error(get_string("webwork_map_failure","wwassignment") . "The set $webworkset does not exist in webwork course $webworkcourse."); |
| … | |
… | |
| 641 | * @param string $webworkcourse The webwork course name. |
642 | * @param string $webworkcourse The webwork course name. |
| 642 | * @param string $webworkuser The webwork users name. |
643 | * @param string $webworkuser The webwork users name. |
| 643 | * @param integer $silent whether to trigger an error message |
644 | * @param integer $silent whether to trigger an error message |
| 644 | * @return string The webwork key for URL on success or -1 on failure. |
645 | * @return string The webwork key for URL on success or -1 on failure. |
| 645 | */ |
646 | */ |
| 646 | public function login_user($webworkcourse,$webworkuser,$silent = true) { |
647 | function login_user($webworkcourse,$webworkuser,$silent = true) { |
| 647 | $key = $this->handler("login_user",array($webworkcourse,$webworkuser)); |
648 | $key = $this->handler("login_user",array("courseName" => $webworkcourse,"userID" => $webworkuser)); |
| 648 | if(isset($key)) { |
649 | if(isset($key)) { |
| 649 | return $key; |
650 | return $key; |
| 650 | } |
651 | } |
| 651 | if(!$silent) { |
652 | if(!$silent) { |
| 652 | print_error(get_string("webwork_map_failure","wwassignment") . "The user $webworkuser cannot login to $webworkcourse."); |
653 | print_error(get_string("webwork_map_failure","wwassignment") . "The user $webworkuser cannot login to $webworkcourse."); |
| … | |
… | |
| 658 | * @desc Retrieves a list of sets from a webwork course and converts it into form options format. |
659 | * @desc Retrieves a list of sets from a webwork course and converts it into form options format. |
| 659 | * @param string $webworkcourse The webwork course name. |
660 | * @param string $webworkcourse The webwork course name. |
| 660 | * @param integer $silent whether to trigger an error message |
661 | * @param integer $silent whether to trigger an error message |
| 661 | * @return array The form options. |
662 | * @return array The form options. |
| 662 | */ |
663 | */ |
| 663 | public function options_set($webworkcourse,$silent = true) { |
664 | function options_set($webworkcourse,$silent = true) { |
| 664 | $setlist = $this->handler('list_global_sets',array($webworkcourse)); |
665 | $setlist = $this->handler('list_global_sets',array("courseName" => $webworkcourse)); |
| 665 | if(isset($setlist)) { |
666 | if(isset($setlist)) { |
| 666 | $setoptions = array(); |
667 | $setoptions = array(); |
| 667 | foreach($setlist as $setid) { |
668 | foreach($setlist as $setid) { |
| 668 | $setoptions[$setid] = $setid; |
669 | $setoptions[$setid] = $setid; |
| 669 | } |
670 | } |
| … | |
… | |
| 701 | * @param string $webworkcourse The webwork course name. |
702 | * @param string $webworkcourse The webwork course name. |
| 702 | * @param array $userdata The user data to use in creation. |
703 | * @param array $userdata The user data to use in creation. |
| 703 | * @param string $permission The permissions of the new user, defaults to 0. |
704 | * @param string $permission The permissions of the new user, defaults to 0. |
| 704 | * @return Returns 1 on success. |
705 | * @return Returns 1 on success. |
| 705 | */ |
706 | */ |
| 706 | public function create_user($webworkcourse,&$userdata,$permission="0") { |
707 | function create_user($webworkcourse,&$userdata,$permission="0") { |
| 707 | //student ID switch |
|
|
| 708 | if(isset($userdata->student_id)) { |
708 | if(isset($userdata->student_id)) { |
| 709 | $studentid = $userdata->student_id; |
709 | $studentid = $userdata->student_id; |
| 710 | } else { |
710 | } else { |
| 711 | $studentid = $userid; |
711 | $studentid = $userid; |
| 712 | } |
712 | } |
| 713 | //insert user record |
|
|
| 714 | $this->handler("add_user",array($webworkcourse,array( |
713 | $this->handler("add_user",array("courseName" => $webworkcourse, "record" => array( |
| 715 | "user_id" => $userdata->username, |
714 | "user_id" => $userdata->username, |
| 716 | "first_name" => $userdata->firstname, |
715 | "first_name" => $userdata->firstname, |
| 717 | "last_name" => $userdata->lastname, |
716 | "last_name" => $userdata->lastname, |
| 718 | "email_address" => $userdata->emailaddress, |
717 | "email_address" => $userdata->emailaddress, |
| 719 | "student_id" => $studentid, |
718 | "student_id" => $studentid, |
| … | |
… | |
| 735 | * @param string $webworkcourse The webwork course name. |
734 | * @param string $webworkcourse The webwork course name. |
| 736 | * @param string $webworkuser The webwork user name. |
735 | * @param string $webworkuser The webwork user name. |
| 737 | * @param string $webworkset The webwork set name. |
736 | * @param string $webworkset The webwork set name. |
| 738 | * @return Returns 1 on success. |
737 | * @return Returns 1 on success. |
| 739 | */ |
738 | */ |
| 740 | public function create_user_set($webworkcourse,$webworkuser,$webworkset) { |
739 | function create_user_set($webworkcourse,$webworkuser,$webworkset) { |
| 741 | $this->handler("assign_set_to_user",array($webworkcourse,$webworkuser,$webworkset)); |
740 | $this->handler("assign_set_to_user",array("courseName" => $webworkcourse,"userID" => $webworkuser, "setID" => $webworkset)); |
| 742 | return 1; |
741 | return 1; |
| 743 | } |
742 | } |
| 744 | }; |
743 | }; |
| 745 | |
744 | |
| 746 | ?> |
745 | ?> |